Note: this site is still up to serve as a reference for people who took the course in Fall of '19. If you're currently enrolled, please head to the site for the current semester.

Stay in Touch

Always feel free to drop me an email at I like to hear what you're up to, and I'm usually happy to give coding advice if you're working on an interesting programming project in the future. If you're interested in ever being a Shelf mentor, getting a certificate in Data Science, or helping the City of Madison by analyzing their data, fill this form so I can keep you updated.

Data Science Major

I'm really excited about this new major! Great option if you like coding and stats (would also make a good double major). Check out the tentative requirements. There might be a certificate at some point too.

CS 320: Data Programming II

This is the follow-on course to CS 301. I'll teach it in spring, when it will be offered for the first time. This is the next logical course to take if you want to continue with Python and Data Science. Check it out. Syllabus isn't up yet, but some quick details:

CS 638: Data Science in the City of Madison

Only experience required is CS 301. I'll probably teach it a again next fall. Let me know if you're interested. Check it out.

Shelf Mentor

We'll probably hire more near end of spring (pays $13/hour). Let me know if you're interested by filling above form.

CS 200: Programming I

If you want to learn another programming language (Java), you might consider taking this course. CS 200 is the intro to the CS 200/300/400 sequence taken by all CS majors and assumes no programming background.

CS 300: Programming II

If you did well in CS 301 (say, you got an A) and your good and pickup up skills on your own, you might consider skipping CS 200 and jumping straight into CS 300. We wrote some notes to walk you through some of the trickier differences between Python and Java.


DoIT offers various free workshops that you can register for here.