Note: Times are listed for either the PST time zone (Seattle's time) or AoE (Anywhere on Earth time) in 24-hour clock format (e.g. 14:30 is 2:30 pm). You can use this or another time converter to convert to your local time.
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 designed to follow on 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:
Motivated by the shift to the online quarter, we will be transitioning to a "flipped classroom" model for our 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 (via Zoom) will focus on structured activities to practice the skills and ideas you learned in the lesson. This mean the majority of your time seeing 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.
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:
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 Soham 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 a video about the concept first (at your own pace) and then come to our class session to work with your classmates, the TAs, and Soham 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.
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:
There are also quiz sections on Thursdays that will also operate to provide structured practice. Quiz sections will differ from our M/W/F class sessions in that they are smaller and run by the TAs and will focus on tying together concepts from the various days to help prepare you for your weekly homework assignments! Attendance in the class sessions and quiz sections are not recorded or used as part of your grade. However, it is expected that you are showing up and participating as much as you can so that you are maximizing your learning!
For more details for how lessons are graded, please see the section below on assessment.
During the scheduled class sessions, most of the time will be spent having you work with your peers in small groups. This will be facilitated by Zoom's Breakout Room feature. There will be some time, particularly at the beginning, mid-point, and end where the instructor will have everyone in one room to talk about some high-level concept or highlight a key point. These moments will occur outside of breakout rooms in what is referred to as the main room. Since these few moments of lecture might be useful to students who can't make the class session, we will record the class sessions to be posted online. Only the instructor's video and screen will be recorded in the main room, no recordings will happen in the breakouts. If you were to speak in the main class room during the class session, that will be recorded. The chat is not made available in the recording, but it is being stored by Zoom.
The 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:
Quiz sections and office hours will not be recorded to protect student privacy in these more discussion-based formats.
There will be three categories of required course work:
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. Because checkpoints are autograded, you can turn them in anytime before the end of the quarter. However, checkpoints will be released on Wednesday shortly after lecture and we recommend that you finish them by Friday at midnight. You may collaboratively work on checkpoints with classmates, but you should never submit code or answers that you did not write yourself.
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 Wednesdays and must be completed independently, though you may discuss your approach with classmates (more on this below).
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!
Learning from mistakes is an important part of mastering any skill, especially for novices (everyone who is approaching a new topic for the first time). 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:
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. 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.
If you are unable to make an initial submission for a take-home assessment, contact your TA via email. 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).
There is no firm deadline for completing the checkpoints so long as you do so by the end of the quarter (Friday, August 20). Parts of the final project will generally not be accepted after their published deadlines. Please see the policy on extenuating circumstances for more information.
There are two main ways of getting help:
We use EdStem 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. You should not publicly post solutions to assessments on the message board, since that would be a violation of our academic honesty policy.
We also strongly recommend you monitor new questions asked on EdStem semi-regularly: seeing questions other students ask can often be surprisingly enlightening.
We do not have a course staff email so if you have a question about a particular concept or part of the assignment that you do not want to post publicly on EdStem, you should post privately so that the instructor or any of the TAs can answer. Students should prefer using EdStem instead of emailing individual staff members. Obviously, if your concern is a personal matter that you want to talk to the instructor about, you may email the instructor individually.
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.
One additional resource to keep in mind is the resources page on the class website. This page contains links to a variety of guides, tips, and tricks on material we don't have time to fully cover during lecture or section. The resources there are not necessarily required, but may be useful!
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. Please don't suffer in silence.
Work in CSE 163 will be graded on an ESNU scale rather than individual points:
Work that meets all requirements and displays full mastery of all learning goals and material.
Work that meets all requirements and displays at least partial mastery of all learning goals as well as full mastery of core learning goals.
Work that does not meet some requirements and/or displays developing or incomplete mastery of at least some learning goals and material.
Work that is missing, does not demonstrate meaningful effort, or 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 and the parts of the final project 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 any size in scale outside a handful of students. 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 assessments will be graded on four dimensions:
Does the input and output functionality of the submission conform to the specification?
Does the code effectively and appropriately use the Python language or libraries necessary for the assignment?
Does the code conform to all of the relevant code quality guidelines and are all aspects of the code well documented?
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 assignments. 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. The table below summarizes the expectations for each grade in each dimension. Earning an E along some dimension also requires meeting any requirements for an S as well.
must meet all criteria
must meet all criteria
Course grades will be based on the quantity of work completed at each level of mastery, based on the following minimums:
Your final grade in the course is determined by the quantity of work submitted. All criteria for a grade must be met in order to earn that grade. These grade criteria capture the learning objectives in the course. Intermediate grades will be determined at the instructor’s discretion.
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. 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. We will consider lessons due at midnight AoE on the day of the class session for that lesson. By completing 19 lessons on time (about 80% of the total lessons possible), we will award an additional S on a Checkpoint as extra credit. EdStem 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.
Notice that this due date is set such that you have time to finish up any last things after coming to our class session that day. It is intended for you to do the practice problems together in class, but we understand that sometimes things take a little longer so we thought it was best to use a due date in the evening that matches the rest of our assignments.
Note, that the EdStem system does not enforce this deadline required for the small amount of extra credit. While the system permits you to make submissions after the due date, we will not accept them towards the count of lessons completed on time for this extra credit.
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 completing work for someone else. 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.
Naturally, when working on a partner projects, you're free to share your code and collaborate in full detail with your partner. However, you should not share your code with other groups.
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:
The following types of collaboration are prohibited and may constitute academic misconduct:
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.
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, 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.
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 Soham's attention within 72 hours of submission and request amnesty. If you do so, you will receive a grade of U for the initial submission, but you will be allowed to resubmit your work under the normal resubmission process. 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!)
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.
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! If you would like to set up Python for local development, 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. Since we will be remote this quarter, we do not recommend doing this setup right away since it is difficult to debug a setup remotely. When working on your final project, you might want to install this if your dataset is too large to be stored on EdStem.
Lecture notes and section handouts will be shared on EdStem or Google Colaboratory. All links to specific resources can be found on course website.
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.
Your experience in this class is important to me. If you have already established accommodations with Disability Resources for Students (DRS), please communicate your approved accommodations to me 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 at 206-543-8924 or email@example.com 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.
We thank Ruth Anderson, Valentina Staneva, Jake VanderPlas, Ariel Rokem, Joe Hellerstein, and Magdalena Balazinska for their contributions to designing this course. The initial materials for this course were created by Hunter Schafer with significant contributions by Josh Ervin, Zorah Fung, Erik Hoberg, Melissa Hovik, Dylan Jergens, Joely Nelson, Nicole Riley, and Erika Wolfe with input from Ruth Anderson. The course website was completely redesigned from the ground up by Wen Qiu. Special thanks to Magdalena Balazinska, Dan Grossman, and the eScience Education Working Group for their leadership in creating this course.