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

Nov 22

Homework 6 Released

Our final homework, Homework 6, has been released and is due 11:59pm on Friday, 12/06. This homework is intended to give you slightly closer to “real world” experience by starting with a nearly-empty starting file.

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!

Nov 12

Homework 5 Release

Our next homework, Homework 5, has been released. This homework has been broken into two parts:

  • Part one is due 11:59pm on Monday, November 18.
  • Part two is due 11:59pm on Monday, November 25

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!

Oct 18

Homework 4 Release

Our next homework, Homework 4, has been released. This homework has been broken into two parts. Part one is due 11:59pm on Monday, Oct 28. Part two is due 11:59pm on Friday, Nov 8.

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!

All Announcements

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 - Python Fundamentals
Mon 09/23
HOLIDAY Summer Break
Wed 09/25
LEC 01 Intro to CSE 160 and Python
25 Sep
HW 0
Homework 0
30 Sep, 11:59 pm
25 Sep
W 1
Coding Practice #1
04 Oct, 11:59 pm
P 1
Check-in #0 About you Survey
30 Sep, 11:59 pm
Thu 09/26
SEC 01 Intro to Python
in-class: gslides
Fri 09/27
LEC 02 Intro to Python/Loops
in-class:
resources: recording
Week 2 - Loops and Ifs
Mon 09/30
LEC 03 Loops
in-class:
Slides Loops
resources: recording
30 Sep
HW 1
Homework 1
04 Oct, 11:59 pm
Wed 10/02
LEC 04 Nested Loops & Intro If
P 2
Check-in #1
03 Oct, 11:59 pm
Thu 10/03
SEC 02 Loops + If Statements
worksheet: blank solution
in-class: gslides
Fri 10/04
LEC 05 Nested Loops & If Statements
04 Oct
HW 2
Homework 2
11 Oct, 11:59 pm
04 Oct
W 2
Coding Practice #2
11 Oct, 11:59 pm
Week 3 - Functions
Mon 10/07
LEC 06 Functions
Wed 10/09
LEC 07 Functions (con't)
P 3
Check-in #2
10 Oct, 11:59 pm
Thu 10/10
SEC 03 Functions
worksheet: blank solution
in-class: gslides
Fri 10/11
LEC 08 Lists
in-class:
Slides Lists
resources: recording
Notes Lists
11 Oct
HW 3
Homework 3
18 Oct, 11:59 pm
11 Oct
W 3
Coding Practice #3
18 Oct, 11:59 pm
Week 4
Mon 10/14
LEC 09 Nested Lists
in-class:
Slides Lists
resources: recording
Wed 10/16
LEC 10 Debugging practice and File I/O (briefly)
P 4
Check-in #3
17 Oct, 11:59 pm
Thu 10/17
SEC 04 Lists & File IO
worksheet: blank solution
in-class: gslides
Fri 10/18
LEC 11 Sharing + Mutability
in-class:
resources: recording
Notes Sharing
18 Oct
HW 4
Homework 4 - Part 1
28 Oct, 11:59 pm
18 Oct
W 4
Coding Practice #4
25 Oct, 11:59 pm
Week 5 - Dictionaries and Nested Structures
Mon 10/21
LEC 12 Mutability (con't) & Dictionaries
Wed 10/23
LEC 13 Nested Dictionaries
P 5
Check-in #4
24 Oct, 11:59 pm
Thu 10/24
SEC 05 Dictionaries
worksheet: blank solution
in-class: gslides
Fri 10/25
LEC 14 Sets & Tuples
in-class:
Slides Sets
resources: recording
25 Oct
W 5
Coding Practice #5
01 Nov, 11:59 pm
Week 6 - Midterm
Mon 10/28
LEC 15 Midterm Review
28 Oct
HW 5
Homework 4 - Part 2
08 Nov, 11:59 pm
Wed 10/30
EXAM Midterm
resources: Website
P 6
Check-in #5
31 Oct, 11:59 pm
Thu 10/31
SEC 06 Sets & Nested Structures
worksheet: blank solution
in-class: gslides
Fri 11/01
LEC 17 Modules & Debugging
in-class:
resources: recording
01 Nov
W 6
Coding Practice #6
08 Nov, 11:59 pm
Week 7 - Graphs and Sorting
Mon 11/04
LEC 18 Debugging (con't)
in-class:
resources: recording
Wed 11/06
LEC 19 Sorting
in-class:
Slides Sorting
resources: recording
P 7
Check-in #6
07 Nov, 11:59 pm
Thu 11/07
SEC 07 Tuples, Itemgetter, and Sorting
worksheet: blank solution
in-class: gslides
Fri 11/08
LEC 20 Sorting (review + con't)
in-class:
Slides Sorting
Handout Sorting
resources: recording
08 Nov
HW 6
Homework 5 - Part 1
18 Nov, 11:59 pm
08 Nov
W 7
Coding Practice #7
15 Nov, 11:59 pm
Week 8 - Testing and Debugging
Mon 11/11
HOLIDAY Veterans Day
Wed 11/13
LEC 21 Graphs, Testing + Debugging
in-class:
Handout Testing
resources: recording
P 8
Check-in #7
14 Nov, 11:59 pm
Thu 11/14
SEC 08 Testing
worksheet: blank solution
in-class: gslides
Fri 11/15
LEC 22 Good Programming Practice
in-class:
Slides Practice
resources: recording
Week 9 - Classes
Mon 11/18
LEC 23 Good Programming Practice (con't)
in-class:
Slides Practice
resources: recording
18 Nov
HW 7
Homework 5 - Part 2
25 Nov, 11:59 pm
Wed 11/20
LEC 24 Classes
in-class:
Slides Classes
resources: recording
19 Nov
W 8
Coding Practice #8
27 Nov, 11:59 pm
P 9
Check-in #8
21 Nov, 11:59 pm
Thu 11/21
SEC 09 Classes and Visualization
worksheet: blank solution
in-class: gslides
Fri 11/22
LEC 25 Classes (con't)
in-class:
Slides Classes cont'd
resources: recording
Week 10
Mon 11/25
LEC 26 Visualization
in-class:
resources: recording
25 Nov
HW 8
Homework 6
06 Dec, 11:59 pm
Wed 11/27
LEC 27 CSVDictReader + List Comprehensions
in-class:
resources: recording
Thu 11/28
HOLIDAY Thanksgiving
Fri 11/29
HOLIDAY Native American Heritage Day
Week 11 - Final Review
Mon 12/02
LEC 28 HW6
in-class: slides recording
resources: recording
Wed 12/04
LEC 29 More Python + What's Next
Thu 12/05
SEC 10 Final Review & OH
worksheet: blank solution
in-class: gslides
Fri 12/06
LEC 30 Final Review
resources: recording
Finals Week
Mon 12/09
No class
Wed 12/11
EXAM Final Exam
in-class: slides recording