From Project-Based Courses

Advice for Project-Based Courses

This post will be part of a series on teaching a project-based “Introduction to Data Science” course. It is also part of my collection of resources and materials on teaching this type of course, which can be found on its own section of the blog here.

Here I will focus on summarizing some of the advice I received when designing the course and should be generally applicable to ANY project-based course, not just an “Intro” course.

By far, the biggest, most important piece of planning/advice is:

Find clients who understand (or work to understand) working with students, and are willing to actually commit time to the project.

Based on advice/conversations and experience, this doesn’t need to be enormous, approximately one (1) hour per week of meeting/interacting through a CONSISTENT liaison with the students, and reasonable responses otherwise (to emails, phone calls etc). Remember when establishing this expectation that the client is receiving many times their investment in work-hours. In a 3-person group with 3-5 hours/week per student, 1-hr employee (and students) ==> 6 – 12 additional hours of (cheap/free) work. Why is this SO important?

  • For Project Success:
    1. Makes sure client will fulfill their end of agreements (data, etc) by personalizing it and identifying the responsible party at the client
    2. Makes sure the students are actually working on things the client wants to see happen
    3. Makes sure students feel obligated to keep working on project throughout semester (avoids last-minute crams)
  • For Learning Success:
    1. It gets students to practice talking about their work/data with a non-data science expert
    2. Provides regular check-ins and reporting so that project can’t derail (similar to above)
    3. Helps students stay out of the “weeds” of project improvement or code writing by reminding them regularly of the larger picture

Digging a little deeper, some value ideas came from a conversation with Joseph Mertz from Carnegie Mellon University (CMU), who has run or participated in CMU’s team-based and capstone project courses  for nearly two decades. He suggested that getting the commitment from clients can come from several means. Possibly this is a charge-per-project, but it could also be by “formalizing” the whole project selection process. Examples include requiring a kick-off event and a conclusion celebration where other students and faculty are invited. One truly interesting tidbit he offered was the suggestion to have the final project presentations be done by the client and focusing on what value they received from the project. This can really increase the long-term impact for the students and your colleagues. It also might increase the long-term satisfaction from the client.


This is getting long, so here’s a quick list of other advice (to be expanded into other posts later perhaps):

  • Start looking for projects early. Way earlier than you think (perhaps a full semester or more!)
  • Be sure to manage clearly the expectations the clients have for their projects (especially compared to your expectations). This also relates back to the idea above of having clients that understand what it means to work with a student group.
  • Consider carefully your learning objectives, and how that relates to projects/clients.
    • Do you want students to get the full experience of project scoping/design?
    • Do you want clients to have a good idea or specific question to be answered (simplifying the above)
    • Should incoming data be clean already (more algorithm/presentation design), or raw (the whole process), or even missing (generation/collection of data)
  • When designing YOUR deadlines and expectations, remember that sometimes clients are hard to work with.
    • Are you (the student’s professor) be the ‘real’ client — Hard deadlines, clear project expectations…
    • Is the client/contact the ‘real’ client — big flexibility on specific deliverables, deadlines, etc (with-in reason)