Computational Data Science capstone class

In just over a week the CDS capstone class starts and I’m not nearly ready. It’s been a while since I taught a class (Spring 2021 in the pandemic) and I’m a little rusty. But I remembered how useful it is to do syllabus planning on here so I thought I’d give it a try.

[Brief aside to explain why I find this useful: Making little notes to myself can work great, and I can use shorthand for all the things I want to get done. Doing it here forces me to spell everything out, and what I’ve found is that it gets me thinking more deeply about everything. I guess it’s the prospect of you, dear reader, paying attention and not wanting to embarrass myself in front of you, but it really works to get my thoughts more concrete. Plus there’s the added bonus of getting great feedback from you. Finally, when I read these things in future years it helps me to have all those details spelled out, as my cryptic notes tend not to make any sense years later.]

Class context

Our CDS major is pretty new, with only a few graduates so far. This will be the second time this class is taught, but I didn’t teach it last time. This class is typically for seniors in their last semester. It finishes up the major and it meets a couple important general education requirements (oral intensive class and independent learning class). The main goal of the class is to have the students complete a major project using a computational lens on their chosen area of focus. They are required to take at least three courses in that area of focus, with at least one at the intermediate level.

Here are details about the program and the major. The required classes include a python programming class, my Intro to CDS courses (which is a lot more python including web scraping and api managment), a couple stats courses, and a few courses borrowed from the Math (discrete math) and Business Analytics majors.


Last year the instructor treated each day of the week very differently and I really like the general structure:

  • Mondays: hear from students about a particular data tool
  • Wednesdays: specific support for their projects
  • Fridays: Sample presentations on different data sets

Mondays (tool sharing)

There’s less than 10 students in the class (another reason I’m teaching it) so they’ll all be able to present at least one tool on Mondays. My hope is that we don’t get any repeats and we all develop a stronger tool set. One big question about those days is whether I should try to get them all to be in python, but I’m not sure how much I care about that. I’ll likely do the first day (8 days from now!) so I’ll need to think about what’s a good model.

Could more than one student go in a week? Should they get the whole class period? That’s a lot of pressure but they only have to do it roughly once. Maybe I could model the first few weeks before we really get it going.

I think it should be ~15 minutes of explaining what problems the tool helps with, ~15 minutes about the logistics of using it, ~15 minutes showing it off, and ~15 minutes brainstorming how people might make use of it.

Wednesdays (student project support)

These are the days where I’ll scaffold the work they’ll need to do to really get their projects going. Rather than saying “hey your big project is due at the end of the term, good luck!” I want to make sure that there are near-weekly benchmarks for them to achieve. We’ll not only have them due on those Wednesdays but we’ll make sure that those class times are filled with reflective activities.

My biggest challenge is getting them to be resources for each other, especially since likely no two students will have the same focus area.

Early in the semester we’ll spend time refining what the projects are. The idea of a computational lens on their focus area really needs to be tightly defined so that I’m not constantly making them change direction throughout the term.

Mid-semester will be about helping each other brainstorm deeper ideas, figuring out which things are important and which things are just showing off some tool.

Late semester will be all about refining the final product, namely a video presentation of their project.

Fridays (Data storytelling)

Each week I’ll give them a new data set on Monday. For each they have to come up with a 5-minute live presentation on Friday telling a story with that data. While this takes them away from their project (I likely won’t give them data they’re already working with) it helps them practice the work of computational storytelling and they get to see just how many diverse stories can be told.

One of my colleagues has a ton of useful data sets he’s letting me borrow. A lot of them have to do with the criminal justice system. I also plan to try to be flexible and use timely data that’s in the news. One example that I’m still thinking about is the list of school closings on the most recent snow day we had (last week). What would you do with that?

What else?

I really like that structure but there are some parts that need to be refined. For example, what exactly determines the grade in the class? I’m of course partial to a Standards-Based Grading approach, so let me flesh out what that would look like:

  • A standard (or several) on how to share a tool
  • A standard (or several) on how to learn about a new tool
  • A standard (or several) on how to tell a story with a data set
  • A standard for all the various parts of the scaffolding for the main projects

That last one, especially, is crap. If the project is a bunch of points, then the SBG approach means it doesn’t matter what they do during the scaffolding. I’ll need to think more about that.

Another approach is the contract- or specifications-grading where I lay out the expectations for A-level, B-level, etc work and they work at the pace/quality/etc they want to achieve. That works really well for a big project-based class so I’ll have to give that some thought over the next week as well.

The key, for me, with all of these types of decisions is finding a system that provides accountability and motivation for the students to learn as much as they can. That’s what I’ll be focusing on this week.

Your thoughts

I’d love to hear what you think. Here are some starters for you:

  1. Why has it been so long since you taught? Surely you haven’t moved to the dark side.
  2. Why didn’t you teach it last time? Did they know how much you’d stink at it?
  3. Wait, your general education requirements are embedded in majors courses?
  4. Why does the small class size explain why you’re teaching it?
  5. Of course Mondays should be all python all the time, why would you even consider other things?
  6. Here’s my definition of “computational lens on a focus area” . . .
  7. I’m going to be in this class. I’m most excited about . . .
  8. I’m supposed to be in this class. Now that I’ve read this, how do I drop?
  9. I think it’s dumb to try to get them to help each other out on Wednesdays. Instead you should . . .
  10. Here’s what I’d do with the school closing data . . .
  11. You seriously haven’t decided which grading scheme to use yet? Loser.
  12. Your plan for Mondays adds up to 60 minutes. Surely you actually only teach 50 minute classes!

About Andy Rundquist

Professor of physics at Hamline University in St. Paul, MN
This entry was posted in computational data science, sbar, sbg, syllabus creation, teaching. Bookmark the permalink.

2 Responses to Computational Data Science capstone class

  1. bretbenesh says:

    I think it is great you still get to teach!

  2. Definitely NOT a CDS student says:

    Are you still the provost of Hamline?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s