CSSE Curriculum

This page contains information on the curriculum of the Bachelor of Science in Computer Science & Software Engineering (CSSE).

  1. General education requirements
  2. Entry prerequisites
  3. Core requirements
  4. Elective requirements
  5. Information Assurance and Cybersecurity (IAC) option
  6. Petitions

Entry prerequisites

Visit our Admissions page for information on prerequisite coursework.

Not sure about how to approach programming? Visit our Getting Started with Computer Programming page.

General education requirements

All UW students must complete a common set of general education requirements. As a CSSE major, you will have already completed the English Composition (C), Additional Writing (W), Natural Science (NSc), and Reasoning (R) requirements by taking your entry prerequisite and CSSE core classes, but make sure to plan for completion of the following:

  1. Diversity (DIV) – 5 credits (almost always also fulfills A&H or SSc; was only 3 credits prior to autumn 2023)
  2. Arts & Humanities (A&H) – 15 credits (cannot overlap with SSc)
  3. Social Sciences (SSc) – 15 credits (cannot overlap with A&H)

These general education courses can overlap with the Elective courses for your major.

Core requirements

  1. Statistics (choose one course)
  2. CSS 301: Technical Writing for Computing Professionals
  3. CSS 342: Data Structures and Algorithms I
  4. CSS 343: Data Structures and Algorithms II
  5. CSS 350: Management Principles for Computing Professionals
  6. CSS 360: Software Engineering
  7. CSS 370: Analysis and Design
  8. CSS 422: Hardware and Computer Organization
  9. CSS 430: Operating Systems
  10. CSS 497: Capstone

Elective requirements

CSS Electives (25 credits / usually 5 courses)

All CSS electives must be 200-level or higher, and they may not be courses that are already required for your degree. Of the 25 credits:

  • At least 15 credits must be 400-level
  • Up to 10 credits may be 200-level
  • Up to 10 credits combined of CSS 397 (Internship), 498 (Independent Study), or 499 (Undergraduate Research)
  • Up to 10 credits combined of CSS 290, 390, or 490 (Special Topics)

300-400 Level Electives (15 credits / usually 3 courses)

  • May be additional CSS electives or electives from other subject areas
  • These courses may overlap with your General Education requirements (A&H, SSc, DIV, etc.), above, as long as they are 300-level or higher.

Information Assurance and Cybersecurity (IAC) option

Information Assurance and Cybersecurity (IAC) is a Computer Science & Software Engineering pathway that covers the creation and management of safe and secure systems. All organizations—large or small, public or private—rely on secure systems for individual and organizational privacy and security. The IAC option prepares students to create, deploy, and manage systems that ensure the security of any organization.

This tri-campus pathway allows students to select from an approved list of courses offered from all three UW campuses: Bothell, Seattle, and Tacoma. The electives at each campus emphasize the strengths found in the programs offered there, and course topics include information assurance policy, secure coding, and networking and systems security.

Declaring the IAC option

After admission into the general CSSE major, you can contact the advising office at cssadv@uw.edu to switch into the IAC option. Please include your name and student ID number.


IAC-option students take the same core courses as those of the general CSSE major, but replace the 25 credits of “CSS Electives” with the courses below:

  1. CSS 310: Information Assurance and Cybersecurity
  2. Minimum 15 credits (3 courses) of elective coursework from the lists below. Only one networking class (CSS 432, INFO 314, or T INFO 250; marked with an asterisk *) may be taken.
  3. Minimum of 5 additional credits (usually 1 course) of 200-level or higher CSS Elective coursework in any topic.

UW Seattle IAC electives

UW Bothell IAC electives

UW Tacoma IAC electives


Computing-related courses that are not included on the core or elective requirements lists are considered on a case-by-case basis. If you have a syllabus, letter from the instructor, or other detailed description for the class you wish to use as an elective, you may submit a petition to request for the course to count.