CSE 143, Winter 2021: Syllabus

CSE 143: Intro. to Computer Programming II

Note: All times on this website are listed in PDT (local time in Seattle). You can use this page or Google to convert times to your local time zone.

Teaching staff:

  • Instructor: Brett Wortzman (brettwo@cs.washington.edu)
  • Course Administrator: Pim Lustig (cse143@uw.edu)
    Pim is your best resource for registration questions such as obtaining add codes, switching sections, or changing to or from S/NS grading.
  • Course staff and office hours: Full list here

All course meetings will be conducted via Zoom.

  • MWF 12:30pm-1:20pm (A Lecture)
  • MWF 2:30pm-3:20pm (B Lecture)


Course overview

This course is a continuation of CSE 142. While CSE 142 focused on control issues (loops, conditionals, methods, parameter passing, etc.), CSE 143 focuses on data issues. Topics include: abstract data types (ADTs), lists, stacks, queues, linked lists, binary trees, recursion, interfaces, inheritance, and encapsulation. The course also introduces the notion of complexity and performance trade-offs in examining classic algorithms such as sorting and searching and classic data structures such as lists, sets, and maps. The course will include a mixture of implementing data structure and using components from the Java Collections Framework.

Learning objectives

CSE 143 is organized around five key learning objectives. At the end of the course, students will be able to do the following:
  1. Functionality/Behavior: Write functionally correct and efficient Java programs and systems of medium to large length and complexity that meet a provided specification and/or solve a specified problem
  2. Comprehension: Trace and predict the behavior of programs and systems
  3. Data Abstraction: Select and apply appropriate abstract data types to manage program state
  4. Data Structures: Design, implement, and modify data structures to efficiently and effectively provide a defined set of operations
  5. Functional Abstraction: Document, maintain, and utilize appropriate abstractions between the implementer and client of a library
  6. Decomposition: Solve problems by breaking them into subproblems and recombining the solutions using techniques such as methods, inheritance, and recursion
  7. Code Quality: Define programs that are well-written, readable, maintainable, and conform to established standards

Remote learning

All class sessions this quarter will be conducted via Zoom. It is highly recommended that you familiarize yourself with the Zoom software and interface as soon as possible. Feel free to ask questions on the message board if you are having trouble with the technology.

Lessons and section meetings will occur at their regularly scheduled times (as defined by the UW Time Schedule). Office hours will also occur at scheduled times. All times (including class times and assignment due times) are given in PDT (local time in Seattle). You can use this page or Google to convert times to your local time zone.

Recordings and privacy

Lessons will be recorded and recordings will be released to students. These recordings will capture the presenter's audio, video and computer screen. Student audio and video will be recorded if they share their computer audio and video during the recorded session. These recordings will only be accessible to students enrolled in the course to review materials. These recordings will not be shared with or accessible to the public.

The University and Zoom have FERPA-compliant agreements in place to protect the security and privacy of UW Zoom accounts. Students who do not wish to be recorded should:

  • Choose a Zoom username that does not include any personal identifying information like their name or UW Net ID; and
  • Not share their computer audio or video during their Zoom sessions (in the main room).

Sections and office hours will not be recorded to protect student privacy in these more discussion-based formats.


All students are welcome in CSE 143 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.

Course components


Lessons will typically be your first introduction to new concepts. Although we do not take attendance, students are expected to attend lessons each day and will be held responsible for all material (including administrative announcements) presented. If you are unable to attend class, you are expected to view the recording. (All lessons will be recorded and posted on the course website within 24 hours of the last lesson on that day, and on the same day as often as possible.)

It is not expected that students will have mastered the material by the end of each lesson— mastery requires practice. To encourage students to participate actively in their learning, we will be using PollEverywhere polls in class. These polls are an opportunity to solve problems that help you check your understanding and are not graded.

To provide increased time in class for student interaction and problem solving, small amounts of course material will be presented in short readings or videos that should be completed before class. These readings or videos should take no more than about 10 minutes per day. Materials marked as Due on the course calendar should be completed before class that day, as class examples and presentations will build on the concepts from the reading or video. Additional, optional readings or videos may also be provided and will be labeled as Supp (supplementary).


All students are assigned to a section, held at various times on Tuesdays and Thursdays. These sections are led by our TAs and provide opportunities to reinforce and practice concepts covered in class in a smaller group setting. In section, we will answer questions, complete and discuss sample problems, and provide tips for that week's topics and assessment (see below). The TA who leads your section will also grade your assessments.

Students are expected to make every effort to attend the section to which they are assigned. If you need to attend a different section for a specific day, you must contact both your TA and the TA whose section you would like to attend ahead of time and receive permission. You should not regularly attend a section for which you are not registered. (Contact the course administrator if you need to change your section.)

Required course work

Types of assignments

There will be four categories of required course work:

Take-home assessments (~Weekly, 8 total)
Longer programming assignments that will assess your mastery of the skills and concepts covered in class that week. While Take-home assessments will emphasize content covered in the week preceding the assessment's release, they will often integrate content from earlier in the quarter as well. Assessments will generally be due on Thursdays and must be completed independently, though you may discuss your approach with classmates.
Checkpoints (Weekly, 9-10 total)
Short assignments consisting of a few problems to give you practice with the content covered in class that week. Checkpoints will generally be due on Sundays and may be worked on collaboratively with classmates.
Culminating assessments (Periodic, 2 total)
Large, cumulative assignments consisting of a series of problems requiring you to engage with all course content covered to that point. Culminating assessments will include three parts: (1) completing a timed set of problems to the best of your ability; (2) reviewing your work against provided solutions and annotating areas for improvement; and (3) meeting 1-on-1 with your TA to discuss your results and your progress in the course. Culminating assessments must be completed independently.
Reflections (w/other assignments, 8-10 total)
Brief, written assignments designed to help you engage in metacognition and reflect on your current progress and understanding. Each reflection will be directly tied to another assignment, usually a take-home assessment, and will be due along with that assignment.

Revision and Resubmission

Learning from mistakes is an important part of mastering any skill, especially for novices. To enable this, you are allowed to revise and resubmit your work on take-home assessments to demonstrate improved mastery after your initial submission. Resubmissions are subject to the following rules:

  • You may not resubmit a take-home assessment for which you did not make an initial submission, or for which your initial submission did not pass the verification tests.
  • You may not resubmit a take-home assessment until you have received feedback on your previous submission of that assessment. (Generally one week after the due date.)
  • Resubmissions must be accompanied by a short write-up describing the changes made. This will both support you in being deliberate about the changes you make and ease grading of resubmissions by making the changes clear.
  • A maximum of one take-home assessment can be resubmitted each week.
  • All resubmissions must be made no later than the Sunday of exam week (Sunday, March 14).
  • A take-home assessment that has been found to involve academic misconduct may not be resubmitted (see below).

Resubmissions will be graded and the new grades will fully replace the previous grades. The new grade will be based entirely on the resubmitted work, meaning that your grades may go down when resubmitting. In addition, while every effort is made to identify all areas that could be improved when grading, feedback is not guaranteed to be exhaustive. Be sure to consult all available resources and materials to ensure your work meets all guidelines.

Only take-home assessments may be resubmitted.

Late work

You MUST make an initial submission for each take-home assessment by the published deadline to receive a grade other than U on that assessment (see grading scale below). Even if your work is incomplete, you are highly encouraged to submit whatever work you have so that you can receive feedback. You will then be able to act on that feedback and resubmit (see the resubmission policy above).

Checkpoints and culminating assessments will generally not be accepted after their published deadlines.

Please see the policy on extenuating circumstances for more information.

Getting help

Learning a new skill such as programming can be very challenging, even for students who are diligent and hard-working. It is expected that you will struggle at some point during the quarter. Please don't be afraid to ask for help if you don't understand something or need assistance with assignments or material. The following are some of the options available when you need assistance:

  • Ed message board:

    We use Ed as an online Q&A forum where you may ask questions (both publicly and privately). If you have a question, this should be the first place to check— it's often the case that other students may have had the same question. We also strongly recommend you monitor new questions asked on Ed semi-regularly— seeing questions other students ask can often be surprisingly enlightening.

    Whenever possible, please prefer posting a public question so that other students can benefit from your question and its response. However, you should never post code from your assessments in a public post. Try to phrase your questions in a way that does not require referencing your actual code. Doing so will not only ensure you are not violating policy, but may help you better understand your question just by asking it!

  • Office hours:

    Please visit office hours! Answering questions during office hours is often one of the best parts of teaching, so please do us a favor and make use of them.

    No appointment or notification is necessary to attend office hours, and you are welcome to attend any staff member's office hours, regardless of who is your section TA. However please note that office hours are public and privacy cannot be guaranteed. If you have a personal question that you would prefer to discuss in private, please contact Brett or your TA and request a separate appointment.

Extenuating circumstances

We recognize that our students come from varied backgrounds and can have widely-varying circumstances. We also know that the unusual circumstances of this quarter, and the current state of the world, may bring unique challenges for everyone. 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 through a private Ed Discussion post to discuss your situation. Extenuating circumstances can 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. Please make every effort to contact us as soon as possible once you are aware of the circumnstances. The sooner we are made aware of the situation, the more easily it can be resolved and the more likely we will be able to offer flexibility.


Grading scale

Work in CSE 143 will be graded using an ESNU scale:

E (Exemplary)
Work that meets all requirements and displays full mastery of all learning goals and material.
S (Satisfactory)
Work that meets all requirements and displays at least partial mastery of all learning goals as well as full mastery of core learning goals.
N (Not yet)
Work that does not meet some requirements and/or displays developing or incomplete mastery of at least some learning goals and material.
U (Unassessable)
Work that is missing, does not demonstrate meaningful effort, does not provide enough evidence to determine a level of mastery, or violates major course rules (such as using forbidden features or violating the academic conduct policy).

Take-home assessments will be graded using the full ESNU scale. Checkpoints, reflections, culminating assessments will be graded using only SN; no grades of E or U will be awarded on these assignments.

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 143. It is in your best interest to ensure that your work accurately reflects your mastery by being careful and diligent in following instructions, meeting deadlines, and understanding requirements.

Take-home assessment grading

Take-home assessments will be graded on four dimensions:

Does the input and output functionality of the submission conform to the specification?
Abstraction and Design
Are data structures, methods, and classes chosen, designed, and implemented according to best practices?
Use of Concepts
Are all language features and course concepts used appropriately, effectively, and efficiently?
Documentation and Readability
Is the code well-written and well-documented, and does it conform to all code quality and other related guidelines?

Work will be assigned a grade on each dimension using the ESNU scale, resulting in four ESNU grades per assessment. The table below summarizes the expectations for each grade in each dimension.

must meet all criteria
must meet all criteria
  • Exhibits correct behavior in all cases, including edge, corner, and error cases
  • Exhibits correct behavior in all common cases
  • Throws expected exceptions in all cases
  • Exhibits incorrect behavior in some common cases
  • Lacks some required functionality
  • Does not throw expected exceptions in some cases
  • Behavior does not resemble specification
  • Lacks significant portions of required functionality
Abstraction and Design
  • Classes contain no redundant constructors
  • All methods are clear and concise and include no extraneous parameters
  • All methods include a proper access modifier
  • Classes contain only the most essential fields and all fields are initialized appropriately
  • All constants are declared correctly and used in all appropriate places
  • Most appropriate type, including interface types, used in all expected places
  • No redundancy exists between methods
  • All methods are clear and concise
  • Classes contain no extraneous constructors
  • Classes contain reasonable fields
  • All constants are declared correctly
  • Reasonable types used in all places
  • All public methods are specified public
  • Redundancy exists between methods
  • Some methods are overly long or complex
  • Classes contain redundant or extraneous constructors or public methods
  • Classes contain extraneous or unnecessary fields
  • Constants are declared incorrectly
  • Unreasonable or inappropriate types used in some places
  • Not enough code present to evaluate effectively
  • Required methods or constructors missing
  • No fields present
Use of Concepts
  • Most appropriate variant of all control flow constructs used and properly factored and simplified
  • Recursive methods contain no extraneous cases or calls
  • No expensive operations are unnecessarily recomputed
  • Most appropriate data structure used in all cases
  • All assignment-specific requirements met
  • Appropriate control flow constructs used
  • Recursive methods contain extraneous cases or calls
  • Does not create any unnecessary objects
  • Appropriate data structure used in all cases
  • Key assignment-specific requirements met
  • Inappropriate control flow constructs used
  • Recursive methods contain redundant cases or calls
  • Creates unnecessary objects
  • Inappropriate data structure used in some cases
  • Some assignment-specific requirements not met
  • Not enough code present to evaluate effectively
  • Required language features or concepts not used
  • Banned or inappropriate language features or concepts used
Documentation and Readability
  • Header comments on all classes and methods are well-written and contain all relevant information
  • All identifiers are meaningful and follow prescribed naming conventions
  • All code is indented and spaced consistently and cleanly
  • No lines longer than 100 characters
  • Code has no "magic numbers"
  • Exceptions thrown as soon as possible
  • Personal style choices are consistent and reasonable
  • Header comments present on all classes and methods
  • Some identifier names are not meaningful or fail to follow prescribed conventions
  • No complete blocks are indented or spaced incorrectly
  • Some lines longer than 100 characters
  • Header comments missing on some classes and/or methods
  • Entire code blocks are indented or spaced incorrectly
  • Not enough code present to evaluate effectively
  • Code shows little or no effort follow code quality guidelines
  • Code is extremely difficult to read and understand

Final grade assignment

Final grades will be based on the quantity of work completed at each level of mastery, based on the following minimums:

at least 3.5
  • S or better on all dimensions on all take-home assessments, including at least 6 total E's on each dimension
  • S on at least 7 checkpoints
  • S on both culminating assessments
  • S on at least 7 reflections
at least 2.5
  • At least 30 total S's or better and no U's on take-home assessments
  • S on at least 5 checkpoints
  • S on both culminating assessments
  • S on at least 4 reflections
at least 1.5
  • At least 20 total S's or better on take-home assessments
  • S on at least 3 checkpoints
  • S on at least 1 culminating assessments
  • No reflections required
at least 0.7
  • At least 16 total S's or better on take-home assessments
  • S grades on at least 2 checkpoints
  • No culminating assessments required
  • No reflections required

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 we do not provide any estimates or guarantees beyond those listed here.

Exact final grades, including all grades not listed above, will be determined at the end of the quarter by the course staff based on each student's overall body of work. Estimates of students' final grades beyond the requirements listed above will not be provided.

Collaboration and academic conduct


Learning is a collaborative process, and everyone benefits from working with others when learning new concepts and skills. In general, we encourage you to collaborate with your classmates in your learning and take advantage of each others' experience, understanding, and perspectives.

However, there is a difference between learning collaboratively and submitting work that is not your own. This can be a subtle but important distinction. Ultimately, the goal of the course is to ensure that every student masters the material and develops the skills to succeed in future courses, projects, and other related work. Submitting work that is not your own, or allowing another student to submit your work as their own, does not contribute toward developing mastery. In addition, this deprives you of the ability to receive feedback and support from the course staff in addressing the areas in which you are struggling.

For more information, consult the Allen School policy on academic misconduct.

Permitted and prohibited actions

The following is a partial list of collaborative actions that are encouraged and prohibited. This list is not intended to be exhaustive; there are many actions not included that may fall under either heading.

The following types of collaboration are encouraged:

  • Discussing the content of lessons, sections, readings, the textbook, or provided examples.
  • Working collaboratively on solutions to practice problems or checkpoints.
  • Posting and responding to questions on the course message board, including responding to questions from other students (without providing assessment code; see below).
  • Describing, either verbally or in text, your approach to a take-home assessment at a high-level and in such a way that the person receiving the description cannot reliably reproduce your exact work. Such description should be in English or another natural human language (i.e. not code).
  • Asking a member of the course staff about concepts with which you are struggling or bugs in your work.

The following types of collaboration are prohibited and may constitute academic misconduct:

  • Looking at another person's submission on a take-home assessment, or substantially similar code, at any point, in any form, for any reason, and for any amount of time. This restriction includes work written by classmates, family members or friends, former students, and online resources (such as GitHub or Chegg), among other sources.
  • Showing or providing your submission on a take-home assessment to another student at any time, in any format, for any reason.
  • Submitting work that contains code copied from another resource, even with edits or changes, except for resources explicitly provided by the course staff.
  • Having another person "walk you through" work you submit, or walking another person through work they submit, such that the work produced can be entirely and reliably reconstructed from the instructions provided. (That is, submitting work that you produced simply by following instructions on what to write.) This restriction includes classmates, former students, family members or friends, paid tutors or consultants, "homework support" services (such as Chegg), etc.

If you discuss a take-home assessment with one or more classmates, you must specify with whom you collaborated in the header comment in your submission. You may discuss with as many classmates as you like, but you must cite all of them in your work. Note that you may not collaborate in a way that is prohibited, even if you cite the collaboration.

Tip! A good rule of thumb to ensuring your collaboration is allowed is to not take written notes, photographs, or other records during your discussion and wait at least 30 minutes after completing the discussion before returning to your own work. (You could use this time to relax, watch TV, listen to a podcast, or do work for another class.) For most students, this will result in you only bringing the high-level concepts of the collaboration back to your work and ensuring that you reconstruct the ideas on your own.

Instead of utilizing forbidden resources, we hope you will submit whatever work you have, even if it is not yet complete, so you can get feedback and revise your work later. If you are ever in doubt if a collaboration or resources is permitted or not, please contact a member of the course staff.


Any submission found to be in violation of this policy will receive a grade of U on all dimensions, as we are unable to assess your mastery from work that is not your own. In addition, students will forfeit the ability to resubmit work that is found to be in violation. Repeated or egregious violations of the policy will be forwarded to a relevant university committee for further action. There will be no exceptions or modifications to these penalities.


The course staff has endeavored to create an environment in which all students feel empowered and encouraged to submit their own work, regardless of the quality, and avoid prohibited collaboration. However, despite our best efforts, students may occasionally exercise poor judgement and violate this policy. In many cases, these students come to regret this decision almost immediately. To that end, we offer the following opportunity for amnesty:

If you submit work that is in violation of the academic conduct policy, you may bring the action to Brett's attention within 72 hours of submission and request amnesty. If you do so, you will receive a grade of U on all dimensions for the initial submission, but you will be allowed to resubmit your work under the normal resubmission process. The resubmitted work must not violate the academic conduct policy, and thust must not in any way be based on the work that violated the policy. The act of requesting amnesty will not be shared outside of the course staff and will not be part of any academic record except in the case of repeated acts or abuses of the policy.

This policy is designed to allow students who have acted in a way they regret the opportunity to correct the situation and complete their work in a permitted way. It is not intended to provide forgiveness for violations that are detected by the course staff, nor to be invoked frequently. The amnesty policy cannot be invoked after a violation of the misconduct policy has been detected by course staff or more than 72 hours after submission of the violating work. It is still in your best interest to submit whatever work you have completed on your own so that you can receive feedback and support.

Note that, while requesting amnesty will allow you to resubmit your work, the resubmission must still not violate the collaboration policy. In particular, the resubmission must not include work that is not your own. It is extremely difficult to "unsee" or "forget" work that you may have viewed in violation of the policy, and it is your responsibility to ensure that your resubmission is completed entirely in accordance with the policy. (Needless to say, the easiest way to achieve this is to not violate the policy in the first place!)

Guidance to students outside the U.S.

Faculty members at U.S. universities—including the University of Washington—have the right to academic freedom which includes presenting and exploring topics and content that other governments may consider to be illegal and, therefore, choose to censor. Examples may include topics and content involving religion, gender and sexuality, human rights, democracy and representative government, and historic events.

If, as a UW student, you are living outside of the United States while taking courses remotely, you are subject to the laws of your local jurisdiction. Local authorities may limit your access to course material and take punitive action towards you. Unfortunately, the University of Washington has no authority over the laws in your jurisdictions or how local authorities enforce those laws.

If you are taking UW courses outside of the United States, you have reason to exercise caution when enrolling in courses that cover topics and issues censored in your jurisdiction. If you have concerns regarding a course or courses that you have registered for, please contact your academic advisor who will assist you in exploring options.

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 UWs 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.

Disability Resources for Students

Your experience in this class is important to us. If you have already established accommodations with Disability Resources for Students (DRS), please communicate your approved accommodations to Brett 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 are not limited to; mental health, attention-related, learning, vision, hearing, physical or health impacts), you are welcome to contact DRS at 206-543-8924 or uwdrs@uw.edu or disability.uw.edu. 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 instructor(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.


Credit for the development for this website template goes to Hunter Schafer and the staff of CSE 163.