Practical Computer Science – Teaching UW-Madison’s Computer Sciences Capstone

Computer Sciences Capstone

This fall, I took a break from blogging to focus on what turned out to be one of the most fulfilling and challenging things I’ve ever done. I taught a 600-level Computer Sciences course at the University of Wisconsin-Madison: the Computer Sciences Capstone.

CS638: Computer Sciences Capstone

UW-Madison has a world-class Computer Sciences program. It is now the largest major at UW-Madison with over 1800 students, representing a 528% growth rate over the last six years. I have an undergraduate degree from UW-Madison and it’s been the backbone of a career that I’ve enjoyed very much.

It’s always been difficult to give students real-world experiences inside of an academic setting. Most university projects are completed on teams of 1-2 students, students have no direct access to customers, and they don’t have access to experienced professionals outside of their Professors and Teaching Assistants. These and other gaps are what we’re aiming to close with UW-Madison’s Computer Sciences Capstone.

Most university projects are completed on teams of 1-2 students, students have no direct access to customers, and they don’t have access to experienced professionals outside of their Professors and Teaching Assistants. These and other gaps are what we’re aiming to close with UW-Madison’s Computer Sciences Capstone.

The Capstone course gives students a chance to apply what they’ve learned throughout their college careers. We partner with industry leaders who provide mentorship and a project for the students to work on. Students use real-world agile techniques on teams of four to complete their projects in one semester. They have the opportunity to take the course as Seniors.

Fall 2020 was our pilot course with 24 students, six teams, and three participating companies, American Family Insurance, Capital One, and Epic. I could not have been more proud of what the students built this semester.

CS Capstone Course Content

My main goal for the class was to give students as many practical, real-world experiences as I could within an academic setting. I focused on teaching the students how to collaborate in an agile environment and on exposing them to topics that I knew their other classes hadn’t covered (like DevOps). The class itself is structured around the project and we go from project discovery to project completion in one semester. I weave in some cutting-edge topics that most businesses haven’t gotten around to doing right (e.g. self-selection, Design Thinking, etc) and many tried-and-true topics (e.g. scrum, estimation) that the students will likely encounter throughout their careers. We had several guest speakers this semester on everything from clean coding to business agility, all of whom really enhanced the learning experience.

Main Topics This Semester

The main topics I covered this semester were:

  • Agile Software Development – An overview of what “agile” is and which frameworks and principles fall under its umbrella.
  • Self-Selection – This is how students chose what they worked on and who they worked with.
  • Product Discovery – Topics such as Design Thinking, Lean Start-up, and Google Design Sprints. The students ran their own Google Design Sprint and had a few chances to practice prototyping inside and outside of lectures.
  • Agile Practices – User Stories, Scrum, Kanban, Relative Estimation, Pair Programming, and many, many more topics
  • Guest Speakers – Clean Coding, DevOps, Business Agility, Agile in the “Real World”
  • Presentation Skills – Students did a mid-semester and final demo for faculty and local business leaders.

How were they able to finish a project in just one semester? Each team had a set of three mentors from either American Family Insurance, Epic, or Capital One who guided the teams and helped keep them on track. It was tight, but we learned a lot and got a lot done!

Results

The students did an amazing job this semester! They had a very short time to learn topics, determine their target audiences, develop and test product hypotheses, and then iteratively build something meaningful for their company partners. And deliver they did! At the end of the semester, we had:

  • Two COVID-19 dashboards that showed real data to help college students make informed decisions
  • An API written to help companies optimize their odometer readings
  • An app filled with everything you’d need to interact with your car insurance company
  • A beautiful website aimed at helping young people better manage their finances
  • One cow-themed video game that helped high school students learn about money
COVID-19 Dashboard for WI
Computer Sciences Capstone Project
Insurance App Demo
Cash Cows Video Game, Complete with Several Amoosing Cow Puns

What’s Next?

Fall 2020 was a pilot and it went very well. We’re taking Spring 2021 off to prep for the next class in Fall 2021. This spring, we’re taking applications from companies who would like to sponsor projects and partner with future classes.

How Can You Get Involved?

Reach out to me if you’d like to do any of the following:

  • Sponsor/Mentor a Project Team
  • Guest Lecture or Appear on a Business Panel
  • Discuss Content
  • Serve as a Scrum Master Mentor

I’ll be writing more about the class soon. For now, let me just say that I’m truly looking forward to next Fall’s class!