Covers abstract data types and structures including dictionaries, balanced trees, hash tables, priority queues, and graphs; sorting; asymptotic analysis; fundamental graph algorithms including graph search, shortest path, and minimum spanning trees; multithreading and parallel algorithms; P and NP complexity classes. Prerequisites: CSE 311
This course will assume competency with Java programming (covered in the CSE12X or CSE14X sequence) and knowledge of several topics from Discrete Math (covered in CSE 311). In particular, we assume knowledge of:
We will use Java for programming assignments. We strongly recommend although will not require that you use the IntelliJ development environment. Links for downloading and installing Java and IntelliJ will be included with our first exercise.
(Optional) Data Structures and Algorithm Analysis in Java 3rd Ed., Mark Allen Weiss, Addison Wesley: 2012, ISBN-10: 0132576279. Our course calendar will list sections of the textbook that are most relevant to the topic discussed in class that day. You may find the textbook useful to clarify topics and find more examples as well as to examine Java implementations of the data structures and algorithms discussed during lecture. We will not be assigning problems from the textbook. A copy of the textbook is available at the Odegaard Library Reserves Desk. A copy of the second edition of the text will also work for most of the material we will cover.
We will use a set of free on-line notes for the material on parallelism and concurrency.
The Ed Discussion board should be your first stop for questions about course content and assignments. Before posting, first check that your question has not already been answered on the Discussion board, and if not, ask it there. If it is not possible to ask your question on the Discussion board without revealing details of your solution, please either use a private post on the Discussion board or send email to cse332-staff at cs.washington.edu, which will go to the instructor and TAs. In general we prefer that you send questions to the cse332-staff list instead of to an individual staff member so that you will get a faster response time and the entire staff can remain aware of questions and issues. Note that while we will try to respond to questions in a timely manner, we may not be able to respond to questions posted to the Ed Discussion board after 10pm until the next day.
We will use the "Announcements" category on the Ed Discussion board for class announcements. You will be expected to read messages in the Announcements category on Ed Discussion so be sure you are receiving email notifications for these posts.
Lectures will meet MWF 12:30-1:20pm in CSE2 G20 and 3:30-4:20pm in CSE2 G10. You should plan on attending the lecture you are registered for, although occasionally attending the other lecture will be fine as long as there is space. Attendance at lecture is strongly encouraged. If you are unable to attend a lecture, both lectures will be recorded (and live streamed) on Panopto and recordings will be posted in Canvas. Slides for lecture will be posted on the course calendar and on the lectures page, generally before lecture. Inked slides will be posted after lecture.
Sections will be held on Thursdays in rooms indicated on the course time schedule. Section attendance is strongly encouraged. You should plan on attending the section you are registered for. Occasionally attending another section should be fine as long as there is space. If you do this, please ask permission from the leading TA(s) and let them know you are present. Slides, and handouts for section will be posted on the course calendar and on the sections page. Sections will NOT be recorded as we want students to feel comfortable asking and answering questions in the smaller classroom environment.
Office Hours will be held throughout the week both in person and on Zoom. You may attend the office hours of any staff member, not just the TA who leads your section. A schedule of office hours and more information can be found on the office hours page.
Course Staff information can be found on the staff page.
Your learning in the course will be assessed via individual exercises, an in-person midterm exam, and an in-person cumulative final exam. We will also have a few surveys and other in-person activities that will contribute to a participation portion of your grade.
There will be a total of 13 individual exercises, which you will complete individually. You will have approximately a week to complete each exercise, with 2 exercises due several weeks. Often we will have more than one exercise at a time out for you to be working on, as our plan is to release exercises as soon as you could reasonably start making progress on them. Some exercises will involve programming in Java while others will be written assignments. Exercises will be posted on the exercise page and will be submitted to Gradescope.
Your 12 best-scoring exercises will be counted toward your grade. (Your lowest exercise score will be dropped, with the exception of exercise 12 which cannot be dropped.)
There will be an in-person midterm and an in-person cumulative final exam. The midterm exam is tentatively set for Wednesday October 29, 2025 in the late afternoon/evening, time & location TBA. The final exam will be Thursday December 11, 2025 12:30-2:20pm in KNE 120. More information about the midterm and final exam will be posted later.
Regrade Requests for exercises or exams, will be handled via Gradescope.
A small part of your grade will be determined by your participation in various parts of the course. These include:
You will have six late day tokens to use during the quarter for exercises. A late day token allows you to turn in an assignment up to 24 hours later without penalty. Simply submit late and we will keep track of your usage internally.
An exception is made for weekends, which count as a single late day. That is, if an assignment is due at 11:59 pm on Friday, submitting before Sunday at 11:59 pm counts as using only ONE late day (submitting by 11:59 pm on Monday would count as using TWO late days).
Regardless of how many late days you have, you cannot submit an assignment more than 2 days after it is due without prior permission from course staff.
If you run out of late days, you may still turn in an assignment late, at a penalty of 10% per day (but still may not turn in an assignment after the 2 day-late-deadline without prior permission from the course staff).
At the end of the quarter, we will apply late days to the first exercises turned in late, and late penalties to any remaining late submissions. Late penalties are applied before dropping exercises.
Late days are intended to help you manage your time and unexpected life circumstances; please save them for this purpose! Leftover late days will not contribute to your grade in any way. If there are extenuating circumstances that prevent you from submitting an assignment on time, you should discuss this with the instructor (preferably in advance).
Course grades will be computed approximately as follows (weights may be modified):
We expect all work you submit to be your own. However we believe you can learn a lot from discussing course concepts with others. When completing the exercises you should:
It should be obvious, but referring to solutions found on the web or solutions from this or other courses from previous quarters is considered cheating, as is requesting help with an assignment from an "interactive source" other than course staff. This includes pasting the questions from our exercises into search tools, requesting help on platforms like Chegg or Stackoverflow, or use of generative AI systems like Chat-GPT. We plan on running similarity-detection software over all submitted student assignments, including assignments from past quarters. Instructors are required to report violations of course policy to The Office of Community Standards & Student Conduct.
You may not utilize artificial intelligence or machine learning systems (e.g., Chat-GPT or copilot) on any assignments (this includes both programming and written exercises) in this course. That means you may not plug the homework problems into these systems (even if you later put the response in your own words), nor can you put a draft submission into the system to use the system for editing purposes. Both cutting and pasting parts of the assignment into these tools, and cutting and pasting the output of these tools into your solution are not allowed.
We want every student to succeed in this course. There are few university-wide accommodations in place to support you, please reach out to us with for other circumstances.
Disability Resources for Students (DRS) is a unit within the Division of Student Life and is dedicated to ensuring access and inclusion for all students with disabilities on the Seattle campus. They offer a wide range of services for students with disabilities that are individually designed and remove the need to reveal sensitive medical information to the course staff. If you have a medical need for extensions of assignment deadlines, these will only be granted through official documentation from DRS. Browse to this link to start the process as soon as possible to avoid delays.
You can refer to the university policies regarding Disability Accommodations for more information.
Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UW's policy, including more information about how to request an accommodation, is available at Religious Accommodations Policy. Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request form.
We recognize that our students come from varied backgrounds and can have widely-varying circumstances. If you have any unforeseen or extenuating circumstance that arise during the course, please do not hesitate to contact the instructor in office hours, via email, or private message board post to discuss your situation. The sooner we are made aware, the more easily these situations can be resolved. Extenuating circumstances include work-school balance, familial responsibilities, military duties, unexpected travel, or anything else beyond your control that may negatively impact your performance in the class.
Additionally, if at any point you are made to feel uncomfortable, disrespected, or excluded by a staff member or fellow student, please report the incident so that we may address the issue and maintain a supportive and inclusive learning environment. Should you feel uncomfortable bringing up an issue with a staff member directly, you may consider sending anonymous feedback or contacting the Office of the Ombud.