The Allen School has an extensive set of upper-division 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 rather than the course catalog.
The descriptions below do NOT describe our lower-division (100-level) courses. Those courses are described on our Introductory course page, which we STRONGLY recommend that you visit. Our upper-division courses have lower-division courses as prerequisites.
Upper-Division Non-Major Courses
These courses are specifically designed for students in other majors. While their content overlaps with courses for CSE majors as described below, they aim to have fewer prerequisites, are often broader in scope, and should complement the courses that students take in other majors.
If you are interested in taking an upper-division non-major course that is full, please note that we will no longer be maintaining overload lists for these courses. Sign up for NotifyUW to receive alerts when space becomes available in the class. We will try to adjust class sizes to meet demand as best we can. Graduate students are generally only allowed to register during Period II registration unless they are in a data science major that requires these courses.
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 adviser before taking a non-major course.
- CSE 373: Data Structures and Algorithms (typically offered every quarter, including Summer)
- CSE 374: Intermediate Programming Concepts and Tools (typically offered about twice per year)
- CSE 410: Computer Systems (typically offered alternating years)
- CSE 412: Introduction to Data Visualization (typically offered once or twice per year)
- CSE 413: Programming Languages & Their Implementation (typically offered alternating years)
- CSE 414: Introduction to Database Systems (typically offered every quarter)
- CSE 415: Introduction to Artificial Intelligence (typically offered twice per year)
- CSE 416/STAT 416: Introduction to Machine Learning (typically offered twice per year, once by Statistics and once by the Allen School)
- CSE 417: Algorithms and Computational Complexity (typically offered twice per year)
While there is not an exact correspondence between majors and non-majors courses, 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 Majors-Only Course | Alternative Courses to Consider | How a course applies to the CS or CE Degree |
---|---|---|
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 Structures & Parallelism | CSE 373 | CSE 373: Students will be required to take CSE 332 (and will not receive credit) even if they have CSE 373 prior to admission into the Allen School. |
CSE 333: Systems Programming | CSE 374 | CSE 374: will only be considered a Free Elective |
CSE 341: Programming Languages | CSE 413 | CSE 413: will be allowed to count as CSE Senior Elective, can not take 341 for credit if 413 completed. |
CSE 344: Introduction to Data Management | CSE 414 | CSE 414: considered equivalent to CSE 344 a major's course and will be allowed as a 300 level core course (does not apply to the 4, 400 level core courses) |
CSE 351: The Hardware/Software Interface | CSE 410 | CSE 410: Has not been offered in several years, currently only applies to Free Electives |
CSE 391: System and Software Tools | CSE 374 | See Above |
CSE 401: Introduction to Compiler Construction | No Equivalent | |
CSE 421: Introduction to Algorithms | Math 381, CSE 417 | CSE 417: Students can take CSE 421 after getting into the major, courses are similar but not enough overlap to preclude credit. If a student does NOT take CSE 421, they can petition their adviser to allow CSE 417 as a CSE Elective. If a student opts to take 421, they will receive credit but 417 will only be considered a Free Elective. |
CSE 442: Data Visualization | CSE 412 | CSE 412: Currently CSE 412 can be used in place of CSE 442 as a CSE 400 level Core Course. |
CSE 446: Machine Learning | CSE 416 | CSE 416: Students can take CSE 446 after getting into the major and will still receive credit. CSE 446 is a substantially more advanced and rigorous course that is a better fit for CSE majors. CSE 416 will apply to general electives by default. If a student does NOT take CSE 446, they can petition their adviser to allow CSE 416 as a CSE Elective as they near graduation. If a student opts to take 446 after 416, 416 will only be considered a Free Elective. |
CSE 451: Introduction to Operating Systems | CSE 410 | See Above |
CSE 461: Introduction to Computer Communication Networks | E E 461 | |
CSE 473: Introduction to Artificial Intelligence | CSE 415 | CSE 415: will be allowed to count as CSE Elective, students cannot take 473 for credit if 415 completed. |
Non-Matriculated Students
If you are a non-matriculated student (i.e., someone not currently enrolled as a student at UW) interested in taking any of our non-major courses please follow the instructions below. If you are interested in taking any of our majors-only courses please follow these petition guidelines. If granted a spot in a majors-only course our advising team will work with you to complete the required paperwork outlined below.
- 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 advisers. You can do this via fax (206-543-2969), email (ugrad-adviser@cs.washington.edu), or drop it off at the CSE Advising Office in the Bill & Melinda Gates Center for Computer Science and Engineering, CSE2 170. We will get the form 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.
Please contact an adviser if you have any questions about taking CSE coursework as a non-matriculated student.