Welcome to CSE 160: Data Programming! 🎉

What is this class? What will I learn?

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.

CSE 160 is an introductory programming class that meets this need. You will learn to write small programs in Python to solve real-world problems in science, engineering, business, and other fields. This will be useful in your classes, research, and jobs.

In this course:

  1. You will learn computational problem-solving. If given a data source and problem description, you will be able to write a complete, useful program to solve the problem.
  2. You will learn Python, a popular and general-purpose programming languages that includes libraries for data manipulation, scientific computing, and visualization.
  3. Assignments will use real datasets from fields such as biology, government, social networks, and more.
Prerequisites and Expectations

There are no prerequisites to this course other than high school math. We assume that you are familiar with basic computer usage (running applications, editing documents, etc).

This course does not assume any previous programming experience. If you have taken CSE 143, 123, or any 300-level CSE class, you will not receive credit for taking CSE 160. For those who have taken CSE 142, 122 or have had some experience with programming, CSE 163 may be a better class choice.

Feedback

Feedback is always welcome! You can contact the the course staff or submit anonymous feedback.

Registration

Do not email the course staff or instructor requesting an add-code for the course. The course staff do not have any add-codes. Please email ugrad-advisor@cs.washington.edu.

Announcements

Jan 20

Homework 2 Release + Coding Practice 2 deadline extended

Our next homework, Homework 2, has been released and is due 11:59pm on Friday, January 24th.

This homework is intended to give you more practice writing Python code to analyze DNA data. This applies knowledge of for loops, variables, and strings that you learned from Week 1-2. It will also require you to work with the terminal, which we will describe in the specifications.

The best way to get help for the projects is through Ed or Office Hours! Please do not hesitate to ask if you’re stuck on something, because chances are somebody else will be too, and now they can be helped by your thread!

In addition, the deadline for Coding Practice 2 has been extended until 11:59pm on Friday, January 24th. Please see the pinned post on Ed for more details.

Jan 06

First Day Announcements

Survey + Intro

Welcome to CSE 160! We hope you have a wonderful time this quarter learning Python. To get started, fill out the About You Survey!

Homework 0 Released!

Our first homework of the quarter (Homework 0) has been released and is due 11:59pm on Friday, January 10th. This homework is intended to get you up to speed the course infrastructure and give you some light practice with Python. You can find the instructions for HW0 here.

Preliminary Office Hours now posted

We now have office hours! Office Hours being this week! Office Hours tend to be the best way to get face-to-face help with the instructor or a TA, so do come and say hi!

And a reminder, if you have any questions, please post on Ed! All of the course staff will be checking in on Ed regularly, so you can get help from us without having to schedule an appointment or come to office hours.

Calendar

Info

This is a rough sketch of the quarter and things are subject to change. We can accurately predict the past, but predicting the future is hard!

Topic Homeworks Practice Check-In
Week 1
Mon 01/06
LEC 01 Intro to CSE 160 and Python
in-class: recording
resources: notes readings
06 Jan
HW 0
Homework 0
10 Jan, 11:59 pm
P 1
Check-in #0 About you Survey
10 Jan, 11:59 pm
Wed 01/08
LEC 02 Intro to Python (cont.)
08 Jan
W 1
Coding Practice #1
17 Jan, 11:59 pm
P 2
Written Check-in #1
09 Jan, 11:59 pm
Thu 01/09
SEC 01 Intro to Python
in-class: gslides
Fri 01/10
LEC 03 Loops
in-class: recording
Slides Loops
resources: notes readings
Week 2
Mon 01/13
LEC 04 Nested Loops & Intro If
in-class: recording
resources: notes readings
11 Jan
HW 1
Homework 1
17 Jan, 11:59 pm
Wed 01/15
LEC 05 If Statements
in-class: recording
resources: notes readings
P 3
Written Check-in #2
16 Jan, 11:59 pm
Thu 01/16
SEC 02 Loops + If Statements
worksheet: blank solution
in-class: gslides
Fri 01/17
LEC 06 Functions
in-class: recording
resources: notes readings
Week 3
Mon 01/20
LEC 07 Holiday
in-class: slides recording
resources: notes readings
18 Jan
HW 2
Homework 2
24 Jan, 11:59 pm
18 Jan
W 2
Coding Practice #2
24 Jan, 11:59 pm
Wed 01/22
LEC 08 Functions (cont.)
in-class: slides recording
resources: notes readings
P 4
Written Check-in #3
23 Jan, 11:59 pm
Thu 01/23
SEC 03 Functions
Fri 01/24
LEC 09 Lists
in-class: slides recording
resources: notes readings
Week 4
Mon 01/27
LEC 10 Nested Lists
in-class: slides recording
resources: notes readings
25 Jan
HW 3
Homework 3
31 Jan, 11:59 pm
Wed 01/29
LEC 11 File I/O
in-class: slides recording
resources: notes readings
P 5
Written Check-in #4
30 Jan, 11:59 pm
Thu 01/30
SEC 04 Lists & File IO
Fri 01/31
LEC 12 Mutability & Sharing
in-class: slides recording
resources: notes readings
Week 5
Mon 02/03
LEC 13 Dictionaries
in-class: slides recording
resources: notes readings
01 Feb
HW 4
Homework 4 - Part 1
10 Feb, 11:59 pm
Wed 02/05
LEC 14 Nested Dictionaries
in-class: slides recording
resources: notes readings
P 6
Written Check-in #5
06 Feb, 11:59 pm
Thu 02/06
SEC 05 Dictionaries
Fri 02/07
LEC 15 Sets & Tuples
in-class: slides recording
resources: notes readings
Week 6
Mon 02/10
LEC 16 Midterm Review
in-class: slides recording
resources: notes readings
Wed 02/12
LEC 17 MIDTERM
in-class: slides recording
resources: notes readings
11 Feb
HW 5
Homework 4 - Part 2
21 Feb, 11:59 pm
P 7
Written Check-in #6
13 Feb, 11:59 pm
Thu 02/13
SEC 06 Sets & Nested Structures
Fri 02/14
LEC 18 Modules and Program Decomposition
in-class: slides recording
resources: notes readings
Week 7
Mon 02/17
LEC 19 Holiday
in-class: slides recording
resources: notes readings
Wed 02/19
LEC 20 Graphs
in-class: slides recording
resources: notes readings
P 8
Written Check-in #7
20 Feb, 11:59 pm
Thu 02/20
SEC 07 Tuples, Itemgetter, and Sorting
Fri 02/21
LEC 21 Sorting
in-class: slides recording
resources: notes readings
Week 8
Mon 02/24
LEC 22 Sorting (review + cont.)
in-class: slides recording
resources: notes readings
22 Feb
HW 6
Homework 5 - Part 1
28 Feb, 11:59 pm
Wed 02/26
LEC 23 Testing & Debugging
in-class: slides recording
resources: notes readings
P 9
Written Check-in #8
27 Feb, 11:59 pm
Thu 02/27
SEC 08 Testing
Fri 02/28
LEC 24 Good Programming Practices
in-class: slides recording
resources: notes readings
28 Feb
HW 7
Homework 5 - Part 2
07 Mar, 11:59 pm
Week 9
Mon 03/03
LEC 25 Visualization & Intro Classes
in-class: slides recording
resources: notes readings
Wed 03/05
LEC 26 Classes (cont.)
in-class: slides recording
resources: notes readings
P 10
Written Check-in #9
06 Mar, 11:59 pm
Thu 03/06
SEC 09 Classes and Visualization
Fri 03/07
LEC 27 Classes (cont.)
in-class: slides recording
resources: notes readings
07 Mar
HW 8
Homework 6
14 Mar, 11:59 pm
Week 10
Mon 03/10
LEC 28 CSV DictReader
in-class: slides recording
resources: notes readings
Wed 03/12
LEC 29 Bonus Python
in-class: slides recording
resources: notes readings
P 11
Written Check-in #10
13 Mar, 11:59 pm
Fri 03/14
LEC 30 Final Review
in-class: slides recording
resources: notes readings
Week 11
Mon 03/17
LEC 31 THURSDAY, MARCH 20TH, FINAL EXAM
in-class: slides recording
resources: notes readings