Developing the Course Work for UIUC's CS196

Creating UIUC's freshman CS Projects Course

January 21, 2015 - 3 minute read -

Something unique about UIUC is that they let a bunch of undergrads try to and teach a course in the form of the CS Department’s Freshman Projects Course. They took this course as an oppurtunity for undergrads to decide what they thought was important to learn when you are an ambitious student just entering college and want to get up to speed quickly. Everyone has heard the complaints about how a course is outdated or teaching technology that you will never use but this was an oppurtunity to change that.

We decided that the format would be one that tries to replicate the working enviorment you might experience at a job or your first internship, hopefully giving a people a leg up that coming summer. We also wanted to instill in the students at UIUC a culture of making, that people should take their creativity and realize it into something instead of like other classes being given a brief and a set of steps and then executing.

The class had two halves, the lecture half and the project half. We took lectures as an oppurtunity to expose freshmen to all the interesting things you might want to know about just starting out in CS. We had lectures on VR, Machine Learning, new programming languages like Rust, how to be a better developer using tooling like Git, Emacs, and Bash and how to approach interviewing for jobs and interships. It was an hour a week where upper classmen can impart some knowledge to new students. The project half was the main meat of the course. Students at the beginning of the semester would needed to come up with a topic and pitch it to the rest of the class. Students then selected what they wanted to work on and were assigned an upperclassman “Project Manager” who has a background in that topic and through out the semester students will run that project in an agile fashion with weekly scrums, a kanban board and the PM helping students break down the tasks needed to complete the project.

The course was pretty successful. There were a ton of fantastic projects people made. Students who finished the class wanted to comeback as PMs to go through the experience again. Lot’s of people said their 196 project, the process of going through agile development, the prep for interviews and the advice they got from their mentors helped them get their first internships. For the upperclassmen it was a great experience too, it gave them a shot to try out project managment and learn how to lead a team. And for the department they saw a lot of the things we did in CS196 and took it as inspiration to update parts of the CS curriculum, reordering the class progression and adding a new class for 1st and 2nd year students teaching software engineering practices using the same ideas in 196 (we actually collaborated on the design of that course).

The course was our sort of playground as well to try out new pedagogies. We actually hosted a full fledged conference featuring Professors presenting their research and insight about CS to the students. We hosted hackathons to give students large blocks of time to work with their teams and PMs. We sort of got to create the class we wanted to take when we came to UIUC for the first time.

Here is a sample lecture:

CS 196 Website: