Majors: The CS and CE programs each require 180 total credits to graduate. Students will need to fulfill a General Education component, a Mathematics and Science component, and a Computer (Science or Engineering) component that consists of required classes and senior electives. Please refer to our guidelines below.
Pre-Majors: If you plan to apply to be a CS or CE major, refer to our guidelines below. If you are interested in taking a majors-only course please look here for more information.
Non-Majors: If you are interested in taking CSE course please look here for more information.
Non-Matriculated Students: If you are interested in taking CSE coursework please look here for more information.
One of the most important things to know about the CSE registration process is how to get advice and help from Allen School advisers. CSE advisers can help you plan your courses, connect with resources, and provide general advice.
Our most common advice for CSE majors is:
- Plan a balanced schedule. Prepare yourself for a good academic experience and strong grades by planning a manageable schedule with a good mix of courses. We recommend two math/science/CSE courses per quarter, plus one non-math/science/CSE course, such as a VLPA or I&S requirement. If you hope to take on heavier schedules, such as three CSE courses or four total courses, build up to this heavy workload after a strong quarter in lighter schedule. Remember that it's easier to ramp up your workload over time than to recover from a quarter in which you've taken on too much.
- Plan for the amount of work in a course, not the number of credits. Most CSE majors take 12-15 credits per quarter, occasionally more. The number of credits does not always reflect the workload: A 4-credit CSE course or a 3-credit Math course will often require more work than many 5-credit courses.
- Plan ahead. Use MyPlan (available on MyUW) to draft a 2-, 3-, or 4-year plan, then send it to a CSE adviser for feedback. We can note any missing requirements, mixed-up prereqs, or other scheduling issues, and we can discuss how to fit in extra-curricular activities -- TAing, research, study abroad, etc. Planning ahead will help you form a better picture of your goals an opportunities, and avoid issues.
- Study resourcefully. UW and CSE provide lots of academic aids. Get help before you need it. Visit your professors and TAs during Office Hours. Collaborate with classmates in the undergrad labs. Email the CSE advisers about tutoring groups if you want extra study help in 300- and 400-level CSE classes. For introductory courses, the Intro Programming Labs (IPL), the Math Study Center, and CLUE are all great resources.
Before You Register
If you plan to apply to CSE, your first goal is to complete the prerequisites while working on general requirements and exploring related majors. Review our full degree requirements and our admissions application guidelines.
New CSE Majors
Welcome to the Allen School! You can register for CSE major courses after you are coded as a CS or CE major (instructions on the new majors orientation page). We do not require new students to take a CSE course their first quarter in the major; however, beginning your second quarter, our CSE Satisfactory Progress Policy requires at least one CSE course per quarter. Consider the following classes for your first quarters:
- CSE 311: Foundations I: This is a discrete math/logic course with little coding. 311 is a prerequisite for 332 (Data Abstractions) and 312 (Foundations of Computing II). All new students should take 311 in their first quarter if possible.
- CSE 331: Software Design and Implementation: A coding-oriented class, required for CS and recommended for CE. This is a fine class to take your first, second or third quarter in the class. It's valuable before internships.
- CSE 351: Hardware/Software Interface: A coding-oriented class. CE majors should take it in their first quarter, and many CS majors should consider it for their first quarter. CSE 351 focuses on how computer programs actually run on CPUs. You should take CSE 391 (a 1-cr class) concurrently.
- CSE 391: System and Software Tools: A 1-credit seminar introducing important tools for future CSE courses. You should take this with or before CSE 351. Since this is only a 1-credit seminar, most people take this in addition to two "real" CSE courses.
- CSE 340: Interactive Systems: An exciting new elective that counts toward the CSE core courses.
- CSE 341: Programming Languages: An elective that counts toward the CSE core courses. Most CSE majors take this! Not offered every quarter.
Computer Engineering majors may also consider:
- EE 205: Introduction to Signal Conditioning: CE majors can take 215 instead if the timing of 205 does not fit your schedule, but 205 is strongly preferred.
Links for planning your CSE curriculum:
- CSE Teaching Schedule for long-term planning
- Full CSE Degree Requirements, including links to curriculum and electives lists
- Suggested Course Pathways to prepare for industry and graduate school
- CSE Satisfactory Progress Policy to understand expectations
Registering for full CSE courses:
Please do not contact faculty directly unless instructed by an adviser for special permissions. If you are interested in taking a 300-level or 400-level course that is full, please note that we will no longer be maintaining overload lists for these courses. Here are some actions you can take if desired classes are full:
- Register on NotifyUW to get an alert if space opens in the course and attend the first week to try and keep up in the course in case you do get a spot. We will monitor demand on NotifyUW and try to add more space when needed.
- Register for back-up courses in case you can't get into your first choice.
- If you are a senior, file for graduation to get Graduating Senior Priority during your registration. After filing, you will get two quarters of priority registration which will allow you to register before anyone else (including other seniors who have not yet filed for graduation).
- If you have trouble registering due to prerequisites, contact an adviser for assistance.
- If you think you will not be able to graduate due to scheduling issues, contact an adviser.