CSE 142, Summer 2020: Syllabus

CSE 142: Computer Programming I

Note: Times are listed for the PDT time zone (Seattle's time). You can use this or another time converter to convert to your local time.

Instructor Ayaz Latif
Email alatif@cs.uw.edu
Office Hours Wednesdays 1:30-3:00pm, Fridays 2:30 - 4:00pm
Course Administrator Pim Lustig
Email cse142@uw.edu
Office CSE2 173
Lecture MWF 12:00pm - 1:00pm, via Zoom
Course Website https://cs.uw.edu/142

Course Overview

This course provides an introduction to computer science using the Java programming language. CSE 142 is primarily a programming course, but the focus is on the problem-solving techniques common in computer science. No prior programming experience is assumed, although students should know the basics of using a computer (e.g., using a web browser and word processing program) and should be competent with math through Algebra I. Students with significant prior programming experience should consider skipping CSE 142 and taking CSE 143 or CSE 143X (we allow students to do so without any special permission).

At the end of this course, students should be able to:

  • produce functional, well-written Java programs of small to medium length and complexity
  • utilize a variety of programming constructs (including, but not limited to, methods, loops, conditionals, arrays, and classes) to solve problems
  • explain the importance of code that is not just functional, but well-written, readable, and maintainable
  • identify and fix bugs and errors that occur during the development process
  • identify and utilize resources to help overcome difficulties or resolve errors in developing programs


All students are welcome in CSE 142 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, please contact the course staff or the CSE academic advisors. You should feel free to email any member of the course staff or the advisors at any time, and anonymous feedback can be sent to the course staff via the form linked on the course website.

The Association for Computing Machinery (ACM) recently released guidelines of expected behavior as part of their Policy Against Harassment at ACM Activities. The ACM's description of expected behavior is as follows:

  • Exercise consideration and respect in your speech and actions
  • Refrain from demeaning, discriminatory, or harassing behavior and speech
  • Be mindful of your surroundings and your fellow participants
  • Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this policy, even if they seem inconsequential.

ACM's policy also has a detailed description of unacceptable behavior on the same page.

Class Sessions

All class sessions this quarter (lecture, section, office hours, etc.) 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

Lectures and sections will occur at their regularly scheduled times (as defined by the UW Time Schedule). Office hours will also occur at schedule 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

Lectures will be recorded and recordings released to students. Theses 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.

Discussion Sections

You will be expected to participate in a weekly 60-minute discussion section. We will be using Zoom software to set up a chat room for each section. The TA who runs your section will grade your homework assignments. In section we will answer questions, go over common errors in homework solutions and discuss sample problems in more detail than we can in lecture. You will receive 3 points for each section you participate in, up to a maximum of 20 points, which means that your participation score acts like an extra homework assignment.

Attendance and participation in section is mandatory and is part of your course grade (see below). You must attend the section to which you are assigned to receive credit. If you need to attend a different section for a specific week, you must contact your TA 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.)

Getting Help

Please don't be afraid to ask for help if you don't understand something. Ayaz and the section TAs hold office hours throughout the week. At office hours you can ask for a review or explanation of lecture material, clarification of a homework specification, help with a frustrating part of the assignment, or many other things. Here are some first steps on how to get help:

  • Post on Ed asking a question
  • Come to Ayaz's office hours.
    • If you cannot make his office hours, schedule another time that would be better for your schedule.
  • Go your section TA's office hours
  • Go to any other section TA's office hours


Because the course will be offered online this quarter, there will be no midterm or final. Instead your grade will be determined by scores on weekly programming assignments, written reflections, and the section participation score.

For each student we will compute the percent of points received relative to the total points possible. This will be turned into a grade as follows:

90% at least 3.5
80% at least 2.5
70% at least 1.5
60% at least 0.7

Programming Assignments

There will be eight (8) weekly programming assignments, which must be completed individually and submitted electronically via the course web site. Assignments will be graded on both "external correctness" (behavior) and "internal correctness" (adherence to design, usage, and style guidelines) and are generally graded on a 20-point scale. Disputes about homework grading must be made within 2 weeks of receiving the grade using the process described on the course website.

Written Reflections

There will be eight (8) total reflection assignments over the course of the quarter: one post-reflection for each homework assignment (eight total). Reflections are short written assignments that will help you engage in metacognition and assess the strengths and weaknesses in both your understanding and your process. These assignments will be graded entirely on effort and completion, and will not be accepted late for any reason.

You will earn 2 points per completed post-reflection for each homework assignment, up to a maximum of 12 points for the quarter.

Self Assessments

There will be two handwritten self assessments to complete in the quarter. These assessments are designed to evaluate your understanding of concepts discussed up to that point in the course. Each self assessment should be completed closed-book and closed-note. You may not use any written material, but a standard "cheat sheet" which will be provided as part of the self assessment. No electronic devices, including calculators or smart devices, may be used. You will have a 24 hour window to complete and turn in the self assessment.

For each self assessment you will be responsible for marking the mechanical questions. You will turn in a scanned version of these handwritten self assessments online with the mechanical questions graded.

Each self assessment will be graded during a short 10-15 minute interactive, one-on-one session with your section TA. In these one-on-one sessions you will discuss your performance on the assessment. It is expected to not have time to discuss the entire self assessment so you should come with specific questions you want to talk about. You should prioritize talking over parts of the self assessment you may have struggled with. You will be evaluated on the amount of effort you put into these self assessments.

You must make an appointment with your section TA for an interactive-grading session. Failure to do so will result in receiving no credit for that self assessment. Your section TA will explain in section how to schedule these sessions and go over the grading process in more detail.

You will earn 4 points for each self assessment, up to a maximum of 8 points for the quarter.

Late Policy

Each assignment will list its due date. Most will be due on Tuesdays at 23:59 (PDT). Each student will have a total of ten "free" late days (a late day is 24 hours of lateness). There are no partial days, so assignments are either on time, 1 day late, 2 days late, etc. Because of this generous policy, students will not be granted extensions for assignments unless they have highly extenuating circumstances. Once a student has used up all free late days, each successive late day will result in a loss of 1 point. No assignment will be accepted more than 3 days after its due-date. No assignment can be submitted after 23:59 of the last day of class (Friday, August 21st).

Academic Integrity & Collaboration

Programming assignments must be completed individually; all code you submit must be your own work. You may discuss general ideas of how to approach an assignment, but never specific details about the code to write. Any help you receive from or provide to classmates, tutors, friends, or other outside individuals should be limited and should never involve details of how to code a solution. In particular, violations of this policy include, but are not limited to:

  • Working as a partner with another student on an assignment.
  • Showing another student your solution to an assignment or looking at another student's solution (past or present), for any reason.
  • Having another person "walk you through" an assignment, describe in detail how to solve it, or sit with you as you code; or providing such help to another student. This includes current or former students, tutors, friends, TAs, paid consultants, people on the Internet, or anyone else.
  • Copying any amount of code (even just a few lines or a single method) from anywhere other than resources explicitly allowed by the instructor.
  • Posting your homework solution code, in part or in whole, online to ask others for help. This includes public message boards, code repositories, forums, file sharing sites and services, or any other online system.

Under our policy, a student who gives inappropriate help is equally guilty as one who receives it. Instead of providing such help to someone who does not understand an assignment, please refer them to class resources such as lecture examples, the textbook, the IPL, or a TA or instructor. You must not share your solution with others under any circumstances. You must also ensure that your work is not copied by others, such as by making sure to log out of shared computers, not leaving printouts of your code in public places, and not emailing your code to other students or posting it on the web.

If you are retaking the course, you may resubmit a previous solution unless that program was involved in an academic misconduct case. If misconduct was found, you must write a new version of that program. We enforce this policy vigorously by running similarity detection software a few times per quarter over all submitted student programs, including programs from past quarters. Students who violate the policy are offered reduced scores and sometimes sent to a University committee. This can lead to marks on permanent academic records. Generally, several dozen students each quarter are given reduced scores for violating these policies. Please be careful, and please contact the instructor if you are unsure whether a particular behavior falls within our policy.