Course Information

Teaching Staff

Instructor: Brett Wortzman

Instructor Email: brettwo@cs.washington.edu

Registration Questions: CSE Advisers (ugrad-adviser@cs.washington.edu)

Course Staff and Support Hours: Course Staff and Office Hours

To ensure the security of your personal information and to comply with federal privacy regulations, all communication related to this course should be conducted through either the EdStem platform or via your UW-issued email address. Personal email addresses should not be used for course-related correspondence.

Who to contact?

Here are some common types of questions and the best place to ask them to get the fastest and most accurate response.

  • Registration questions? Email the CSE advisers as the course staff do not have access to add codes.
  • Questions about course concepts? Visit office hours in the Introductory Programming Lab (IPL), instructor office hours, or post on the Ed Discussion board (more info below)
  • Questions about assignments? Visit office hours in the Introductory Programming Lab (IPL), instructor office hours, or post on the Ed Discussion board (more info below)
  • Questions about extenuating circumstances? Post privately on the Ed Discussion board (more info below) or email Brett at brettwo@cs.washington.edu

Class Session Meeting

See Class Sessions for information on how each day of class will be run.

  • A Lecture: WF 12:30pm - 2:20pm (ARC 147)
  • B Lecture: WF 2:30pm - 3:20pm (BAG 131)

Other Info

Course Goals

Computing continues to play an ever-increasing role in today’s society. Having an understanding of computing is an essential skill for those in the 21st century; from working in industries more reliant on technology, using computational methods to further scientific understanding, or being an informed citizen in a world with technology all around us.

This course is a second-level course in computer programming focused on the use of data structures and object-oriented programming. It assumes students have already taken a first course in some computer language and understand fundamental computing concepts such as control structures (loops and conditionals), variables and data, and arrays.

In this course, students will learn:

  1. How to solve complex problems by decomposing them into smaller programming tasks, and assess the design trade-offs of particular solutions to these problems.
  2. The use of data structures such as lists, dictionaries, and sets to efficiently solve computational problems.
  3. Fundamental concepts in designing objected oriented programs to ensure abstraction between the interface of something and its implementation.

Learning Objectives

CSE 122 is designed around a set of 10 learning objectives. At the end of the course, successful students will be able to do the following:

  1. Create an algorithm to solve a given problem and express that algorithm in a structured way (e.g. pseudocode).
  2. Decompose a problem into smaller subproblems that can be composed to give a solution to the full problem.
  3. Trace and predict the behavior and state of a Java program that includes complex and/or compound data through its execution.
  4. Produce functionally correct and maintainable Java code using input and output from the console and text files, compound data types, and object-oriented programming that meets a provided specification and conforms to provided guidelines for style and implementation.
  5. Select and apply appropriate data structures to manage and manipulate data for a given problem.
  6. Define relationships between Java classes using interfaces and references.
  7. Clearly and effectively describe and document the behavior of a Java program and/or class.
  8. Identify and enumerate a set of inputs or tests that are sufficient to determine the correctness of a program or class.
  9. Identify and fix errors in a program’s state or behavior.
  10. Describe ethical and sociotechnical issues related to software and technology and explain how their choices as programmers can impact those issues.

Course Climate

Inclusion

All students are welcome in CSE 122 and are entitled to be treated respectfully by both classmates and the course staff. We strive to create a challenging but inclusive environment that is conducive to learning for all students. If at any time you feel that you are not experiencing an inclusive environment, or you are made to feel uncomfortable, disrespected, or excluded, please report the incident so that we may address the issue and maintain a supportive and inclusive learning environment. You may contact the course staff or the CSE academic advisors to express your concerns. Should you feel uncomfortable bringing up an issue with a staff member directly, you may also consider sending anonymous feedback or contacting the UW Office of the Ombud.

Extenuating Circumstances: “Don’t Suffer in Silence”

We recognize that our students come from varied backgrounds and can have widely-varying circumstances. We also acknowledge that the circumstances of this particular quarter may bring unique challenges. If you have any unforeseen circumstances that arise during the course, please do not hesitate to contact the course staff or the instructor to discuss your situation. The sooner we are made aware, the more easily we can provide accommodations.

Typically, extenuating circumstances include work-school balance, familial responsibilities, health concerns, or anything else beyond your control that may negatively impact your performance in the class. Additionally, while some amount of “productive struggle” is healthy for learning, you should ask the course staff for help if you have been stuck on an issue for a very long time.

Life happens! While our focus is providing an excellent educational environment, our course does not exist in a vacuum. Our ultimate goal as a course staff is to provide you with the ability to be successful, and we encourage you to work with us to make that happen.

Disabilities

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

DRS Instructions for Students

If you have already established accommodations with DRS, please communicate your approved accommodations to the lecturer 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.

Software and Textbooks

Most of this course will be run on EdStem - this includes readings, notes, exercises, and assignments. You can develop your programs in EdStem itself (online), or set up an environment to work directly on your device.

For more details, visit the software setup page.

There is no required textbook for CSE 122. All of our readings are available for free on Ed. If you would like a textbook as an additonal resource, we recommend Building Java Programs by Reges and Stepp (5th Edition).

Note on the textbook

Note that while this is an excellent textbook and includes all topics covered in CSE 122, some topics may appear in a different order than we cover in class. We will put references to relevant chapters of the book on the course website for students who are interested in seeing another perpsective on these concepts. The 3rd and 4th editions of the textbook are also reasonable if you already own them or can acquire them more easily. We are not aware of a digital version of the textbook.

Class Sessions and Quiz Sections

Class Sessions

To best support your learning in CSE 122 this quarter, we will be using a hybrid classroom model. This will mean our class time will be a mix of time for lecture and time for students to collaboratively work on activities. Time in class spent on students actively participating in their learning has been shown numerous times to improve learning outcomes for students. (Email the instructor if you’re interested in reading about these studies.)

To ensure there is time in class for these opportunities for active practice, we will also ask you to prepare to come to class each day by completing a pre-class activity each day of class. The readings will have a mix of reading slides (often complemented by a video) and questions to let you practice the material you read. The readings/exercises should take about 30 minutes and should be completed before class for that day. The class sessions will begin where the pre-class reading left off after a brief review of the reading.

Why is active participation important?

In a “traditional classroom” model you go to a classroom and a teacher will lecture at you until the end of the session, and then you go home and do the hard work of actually trying to apply that material on practice problems or an assignment. Here are two things that are likely true about “traditional classroom” model:

  1. It is probably familiar to you.
  2. It is probably familiar to most of your instructors (it’s how they learned, so it must work, right?).

Notice this list does not contain “effective for student learning”. Unfortunately for the “traditional classroom” model, most evidence has shown that it’s quite ineffective of achieving that goal!

Think of learning programming (or any skill for that matter) like learning how to ride a bike. How many people know how to ride a bike? Quite a few. How many of them do you think learned how to ride a bike by going to a lecture hall two times a week and then a quiz section twice a week listening to someone explain how to ride a bike? Probably no one! Because that’s obviously not learning how riding a bike works! To learn how to ride a bike, you have to actually go out there and ride the bike!

In more general terms, this means learning some concept or some skill requires active participation in the learning process from the students, most commonly accomplished by deliberate practice and learning by doing. Sitting passively in a lecture listening to someone talk fails at accomplishing this fundamental aspect of learning.

The hybrid classroom model is built around fostering an environment for effective practice. Instead of coming to lecture to hear Brett talk about some idea and then trying to go practice the idea at home (a much harder task), we try to flip that model around. You will read and watch videos about the concept first (at your own pace) and then come to our class session to work with your classmates, the TAs, and Brett on practicing that skill. This has the added benefit of collaborative learning where you can work with your peers to construct a working knowledge of the things you saw from the lesson earlier.

It’s okay if the readings don’t make perfect sense the first time you read them! Learning is a process that takes time and work, and revisiting a topic is very important. Things you find confusing in the reading are great things to start off asking questions about on the course message board, in class, or in quiz sections.

A normal day of class will be composed of a short recap of the lesson you read before class and alternating time for group work and discussing applications of those concepts as a whole class. Class sessions will be recorded so students who cannot attend can view them later. We do not take attendance, but expect students to be attending to participate in in-class activities, or watching the recordings in the off-chance they can’t attend class.

Quiz Sections

Quiz sections are smaller, TA-run sessions where students work in groups on practice problems and review concepts from the previous day’s class session.

Quiz sections meet on Tuesdays/Thursdays according to the time you registered for. You should attend the quiz section you are registered for in order to be eligible for section credit (more details below).

Quiz sections will not be recorded. Instead, the course staff will post all materials used in section on the course website and will also occasionally post helpful videos covering some of the topics covered in section that day.

Illness

If you are sick, stay home! See all the resources outlined in Class Sessions and Quiz Sections for how you can get caught-up on missed live sessions. Any required in-person requirements will have make-up opportunities for students who are sick. You will not be penalized for staying home and keeping our community safe.

Required Course Work

Types of Assignments

There will be four types of course work assigned in CSE 122:

Pre-class Work (daily, ~16 total)

Short assignments consisting of readings, tutorials, and practice problems for new concepts that will be discussed in the corresponding lesson. Generally, these assignments will be your first introduction to a concept, and we will expect that you have completed the work prior to class. Note that, while we not explicitly review the topics covered in pre-class work during class, we do not expect you to fully master the material just from these assignments– that will take additional instruction and practice in class.

Projects (~biweekly, 4 total)

Medium to large programming assignments that will allow you to practice with the skills and concepts covered in class. While projects will typically emphasize content introduced shortly before their release, they will often integrate content from earlier in the course as well. Projects are completed outside of class and will have very permissive policies for collaboration and tool usage (including AI).

Computer Quizzes (~biweekly, 4 total)

Collections of shorter problems completed on a computer that will expand upon, either directly or thematically, a recent project. On some problems, students will start from their submission for the related project; others may require students to start from scratch or from provided code. Computer quizzes will generally focus on programming and debugging skills, but may assess any course learning objectives. Computer quizzes will not allow the use of AI or other tools or resources outside of the quiz environment. Computer quizzes will be proctored, will be 45 minutes long and will be taken outside of normal classtime. (More details on how to schedule computer quizzes will be announced soon.)

Paper Quizzes (~biweekly, 4 total)

Collections of shorter problems completed on paper without the use of a computer or other electronics. Paper quiz problems will assess a variety of skills, including but not limited to code tracing, code comprehension, understanding of course concepts, and communication/documentation. Each paper quiz will generally focus on content introduced since the last quiz, but may include any content previously covered. Paper quizzes will be proctored, will be 45 minutes long; the first three will be taken during your quiz section on scheduled days, and the fourth will be during the final exam period.

Additional Graded Elements

In addition, there will be two more elements of the course that contribute to your grade:

Code Quality

Work on computer quizzes will be assessed for alignment with our Code Quality and Commenting guidelines. Code quality will be evaluated on three dimensions: * Naming/Formatting * Use of Concepts * Commenting/Documentation

Feedback will be given on the code quality throughout the quarter, culminating in a single set of three (3) code quality grades, one per dimension, at the end of the course.

Participation

Students are expected to enagage with all aspects of the course. Course participation will be evaluated based a combination of completing pre-class work and attending and participating in section. To earn an E for participation, students will need to participate in at least 80% of the total pre-class work and sections; to earn an S, students will need to participate in at least 70% of these activities.

Late Work and Extensions

In general, work submitted after the required deadline will not be accepted. If you have extenuating circumstances that may necessitate an extension, make-up, or other accommodation, you must reach out to Brett before the deadline to discuss options. Retroactive extensions and make-ups will only be granted in the most extreme of circumstances.

Please see the policy on Extenuating Circumstances for more information.

Computer Quiz Retake and Paper Quiz Overriding Policy

Learning from mistakes is an important part of mastering any skill, especially for novices. To support this, we support Computer Quiz Retake and Paper Quiz Overriding policies:

  • Computer Quiz Retake: Near the end of the quarter, there will be one (1) opportunity for students to resubmit their work for a project and retake the corresponding computer quiz. By default, these updated grades will completely replace the previous grades for that project and computer quiz.
  • Paper Quiz Overriding: As part of the final exam period, there will be an opportunity to override a problem grade from each of the previous paper quizzes (Paper Quiz 0, 1, and 2).

Getting Help from Staff & Peers

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! Learning is not something that you need to do alone though! In fact, connecting with your peers or asking a member of the course staff for help can add extreme depth to your knowledge.

  • Synchronous Help (Office Hours): One place to go to get help is our Office Hours hosted throughout the week. TAs staff office hours for many hours a day to provide you the help you need when you need it! This is a great place to go if you want to review a particular course concept, work on a practice problem with the help of a TA or your peers, or get help on a Creative Project or Programming Assignment if you are running into difficulties.

    Tip

    A common misconception is that you can only go to office hours with specific homework questions. That is not true! If you have any questions about course concepts (e.g., from class that day), you are super encouraged to go work on that concept with a member of the course staff at office hours! Getting help with a concept earlier, when you first are feeling unsure, is much better than saving it until you need it on the homework.

  • Asynchronous Help (Ed Discussion): With a class of our size, directly emailing a member of the course staff is not always recommended. There are many of you and only few of us, so if you email one person directly we can’t make a guarantee how quickly we can respond! To alleviate this one-on-one communication of email, we have a course discussion board that will be a much more lively place for discussion and a way to make sure you can are helped more quickly. The message board is set up so that all of the course staff can help you, which will make it more likely for you to receive a quicker response!

Ed Tips

  • If you are asking a general question about the course logistics or content, you can make a public post. This way other students can benefit from seeing your question, and you can even answer each other’s questions to share your perspectives!
    • If you want, you can choose to post anonymously so that other students in the course can’t see your name. Note that anonymous posting does not hide your identity from the course staff.
  • You’re encouraged to answer each other’s questions as well! Explaining a topic to someone else (even on a discussion board) is a great way to help you better understand the material. The course staff will still look over student answers and can nicely point out some misconception if there is one so that everyone benefits.
  • If you have a question that’s pretty specific to your homework solution, or, is about some personal details that you would not want to share with the class (e.g., DRS accommodations), you can make a private post on Ed that is only visible to the course staff. This way, any member of the staff can respond to get you the help you need!
  • For sensitive matters that you only want to discuss with Brett, you can instead email Brett if that makes you feel more comfortable or schedule a 1-on-1 meeting with them. Note that the response time for the instructors’ email is longer than posting on the Ed board.

Grades

Grading Scale

Work in CSE 122 will be graded using the following scale:

Grade Description
E
Excellent
Evidence of meeting or exceeding all learning objectives is present. Work has only trivial or inconsequential flaws, if any. Little to no room left to improve understanding.
S
Satisfactory
Evidence of meeting most or all learning objectives is present. Work includes minor errors or inconsistencies, but no significant shortcomings. Understanding could potentially be improved, but demonstrated proficiency is acceptable.
N
Not yet
Evidence of meeting some learning objectives is present, but there are significant gaps and/or evidence of not yet meeting other learning objectives. Demonstrated understanding needs further development to meet expectations.

It is important to note that, under this system, it is the work that is assessed as a proxy for the student. This is an imperfect system, but is necessary to manage a course of the size and scale of CSE 122. It is in your best interest to ensure that your work accurately reflects your proficiency by being careful and diligent in following instructions, meeting deadlines, and understanding requirements.

On occasion, a grade of U (Unassessable) may be given for work that does not enable a proper assessment of the assignment’s learning goals. This may include, but is not limited to work that violates major course rules as outlined in the syllabus.

Grading Schemes

Grades will be assigned to work in CSE 122 as follows:

  • Projects: Each project will be assigned one (1) ESN grade.
  • Computer Quizzes/Paper Quizzes: Each quiz will consist of four (4) problems, and each problem will be assigned one (1) ESN grade.
  • Code Quality: There will be three (3) ESN grades assigned for code quality, one (1) in each of the following dimensions:
    • Naming/Formatting
    • Use of Concepts
    • Commenting/Documentation
  • Participation: There will be one (1) ESN grade assigned for course participation.

There will be forty (40) total ESN grades available, broken down as follows:

Category Count ESN grades per Total ESN grades
Projects 4 1 4
Computer Quizzes 4 4 (1 per problem) 16
Paper Quizzes 4 4 (1 per problem) 16
Code Quality 3 1 3
Participation 1 1 1
Total 40

Final Course Grades

Notation

S+ indicates S or E. For example, for a minimum of 2.5 in the table below, you need both at least 14 Es and at least 6 additional combined Ss and Es on assignments (i.e., at least 20 combined Ss and Es, of which at least 14 are Es), as well as at least 12 Es and at least 6 additional combined Ss and Es on quizzes/exams (i.e., at least 18 combined Ss and Es, of which at least 12 are Es).

Course grades will be computed as follows:

  1. Base grade: Identify the highest minimum grade for which the student meets all requirements (see below).
  2. Additional S+’s and E’s: Count the number of additional S+’s and E’s beyond the requirements for the base grade identified in the previous step.
  3. Adjustment: Multiply each of the above counts by a multiplier and add the result to the base grade. Additional S+’s and E’s may each use a different multiplier. These multipliers will be determined by the course staff at the end of the quarter and will not be published.

Minimum requirements for each grade are below. Note that all requirements for a particular grade must be met to guarantee that minimum, though failing to do so does not mean that grade cannot be earned.

Minimum Grade Requirements
Total ESN available 40
3.5 32 Es AND 3 additional S+
3.0 24 Es AND 8 additional S+
2.5 16 Es AND 13 additional S+
2.0 8 Es AND 18 additional S+
1.5 18 S+
0.7 10 S+

To be guaranteed a particular minimum grade, all requirements for that grade must be met. Failing to meet any of the requirements for a particular minimum grade does not preclude the possibility of receiving that grade, but does mean that grade cannot be guaranteed. Estimates of students’ final grades beyond the requirements listed above will not be provided before final grades are released.

Students who are found responsible for violating the course’s Collaboration, AI Usage, and Academic Honesty policy will receive a maximum grade of 2.5. Students who are found responsible for violating the course’s Collaboration, AI Usage, and Academic Honesty policy in multiple, independent cases may receive a course grade of 0.0.

Collaboration, AI Usage, and Academic Honesty

Collaboration and AI will both have a place in your CS education and career, but we believe that it is vital to develop foundational programming and reasoning skills as an individual.

Comprehending how someone else solved a real world problem using code is significantly different from exercising the skill of translating a real world problem into code that models and enables solving the problem. In addition, AI tools are capable of generating code in many settings, but there is still enormous value in learning the fundamentals of programming. The ability to understand, modify, and trace through unfamiliar code remains vital in working with programs (AI-generated or otherwise), and developing these skills occurs by beginning to work with simple problems that AI tools can already solve.

Collaboration Policy

  • Students are encouraged to work together and learn from each other in class, on practice problems, and on ungraded work.
  • Students are free to collaborate however they like on projects. All collaboration must be documented by all collaborators, and should be conducted in a way that it is comfortable for all involved.
  • Students may not collaborate in any way on computer quizzes or paper quizzes. This prohibition includes, but is not limited to:
  • collaboratively developing answers during the quiz
  • sharing information about a quiz with another student while the quiz period is still open, or when the student has not yet taken the quiz.

AI Usage Policy

The icon for the Allen School ‘AI for Support and Growth’ policy. The letters AI in the center of a microchip-like image embedded in the ground beneath a sprouting plant. CSE 122 will utilize the “AI for Support and Growth” Allen School AI Policy, with projects as the only authorized graded work.

This policy is summarized as:

  • Students may use AI for general questions and to support their learning through explaining concepts and generating examples.
  • Students may use AI freely on ungraded work (e.g. practice problems in lecture and section).
  • Students may use AI freely on projects.
  • Students may not use AI on computer quizzes or paper quizzes.

Be sure to read the full policy for more details.

Violations and Consequences

All potential violations of this policy will be reported to the office of Community Standards & Student Conduct for formal investigation. Students found responsible for violations will receive no credit for the assignment(s) on which the policy was violated. Additional penalties may be applied for egregious or repeated cases.

In addition, students who are found responsible for violating the course’s Collaboration, AI Usage, and Academic Honesty policy will not be eligible to receive a course grade higher than 2.5, regardless of performance on other assignments. Students who are found responsible for violating the policy after having previously received a notification of a policy violation from the course staff may receive a course grade of 0.0.