Current studentsFamiliesFaculty & staffAlumni & donorsBusiness & industry
University of WesconsinPorter FallsDo more from day one.
College of Computing & Information Sciences

Software Engineering · SE

Building, testing, and maintaining software systems at scale.

Home / Catalog / Software Engineering · SE

About Software Engineering

Building, testing, and maintaining software systems at scale. Courses carry the SE subject code and are offered through the College of Computing & Information Sciences. Numbers below 300 are introductory, 300–499 advanced undergraduate, and 500 and above graduate. Prerequisites are enforced at registration.

How the sequence works

Of the 9 SE courses listed, 4 are introductory (numbers under 300), 2 are advanced undergraduate (300–499). 0 courses have no prerequisite and are a reasonable first step. Later courses assume the earlier ones, so read prerequisites before you plan a term — they are enforced at registration and an override from the Software Engineering department is the only way around them.

SE 2100 — Software Construction 3 cr

Writing code that other people can read, test, and change: style, documentation, refactoring, defensive programming, and automated testing as a habit rather than an afterthought.

Prerequisite: CS 1200.

SE 3100 — Requirements and Design 3 cr

Eliciting what a system needs to do, resolving conflicts among stakeholders, modeling behavior, and turning requirements into an architecture with defined interfaces and trade-offs.

Prerequisite: SE 2100.

SE 3200 — Software Quality and Testing 3 cr

Test design, coverage, mocking, property-based testing, static analysis, and the economics of finding defects earlier. Students build a test suite for an existing codebase and measure its effectiveness.

Prerequisite: SE 2100.

SE 3400 — DevOps and Release Engineering 3 cr

Version control workflows, build pipelines, containers, infrastructure as code, monitoring, and incident response. A team automates the path from commit to production for a running service.

Prerequisite: SE 2100.

SE 3600 — Human–Computer Interaction 3 cr

Designing interfaces people can actually use: task analysis, prototyping, usability testing, accessibility, and iterating on evidence rather than opinion.

Prerequisite: sophomore standing.

SE 4100 — Software Architecture 3 cr

Architectural styles, distributed-system patterns, scalability and reliability trade-offs, and evaluating an architecture against quality attributes before it is built.

Prerequisite: SE 3100.

SE 4300 — Secure Software Development 3 cr

Threat modeling, common vulnerability classes, secure coding practices, dependency and supply-chain risk, and building security review into the development process.

Prerequisite: SE 3200.

SE 4500 — Software Project Management 3 cr

Estimation, scheduling, risk, agile and plan-driven methods, metrics, and leading a team through the messy middle of a project.

Prerequisite: SE 3100.

SE 4900 — Capstone in Software Engineering 3 cr

A two-term team project delivering a maintained system for an external sponsor, with formal reviews of requirements, design, testing, and release readiness.

Prerequisite: senior standing.

Planning and advising

Your degree audit shows exactly how SE courses apply to your requirements; this list only shows what is offered. If you are choosing between two courses, deciding when to take a heavy one, or wondering whether a course will run next term, your academic adviser can tell you. Course availability by term is set close to registration and is not guaranteed by anything on this page.

Fictional information

UW–Porter Falls is a work of parody. Every course, prerequisite, credit value, and department on this page is invented; nothing here describes a real curriculum or a course you can enroll in.