Syllabus

Class:

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 communication will be via Slack. You should have received an email with an invitation link to join the course Slack. Some rules for using Slack:

  • Use an identifiable username and add your picture to your profile.
  • Only professor and TA are allowed to use the @channel and @here mentions.
  • While this is an informal communication channel, all rules of academic discourse apply.
  • Ask and answer questions on the appropriate channel.
  • Create channels as needed, especially one for each team.

Guidelines for posting questions:

  • First search existing questions (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 Slack will generate some good suggestions, e.g. to tag Mine, use @mine.

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 Office of Student Conduct.

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:

Teams:

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

Homework:

Beyond the in class activities, you will be assigned larger data analysis tasks throughout the semester. Some of these assignments will be completed individually, others in teams.

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

Exams:

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 3-6 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.

Grading:

Your final grade will be comprised of the following:

Participation 5%
Application exercises 5%
Peer evaluation 5%
Homework 30%
Midterms 35% (higher 20%, lower 15%)
Final project 20%

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 typed up, printed, and submitted in person. 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.

Professionalism

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