Feb 05, 2024
Northwestern CS394 Spring Software Engineering Course
Introduction and Overview
In spring of 2024, I will be teaching CS394 at Northwestern University in Evanston, IL. The course will focus on answering and exploring the question, how do we best work in teams to build software reliably and predictably that users love. With few exceptions, most software is built by a team of people working together; whether that is in a company or as part of an open source project. Since the 1960’s, a significant branch of computer science, software engineering, has explored tools and methods for humans to work better together to produce machine code that solves problems. In the early 2000’s a significant breakthrough, which built on lessons of the previous decades, in team software development was the creation of agile methodologies and drafting of the agile manifesto.
The course I will teach will have a very similar structure to Chris Riesbeck’s 394 Course. We will have two team projects as the significant focus of the course. The first will be a startup-like project in react and firebase. The second will be a client oriented project where software is developed on behalf of a ‘customer’ outside of the students. In the second half we will also explore some of the issues in large scale software development through both guest speakers and topics integrated into the client project.
What is required to take the course
Some more on Professor Warren
This site provides pretty complete background on me in the profile on this site. I’ve been teaching off and on at Northwestern for more than ten years. I have not taught software engineering in quite a few; but many elements of CS394 also existed within the NUvention Web course. I’m a “pracademic”—that is most of my approach is based on my work experience at big companies (Microsoft and Ford Motor Company) and startups. Most recently I was involved in leading software at Ford Motor Company, where I was responsible for all in-vehicle software, connected cloud systems, and mobile applications. I will also be co-teaching a course in corporate innovation in the Farley Center for Innovation and Entrepreneurship
We will have a few guest speakers; though most learning will come from building projects in teams in the class. In particular, we will have guests who have led software products at Google, Microsoft, and Ford currently in the plan.
When is the course?
The course is scheduled for Tuesdays and Thursdays in person at 9:30am. Room TBD.
How is the course the same or different from Professor Riesbeck’s CS394?
They will be very very similar. Dr. Riesbeck and I have taught together in NUVention Web and the syllabus for spring 394 is a derivative of his. The second project may have some differences in client orientation and structure. I also have a preference for typescript and Dr. Riesbeck does not.
If I apply for Professor Riesbeck’s course do i need to apply to yours?
Yes please. The surveys are similar but I’m asking a few more questions; and it ends up in a separate list. If you are applying to both; we would appreciate in the comments at the end that you indicate so; and if so whether you would prefer my class (Tu/Th) or Professor Riesbeck’s (M/W)
What textbook is required?
What programming knowledge do i need to take the course?