Communicating Information

We use several forms of communication in this class, primarily the course discussion platform Ed, but occasionally we’ll send an email via Canvas. We also occasionally announce things in class and/or on the lecture slides. You are responsible for monitoring all these communication methods to stay up-to-date on class items. We make every attempt to minimize homework modifications, etc. but sometimes it does occur.


Category Percentage
Labs 20%
Projects 20%
Discussion Section Attendance 5%
Midterm Exam I 15%
Midterm Exam II 15%
Final Exam 25%

Extra credit is available via labs and is capped at 110% of the category, and can increase the final score by at most at 2 points. We generally use a 10 point scale for grading in this course (A 90-100; B 80-89; C 70-79; D 60-79; F < 60), these ranges include - and +, in the event that the course ends up being very, very difficult and everyone scores badly (this rarely happens), then we may shift the thresholds lower (e.g., an 88 could be an A).

Labs (20% of Grade)

There are small programming labs associated with each lecture. These labs are designed to reinforce concepts learned from readings & lecture and also to prepare you for the projects. Labs are released after each lecture and are due the following Monday at midnight. You should start work on both labs prior to your discussion section (labs are designed to take students 1-3 hours each but you should budget adequate time for this because the material is unfamilar to you), since the discussion sections are designed as dedicated help time for the labs. Be sure to carefully read the README file associated with each lab and follow directions appropriately.

Each week the labs have a required portion and an extra credit portion. You are required to submit at least the required portion. We assume everyone may have to miss a few labs, therefore we will drop 3 labs with the lowest grades. This policy allows us to accommodate illness, etc. and extensions will not be issued for Incapacitation Forms.

Collaboration policy for labs: The labs are to be completed solo, however you are allowed to discuss strategy and concepts of labs with others in the class, but avoid discussing specific implementation techniques. Discussion sections are also dedicated time for help on labs, use that to your benefit. The code you write is to be your own. You may get help from others with syntax, parameter order for functions, etc. but not line by line help. You may get help in understanding what the required functionality is, but not how to implement that functionality.

Projects (20% of Grade)

There are five programming projects in this class. Each project builds on concepts and skills obtained from lecture, readings, and labs. Be sure to carefully read the README file associated with each project and follow directions appropriately.

Collaboration policy for projects: You may complete the projects solo or collaboratively in pairs. Each student must submit a solution to Gradescope. You can discuss concepts and strategies with other students and you can seek help from UTAs in discussion sections if time allows. You can switch partners for different projects, but you cannot switch during a project (i.e., don’t drop someone). You may choose your partner or we can help to match you with someone on a first-come-first-served pairing. Fill out the project pairing form if you’d like us to try to match you to a partner. If you work as a team, you must submit a text file that contains a reflection about the collaboration as part of your solution.

Discussion Sections (5% of Grade)

Discussion grades are based on participation/effort. You are required to attend discussion or fully complete all required lab material prior to the start of your discussion section. If you show up and work on the labs you will get credit for discussion. The labs need to be completed on Mondays @ 11:59pm. Labs are available several days early (right after lecture in the previous week) and may be fully completed (achieved full points) prior to the start of your discussion and submitted on Gradescope; in this case you don’t need to attend discussion (we will run scripts that automatically detect if you’ve turned something into Gradescope).

To accommodate various issues, such as illnesses, job interviews, etc. You will be granted 2 missed discussions, Incapacitation Forms will consume these until used up.

Midterm Exams (30%)

There are two in-class midterm exams, each worth 15% of your course grade. You are required to attend the exam in person on Thursday, February 15 and Thursday, March 21 during class time.

Final Exam (20% of grade)

There is a Final Exam for this course that will be in person on 9:00am - 12:00pm on Wednesday, May 1.

Policy for Late Labs and Projects

0-24 hours late: 10% penalty
24-48 hours late: 20% penalty
> 48 hours late: No Credit

Exceptions to this late policy are allowed only for Dean’s excuses and short term illnesses as indicated by submitting the Short-term Illness Notification Form.

Policy on Office Hours

Office hours are provided both in person and online at various times on most days of the week. Office hours with TAs will have both group Q&A and the opportunity for 1:1 help. The group Q&A are used to get conceptual questions answered quickly and efficiently in a group setting. To receive 1:1 help you need to wait till the conceptual questions are answered and the TAs will help students in the order that they arrive.

We expect you to put in a good faith effort toward solving the labs/projects before seeking help at office hours. You will need to tell the TAs the steps you’ve taken toward solving the problem. Failure to provide this information is grounds for a TA to refuse to help you.


Policy on Regrading

All regrading requests (labs, projects, exams) must be submitted within one week of the graded item being returned/available using the provided form on the Resources page. Requests after one week will be denied.

Policy on Late Add of Course

There are no special accommodations for late enrollment in the course. Missed assignments (labs, discussions) will receive a 0 and consume any allotted slots for missed items.

Policy for Academic Misconduct

We do not tolerate any academic dishonesty. This includes cheating on the labs, projects, quizzes and exams. We refer all suspected cases of academic misconduct to the Duke Office of Student Conduct. This policy applies to all work except those items for which collaboration is explicitly allowed, and then the exception is only within the small collaborator team not across teams.

What constitutes Academic Misconduct

These are examples and do not represent an exhaustive list of what is considered academic misconduct.

COVID-19 Precautions

We continue to deal with the ongoing pandemic. You are expected to follow the most recent guidance from Duke regarding face coverings, social distancing, etc. Please contact the professor or teaching associate if you have any concerns or questions. Duke has several resources for students, including wellness and mental health.