Syllabus

Course Information

CSE 373 covers the theoretical and conceptual foundations of common data structures and algorithms. Specific technical topics we will cover include:

To a lesser extent, this course will provide opportunities to gain basic familiarity with techniques and tools used in the software industry. In particular, you will be asked to:

These skills were chosen to set you up for success in a software-related role. In fact, this course is typically regarded as useful preparation for technical interviews and a subsequent industry career.

Course Components and Late Policy

Grading

The grade breakdown is as follows:

Assignments: Written Homeworks

We have 7 homeworks, with due dates approximately every week. They assess a variety of skills, including simple coding, theory, and societal impacts. Homeworks must be submitted individually, but collaboration is permitted while working on them, subject to the guidelines below. Homeworks are always due Thursdays at 9pm.

Assignments: Programming Projects

We have 5 programming projects, with due dates approximately every other week. They are primarily intended to expose you to the techniques and tools used in the software industry, and secondarily to give you practice with the data structures and algorithms we discuss in class. One of those techniques include pair programming; you will have the option to work with a single partner and make a single submission for the two of you.

A programming project is graded in two different ways: (1) manually and (2) with the assistance of an autograder. The manual grading focuses on higher-level skills such as debugging and analysis, and is graded by the course staff only once. The autograder, however, focuses on your code's correctness, as determined by a series of automated tests (some of which are private to the course staff), and you can initiate autograder testing on your code at any point and as often as you like. We recommend submitting early and often, to early receive feedback but also to "lock in" a "good enough" grade in case your code should suffer a catastrophic last-minute failure or you become unavailable immediately before a deadline.

Many students tend to fixate on perfecting their autograder score rather than the purpose of the programming projects, which is familiarity with tools. We remind students that these projects' collective weight in your course grade is the smallest of the major categories, and to budget your time accordingly. For example, if you were to spend 10h to get the "last 20 points" of a programming project, you might find that it is the this quarter's most inefficient use of your time with us.

Lecture Activities

Our lectures have a variety of in-class activities, containing before- and in-class thought questions designed to enhance the day's topics and to promote active learning. These are administered using PollEverywhere. Since they are intended to be low-pressure, you will receive credit for attempting the activity (ie, your answer can be incorrect). These are due immediately after lecture.

Exams

We will have 2 midterm exams and one final exam. All exams will be administered in the regular lecture hall at their regularly-scheduled times (ie, midterms will be held during the lecture period, and the final exam will be held according to the university-wide schedule).

Late Policy and Adjusted Denominators

We expect all assignments to be submitted on time and, for that reason, we apply the following late penalties at the end of the quarter to all assignments (ie, to both written homeworks and programmming projects):

For example:

For lecture participation, we will adjust the course grade's denominator down by 20%. For example, if we offered 90 activities over the quarter and you attempted 85 of them, the denominator would be 72=90*80% and you would receive a grade of 85/72 for participation. Any answers above the denominator may be applied, at the instructor's discretion, towards extra credit.

Please note that this policy is designed for quotidian events; if you have truly exceptional circumstances or need further accommodations, please contact the course staff as soon as possible to arrange an appropriate strategy for completing your work.

Course Norms and Policies

Climate

Our code and our projects are made better by considering a variety of viewpoints. Each student's experiences and abilities are essential to creating a thriving learning community, and you are expected to uphold a supportive and inclusive learning environment.

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 & inclusive learning environment. Should you feel uncomfortable bringing up an issue with a staff member directly, consider submitting anonymous feedback, talking with the CSE academic advisors, or contacting the Office of the Ombud.

Collaborating with Humans

Learning these ideas is challenging. We encourage you to discuss specific problems from this class with your friends and classmates as you are working on them, because you WILL learn more in this class if you work with others than if you do not. Ask questions, answer questions, and share ideas liberally; we want a class that is open, welcoming, and collaborative, where we can help each other build the highest possible understanding of the course material.

Interesting computer science, the type of science which makes news and changes lives, are done by teams of technologists working in collaboration; we intend to create a similar climate in this class. When working on lecture activities, homeworks, and projects, you should ensure each member of your group is treated with respect and can make a contribution to the final solution.

Cheating with Humans

Alas, students sometimes confuse collaboration with cheating. We want to be clear that learning collaboratively is different from sharing answers. Ultimately, the difference between collaboration and sharing answers boils down to "whose brain generated the materials I submitted for grading?". If the answer is "me", then you learned from your collaboration; that’s great! Please do more of that! Go you!! However, if the answer is "my collaborator", then you were sharing answers; please don't do that.

A healthy collaboration resembles this:

The icon for the Allen School ‘AI as a Reference Tool’ policy. The letters AI in the center of a microchip-like image on a page that is being viewed by a magnifying glass.Working with AI

This course uses the Allen School "AI as Reference Tool" policy. In brief: you may use AI for general course questions and ungraded work, but not for graded assignments, quizzes, exams, or any deliverable that counts toward your grade. Read the full policy carefully so you understand what counts as general support versus graded work.

Additional Policies

The guidelines for this course and more information about academic integrity are in separate documents (including, but not limited to, the Allen School's Academic Misconduct Page and the College of Engineering's Academic Misconduct Process). YOU are responsible for knowing and applying the information in these documents.

Special Circumstances

Disabilities and Health Conditions

Your experience in this class should not be negatively-affected by any disabilities or health conditions you have. The Disability Resources for Students (DRS) office can help you establish accommodations with the course staff.

If you have already established accommodations with DRS, please communicate your approved accommodations to the instructor at your earliest convenience so we can discuss your needs in this course.

If you have not yet established services through DRS, but have a temporary health condition or permanent disability that requires accommodations (conditions include but not limited to: mental health, attention-related, learning, vision, hearing, physical or health impacts), you are welcome to contact DRS. DRS offers resources and coordinates reasonable accommodations for students with disabilities and/or temporary health conditions.

Reasonable accommodations are established through an interactive process between you, your lecturer(s) and DRS. It is the policy and practice of the University of Washington to create inclusive and accessible learning environments consistent with federal and state law.

Religious Accommodations

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.

Extenuating Circumstances: "Don't Suffer in Silence"

More generally, we recognize that our students come from varied backgrounds and can have widely-varying circumstances. If you have an unforeseen circumstance that arises during the course, please do not hesitate to contact the staff to discuss your situation. The sooner we are made aware, the more easily these situations can be resolved. Extenuating circumstances may include:

While some amount of "productive struggle" is healthy for learning, you should ask the course staff for help if you've been stuck on an issue for a very time.

Resources

Having questions or getting stuck on something is entirely expected in the learning process. If you find something challenging with your studies, that is a sign you are learning! However, learning is not something that you need to do alone; connecting with your peers or asking a member of the course staff for help can get you unstuck and even add depth to your knowledge.

Support Hours and One-on-Ones

If you have conceptual questions or need assistance debugging your assignments, we strongly recommend attending support hours. A common misconception is that these are somehow "reserved" for specific homework questions. This is not true! Support hours are a great resource for clarifying concepts and meeting students with similar issues, too.

We recognize that not every question is appropriate for support hours, however. For example, you may wish to discuss your extenuating circumstances, need support/advice for a personal issue, or have followup questions from a previous support hour. In these circumstances, we recommend requesting a one-on-one.

Ed

We are using Ed for discussion and announcements. This includes both private "staff-only" discussion and public class-wide discussion.

Gradescope

We are using Gradescope for homeworks and lecture activities. This is the authoritative copy of your scores; we will not copy scores into Canvas.

Anonymous Feedback

You can send fully-anonymous feedback to Hannah via this form; note that she cannot respond to your concerns directly.