
About Computer Science
Programming, algorithms, systems, and the theory underneath them. Courses carry the CS 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 10 CS courses listed, 4 are introductory (numbers under 300), 2 are advanced undergraduate (300–499). 1 course has no prerequisite and is 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 Computer Science department is the only way around them.
CS 1100 — Introduction to Programming 3 cr
A first course in writing, testing, and debugging programs. Variables, control flow, functions, collections, files, and basic object use, practiced weekly in a studio with a lab instructor. No prior experience assumed.
Prerequisite: none.
CS 1200 — Object-Oriented Programming 3 cr
Designing programs around classes and objects: encapsulation, inheritance, polymorphism, interfaces, exceptions, and unit testing. A term-long project builds a small application in stages with version control.
Prerequisite: CS 1100.
CS 2400 — Data Structures and Algorithms 4 cr
Lists, stacks, queues, trees, hash tables, and graphs, with the algorithms that operate on them and the cost analysis that compares them. Emphasis on choosing the right structure for a problem and measuring the result.
Prerequisite: CS 1200.
CS 2600 — Computer Organization 3 cr
How a program becomes machine behavior: number representation, assembly, the memory hierarchy, the processor datapath, and the operating-system interface. Assignments work close to the hardware.
Prerequisite: CS 1200.
CS 3200 — Databases 3 cr
The relational model, SQL, schema design and normalization, transactions, indexing, and an introduction to non-relational stores. A project models a real domain and builds the queries an application would need.
Prerequisite: CS 2400.
CS 3300 — Web and Application Development 3 cr
Building client–server applications: HTTP, front-end frameworks, APIs, authentication, and deployment. Teams ship a working application and maintain it through several iterations with code review.
Prerequisite: CS 2400.
CS 3500 — Operating Systems 4 cr
Processes and threads, scheduling, concurrency and synchronization, virtual memory, file systems, and I/O. Programming assignments implement pieces of an operating system and measure their behavior.
Prerequisite: CS 2600.
CS 3700 — Software Engineering 3 cr
Working on software as a team over time: requirements, design, estimation, testing strategy, continuous integration, and maintenance. Students work with an external client on a semester project.
Prerequisite: CS 3300.
CS 4200 — Machine Learning 3 cr
Supervised and unsupervised learning: regression, classification, trees and ensembles, clustering, and neural networks, with the evaluation methods that keep results honest. Assignments use real datasets and standard tooling.
Prerequisite: CS 2400, MATH 2600.
CS 4900 — Senior Capstone Project 3 cr
A team designs, builds, and delivers a substantial software system for a sponsor over two terms, presenting progress at reviews and the finished work at the showcase.
Prerequisite: senior standing.
Planning and advising
Your degree audit shows exactly how CS 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 or the Computer Science program office 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.