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:

We STRONGLY recommend that you visit our Introductory course page for detailed information on all the classes listed below.

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 and Computer Engineering or Math) is shown below.

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 advisor before taking a non-major course.

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 CourseAlternative Courses to Consider
CSE 311&312: Foundations of Computing I and IISome of the concepts are covered in: Math 300, Phil 120, Stat 390 or 391, and E E 271
CSE 332: Data AbstractionsCSE 373
CSE 341: Programming LanguagesCSE 413
CSE 351: The Hardware/Software InterfaceCSE 410
CSE 401: Introduction to Compiler ConstructionCSE 413
CSE 421: Introduction to AlgorithmsMath 381, CSE 417
CSE 442: Data VisualizationCSE 412
CSE 446: Machine LearningCSE 416
CSE 451: Introduction to Operating SystemsCSE 410
CSE 461: Introduction to Computer Communication NetworksE E 461
CSE 471: Computer Design and OrganizationE E 471
CSE 473: Introduction to Artificial IntelligenceCSE 415

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.

  1. Contact UW Educational Outreach for non-degree enrollment.
  2. 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 (, 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.
  3. 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.