About CS161 Assignments

Purpose

The assignments in CS161 are designed to:

  1. Help you develop your problem-solving skills by solving increasingly complex problems.
  2. Give you practice expressing yourself in code that is fit for consumption by others.
  3. Evaluate your problem-solving and give you feedback.

Each assignment centers around solving some problem. However, the solution itself has minimal value. Your instructor does not need 20+ copies of the program. You will almost certainly never use the program you write after you finish it. The value of the assignment comes from the work you put in to solve the problem: Learning to break a problem down into manageable pieces, write code to implement those ideas, and verify that your code is working.

Work History Requirements

The journey you go on to complete an assignment is the destination. Your instructor wants to see that journey, not just where you end up.

As part of every CS161 assignment, you are required to submit a log of your progress on the project, generated using git. If you are using the recommended software and the project templates we provide, this work history will be generated automatically. This video demonstrates how it works and how to view the work history:

If you choose to use other software to write your code, it will be up to you to manually record your work history.

Code without a clear work history is worth 0 points. Work with an incomplete or suspicious work history will not receive credit unless you come into office hours for a code interview.

Working on Multiple Computers

If you switch between multiple computers (laptop and desktop, home and school) while doing your assignment, you will need to make sure to copy your work history from one machine to the other as you swap between them. To do this, copy the entire project folder including the .git folder inside it.

If you are willing to do significant extra initial setup, you could use GitHub to set up a private repository and use it to sync your code. See the Chemeketa CS github guide for details.

If you do set up a github repository, it must be a private one.