Class time is 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.

Diversity & Inclusiveness:

It is my intent that students from all diverse backgrounds and perspectives be well-served by this course, that students' learning needs be addressed both in and out of class, and that the diversity that the students bring to this class be viewed as a resource, strength and benefit. It is my intent to present materials and activities that are respectful of diversity: gender identity, sexuality, disability, age, socioeconomic status, ethnicity, race, nationality, religion, and culture. Your suggestions are encouraged and appreciated. Please let me know ways to improve the effectiveness of the course for you personally, or for other students or student groups.

Furthermore, I would like to create a learning environment for my students that supports a diversity of thoughts, perspectives and experiences, and honors your identities (including gender identity, sexuality, disability, age, socioeconomic status, ethnicity, race, nationality, religion, and culture.) To help accomplish this:

  • If you have a name and/or set of pronouns that differ from those that appear in your official Duke records, please let me know!
  • If you feel like your performance in the class is being impacted by your experiences outside of class, please don't hesitate to come and talk with me. I want to be a resource for you. If you prefer to speak with someone outside of the course, your academic dean is an excellent resource.
  • I (like many people) am still in the process of learning about diverse perspectives and identities. If something was said in class (by anyone) that made you feel uncomfortable, please talk to me about it.

How to get help:

All course discussion will be via GitHub on the Sta199-S18/community repository. Note that this is a public discussion forum, which means others outside of the course can stumble upon it and help you as well.

Guidelines for posting questions:

  • First search existing issues (open or closed) for answers. If the question has already been answered, you're done! If there is an open issue, feel free to contribute to it. Or feel free to open a closed issue if you believe the answer is not satisfactory.
  • Give your issue an informative title.
    • Good: "Error: could not find function "ggplot""
    • Bad: "R giving errors", "help me!", “aaaarrrrrgh!” Note that you can edit an issue’s title after it's been posted.
  • Format your questions nicely using markdown and code formatting. Preview your issue prior to posting.
  • Where appropriate, provide links to specific files, or even lines within them, in the body of your issue. This will help your helper understand your question. Note that only the teaching team will have access to private repos.
  • (Optional) Tag someone or some group of people. Start by typing the @ symbol and GitHub will generate some good suggestions. You can also type or paste in the GitHub username yourself. Examples: to tag Mine, use @mine-cetinkaya-rundel; to tag the entire teaching team tag @Sta199-S18/owners, to tag a class/team mate use their GitHub username.
  • Hit "Submit new issue" when you're ready to post.

Often it's a lot more pleasant an experience to get your questions answered in person. Make use of the teaching team's office hours, we're here to help!

When the teaching team has announcements for you we will send an email to your Duke email address. Please make sure to check your email daily.

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 nonacademic endeavors, and to protect and promote a culture of integrity.

Remember the Duke Community Standard that you have agreed to abide by:

To uphold the Duke Community Standard:

  • I will not lie, cheat, or steal in my academic endeavors;
  • I will conduct myself honorably in all my endeavors; and
  • I will act if the Standard is compromised.

Cheating on exams or plagiarism on homework assignments, 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. Additionally, there may be penalties to your final class grade along with being reported to the Undergraduate Conduct Board.

Please review the Academic Dishonesty policies here.

  • 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.

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 something the course's policy is that you may make use of any online resources (e.g. StackOverflow) but you must explicitly cite where you obtained any code you directly use (or use as inspiration). Any recycled code that is discovered and is not explicitly cited will be treated as plagiarism. On individual assignments you may not directly share code with another student in this class, and on team assignments you may not directly share code with another team in this class. Except for the take home exams, 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. On the take home exams all communication with classmates is explicitly forbidden.

Course components:

Class sessions:

In case you miss class or would like to review the material covered in class, you can view the recordings here. Note that you will need to log in with your Net ID.


To construct functional and diverse teams, you will be asked to complete a short survey to gauge your previous exposure to programming topics. After completing the survey, you will be assigned to teams of 3-4 students - these teams will stay consistent throughout the semester (barring extraordinary circumstances). You will work in these teams during class, on application exercises, on labs, and on the project.

Application exercises:

These will usually start in class and can be assigned to be finished by the next class meeting. They will generally be shorter than your homework assignments, and they will be completed in teams.


Beyond the in class activities, you will be assigned larger data analysis tasks throughout the semester. These assignments will be completed individually.

Homework with the lowest score for each student will be dropped.


The objective of the labs is to give you hands on experience with data analysis using modern statistical software. The labs will also provide you with tools that you will need to complete the project successfully.

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 a few assignments are 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 lab.

Lab with the lowest score for each student will be dropped.


There will be a two take home midterms that you are expected to complete individually. Each exam will ask you to complete a number of small programming and or analysis tasks related to the material presented in the class. The exams will be written to take between 2-5 hours. The exact structure and content of the exams will be discussed in more detail before they are assigned.

Final Project:

You will be responsible for the completion of an open ended final project for this course, the goal of which is to tackle an "interesting" problem using the tools and techniques covered in this class. Additional details on the project will be provided as the course progresses.

Each team's work will also be shared with and evaluated by at least one other team at an earlier stage in order to provide feedback in the form of code review.

Interactive tutorials:

These are self-paced interactive tutorials that will be assigned intermittently throughout the semester. They will be graded on a check/no check basis (though you'll receive feedback on the way as you complete them) and they will count towards extra credit.


Your final grade will be comprised of the following:

Participation & application exercises 10%
Peer evaluation 5%
Homework 20%
Labs 15%
Midterm 1 17.5%
Midterm 2 17.5%
Final project 15%

Class attendance in lecture and lab is a firm expectation; frequent absences or tardiness will be considered a legitimate cause for grade reduction.

Cumulative numerical averages of 90 - 100 are guaranteed at least an A-, 80 - 89 at least a B-, and 70 - 79 at least a C-, however the exact ranges for letter grades will be determined after the final exam. The more evidence there is that the class has mastered the material, the more generous the curve will be.

Excused Absences:

Students who miss a class 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. Note that these excused absences do not excuse you from assigned homework, it is your responsibility to make alternative arrangements to turn in any assignments in a timely fashion.

If you are faced with a personal or family emergency or a long-range or chronic health condition that interferes with your ability to attend or complete classes, you should contact your academic dean’s office. See more information on policies surrounding these conditions at https://trinity.duke.edu/undergraduate/academic-policies/personal-emergencies. Your academic dean can also provide more information.

Late / missed work

  • Late work policy for homework assignments:

    • late, but within 24 hours of due date/time: -20%
    • any later: no credit
  • Late work will not be accepted for take home midterms and the final project.

  • Exam dates cannot be changed and no make-up exams will be given. If a midterm exam must be missed, absence must be officially excused in advance of the due date, in which case the missing exam score will be imputed using the final exam score. This policy only applies to the midterms.

  • You must complete the final project and be in class to present it in order to pass this course.

Regrade requests

Regrade requests must be made within three days of when the assignment is returned, and must be submitted via this form. 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 project presentations.


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