Note: The syllabus is subject to change
There will be several routes of communication for this course:
CS61A AND CS61B AND CS70 is the recommended background.
Course programming assignments will be in Python. We do not assume that students have previous experience with the language, but we do expect you to learn the basics very rapidly. Project 0 is designed to teach you the basics of Python, but if you want to get a head start here is a good tutorial: ACM Python Tutorial
Extensions for projects and homeworks are generally granted only if
This class includes six programming projects, eleven electronic homework assignments, and four written homework assignments (each with a corresponding self-grade assignment).
Written homeworks cannot be turned in late, you have to use your homework drops. Projects lose 20% of their total point value per day turned in late. However, projects also have slip days which can be used to delay the onset of the late policy. See the Homework Drop Policy.
Project 0 is to be completed alone. Projects 1 through 5 can be completed alone or in teams of two. If done in a team of two, the person who submits needs to tag the other team member on Gradescope. However, it is important that the submission reflects the understanding of both team members. Homework is to be submitted individually, but may be discussed in groups. If discussed in a group, acknowledge your collaborators in the submission per standard academic practice.
Programming projects must be turned in electronically by the listed due date and time. You will have a total of 5 slip days to be used across ALL projects to extend a deadline. Note that slip days are counted by the granularity of days, rounded up to the nearest day. For example, if you have yet to use your two slip days: for a project due at 4pm on Friday, any submission from Friday 4pm to Saturday 4pm will use up one slip day, any submission from Saturday 4pm to Sunday 4pm will use up two slip days, and any submissions after Sunday 4pm will begin being penalized by the late policy. Slip days will be applied to your grades at the end of the semester in a manner which maximizes your project grades. You may only use maximum two slip-days per project
Projects will by default be graded automatically for correctness, though we will review projects individually as necessary to ensure that they receive the credit they deserve. Projects can be submitted as often as you like; we strongly encourage you to keep working until you get a full score.
Electronic component of HW: Electronic homework (hosted on Gradescope) is meant to reinforce and give practice with concepts covered in class. They will be automatically graded for correctness, and you can submit as many times as you like up to the deadline; again we encourage you to work until you have fully solved the homework. Electronic homeworks will generally be released Tuesday nights, and due the following Wednesday midnight.
Written component of HW: Written homework (submitted into Gradescope) is meant to make you think beyond strict repetition of what is covered in class and is used to reinforce conceptual material that you will see on exams. In addition, the following homework will contain a retrospective self-grade in which you compare your solution to the staff solution. As there are only four written homeworks in total, written homework release dates do not follow a regular schedule. They will be announced through Piazza.
Note: Homeworks have no slip days.
Written homework will be self-graded in addition to being partially graded by CS 188 TAs. After the written homework deadline ends, HW solutions will be posted online. You will then be expected to read them and enter your own scores and comments for every part of every problem in the homework on a simple coarse scale:
0 = Didn’t attempt or very very wrong
2 = Got started and made some progress, but went off in the wrong direction or with no clear direction
5 = Right direction and got half-way there
8 = Mostly right but a minor thing missing or wrong
10 = 100% correct
You must also justify every self-grade score with a comment. If you are really confused about how to grade a particular problem, you should post on Piazza. This is not supposed to be a stressful process.
Your self-grades will be due the Tuesday following the written homework deadline at midnight. If you do not submit a self-grade, you will receive a zero on the corresponding written homework. Written homework grades will be calculated by taking your self-grades, and adjusting them by comparing to TA-graded sub-questions.
You will each be allowed to drop your lowest written homework and your two lowest electronic homeworks. These may be distributed throughout the semester, and do not have to all be from the same homework. (When calculating final grades, this will happen automatically, we’ll just use your highest scoring submissions.)
Note that this policy is also meant to deal with cases like internet issues while submitting, forgetting about the deadline, emergency situations, joining the class late, etc.
Submissions should acknowledge all collaborators and sources consulted. All code and written responses should be original. We trust you all to submit your own work, but to protect the integrity of the course from anyone who doesn’t want to play by the rules, we will actively be checking for code plagiarism (both from current classmates and previous semesters). We are not lenient about cheating; we sympathize with Kris Pister’s policy.
The midterm exam will be held from 8pm to 10pm on Thursday, October 17. You are permitted to bring one double-sided, US Letter-sized, handwritten sheet of notes.
The final exam will be held from 8am to 11am on Tuesday, December 17. You are permitted to bring two double-sided, US Letter-sized, handwritten sheet of notes.
Overall grades will be determined from:
Grades are on the following fixed scale: (Refer to Notations for Intervals if you are not familiar with the notations below.)
The instructors may adjust grades upward based on class participation, extra credit, etc. The grade of A+ will be awarded at the instructors’ discretion based on exceptional performance.
Regrade Policy: If you believe an error has been made in the grading of one of your exams or assignments, you may resubmit it for a regrade. Regrades for cases where we misapplied a rubric in an individual case are much more likely to be successful than regrades that argue about relative point values within the rubric, as the rubric is applied to the entire class. Because we will examine your entire submission in detail, your grade can go up or down as a result of a regrade request.