Getting Started with Computer Science
This page introduces information on how to approach introductory computer science courses and finding computer science-related programs at UW Bothell. For additional help contact your advisor.
Page navigation:
Assessing your programming experience
Even though Intro Programming I (CSS 142 + CSSSKL 142 lab) has no prerequisites, students often start the course with different levels of experience. Students find it helpful to learn with others of a similar skill level, so we often designate one or more sections of CSS 142 and CSSSKL 142 to be for students with limited programming experience.
Answer the questions below provide a self-assessment to help determine whether you 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.
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 Where to Start flowchart, or read below, to help you choose the right first computing course for you.
Introductory courses
CSS 101/BIS 111: Digital Thinking
Explores computational thinking and its societal impacts, computing history, ethical considerations, computer usage, the internet; and how computers solve problems, represent data, and search for information.
- Skills/concepts: Computational problem solving, understanding computing impacts, ethical issues in technology.
- Tools/languages: Processing (a Java development environment)
CSS 107: Introduction to Programming Through Animated Storytelling
Start your programming experience with virtual worlds, creation of characters, games, short stories, and 3D motion. Teaches object-oriented programming via storytelling and animation, incorporating visual storytelling techniques and programming fundamentals.
- Skills/concepts: Algorithmic thinking, loops, variables, IDE use, visual storytelling, video creation, scriptwriting.
- Tools/languages: Scratch
CSS 110: Introduction to Cybersecurity
Provides a foundational understanding of the digital security landscape for those without prior technical experience, introducing: privacy, cryptography, social and ethical issues, hacking, networking, legal aspects, and digital forensics.
- Skills/concepts: Cybersecurity principles, privacy laws, encryption, digital forensics, password management.
- Tools/languages: N/A.
CSS 112: Introduction to Programming for Scientific Applications
Focuses on programming fundamentals using Python for scientific applications, enhancing problem-solving skills in computational fields.
- Skills/concepts: Control structures, data types, functions, software engineering basics, scientific computing applications.
- Tools/languages: Python
- Textbooks/resources: “A Gentle Introduction to Python Programming for Scientists and Engineers” by Johnny Lin.
CSS 132: Computer Programming for Engineers I
Introduces programming with an emphasis on engineering applications, covering fundamentals, computer organization, and algorithmic thinking.
- Skills/concepts: Programming fundamentals, algorithmic thinking, software engineering concepts.
- Tools/languages: C++; Repl.it
CSS 142: Computer Programming I
Introduces general programming fundamentals within various contexts. Every quarter, there are designated offerings of this course specifically designed for students with limited programming experience.
- Skills/concepts: Problem-solving, design, programming fundamentals, software engineering, societal impacts of computing.
- Tools/languages: Java
- Textbooks/resources: “Absolute Java” by Walter Savitch
Programs to consider
Many programs at UW Bothell can help you develop computer science skills. Consider the following programs to see what the best fit is for you.
Undergraduate programs
- B.A. in Applied Computing
- B.A. in Business Administration, Management Information Systems (MIS) concentration
- B.A. in Computer Science & Software Engineering
- B.A. in Mathematical Thinking and Visualization (MTV)
- B.A. in Physics
- B.A. in Science, Technology, and Society (STS)
- B.S. in Earth System Science (ESS)
- B.S. in Mathematics
- B.S. in Physics
- B.S.C.E. in Computer Engineering
- B.S.E.E. in Electrical Engineering
- Minor in Mathematics
- Minor in Physics & Astronomy
- Minor in Computer Science & Software Engineering (CSSE)
- Minor in Information Technology (IT)
- Minor in Geographic Information Systems (GIS)
- Minor in Science, Technology, and Society (STS)
Graduate programs
- Graduate Certificate in Software Design & Development
- Graduate Certificate in Electrical & Computer Engineering Foundations
- Master of Business Administration, Technology
- M.S. in Accounting
- M.S. in Computer Science & Software Engineering
- M.S. in Cybersecurity Engineering
- M.S. in Electrical & Computer Engineering