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, so the assignments form an integral part of your experience in the course. These projects will be fun, challenging, illuminating, and rewarding. We hope that you all gain a well-deserved sense of pride upon completing the assignments, and we expect that your efforts will help you build powerful skills and a deeper understanding of computer science.

Common questions about assignments

What programming environment and tools are used?

We will be using Qt Creator, which is an IDE for writing and building C++ programs. Please visit the Qt Installation Guide for further instructions on how to download and install Qt Creator.

What is the assignment schedule?

Our schedule plans for roughly one assignment each week, for a total of 6 assignments throughout the quarter. The tentatively scheduled dates for when assignments will be released and due can be found on the course schedule.

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 8 and 15 hours on each assignment.

What is the policy on late assignments?

Students are granted a penalty-free grace period for submission of 24 hours on each assignment, depending on the specific assignment. 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 handout to see specific examples of its application to coursework in this course.

How can we get help on our assignments?

The instructors and head TA will hold weekly office hours on Zoom. The course helpers and section leaders also staff regular LaIR helper hours over Zoom. Our online forum allows public Q&A and discussion with your peers, and we encourage all students to participate on the forum! For more detailed information about how to get help on assignments, check out the course communication guide.

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:

How do we receive feedback from our grader?

Assignment grades and qualitative commented feedback from your section leader will be made available via Paperless.

What should I do if I feel like I didn't meet the learning goals of a particular assignment?

If you feel like you would benefit from another opportunity to revisit and resubmit and assignment, we will provide students the opportunity to submit revised assignment submissions, under a certain set of constraints.

Except for the final assignment, you will have the opportunity to submit homework revisions once you have received feedback from your section leader. By submitting a revised assignment, you can earn up to one bucket grade above your original grade, capped at a ✓. Revised assignments must:

  1. Fix existing bugs
  2. Not introduce new bugs
  3. Include your own test cases that would have uncovered the bugs previously in your program
  4. Be submitted within three days after the following assignment’s due date. (For example, if Assignment 2 is due on 7/10, revisions for Assignment 1 will be due on 7/13.)

A section leader will grade your revised assignment, but if you do not meet the above requirements, a higher grade is not necessarily guaranteed.