CSE Undergraduate Curriculum: Information for Faculty

Last updated: February, 2019

Author: Dan Grossman

About

About this page

This page is designed as a brief, unofficial overview and pointer to additional information for Allen School faculty about the school's undergraduate curriculum. It emphasizes recent changes. Near the bottom it has more antiquated information that isn't otherwise archived. It is hopefully useful to veterans who can't remember how things have changed and to new people unfamiliar with our curriculum. It favors brevity over extensive rationale. It will be perpetually outdated. Tell Grossman how it could be improved, but remember everybody has a different sense of what, “everybody already knows.” Skip around to find the parts you need.

This page is publicly available.

Course Information

For every course we teach, we have the following information:

Undergraduate Stages

Rough Stages in Undergraduate Coursework

Think of the courses our undergraduates take in these categories:

Degrees

Degrees and Degree Requirements

We have two undergraduate degree programs: A Computer Science major in the College of Arts & Sciences (“CS”) and a Computer Engineering major in the College of Engineering (“CompE” or “CE”). The degree requirements are different, both within CSE, and, more substantially, outside of CSE (to satisfy the colleges' different requirements). Most faculty can ignore this: you never need to know who in your class is in which college. Our CompE degree is ABET accredited, which complicates how we structure our CompE degree requirements and how we assess our curricular goals. Currently, over 80% of our undergraduate majors are CS.

The degree requirements have all the details and are complicated enough that it's unwise to try to summarize them. The CS and CompE requirements are in separate PDF files and you are probably more interested in the right columns, which contain the CSE courses.

We also have an integrated 5th-year Master's program (“BS/MS” or “5th years”) where students are admitted prior to their senior year and stay for roughly an extra year to earn a Master's degree. The early admission allows them to plan their final two years together. Students in the BS/MS who have finished their Bachelor's requirements often refer to themselves as graduate studentsb and they are graduate students. They take both 400-level and 500-level courses. Approximately 10% of our undergraduates participate in this program.

A few historical facts, not necessarily relevant going forward:

The 300-level

Here is our current collection of “300-level” courses and their pre-requisite structure. This reflects the CompE updates in 2015 and is current as of February 2019:

that picture
Grossman always shows everyone

Course web pages:

Back in 2010, we also developed a 2-3 page course description that explains the vision, goals, and approximate topics of each new course. Naturally, converting a short description into a 4-credit course is non-trivial and courses evolve over time, so at this point, these descriptions are historical documents. But since they aren't linked to anywhere else, here they are:

Course Prerequisites

Prerequisites for courses at the 400-level should be up to the relevant cadre of instructors. The current list may be suboptimal. If so, please speak up and suggest changes. However, keep in mind:

Learning More

Confused about how our curriculum works? Ask a colleague or one of our wonderful undergraduate advisors. It is a system with a lot of moving parts where nobody has complete information — but together we make it work to graduate hundreds of great students a year.

Big 2015 Changes

In Spring 2015, we completed a 2-3 year process to align several courses with Electrical Engineering in order to make more senior-level courses available to majors in both CSE and EE and to share teaching burden.

The biggest change is to remove CSE352 (4 credits), our first “hardware lab” course and replace it with CSE369 (2 credits) and CSE/EE 371 (5 credits, cross-listed). CSE369 is a “bridge” course that builds on the circuits and finite-automata in CSE311 to cover enough “lab skills” to have our students take 371 while the EE students take EE 271 before 371. This is a key point of coordination -- from 371 students can “launch” in different directions toward computer architecture, embedded systems, etc.

The other changes, in rough order of importance:

Big 2010 Changes

This is for historical purposes and for when an old-timer reverts to thinking in pre-2010 terms and needs a refresher.

In Fall 2009, we approved a major revision of our 300-level courses. It retired 7 courses: CSE303, CSE321, CSE322, CSE326, CSE370, CSE378. While CSE341 remained, it became recommended rather than required.

The 300-level revision changed what material is included and reorganized the material. Here is a high-level list of notable changes: