Welcome to CSE 163: Intermediate 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.

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.
Prerequisites and Expectations

This is class is designed as the second introductory programming course that focuses on writing programs that work with data. The prerequisites for the class require students having taken CSE 142 or CSE 160 and the class has been designed to be accessible to students from either of those backgrounds. Students that have taken 143 are welcome to take this class as it will serve as a complement to the material learned in 143 with only minor overlap.

Because this course will have students coming from many different class backgrounds, the first couple of weeks will be pretty different for students depending on what classes they have taken. Here is what we expect students to see in the first weeks based on their background:

  • 142: The first two weeks might go pretty fast, but will be doable since you already know all the concepts (loops, conditionals, methods) and you are just learning all the new “words” in Python to use those concepts. This might require a little bit of extra practice early in the quarter so you are familiar with translating all the ideas you have learned in 142 to this new language. The first week has been designed to be a recap of all things 142 so you don’t also have to be learning a ton of new material while learning a new language in the first week.
  • 160: The first week will just be a bit of a review for you, but the class will start covering material you haven’t seen before starting in the second week.
  • 143: You are in a similar boat as the 142 students, where you know a lot of the concepts but don’t know the Python language. You’ll probably see a few things that you saw in 143 in this class, but I think the new context of processing data in a new language will still keep it new, exciting, and challenging.

If you want to learn more about the course and its policies, please check out our course syllabus.

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@uw.edu.

Announcements

May 19

Resubmissions (May 4 - May 10) Released

Feedback from last resubmission form processed

See the full announcement on Ed!
May 17

A4 Feedback Released

Assignment 4 feedback released.

See the full announcement on Ed!
May 17

Resubmission (May 18 - May 24)

Resubmission form for this week.

See the full announcement on Ed!

All Announcements

This Week (at a glance)

Monday (05/30)

  • Memorial Day! No class! Optional lesson here

Tuesday (05/31)

Wednesday (06/01)

  • πŸ“š Lesson 28: Algorithmic Privacy. Due for Lesson EC on Wednesday (06/01) @ 11:59 pm.
  • πŸ‘₯ Class Session @ 11:30 pm in GUG 220.

Thursday (06/02)

Friday (06/03)

  • πŸ“š Lesson 29: Victory Lap & Next Steps. Due for Lesson EC on Friday (06/03) @ 11:59 pm.
  • πŸ‘₯ Class Session @ 11:30 pm in GUG 220.
    • Last day of class
  • πŸ“ Checkpoint 9: Fairness and Privacy released. Due Monday (06/06) @ 11:59 pm.

Calendar

For students not currently in CSE 163, you can view the Lesson material here. For students who are in the class, you can find the link to the relevant lesson below.

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!

Lessons

Anything listed in the “Lesson” materials for a day should be read before attending class that day. We recommend doing all the slides before the “Pause and Think” slide. Each class session will start by reviewing what was in the Lesson and then most time will be spent on working on practice problems in the Lessons. See the syllabus for more info!

Topic Take-home assessments Checkpoints
Module 0 - Python Fundamentals
Mon 03/28
LES 00 Intro to CSE 163; Intro to Python

Note: Normally you would complete the Lesson reading portion before class. There is nothing you need to complete before class today! Complete by EOD today for EC.

Wed 03/30
LES 01 Control Structures
lesson: lesson
in-class: gslides
resources:
Videos
Thu 03/31
SEC 00 Welcome to Section!
resources: handout
Fri 04/01
LES 02 Strings and Lists
lesson: lesson
in-class: gslides
resources:
Videos
Released
A0
Startup
I.S. by 11:59 pm
Released
CP0
Intro/Review Python
Due 11:59 pm
Module 1 - Data Structures and Files
Mon 04/04
LES 03 File Processing
Wed 04/06
LES 04 Data Structures
Thu 04/07
SEC 01 Python Practice
resources: handout
Fri 04/08
LES 05 CSV Data
lesson: lesson
in-class: gslides
resources:
Videos
Released
A1
Primer
I.S. by 11:59 pm
Released
CP1
Data Structures and Files
Due 11:59 pm
Module 2 - Pandas
Mon 04/11
LES 06 pandas: DataFrames
Wed 04/13
LES 07 pandas: Group-by and Apply
Thu 04/14
SEC 02 pandas
Fri 04/15
LES 08 Time Series
lesson: lesson
in-class: gslides
resources:
Videos
Released
A2
Pokemon
I.S. by 11:59 pm
Released
CP2
pandas
Due 11:59 pm
Module 3 - Data Science Libraries
Mon 04/18
LES 09 Data Visualization
Wed 04/20
LES 10 Introduction to Machine Learning
Thu 04/21
SEC 03 Data Science Libraries
Fri 04/22
LES 11 ML cont.; ML and Society
Released
A3
Education
I.S. by 11:59 pm
Released
CP3
Data Science Libraries
Due 11:59 pm
Module 4 - Classes and Objects
Mon 04/25
LES 12 Objects
lesson: lesson
in-class: gslides
resources:
Videos
Wed 04/27
LES 13 More Objects
lesson: lesson
in-class: gslides
resources:
Videos
Extra resources
Thu 04/28
SEC 04 Classes and Objects
Fri 04/29
LES 14 Search Prep
Released
A4
Search
I.S. by 11:59 pm
Released
CP4
Classes and Objects
Due 11:59 pm
Module 5 - Efficiency
Mon 05/02
LES 15 Algorithmic Efficiency
lesson: lesson
in-class: gslides
resources:
Videos
Wed 05/04
LES 16 Profiling and Program Speed
lesson: lesson
in-class: gslides
resources:
Videos
Thu 05/05
SEC 05 Office Hours
Fri 05/06
LES 17 Computer Memory
lesson: lesson
in-class: gslides
resources:
Videos
Released
PROJ
Proposal
Due 11:59 pm
Released
CP5
Efficiency
Due 11:59 pm
Module 6 - Geospatial data
Mon 05/09
LES 18 Geospatial Data
lesson: lesson
in-class: gslides
resources:
Videos
Wed 05/11
LES 19 Dissolve and Joins
lesson: lesson
in-class: gslides
resources:
Videos
Thu 05/12
SEC 06 Geospatial Data
Fri 05/13
LES 20 Indexes / Trees
lesson: lesson
in-class: gslides
resources:
Videos
Released
A5
Mapping
I.S. by 11:59 pm
Released
CP6
Geospatial Data
Due 11:59 pm
Module 7 - Images
Mon 05/16
LES 21 numpy and Images
lesson: lesson
in-class: gslides
resources:
Videos
Wed 05/18
LES 22 Convolutions
lesson: lesson
in-class: gslides
resources:
Videos
Thu 05/19
SEC 07 Images
Fri 05/20
LES 23 Machine Learning and Images
lesson: lesson
in-class: gslides
resources:
Videos
Released
PROJ
Deliverables - Report/Code
Due 11:59 pm
Released
CP7
Images
Due 11:59 pm
Module 8 - Special Topics
Mon 05/23
LES 24 Hashing
lesson: lesson
in-class: gslides
resources:
Videos
Wed 05/25
LES 25 Ethics
lesson: lesson
resources:
Videos
Thu 05/26
SEC 08 Statistics and p-hacking
Fri 05/27
LES 26 Algorithmic Fairness
Released
CP8
Special Topics
Due 11:59 pm
Module 9 - Data Science and Society
Mon 05/30
HOLIDAY Memorial Day

Note: This reading is optional. Everyone already earned a Lesson EC for today, regardless of whether or not you do today's reading.

lesson: lesson
Tue 05/31
Wed 06/01
LES 28 Algorithmic Privacy
lesson: lesson
in-class: gslides
resources:
Videos
Thu 06/02
SEC 09 TA's Choice!
Fri 06/03
LES 29 Victory Lap & Next Steps
lesson: lesson
in-class: gslides
resources:
Videos
Released
CP9
Fairness and Privacy
Due 11:59 pm
Module 10 - Finals Week
Mon 06/06
Tue 06/07
Released
PROJ
Data Science Fair
Due 2:30 pm
Wed 06/08 CSE 163 Data Science Fair
Room TBD (2:30 - 4:20 pm)
Thu 06/09
Released
PROJ
Peer Feedback
Due 11:59 pm
Fri 06/10