Computer Science & Software Engineering

Computer Science & Software Engineering

The Bachelor of Science in Computer Science and Software Engineering (CSSE) curriculum stresses computer programming and people-centered software development processes. The program offers a multidisciplinary approach that will enable students to develop a wide range of competencies needed for success in the dynamic and varied field of software applications. These include analysis and problem solving techniques; communication and business management skills; in-depth understanding of the software design and development process; and a solid technical foundation to allow students to continue to learn new and complex techniques.

For those considering occupations in programming, CSS offers a strong foundation and practical experience for careers associated with internet and intranet applications design and development, systems analysis, object-oriented programming, multi-media, software marketing, software testing and quality assurance, project management, or database design and administration.

For those already working in software applications, the program offers a strengthening and refinement of technical programming, written and oral communication, project management, and software design skills.


Course information

Based on the fundamental disciplines of Computer Science and Software Engineering, the curricula focus on the processes involved in the design, development, and implementation of software. Our innovative courses are designed by faculty and task forces that draw directly upon industry input.

The menu on the left includes links to when our courses are offered, descriptions of each course, and information about how courses fit in with each other and fit into our degrees.

Our CSS Advisor is ready to assist you in planning your coursework. Students are encouraged to check in with their Advisor once a quarter to check their progress and course planning.

To make an appointment or to speak with the CSS Advisor, please contact the STEM Undergraduate Academic Services Office at (425) 352-3746 or at cssadv@uw.edu.

Course descriptions

Courses taught by the CSS Division include those with the following course prefixes:

The links above take you to the Student Guide's course descriptions.

Course sequence

The CSS Division offers a variety of introductory computing courses for pre-majors, as well as courses for students pursuing non-CSS majors.  Please see the following flowcharts to help you choose the right first computing course for you:

Your pre-major or major advisor can give you additional assistance.  To contact a School of STEM Advisor, please call (425) 352-3746 or send an email to cssadv@uw.edu.

Back to top.


Major requirements

Learn more about the admissions process.

Prerequisites

Core Requirements

Elective requirements

CSS Electives (25 credits)

All CSS electives must be at the 200-400 level. Of these 25 credits:

  • 15 credits must be at the 400 level
  • Maximum of 10 credits combined of 397/498/499
  • Maximum of 10 credits combined of 490 (Special Topics)

300-400 Level Electives (15 credits)

  • May be additional CSS electives or electives from other subject areas

University Requirements

  • Arts and Humanities (15 credits)
  • Social Sciences (15 credits)
  • Diversity (3 credits)

Back to top.


CSSE: Information Assurance and Cybersecurity 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, be they 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 employs the strengths found at UW Seattle, Bothell, and Tacoma, and allows students to select from an approved list of courses offered at all three campuses. Students take the same foundational courses found in the CSSE degree program at their home campus, but may select from any of the classes below to fulfill the requirements for the IAC option. These courses include topics in information assurance policy, secure coding, and networking and systems security. The electives at each campus emphasize the strengths found in the programs offered there.

Students pursuing this option are required to take CSS 310 (or INFO 310, T INFO 310): Information Assurance and Cybersecurity as a core course for the IAC option, and must complete 15 additional credits from the following course list for a total of 20 credits.

Degree Chart

Please view the CSSE-IAC Curriculum Sheet (pdf format) for an overview of the degree requirements.

Requirements

  1. Foundational course, CSS 310 Information Assurance and Cybersecurity, or equivalent (5 credits)
  2. Minimum of 15 credits from an approved list of courses (see below). This list includes courses at participating departments on all three UW campuses. 
    Note: no more than one of these courses may be a networking course. These include INFO 314, T INFO 250, and CSS 432.
  3. Five additional credits (typically one course) from approved CSS Electives; student’s total elective credits should reach 25.

UW Seattle IAC electives

  • INFO 312 Enterprise Risk Management
    Examines the risk inherent in use of technology, and how to manage risk to information, data, and technology in organizations. Topics include risk management frameworks, risk tolerance, key risk indicators, the legislative and regulatory environment, compliance, and new avenues of risk such as social media and mobile.
  • INFO 314 (formerly 341) Computer Networks and Distributed Applications*
    Basic concepts of local and wide-area computer networking including an overview of services provided by networks, network topologies and hardware, packet switching, client/server architectures, network protocols, and network servers and applications. Also addresses management, security, authentication, and policy issues associated with distributed systems. Prerequisite: CSE 142 or CSE 143.
  • INFO 415 Emerging Topics in Information Assurance and Cybersecurity (topics vary)
    Explores emerging topics and unique subjects in information assurance and cybersecurity (IAC) not otherwise covered in the IAC curriculum. Prerequisite: INFO 310 or equivalent.

UW Bothell IAC electives

  • CSS 337 Secure Systems
    Prepares students for deploying and operating secure systems on a heterogeneous distributed infrastructure. Covers cybersecurity principles, methods, and tools used to protect against and detect external and internal threats. Addresses ethical and professional issues for cybersecurity personnel. Assumes students have basic computer administration skills. Prerequisite: either CSS 142, CSE 142, or CSS 161; and CSS 310.
  • CSS 411 Computer Technology and Public Policy
    In depth investigation of economical, political, organizational, and societal ramifications of using computing technology. Evaluates current policy approaches, determines trends, and proposes changes. Topics vary by quarter.
  • CSS 415 Emerging Topics in Information Assurance and Cybersecurity (topics vary)
    Explores emerging topics and unique subjects in information assurance and cybersecurity (IAC) not otherwise covered in the IAC curriculum. Prerequisite: either CSS 310, INFO 310, or T INFO 310.
  • CSS 432 Computer Networking*
    Examines computer networking topics such as data link networks, packet switching, routing, TCP/UDP, flow control, congestion control, network security, and application protocols. Oriented toward network programming and performance evaluation experiments. Prerequisite: minimum grade of 2.0 in CSS 343; recommended: CSS 430.

UW Tacoma IAC electives

  • T INFO 250 Foundations of Information Networking*
    Explores computer networking and telecommunications fundamentals including LANs, WANs, Intranets, and the World Wide Web. Studies data communication concepts, models, and protocols. Practices installation, configuration, systems integration, and management of infrastructure technologies
  • T INFO 441 Network Security
    Covers cryptographic methods including public and private key algorithms. Examines protocols that utilize secure email, digital signatures, authorization, e-voting, and electronic cash. Examines the fundamentals of security issues arising from computer networks. Includes lab component for demonstration of security techniques such as firewalls, intrusion detection systems, and virtual private networks. Prerequisite: T INFO 310 or equivalent.
  • T INFO 442 Computer Security
    Discusses the theoretical and practical issues surrounding computer security and data protection. Explores formal models of encryption and authentication. Examines operating system and program security with vulnerabilities analyses. Includes a lab component for demonstrating computer security techniques such as malware analysis, and access.
  • T INFO 443 Digital Forensics
    Explores the many facets of computer forensics and network security. Examines intrusion detection, evidence collection and presentation, network auditing, and network security policy design and implementation. Examines the issues and facilities available to the intruder and data network administrator and incorporates hands-on exercises. Prerequisite: T INFO 310.

*Only one networking class (has an asterisk) can be applied to the IAC Option requirements

Back to top.


CSS 497 Capstone

Capstone is the title for CSS 497, the final core requirement and the program capstone course for advanced CSS students. The Capstone provides students with the opportunity to earn academic credits while working on a project that has potential benefits for industry or community organizations. Learn more about CSS 497 Capstone.


Assessing your programming experience level

While the introductory programming course CSS 142, designed for CSS majors (e.g., CSSE, AC, etc.), has no prerequisites, historically students who have enrolled have had varying levels of prior experience with programming.  While all students, regardless of their prior experience, are held to the same standards with regards to attaining learning outcomes, some students with limited prior programming experience may find a learning environment with peers of similar backgrounds to be helpful for their learning.  Some terms, one or more sections of CSS 142 may be designated for "limited programming experience" students.  The questions below provide a self-assessment to help students determine whether they have limited programming experience.

Question 1: 

Have you ever written a program (regardless of length) in a text-based programming language (e.g., Java, C++, C#, Python, etc.)?

If you answered "no," you probably have limited programming experience.  If you answered "yes," please continue to the next question.

Question 2: 

Which of the following topics do you understand well enough to write a short program (under 50 lines) using the concept?

  • Variables
  • Expressions
  • If statements
  • Loops
  • Nested loops
  • Arrays
  • Classes

If you answered "no" to 4 or more of the above topics, you may have limited programming experience.

Back to top.


Policies

Below are links to special policies regarding specific courses.

Back to top.