Class meetings

The classes are designed to be as interactive as possible. My role as instructor is to introduce you new tools and techniques, but it is up to you to take them and make use of them. Programming is a skill that is best learned by doing, so as much as possible you will be working on a variety of tasks and activities throughout each class. Please bring your laptop to class every day.


To construct functional and diverse teams, you will be asked to complete a short survey and to gauge your previous exposure to topics relevant to the course. After completing the survey, you will be assigned to teams of 3-5 students, and work in these teams during class and on the projects. The homework assignments and the take home final exam will be completed individually.


Beyond the in class activities and homework assignments, you will be assigned larger computational tasks twice throughout the semester. These projects will be completed collaboratively by your team, and present your results to the class. Additional details on the project will be provided as the course progresses. All team members are expected to contribute equally to the completion of each assignment and you will be asked to evaluate your team members after each assignment is due.

Students are expected to make use of their team’s git repository on the course’s github page as their central collaborative platform. Commits to this repository will be used as a metric of each team member’s relative contribution for each homework.


There will be a single take home final exam that you are expected to complete individually. It will ask you to complete a number of small computational tasks that cover the breadth of the material presented in the class.

Email & Piazza

I will regularly send announcements by email, please make sure to check your email daily.

Any non-personal content-related questions should be posted on Piazza. Before posting a new question please make sure to check if your question has already been answered, and answer others’ questions.

Academic integrity

Duke University is a community dedicated to scholarship, leadership, and service and to the principles of honesty, fairness, respect, and accountability. Citizens of this community commit to reflect upon and uphold these principles in all academic and non-academic endeavors, and to protect and promote a culture of integrity. Cheating on exams and quizzes, plagiarism on homework assignments and projects, lying about an illness or absence and other forms of academic dishonesty are a breach of trust with classmates and faculty, violate the Duke Community Standard, and will not be tolerated. Such incidences will result in a 0 grade for all parties involved as well as being reported to the Office of Student Conduct. Additionally, there may be penalties to your final class grade. Please review the Duke’s Academic Dishonesty policies.

A note on sharing / reusing code - I am well aware that a huge volume of code is available on the web to solve any number of problems. Unless I explicitly tell you not to use these resource the course’s policy is that you may make use of these resources (e.g. StackOverflow) but you must explicitly cite where the code was obtained from in your comments. Any recycled coded that is discovered and is not explicitly cited will be treated as plagiarism. The one exception to this rule is that you may not directly share code with another team in this class, you are welcome to discuss the problems together and ask for advice, but you may not send or make use of code from another team.

Excused absences

Students who miss graded work due to a scheduled varsity trip, religious holiday or short-term illness should fill out an online NOVAP, RHoliday or short-term illness form respectively. If you cannot complete an assignment on the due date due to a short-term illness, you have until noon the following day to complete it at no penalty. Then the regular late work policy will kick in. Those with a personal emergency or bereavement should seek a Dean’s Excuse; check with your academic dean for details.


  • Please refrain from texting or using your computer for anything other than coursework during class.

  • Late work policy:
    • late, but same day: -10\%
    • late, next day: -20\%
    • 2 days or later: no credit
  • You must be in class on a day when you’re scheduled to present, there are no make ups for presentations.

  • Regrade requests must be made within 3 days of when the assignment is returned, and must be submitted in writing. These will be honored if points were tallied incorrectly, or if you feel your answer is correct but it was marked wrong. No regrade will be made to alter the number of points deducted for a mistake. There will be no grade changes after the final exam.

  • Only work that is clearly assigned as team work can be completed collaboratively.

  • Use of disallowed materials during the take home exam will not be tolerated. This will result in a 0 on the exam for all students involved, possible failure of the course, and will be reported to the Office of Student Conduct. If you have any questions about whether something is or is not allowed, ask me beforehand.