CS411 Software Engineering

CS411 Software Engineering is a course with two sides. On the one hand it’s a course about the process of creating software, and we look at best practices for discovering business requirements, choosing technologies, architecting solutions, and ensuring quality products. It’s methodology — this is how most companies approach software. Most of the lectures are about the methodology.

On the other hand, it’s a project-based course. Small teams work during the semester to build a web-based application using the methodology that we’re talking about in lecture. The project side can be pretty intense — there are frameworks to learn, design aspects, testing, maybe even new languages — and it’s complicated by having to come together quickly as an effective team. You’ll get some really practical, hands-on experience in a number of technologies, many of which we’ll talk about in class, but many of which you’ll have to figure out yourself.

I love seeing what the teams come up with. I think it’s a really satisfying experience for the students, too. Here are the syllabus and schedule for a recent semester to give you an idea of the content:

CS411 Schedule Fall 2019 v1.0

There’s usually a wait list for CS411 each semester. If you find that the course is closed when you go to register, you can place yourself on the waitlist using this form. We try to accommodate CS seniors first.