Course Project Overview

The primary goal of the course is to teach essential skills for collecting and analyzing data across a wide range of topics. The goal of the semester-long course project is to give students the opportunity to apply new skills in the context of a real-world topic, from beginning to end.

Projects should be carried out in teams of 3 students, including at least one sophomore or junior. The project incorporates several intermediate milestones during the course of the semester. Each milestone will require groups to apply skills learned in the preceding individual homework assignments to the project.

Deliverables for each project milestone will include working code, as in any other CS project-based courses. However, deliverables will also include well-reasoned written explanations of the tasks completed. These explanations will be posted to a project blog, which will be reviewed by the teaching staff and other students in the class. Moreso than for traditional CS projects, the success of our projects will be judged by the effectiveness of communicating the results obtained. This is because coding is only the first step in data analysis. Instead, the coding is a means to an end: delivering better understanding of a question that can be answered by collected data. A key learning objective for the course, realized through the project, is to get better at summarizing and communicating the findings of your analysis.

Project Phases

Each phase includes several deliverables. In most phases, some code will be required. But in stages 2 and 3, data that has been collected is also due. In the first five phases, we require the group to write a blog post including a description of what was achieved, plus reflections on what was learned. Students are expected to read each others' blog posts in order to facilitate in-class discussion of what was learned in each project phase and to exchange ideas about different approaches available. The blog posts will also provide the foundation for the writeup in phase P5.

  1. Code (P1-P4)
  2. Data (P2-P3)
  3. Blog (P0-P4)
  4. Feedback and discussion phase