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.

If you have been admitted to the major, you can work with a CSS academic advisor to plan out your core and elective coursework.

Course descriptions

Click the links below to read descriptions of the courses taught by the Computing & Software Systems (CSS) division of the UW Bothell School of STEM:

Where to start with computer programming

The CSS division offers a variety of beginner-friendly courses for students who want to get started with computer literacy and programming.

  • Digital Thinking: CSS 101
    • For students who want to learn about using computers to solve problems, how to represent data, and searching the internet for information.
  • Intro to Programming through Animated Storytelling: CSS 107
    • For students who want an introduction to basic programming concepts without learning a complex programming language, by creating virtual worlds, characters, games, 3D motion, and short stories. This course also counts towards the Arts & Humanities (A&H) general education requirement.
  • Intro to Cybersecurity: CSS 110
    • For students who are interested in issues such as hacking, social media, digital privacy, computer networking, wireless security, and social and ethical issues. This is not a coding course, and can be taken by itself or in combination with other introductory computing courses.
  • Computer Programming I + Skills Lab: CSS 142 + CSSSKL 142
    • For students that want to dive right into coding with a full programming language (Java). You will learn the foundations of using IDE's (integrated development environments), representing and working with different data types and operations, algorithmic thinking, and object-oriented programming concepts.
    • Limited experience sections. While CSS 142 does not have any prerequisites, students often start at very different levels of experience. All students are expected to reach the same learning goals, and some may benefit from learning with other students around the same level. Check the notes on the CSS 142 listings on the time schedule or in MyPlan to see which ones are the "limited experience" sections that we occassionally offer.

      Consider the following questions - if you answer "no" to either question, then you may want to consider taking a limited experience section of the course
      1. Have you ever written a program of any length in a text-based programming language (e.g., Java, C++, C#, Python, etc.)?
      2. Do you understand at least four of these concepts well enough to write a short program (less than 50 lines) using them?
        • Variables and values
        • Expressions
        • If statements
        • Loops
        • Nested loops
        • Arrays
        • Classes

Back to top.


Major requirements

Learn more about the admissions process.

Prerequisites

To apply for this major, you must have completed the following courses at the UW Bothell, or their equivalents elsewhere. Visit the CSSE admissions page for more information on these prerequisites.

  • English Composition I: BWRIT 134
  • Advanced Writing - one of the following:
    • ​Research Writing: BWRIT 135
    • Science Methods and Practice: BES 301
    • Scientific Writing: BST 301
    • A similar advanced writing course
  • Computer Programming I and II - one of the following:
    • ​Java (recommended): CSS 142 and 143
    • C++: CSS 132 and 133
    • Important: You must also take the required "CSSSKL" skills labs together with these lectures, but they are not themselves prerequisites for entry into the Applied Computing major.
  • Calculus I: STMATH 124
  • Calculus II: STMATH 125

Core Requirements

  • Statistics - one of the following:
  • Technical Writing for Computing Professionals: CSS 301
  • Advanced Data Structures, Algorithms, and Discrete Mathematics I: CSS 342
  • Advanced Data Structures, Algorithms, and Discrete Mathematics II: CSS 343
  • Management for Computing Professionals: CSS 350
  • Software Engineering: CSS 360
  • Analysis and Design: CSS 370
  • Hardware and Computer Organization: CSS 422
  • Operating Systems: CSS 430
  • CSSE Capstone: CSS 497 (10 credits)

Electives

CSS Electives (25 credits)

You must take 25 credits (usually about 5 courses) of "CSS" prefix coursework.

  • At least 15 credits must be 400-level
  • No more than 10 credits may be 200- or 300-level
  • No more than 10 total credits of CSS 397/498/499 (Internship / Independent Study / Research)
  • No more than 10 credits of CSS 490 (Special Topics)

Upper Division General Electives (15 credits)

You must take 15 credits of additional 300-level or higher coursework in any subject area. These credits can be additional CSS coursework or overlap with courses taken towards another major or minor.

University Requirements

  • Arts and Humanities (A&H; 15 credits)
  • Social Sciences (SSc; 15 credits)
  • Diversity (Div; 3 credits)

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.

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.