• [April 8] Added information for how to use Checkpoint Tokens

Course Information

Teaching Staff

Instructor: Hunter Schafer (

Registration Questions: CSE Advisors (

Course Staff and Support Hours: Course Staff and Office Hours

Class Session Meeting

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

  • MWF: 11:30 pm - 12:20 pm (GUG 220)

Other Info

Course Goals

The world has become data-driven. Domain scientists and industry increasingly rely on data analysis to drive innovation and discovery; this reliance on data is not only restricted to science or business, but also is crucial to those in government, public policy, and those wanting to be informed citizens. As the size of data continues to grow, everyone will need to use powerful tools to work with that data.

This course teaches intermediate data programming. It is a follow on to CSE142 (Computer programming I) or CSE160 (Data Programming).

The course complements CSE143, which focuses more deeply on fundamental programming concepts and the internals of data structures. In contrast, CSE163 emphasizes the efficient use of those concepts for data programming.

In this course, students will learn:

  1. More advanced programming concepts than in CSE142 or CSE160 including how to write bigger programs with multiple classes and modules.
  2. How to work with different types of data: tabular, text, images, geo-spatial.
  3. Ecosystem of data science tools including Jupyter Notebook and various data science libraries including scikit image, scikit learn, and Pandas data frames.
  4. Basic concepts related to code complexity, efficiency of different types of data structures, and memory management.

Software and Textbooks

Most of this course will be run on EdStem. This includes lessons and exercises, as well as the discussion board and where you can work and submit your homework. All of the lesson materials and access to Ed are free for students enrolled in CSE 163 this quarter. For those interested in following along with the class but are not enrolled, you can find a free version of the lessons here.

Lecture notes and section handouts will be shared on EdStem or Google Colaboratory. All links to specific resources can be found on course website.

One of the benefits of using EdStem is that it comes fully featured with an online programming environment. This means you do not need to install any software as long as you can work online!

Later in the quarter, we will ask you to install Python on your computer to complete the final project. You’re more than welcome to do this installation earlier if you want. We will use Python 3 installed via Anaconda on all programming assignments and Visual Studio Code is our officially supported IDE (a fancy term for text editor). You may use other installations of Python or IDEs, but the course staff may not necessarily be able to help you with any set-up related questions you may have. See Software for installation instructions.

Class Sessions and Quiz Sections

Class Sessions

To best support your learning in CSE 163 this quarter, we will be using a flipped classroom model for instruction. To accomplish this the lecture content (called “lessons”) will be done asynchronously via our learning management system EdStem and our in-person class sessions will focus on structured activities to practice the skills and ideas you learned in the lesson. This means the first time you will be introduced to the course content will be on your own time outside the class session, while the class session will be hosted to give you practice on the material you saw in the lesson you completed earlier.


If you are sick, stay home! Reducing the spread of COVID is paramount to ending the pandemic. If you feel sick or test positive for COVID, stay home. See all the resources outlined in Class Sessions and Quiz Sections for you get caught-up on missed live sessions. Any required in-person requirements will have a make-up for students who are sick. You will not be penalized for staying home and keeping our community safe.

Please see more on our COVID Safety page.


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 data science (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 attending an online Zoom meeting three times a week and then a quiz section once a week? 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 damn 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 flipped classroom model is built around fostering an environment for effective practice. Instead of coming to lecture to hear Hunter talk about some idea and then trying to go practice the idea at home (a much harder task), we flip this whole 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 Hunter 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.


Every Monday, Wednesday, Friday there will be Lessons on Ed that contain readings and practice problems on the content for the course that day. The lesson will be available after the previous day’s class session, so you are free to complete it on your own time (there is a mention of a due date later on in the grading portion). Notice that the deadline for a lesson is AFTER the time for our class session that day. This is because we think the most effective way to learn this content follow the these steps:

  1. Before Class: Complete Reading: Do the reading/video portion of that day’s lesson. You can look over practice problems, but you want to spend the time in the class session working on them.
  2. Attend Class Session: Come to the class session with questions and ready to work on activities and practice problems with peers.
  3. After Class: Complete Lesson: Take the skills you practice and go back to the lesson to review anything that you struggled with and finish any problems you didn’t solve during the class session.
  4. Reflect: Take time to look back on what you learned. As a starting point, think about the following questions (and maybe write down your answers in your notes!):
    • Can I describe this concept in my own words?
    • How does this concept relate to everything we have seen so far?
    • Why did we learn this concept?
    • Write down some “tips” for if you were going to help a colleague who was struggling with this content.

Attendance Options

Class sessions will be hosted in person. A “normal” day of class will be composed of some recap of the lesson you read before class and alternating time for group work and discussing the problems as a whole class. The class sessions will be recorded so students who cannot attend can view them later. Note that with the flipped-style of our class, the only a small part of the recordings will be useful since most of the time will be spent with students working in groups.

Quiz Sections

Quiz sections are smaller, TA-run sessions where students work in groups on practice problems and review concepts from the week. Quiz sections meet on Thursdays according to the time you registered for. Like with class sessions, there is no attendance requirement, but you are expected to attend to keep up with the course material (assuming you are not sick!).

It is possible to attend a different section than the one you are registered for. You will need to ask permission from the TA of the quiz section you want to attend, since they might be planning for a fixed number of students or might not have capacity to safely sit all students in the class. You can find the TA assignments on the Course Staff page.

Attendance Options

Quiz sections will not be recorded. Instead, the course staff will post all materials used in section on the course website and will also post helpful videos covering some of the topics covered in section that day. So, anything missed by not being able to attend in person, you will be able to find asynchronously on the course website.


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

Required Course Work, Resubmissions, and Late Work

Types of Assignments

There will be three categories of course work you will do in this class:

  • Checkpoints (Weekly, 10 total)

    Short assignments consisting of a few problems to assess your learning that week’s course content. These checkpoints are designed to be completed after completing that week’s lesson and their practice problems. Checkpoints will also have open ended questions to ask you to reflect on your learning that week and submit some summary documents of what you learned to serve as “cheat sheets” for you to use in the future. Checkpoints will be released on Fridays (after the last lesson that week) and will generally be due Mondays. You may collaboratively work on checkpoints with classmates, but you should never submit code or answers that you did not write yourself.

  • Take-home assessments (Weekly, 6 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 (more on this below).

  • Final Project (with parts due throughout quarter)

    The final project is your opportunity to create something new that you want to share with the rest of the world. The nature of your project is entirely up to you so long as it is sufficiently complex. All that we ask is that you build something of interest to you, that you solve an actual problem, that you impact campus, or that you change the world! Strive to create something that outlives this course! See more here.

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:

  • A maximum of one take-home assessment can be resubmitted each week and each assignment should only be resubmitted once over the course of the quarter (more on this below).
  • There will be 8 weeks in total where you will be eligible to make a resubmission after receiving feedback from your TA.
  • If you have already made a submission to a take-home assessment, you may not make a resubmission 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 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. Please see the Take-Home Assessments for information on how to make resbmissions and when they are due.

Single Resubmission per assignment: Since there are a limited number of weeks in the quarter, it is very important that you stay on top of your work as much as possible. Our resubmission policy is designed such that you should only be using a single resubmission on any particular assignment throughout the quarter. That makes it very important that you complete as much of the assignment as you can by the initial submission date, so that you can receive feedback on more of that assignment before using a resubmission on it later. We understand that there may be extenuating circumstances that might require you to not fully meet your goal on an assignment with a single resubmission. If you find yourself needing to use more than one resubmission on a single assignment, you should reach out to your TA to discuss a plan for getting caught up with the course and we can provide an exception to allow more than one resubmission for a single assigment.

Only take-home assessments may be resubmitted. Checkpoints are autograded and are graded on completing them correctly and the final project is designed to give you feedback throughout the various parts of the project.

Late Work

  • For take-home assessments, late work is generally not accepted. However, if you are unable to turn in an assignment by its initial submission, you will be able to use one of the weekly resubmissions in future weeks to turn in the assignment. Remember, you may only make one resubmission a week and should only use on resubmission on any particular assignment, so using a resubmission to turn in an assignment you missed earlier means you will be able to make fewer resubmissions. This means it benefits you the most to try your best to turn in as much of your work as possible before the initial submission date, so you can get feedback on that and iterate on it in a future resubmission, rather than using that resubmission to get your first piece of feedback on that assignment.
  • Checkpoints are generally not accepted late unless you have enough Checkpoint Tokens. Using a Checkpoint Token allows you to submit a single checkpoint at any point after the due date before the last day of finals week (Friday 3/18). Every student in CSE 163 will start with one Checkpoint Token. See Extra Credit: Checkpoint Tokens for information on how to earn more.
  • Components of the final project cannot be submitted late.

Please see the policy on Extenuating Circumstances for more information.

Extra Credit: Checkpoint Tokens

As mentioned before, each day of class we will have an associated Lesson that has the reading and some practice problems associated to the content that day.

We will consider lessons due at 11:59 pm on the day of the class session for that lesson. For example, Lesson 7 for Wednesday 1/19 should be completed by 11:59 pm on Wednesday 1/19 to be counted as on time. Just like with checkpoints, Ed will show you a green checkmark next to a lesson if every slide has been read and every practice problem has been solved correctly, meaning the whole lesson has been completed. Ed will still mark late Lessons as completed, so it is your responsibility to finish them before the completion time.

As a small incentive to stay on top of the lessons each day so that you can better participate in the class community throughout the quarter, we will provide a small extra credit opportunity for completing lessons on time. Lessons completed on time go towards earning Checkpoint Tokens. For every 6 Lessons you complete on time will be converted to one Checkpoint Token.

As mentioned earlier, a Checkpoint Token allows you to turn in a checkpoint late at any point before the Friday of finals week. Every student will start with one Checkpoint Token and then every 6 lessons completed on time will add an extra token. Every student will get one free lesson completions for the one Monday holiday in the quarter. You do not need to inform us that you are using a token. At the end of the quarter, we will accept XX checkpoints that were completed late as being on time if you have XX tokens.

For example, suppose Rodrigo has completed 15 lessons on time (including the one free holiday lesson). That means Rodrigo would have a total of 3 Checkpoint Tokens: 1 for the one they started with and 2 for completing the six lesson requirement twice. This means Rodrigo would now be able to turn up to 3 checkpoints late at any point during the quarter (before the Friday of finals week) and still earn credit for them.

To use a Checkpoint Token, see the steps outlined here.

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 one of the take-home assessments if you are running into difficulties.

  • 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 get 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 Hunter, you can instead email Hunter if that makes you feel more comfortable. Note that the response time for Hunter’s email is longer than posting on the Ed board.

Course Climate

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 incredibly unusual 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.


Your experience in this class should not be 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 lecturers 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.


Grading Scale

Most work in CSE 163 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 graded using only E and U; no grades of S or N will be awarded on these assignments. The final project will be graded on a point scale out of 8 points. More details on how the project is graded will be released later.

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

Checkpoint grading

Each week we will have a checkpoint to assess your learning each week. The checkpoint will be a set of practice problems (both conceptual and coding) and a reflection that you will complete following each week of class. Checkpoints will generally be released Thursday evenings and will be due the following Monday at 11:59 pm. To earn an E on a checkpoint, you need to successfully complete all sections (called a “slide”) of the checkpoint before the due date. Each slide is completed based on completion and correctness, but you will have access to an autograder that will inform you if your solution is correct or not.


On Ed, you will see a green checkmark next to each slide you complete. If you complete all of the slides in a checkpoint, you will see a green checkmark on the main page of lessons in Ed. This green checkmark on the lesson itself (not the individual slides) means you have earned an E for the entire checkpoint. See Ed for more information!

As described above, Checkpoints are generally not accepted late unless you have enough Checkpoint Tokens. You do not need to inform us that you are using a token. At the end of the quarter, we will accept XX checkpoints that were completed late as being on time if you have XX tokens. Ed will still let you turn in checkpoints late even if you don’t have sufficient tokens, but we will not accept late submissions for credit unless you have sufficient tokens. Please reach out to the course staff if you encounter difficulties that might prevent you from completing a Checkpoint on time.

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?

Language/Library Features

Does the code effectively and appropriately use the Python language or libraries necessary for the assignment?

Code Quality and Documentation

Does the code conform to all of the relevant code quality guidelines and are all aspects of the code well documented?

Code Testing

Did you write unit tests to ensure the correctness of your code? Do these tests cover all relevant cases?

Note: A few assignments do not require writing tests, so this dimension will assess something relevant to that that assessment. This will be explained on the relevant take-home assessment specifications.

Work will be assigned a grade on each dimension using the ESNU scale, resulting in four ESNU grades per assessment. See more information on how each of these are assessed on the Grading Rubric.

Course Grades

Final grades will be based on the quantity of work completed at each level of mastery, based 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 each of the following earned beyond the requirements for the base grade identified in the last step:
    • E‘s and S‘s on take-home assessments
    • E‘s on the checkpoints
    • Each additional point on the final project

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.

Grade Checker

You can also use this tool to see how your scores will map to a minimum promised course grade.

at least a 4.0

  • Take-Home Assessments: Es on all dimensions on all take-home assessments.
  • Checkpoints: E on all 10 checkpoints
  • Final Project: 8 points on the final project.

at least 3.5

  • Take-Home Assessments:
    • S or better on all dimensions on all take-home assessments
    • Es on all dimensions for the Startup and Primer assessments
    • At least 3 total E‘s on each dimension for the Pokemon, Education, Search, and Mapping assessments (12\geq 12 E’s in total across these assessments).
  • Checkpoints: E on at least 8 checkpoints
  • Final Project: At least 6 points on the final project.

at least 3.0

  • Take-Home Assessments:
    • At least 7 total S or better the Startup and Primer assessments
    • At least 14 total S or better for the Pokemon, Education, Search, and Mapping assessments.
    • At least 2 total E‘s on each dimension for the Pokemon, Education, Search, and Mapping assessments (8\geq 8 E’s in total across these assessments).
    • No U‘s on any take-home assessments.
  • Checkpoints: E on at least 6 checkpoints
  • Final Project: At least 4 points on the final project.

at least 2.5

  • Take-Home Assessments:
    • At least 6 total S or better the Startup and Primer assessments
    • At least 12 total S or better for the Pokemon, Education, Search, and Mapping assessments.
    • At least 1 total E‘s on each dimension for the Pokemon, Education, Search, and Mapping assessments (4\geq 4 E’s in total across these assessments).
    • No U‘s on any take-home assessments.
  • Checkpoints: E on at least 6 checkpoints
  • Final Project: At least 3 points on the final project.

at least 2.0

  • Take-Home Assessments:
    • At least 5 total S or better the Startup and Primer assessments
    • At least 10 total S or better for the Pokemon, Education, Search, and Mapping assessments.
  • Checkpoints: E on at least 4 checkpoints
  • Final Project: At least 3 points on the final project.

at least a 1.5

  • Take-Home Assessments:
    • At least 4 total S or better the Startup and Primer assessments
    • At least 9 total S or better for the Pokemon, Education, Search, and Mapping assessments.
  • Checkpoints: E on at least 4 checkpoints
  • Final Project: Not required

at least a 0.7

  • Take-Home Assessments:
    • At least 3 total S or better the Startup and Primer assessments
    • At least 8 total S or better for the Pokemon, Education, Search, and Mapping assessments.
  • Checkpoints: E on at least 2 checkpoints
  • Final Project: Not 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 (as the steps described above indicate), but we do not provide any estimates or guarantees beyond those listed here. For example, it’s possible to still earn a 3.5 or above if even if you miss one of the requirements since every piece of work done above the required minimum can go to increasing your course grade; it’s just not guaranteed you will get a 3.5 or above if you don’t make all requirements (but even if something is not guaranteed, it can still happen).

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.

Academic Honesty and Collaboration


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

Sometimes the line between productive collaboration and academic dishonesty can be a little ambiguous. 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. This list is here to help you understand examples of things that are/aren’t allowed. If you are ever unsure, please ask the course staff before potentially acting in a way that violates this policy.


The following types of collaboration are encouraged:

• Discussing the content of lessons, sections or any 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. This includes posting your work publicly on the internet.

• 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 an assignment 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.


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 (I can’t recommend 99% Invisible enough!), 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 Hunter’s attention within 72 hours of submission and request amnesty. If you do so, you will receive a reduced grade on just that assignment but no other further action will be taken. This action 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. It is still in your best interest to submit whatever work you have completed 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!)