Welcome to the Division of Computing & Software Systems
Established in 1996, CSS offers degrees in computer science and computer systems applications. The Division of Computing & Software Systems offers high academic standards and expectations with a reputation characteristic of the University of Washington. The Bothell campus offers the advantages of a small campus with its excellent teaching and research opportunities, and a sense of community that comes from its comfortable size and congenial atmosphere.
We offer software engineering oriented computer science degrees that emphasize how to think about, design, and create quality software-enabled systems that have real impact in organizations and the world. Our degrees provide the broad educational background valued by employers and by computing professionals seeking rewarding careers. Our aim is a transformative educational experience that not only provides fundamentals and technical skills, but also the perspective to understand how to be an effective, confident, and respected member of our profession.
As an undergraduate you can choose between:
As a graduate:
If you're switching careers you can take our Graduate Certificate in Software Design & Development to immediately move to a new job or to prepare you for success in graduate studies.
You can pursue studies at the cutting edge of computing research and implementation through our Master of Science in Computer Science and Software Engineering or our Master of Science in Cybersecurity Engineering.
Whichever pathway you choose, you can rely on receiving a world-class, University of Washington education in a small-scale environment that provides close student/faculty interactions.
The learning objectives for the Bachelor of Arts in Applied Computing and the Bachelor of Science in Computer Science & Software Engineering are described in terms of competencies achieved by students within the CSS programs. The Foundation Level includes very broad competencies that are found in every CSS core course. The Technical Level is a set of broadly important competencies specific to the software engineering and computer science professions, to be developed in every undergraduate CSS education, across the set of required core courses. Competencies specific to the interests and needs of the individual student are achieved in the CSS advanced elective courses.
Below are listed the Foundational and Technical competencies, which are achieved by every undergraduate student in CSS:
Analysis & Problem Solving
- Information Gathering: Effectively searches out and organizes pertinent information before making decisions or taking actions.
- Efficiency: Identifies ways to solve problems or complete tasks smoothly and effectively; choose the optimum solution form and set of alternative possibilities.
- Systemic Thinking: Follows a well-ordered and logical approach to analyzing problems, organizing work, and searching for solutions.
- Thoroughness: Ensures that work is done correctly, completely, on time and to the highest standards.
- Creativity: Challenges existing assumptions, proposes novel alternative ways to framing or solving a problem, pushes the boundaries of knowledge.
- Learning by Doing: Demonstrates the ability to learn continuously, capitalize on mistakes, exploit new knowledge, increase productivity over time.
- Collaboration & Team Building: Collaborates effectively with others to achieve a common objective, creates an environment that fosters and sustains successful teamwork.
- Leadership: Champions new ideas, persuades and influences, breaks logjams, and promotes momentum toward solving problems.
- Writing & Speaking: Expresses ideas correctly and convincingly in reports, memos and other forms of written communication
- Managing Change & Uncertainty: Adapts to changing circumstances, deals positively with uncertainties and contingencies, manages crises effectively.
- Project Management: Plans, monitors, and controls projects; ensures efficient utilization of resources; keeps projects on schedule and within budgeted resource allocation.
- Project Administration: Administers and maintains projects, using appropriate monitoring tools and complying with relevant standards and reporting requirements.
- Risk Management: Foresees and takes action pro-actively in anticipation of future problems and opportunities.
- User Orientation: Gains understanding of users needs by immersing self in users environment; carefully studies user's requirements; puts self in users shoes.
Back to Top
General Business, Social & Technical
- Business Case Justification: Justifies project expenditures, equipment and other resources in terms of business costs, benefits and risks.
- Technology Evaluation and Selection: Evaluates and selects software and hardware appropriate to the application, architecture and resource constraints; maintains awareness and understanding of emerging technology.
- Process Reengineering: Performs business requirement analysis, using appropriate tools and methodologies to maximize organizational performance.
- Mathematical Principles and Techniques: Understands theory and application of numerical, statistical, set theory, and other mathematical techniques in the context of applications and systems programming.
- General Software Systems: Has general understanding of the principles and applications of software development and design; understands the relationship between software development and other functions in the business organization.
- Social Implications of Science & Technology: Understands the interaction between science and technology and the broader social, political, and organizational environment; critically assesses ethical implications of computing technology.
- Technical Writing: Designs and writes effective guidelines, standards, procedures, processes, applications, using appropriate methods, tools and delivery options.
- Requirements Definition and Analysis: Elicits and clearly defines user\'s needs, assessing potential solutions against benefits and risks; uses appropriate tools for analyzing requirements and creating appropriate data and work flow models.
- Software Development Life Cycle: Understands and effectively manages the process of developing designing, testing, and delivering a software application.
- Functional Design: Identifies system platform, components, inputs, interface requirements, and dependencies which ensure that the system will achieve its objectives.
- Testing: Plans, executes, and validates results of unit, systems, and acceptance testing to ensure conformity to user\'s requirements.
- Implementation: Plans and executes smooth integration of an application into the computing environment.
- Programming: Comprehends and applies principles of programming; effectively translates design specifications into appropriate software components.
- Collaborative Programming Techniques: Uses methods and tools that support cooperative software development among users in different locations.
- Quality Assurance: Employs appropriate quality assurance standards and procedures to ensure delivery of bug-free applications that meet user\'s needs.
- Technology Integration: Integrates various technologies, systems, applications, database and components across multiple platforms.
- Hardware Architecture: Understands hardware components, architecture, and interrelationship among hardware, software, and operating systems.
- Performance Measurements & Tuning: Uses appropriate performance metrics to monitor, optimize and troubleshoot system performance.
- Operating Systems: Understands operating systems fundamentals including: file systems, process, and memory management.
- System Administration: Understands appropriate procedures and techniques for management and administrating a network, data center, or other computer system; manages changes to the computing environment.
- Technical Training and Support: Provides user support through analysis and problem solving to facilitate installation, implementation, maintenance, education, and documentation of computer hardware and software systems.
Back to Top
Our purpose is to be a collaborative community that provides cross-disciplinary education and research in computer science and software engineering, resulting in lifelong personal growth for our graduates, impact on our profession, and economic growth and social justice in our communities.
Accomplishing our mission results in the following:
- Our community of faculty, staff, and students are known for their collaborative and caring spirit.
- Our curriculum is intellectually rigorous, includes a healthy balance of theory and application, and prepares students for cross-disciplinary work.
- Our research is known for its academic excellence, interdisciplinarity, social relevance, and connection to the education of our students.
- Our graduates are lifelong learners who continuously seek to make an impact in their companies and communities.
- Our industry and local community partners value us as true collaborators in helping drive economic and social change.
Student & alumni opportunities
Learning in the UW Bothell CSS Program happens both in and out of the classroom. Part of students' educational experience is participation in professional and technical organizations. These organizations build leadership skills, help students connect knowledge gained in coursework with professional and broader technical issues, and maintain valuable peer networks throughout their careers.
Alumni can check out the following resources: