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:
- ++ An absolutely fantastic submission that will only come along a few times during the quarter across the entire class. To ensure that this score is given only rarely, any grade of ++ must be approved by the instructors and head TA.
- + A submission that is "perfect" or exceeds our standard expectation for the assignment. To receive this grade, a program often reflects additional work beyond the requirements or gets the job done in a particularly elegant way.
- ✓+ A submission that satisfies all the requirements for the assignment, showing solid functionality as well as good style. It reflects a job well done.
- ✓ A submission that meets the requirements for the assignment, possibly with a few small problems.
- ✓– A submission that has problems serious enough to fall short of the requirements for the assignment.
- – A submission that has extremely serious problems, but nonetheless shows some effort and understanding.
- –– A submission that shows little effort and does not represent passing work.
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:
- Fix existing bugs
- Not introduce new bugs
- Include your own test cases that would have uncovered the bugs previously in your program
- 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.