We have a great set of assignments planned to give you practice with the material presented in lecture and section. Programming is a skill best learned by doing and these assignments form an integral part of your experience in this course. These projects will be fun, challenging, illuminating, and rewarding. Your sincere efforts on the assignments will help you develop powerful skills and a deeper understanding of computational problem-solving.

Common questions about assignments

What programming environment and tools are used?

Programs are written in the C++ language and we use the Qt Creator IDE for editing, compiling, and debugging. Please visit the [Qt Installation Guide][qt] for install instructions.

What is the assignment schedule?

We have 7 assignments planned, about one each week, with a little breather during mid-quarter and end-quarter. See the course schedule for our tentative plans.

What is the expected assignment workload?

Depending on the week's topics, the accompanying assignment may consist of written problems, hands-on exercises with the tools, targeted coding tasks, and/or a larger complete program. Students self-report spending between 10 and 20 hours on each assignment.

What is the policy on late assignments?

Assignments will be due at 11:59pm Pacific Time. Assignments submitted by the due date earn a small on-time bonus. There may be a penalty-free grace period for late submission. Read our course late policy for the details.

What is the assignment collaboration policy?

The assignments are to be done individually and should represent independent, original work. We adhere to the Stanford and CS department Honor Code policies. Please review our Honor Code policy for specific examples of its application to our course.

How are assignments evaluated?

Programs will be graded on "functionality" (is the program's behavior correct?) and "style" (is the code well written and elegant?). We use a bucket grading scale to focus attention on the qualitative rather than quantitative feedback:

  • + Exceeds our expectations, is effectively "perfect". WOW! To receive this grade, a program often reflects additional work beyond the requirements or gets the job done in a particularly elegant way.

  • ✓+ Satisfies all the requirements for the assignment, showing solid functionality as well as good style. Nice job!

  • Meets the requirements for the assignment, with a few small problems or areas of improvement. Solid work.

  • ✓– Has problems serious enough to fall short of the requirements for the assignment. Needs improvement.

  • Has extremely serious deficiencies, does not demonstrate significant effort and understanding. Danger

  • 0 Not submitted.

How do we receive feedback from our grader?

A great feature of the CS106 courses is that your programs are graded interactively in a one-on-one session with your section leader so you get targeted feedback for individual improvement. Your section leader will explain in section how to schedule these sessions and go over the grading process in more detail.