We have 5 programming assignments and at most 14 labs in this class (13 planned so far). Starting with Week 1 of the semester, there is one lab assigned every week (no lab assigned for Week 15). You are expected to finish the labs early so you can finish the corresponding programming assignment on time.
[BC: updated 1/28/2020] On a Friday, if you are not done with the lab for that week, you may want to come to the discussion section to get help from the course producers. Lab is due by the end of Monday night of the following week (unless that Monday is a university holiday or the day of the midterm exam, and in that case, it's due on the next day). The discussion sections (labs) are fairly informal. There's nothing to "turn in" during lab time, the course producers will not "lecture" and they will just be standing around waiting for students to ask them for help or answer questions about the lab or the related programming assignment. Please do not monopolize the time of a course producer. If you have spent 15 minutes with a course producer and there are other students waiting in line, the course produce will have to go help another student and move you to the back of the line.
The purpose of the labs is to help you get started with your programming assignments. Doing the labs is for your own benefits. Therefore, if you make a reasonable attempt to do a lab correctly, you should be getting full credit for it. Although if it looks like you didn't put in much effort, your program crashes, or if you did not submit a required file, the grader will have to deduct points.
Access to lab assignments is restricted. These specs are private and you do not permissions to post/display these specs and your work based on these specs in a public place.
The labs will be graded. Although the grader will not check for the correctness of your code. The grader will simply scan your code to see if it "looks right". It is not the job of the grader to fix your code or to debug your code in case your code doesn't work correctly. If your code doesn't work properly, it is your responsibility to seek help by going to the helpdesk hours of the graders/CPs or making appointments with the them if you are not available during their helpdesk hours. You are always welcomem to come to the instructor's office hours for help.
Each lab is worth 5 points. A lab is due at 11:45pm on a Friday (with a 15 minutes grace period). The late policy for labs is quite different from the late policy for programming assignments. For a lab assignment, if you are late, you lose 10% per day.
We will not be giving out "solutions" to lab assignments. If your code is not working, you are expected to come to office hours and helpdesk hours to seek help, although none of the teaching staff will be permitted to write code for you, debug for you, or fix your code. If you are not a strong programmer or you are not good at debugging, you need to be prepared to spend a lot of time doing the labs (and the programming assignments). The key to success is to start as early as possible. If you are stuck, come to us for help (and keep in mind that we cannot write code for you, debug for you, or fix your code). We can sit down with you and run the debugger together. If you only come to the teaching staff for help around the time the labs (or programming assignments) are due, it would be too late.
Below is the tentative schedule for the labs. Labs are due by Monday night of the week after the lab is assigned (unless that Monday is a university holiday or the day of the midterm exam, and in that case, it's due on the next day and shown in bold letters).