The Allen School has an extensive set of course offerings for students NOT majoring in Computer Science or Computer Engineering degree programs. These courses are open to all matriculated students at UW who meet the course prerequisites. Non-matriculated students may enroll on a space-available basis (see below). Please check our catalog for a general description of these courses. The links below take you directly to the CSE course webs.
Introductory Non-Major Courses
- CSE 120: Computer Science Principles
- CSE 142: Computer Programming I
- CSE 143: Computer Programming II
- CSE 154: Web Programming
- CSE 160: Data Programming
- CSE 190: Current Topics in CSE: new or experimental courses that cover topics in computer science of contemporary relevance, with an emphasis on subjects not covered at length in our introductory series. Recent offerings include:
Upper-Division Non-Major Courses
These non-majors courses are specifically designed to cover the material of our majors courses in a format appropriate for non-majors. The correspondence between our majors courses and these non-majors courses (as well as some courses in Electrical Engineering or Math) is shown below. Please note that if you are enrolled in another major at UW (or you are a pre-major) but plan on applying to the CSE program in the future, you should speak with a CSE academic advisor before taking a non-major course.
- CSE 373: Data Structures and Algorithms
- CSE 374: Intermediate Programming Concepts and Tools
- CSE 410: Computer Systems (offered alternating years)
- CSE 413: Programming Languages & Their Implementation (offered alternating years)
- CSE 414: Introduction to Database Systems
- CSE 415: Introduction to Artificial Intelligence
- CSE 417: Algorithms and Computational Complexity
If you are interested in courses on the left and are not planning to be a CSE major, we suggest you consider taking a course on the right:
|CSE Major's Only Course||Alternative Courses to Consider|
|CSE 311&312: Foundations of Computing I and II||Some of the concepts are covered in: Math 300, Phil 120, Stat 390 or 391, and E E 271|
|CSE 332: Data Abstractions||CSE 373|
|CSE 341: Programming Languages||CSE 413|
|CSE 351: The Hardware/Software Interface||CSE 410|
|CSE 352: Hardware Design and Implementation||CSE 410, E E 271 and E E 471|
|CSE 401: Introduction to Compiler Construction||CSE 413|
|CSE 421: Introduction to Algorithms||Math 381, CSE 417|
|CSE 451: Introduction to Operating Systems||CSE 410|
|CSE 461: Introduction to Computer Communication Networks||E E 461|
|CSE 471: Computer Design and Organization||E E 471|
|CSE 473: Introduction to Artificial Intelligence||CSE 415|
Here is how to enroll in an undergraduate class if you are a non-matriculated student (i.e., someone not currently enrolled as a student at UW):
- Contact UW Educational Outreach for non-degree enrollment.
- After completing the Educational Outreach "NM Student Registration Approval Form," turn it in to the Computer Science and Engineering undergraduate advisors. You can do this via fax (206-543-2969), email (firstname.lastname@example.org), or drop it off in the Paul G. Allen Center for Computer Science and Engineering, CSE 101. We will get it signed by both the department and the instructor. Please make sure to include your return fax number, email address, or indicate that you will pick it up in person from our office.
- Complete the Educational Outreach enrollment process according to the Educational Outreach instructions.
In rare cases, students may petition to take a majors-only CSE course. Please read the petition instructions carefully. If you are a non-matriculated student, your petition must be approved before the department will sign off on your registration forms.