We have 5 programming assignments and 14 labs in this class. Starting with Week 1 of the semester, there is one lab assigned every week (no lab assigned for Week 15 and Lab 14 will not be collected and graded). You are expected to finish the labs early so you can finish the corresponding programming assignment on time (or even early).
Lab N is due by the end of Monday night of the week N+1 of the semester(unless that Monday is a university holiday or a midterm exam day; and in that case, it's due on the next day).
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 the lab. Although if it looks like you didn't put in much effort, your program crashes or cannot be compiled, 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 or send e-mail to the instructor for help.
The grader can only grade your labs on either a standard 32-bit Ubuntu 16.04 system or on viterbi-scf1.usc.edu. Please make sure that your code can compile and run on one of these systems.
Each lab is worth 5 points. A lab is due at 11:45pm on a Monday (unless that Monday is a university holiday, and in that case, it's due on the next day). There is a 14 minutes and 59 seconds grace period. So, if you submit before midnight, it's considered on time. 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% for the first 3 days. Afterwards, starting at the beginning of day 4 at midnight, you will lose 1% every 5 minutes (and it would take 350 minutes to lose the remaining 70%).
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, and in that case, it's due on the next day and shown in bold letters).