Syllabus

Table of contents
  1. Course Description
  2. Prerequisites
  3. Grading
  4. How will you learn?
  5. Late Policy
    1. Accommodating late assignments beyond the late day policy
  6. Lecture Recordings
  7. Why should we learn?
  8. FAQ

Course Description

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.

In this course, students will learn:

  1. More advanced programming concepts including how to compose programs with multiple modules.
  2. How to work with different types of data: tabular data, text data, image data, geospatial data, etc.
  3. Data science tools and libraries including Jupyter Notebook, scikit-image, scikit-learn, and Pandas.
  4. Software engineering skills including asymptotic analysis, data settings, and data ethics.

Prerequisites

This course is designed to support students who have completed:

CSE 160: Data Programming
Know control structures, file I/O, and data structures in Python. Your first week will be a review.
CSE 122: Introduction to Computer Programming II
Know control structures, file I/O, and data structures in Java. Your first week will focus on learning these concepts in Python.

Grading

Grading in this course emphasizes both completion and quality trend of coursework received for formal evaluation. Completion is tracked primarily through Canvas module requirements, while quality trend is tracked primarily through the Canvas learning mastery gradebook. Each assessment contributes one alignment to the listed learning outcomes. The alignment could be one of Unassessable, Approaching, Satisfactory, and Exemplary, in the order of increasing quality. With the exception of Testing and Writeup, a quality trend is established based on the 3 best alignments for each learning outcome from the first 4 assessments and the alignment for each learning outcome from the final assessment, Mapping.

1.0 or greater
Completion of Python and Pandas modules.
2.0 or greater
Completion of Python, Pandas, and Software Engineering modules.
3.0 or greater
Completion of Python, Pandas, Software Engineering, and Applications modules.
Satisfactory quality trend for all learning outcomes.
4.0
Completion of Python, Pandas, Software Engineering, and Applications modules.
Exemplary quality trend for all learning outcomes.
Highest marks in Project module.

Grading in this course emphasizes learning by evaluating quality as a trend over time rather than as a fixed score. With the exception of the Project, individual assignment scores do not directly feed into final grades. In Canvas, quality trend is computed using a decaying average. This formula makes several mathematically convenient but ultimately faulty assumptions, such as treating scores as equally distant numbers and that each assessment is equally important. Final grading will address these assumptions.

How will you learn?

In a traditional classroom, you attend class while a teacher lectures until time is up. Then, you go home and do the important work of applying concepts toward practice problems or assignments on your own. Finally, you take an exam to show what you know.

Today, we know that there are more effective ways to learn science, engineering, and mathematics.1 Learning skills like software engineering and algorithm analysis requires deliberate practice: a learning cycle that starts with sustained motivation, then presents tasks that build on prior knowledge, and concludes with immediate, personalized feedback. Each module in the course will involve several different activities that are designed so that we can make the most of our class time together.

Before lecture, skim the class activities and ask questions in the discussion board.
Optionally, in Ed Discussion, write your questions in the weekly discussion thread.
During lecture, learn and support each other on the in-class guided coding practice.
In PollEverywhere, submit your responses to complete the coding polls and activities.
In section on Thursday, work with your team to get started on the upcoming weekly programming assessment. Complete the assessment by the following week’s section for code review.
During quiz section, participate in a code review evaluated by your TA.
In Canvas, complete the annotations of lecture notes when it’s not your turn for the code review.
By the end of Thursday,
In Canvas, use your browser’s PDF printer to submit your notebook as a PDF for TA review.
By the end of the following Tuesday,
In Canvas, respond to your TA review questions to complete the review.

Code review discussions are the primary means of standardized assessment in this course. Rather than treat your submitted program code as the final artifact for evaluation, it is instead a starting point for a conversation that demonstrates your programming fluencies such as code writing, code reading, code debugging, and code communication skills. Communicating your ideas and explaining your decision-making is important in this course. But we know that live discussions during class may not be accessible for everyone and we would be happy to work with you to design accommodations that would allow you to communicate your programming fluencies in an accessible format for you.

The purpose of all these activities are for you to learn the course concepts, not to prove that you already know them. Working with a team and discussing problem solving approaches is an effective way to learn. You can expect to receive substantial assistance from other students and the course staff before, during, and after class. Regardless of how much help you receive from others, in order to conduct a successful code review discussion, you’ll need to be deeply familiar with all the code that you write. Do not deprive yourself or others of learning opportunities in this course.

Encouraged
Discussing examples shown in class. These examples are part of the course’s learning materials.
Working with a TA to improve your understanding of a task and resolve a particular problem.
Communicating with other students without sharing code or exact details to reproduce a solution.
Permitted with caution
Working alongside one or more other people on an assessment. Peer code review relies on students preparing sufficiently different programs that are then compared against each other.
Sharing or generating small snippets of code that are not specific to any part of an assessment. Code reviews require you to explain, discuss, and compare ideas about code that you wrote.
Prohibited
Obtaining or generating solutions to any part of an assessment in any form for any reason.
Giving, receiving, or generating a walkthrough to an assessment from anyone or anything else.
Posting solutions to an assessment in a public place even after the course is over.

All sources that you consult in completion of your work must be cited and documented, including course materials, lectures, and sections. Assignment completeness will depend on cited sources matching the submitted work. If your work is marked as missing citations, it’s considered as incomplete and TAs cannot grade it. You have until the following Thursday (the usual assessment due day) to add in the citations and your work will be graded on the usual schedule shifted back by one week.

Expect to spend 4 hours in class and 8 hours outside of class working on this course. Some weeks may require more or less time than other weeks. If you find the workload is significantly exceeding this expectation, talk to your TA.

Late Policy

Assessments and project deliverables must be submitted by 11:59pm on the listed due date. Late days are measured in periods of 24 hours (no special considerations about weekends outside of the fact that the teaching staff may not respond to Ed questions during that period). You have 5 late days with no penalty for the whole quarter but can use no more than 3 for any given assessment and project deliverables. Beyond this, a late submission will lose one score in Assignment Completeness per day (additive). When the free late days are used up, the completeness is considered as Unassessble. The resubmission policy is similar to when there’s no citations; you are allowed one resubmission for each assessment, and you have until the following Thursday to resubmit and your work will be graded on the usual schedule shifted back by one week (except for the final project report and we will only consider reports submitted by Aug 18, 11:59PM PT).

Accommodating late assignments beyond the late day policy

In case of unforeseen or extenuating circumstances where students need more time to submit beyond the free late days, students should email the instructor, and say:

“I am dealing with extenuating circumstances and need support for submitting my next assignment. I am already using Y of my ‘free’ late days on this assignment, but will need X additional days, so I am requesting to turn it in on the requested date = [due date + X + Y].”

This request will be granted if the staff is able to accommodate the extra burden of grading (requested submission date ≤ Aug 18) and if one of the following is true:

  • X ≤ 3 and this is the first or second time in the quarter the student has reached out requesting extra time for an assignment. (This should support students who are struggling with a one-off unforeseen circumstance but do not require additional support).
  • We receive an email from DRS requesting special accommodations (This should support students who need special accommodations.)
  • A CSE academic advisor (or equivalent from another department) is cc’ed in the email and follows up to say “I have been in touch with the student and I am working with them to support them in this extenuating circumstance. I think it is appropriate for the Staff of CSE 163 to grant this exception if it is possible.” (This should support students are dealing with extenuating circumstances but have reached out to the UW resources and are getting the appropriate support). If you need help getting in touch with advising, we would be happy to assist.
  • A research advisor (or another faculty mentor within UW) is cc’ed in the email and follows up to say “I am aware of this request and think it is appropriate for the Staff of CSE 163 to grant this exception if it is possible.” (This should support students who need special accommodations but are getting the appropriate support from another faculty mentor.)

Lecture Recordings

This course is scheduled to be fully in-person, but lectures will be recorded/livestreamed. Because technical issues with recordings may arise, we cannot guarantee that all lectures will be made available offline and therefore students are strongly encouraged to attend classes unless they are unable due to extraordinary circumstances.

Why should we learn?

The education you receive in this course can help prepare you for programming jobs, but this isn’t the only purpose for computing education.2 Education is not only about yourself and your personal gain, but also about all of us and our capacity to live together as a community.

The University of Washington acknowledges the Coast Salish peoples of this land, the land which touches the shared waters of all tribes and bands within the Duwamish, Puyallup, Suquamish, Tulalip and Muckleshoot nations. Among the traditions of the Coast Salish peoples is a value for the connectedness between all living things and a recognition of the unique ways that each of us comes to know something.3

Modern education has the idea that we all need to know the same thing. At the end of the lesson, everyone will know the same thing. That’s why we have tests, that’s why we have quizzes, that’s why we have homework: to ensure we all know the same thing. And that’s powerful—that’s important—within a certain context.

But for native culture, the idea that each listener divines or finds their own answer, their own meaning, their own teaching from the story is equally powerful—that each person needs to be able to look at the world and define it for themselves within their culture and then also find a way to live in that world according to the teachings of their people in their culture.

Our course emphasizes the following values.

We are responsible for each others’ success
Everyone has a right to feel like they belong in this course. We’ll need to act with compassion and caring to collaborate with each other. Although we will need more than just unexamined commitments to collaboration, listening, empathy, mindfulness, and caring,4 the following guidelines offer a starting point for ensuring compassion toward each other.5
  • Listen with intention to understand first and form an opinion only after you fully understand.
  • Take responsibility for the intended and unintended effects of your words and actions on others.
  • Mindfully respond to others’ ideas by acknowledging the unique value of each contribution.

You should expect and demand to be treated by your classmates and teachers with respect. If any incident occurs that challenges this commitment to a supportive, diverse, inclusive, and equitable environment, please let the instructor know so the issue can be addressed. Should you feel uncomfortable bringing up an issue with the instructor directly, meet our advisors during quick questions or contact the College of Engineering.

We recognize everyone has unique circumstances
Do not hesitate to contact the instructor by private discussion post or email. The sooner we are made aware of your circumstances, the more we can help. Extenuating circumstances include work-school balance, familial responsibilities, religious observations, military duties, unexpected travel, or anything else beyond your control that may negatively impact your performance in the class.
It is the policy and practice of the University of Washington to create inclusive and accessible learning environments consistent with federal and state law. If you have already established accommodations with Disability Resources for Students (DRS), activate your accommodations via myDRS so we can discuss how they will be implemented in this course. If you have a temporary health condition or permanent disability that requires accommodations, contact DRS directly to set up an Access Plan.
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.
We believe everyone wants to learn
Education is about shaping your identity as much as it is about learning things. In school, the consequences of making mistakes are relatively small. But the habits you form now—repeated over days, weeks, months, or years—determine who you will be in the future. Now is the best time to practice honest habits.
We ask that you do not claim to be responsible for work that is not yours. When you receive substantial help from someone else or an online source, include a citation. Don’t post your solutions publicly. Most importantly, don’t deprive yourself or others of the learning opportunities that we’ve created in this course.
Academic honesty reflects the trust (or the lack thereof) between students and teachers. We do our best to design the course in ways that ensure trust, and expect that you are honest and forthcoming in your communications with us, but we know our systems are not perfect. If you submit work in violation of these policies but bring it to the attention of the instructor within 72 hours, you may resubmit your own work without further consequence. Rather than blame students, we want to fix or replace broken systems that compel students to lose trust.

FAQ

Can I use AI tools (e.g., GPT, Co-pilot)?
If you use any AI tool, please provide the full script with the AI tool as part of your submission and cite properly. For GPT, you should provide the public link through the “Share” button. Your usage should be limited to asking questions that facilitate you in producing your original work instead of asking the AI agent to complete the work for you, which deprives you of the learning. If you are unsure whether your planned usage is allowed, please check with the course staff through a private Ed post by including your planned prompt in the post. If we find any usage that is not allowed, we will report to CSSC.
What can I do when I get stuck on completing the coursework?
We try to include any needed knowledge to complete assessments in lecture/section materials so the most helpful is to watch lectures relevant to the assessment or go over notebooks of those lectures. Please also utilize Ed (you can help each other!) and office hours, and remember to cite the sources (e.g., notes of a lecture, fellow students, online resources).
  1. Scott Freeman, Sarah L. Eddy, Miles McDonough, Michelle K. Smith, Nnadozie Okoroafor, Hannah Jordt, and Mary Pat Wenderoth. 2014. Active learning increases student performance in science, engineering, and mathematics

  2. Mark Guzdial. 2021. Computer science was always supposed to be taught to everyone, and it wasn’t about getting a job

  3. Roger Fernandes. 2012. Roger Fernandes: Artist/Storyteller/Educator

  4. Brian Arao and Kristi Clemens. 2013. “From Safe Spaces to Brave Spaces: A New Way to Frame Dialogue Around Diversity and Social Justice” in The Art of Effective Facilitation

  5. Asao B. Inoue. 2019. “Sample Charter for Compassion” in Labor-Based Grading Contracts: Building Equity and Inclusion in the Compassionate Writing Classroom