The math requirements have changed recently. If you declared the CS major before Fall 2024, you can choose between either the old “Math Beyond Calculus” requirement or the new Linear Algebra and Statistics/Probability requirements. The course map for students who declared CS before Fall 2024 can be found here: (PDF)
I am not a data-science major, so my map doesn’t include those courses. The CS/DS double-major is popular, but you would need to ask someone else about it.
If you make a data science chart and want to add it, open an issue or make a pull request on the Github page.
This chart is very sparse, there are a lot more CS classes after you complete the basic requirements in the yellow box. Please don’t think that this is a representative list of the SW/HW, theory, application, and elective offerings!
About the courses:
CS 200 is not a requirement for the major, but is a good introduction to Object-Oriented Programming and Java programming in general. If you have no prior experience, start with CS 200. People with experience usually skip 200, they ask you to complete this peg solitare assignment to see if you’re ready.
CS 300 and CS 400 form the core of the programming curriculum, and also introduce data structures. These courses are taught in Java. 300 uses a ZyBooks (online, interactive) textbook, 400 does not have a textbook.
Math/CS 240 covers discrete math, proof-writing, and induction, along with a tiny bit of combinatorics and probability.
Math majors usually say it’s easy. I found it to be of medium difficulty, and was glad that I had the data-structures background from 300 before I took it.
This class is taught by the CS department in the fall, and the Math department in the spring. Both departments claim the offerings are identical, and the curriculums are now more aligned (but students still debate their comparative virtues).
CS 252 explores how computers work from the transistor up, and teaches a simulated “LC3” assembly language.
The textbook used is Patt and Patel’s Introduction to Computing Systems (9780072467505).
Slides from past teachings of this course can be found online. See: Ibrahim ‘17
CS 354 (my favorite) is a traditional intro systems course. In this class, you become intimately familiar with memory management and the processor, as well as C programming and reading x86-64 assembly.
See these past semesters’ materials for an idea of the topics covered: Gerald ‘18, Doescher ‘21
Spanish
I include this here to illustrate the opportunity for retroactive language credits.
If you have already know semesters-equivalent of a language, placement testing will give you “completed units” of that language, which count towards the L&S foreign-language requirement. However, these do not count for any credit.
You can earn retroactive credit for the first level of a language taken on campus, if:
it is within your first 30 credits on campus (AP credits don’t count, non-degree transfer credits don’t count)
A DARS audit will tell you what you have completed and what you still need to graduate. To run a DARS audit, go to Course Search & Enroll at https://enroll.wisc.edu, and select “Degree Audit (DARS)” at the top of the page. Then follow these steps to see what you would need for a given degree plan:
Shameless plug: Make new friends!
During the semester, drop by the Undergraduate Projects Lab (UPL) at the top of the ramp in the CS building! If you are reading this before the semester starts, join the Discord server and stay tuned for beginning-of-the-year events.
Created by Michael Noguera as an unofficial resource for those going to SOAR. Created June 2022. Last updated September 2024.