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:
- More advanced programming concepts than in CSE142 or CSE160 including how to write bigger programs with multiple classes and modules.
- How to work with different types of data: tabular, text, images, geo-spatial.
- Ecosystem of data science tools including Jupyter Notebook and various data science libraries including scikit image, scikit learn, and Pandas data frames.
- 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¶
Aug 15 Final Week Reminder
Important reminders during the final week of the quarter.
See the full announcement on Ed! Aug 12 A5, LR5, Resubs (Jul 27 - Aug 2), Bonus Mini Project 4 Feedback Released
Information on how to view A5 and LR5 feedback.
See the full announcement on Ed! Aug 12 End of week 7 annoucements
Important information to know at the end of week 7.
See the full announcement on Ed!This Week (at a glance)¶
Monday (08/15)
- π Lesson 24: Indexes / Trees. Due for Lesson EC on Monday (08/15) @ 11:59 pm.
- π₯ Class Session @ 1:10 pm in SIG 134.
- π CP 7: Ethics, Fairness and Privacy due @ 11:59 pm.
Tuesday (08/16)
- π Final Presentation slide deck & video due @ 11:59 pm
Wednesday (08/17)
- π Final Presentation @ 1:10 pm in SIG 134.
Thursday (08/18)
- π©βπ« Quiz Section 8: TA's Choice
- π§ LR 7 due @ 11:59 pm.
Friday (08/19)
- π Lesson 25: Victory Lap & Next Steps. Due for Lesson EC on Friday (08/19) @ 11:59 pm.
- π₯ Class Session @ 1:10 pm in SIG 134.
- π Peer feedback due @ 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 | THA | LR | CP | Final Proj | ||
---|---|---|---|---|---|---|
Module 0 - Python Fundamentals | ||||||
Mon 06/20 | HOLIDAY Juneteenth Note: Due to the Monday holiday, we included a video series on course logistics in the lesson instead of going over them as a class. Feel free to post any questions on the discussion board! | |||||
Wed 06/22 | LES 01 Intro to CSE 163; Intro to Python & Control Structures | |||||
Thu 06/23 | SEC 00 Welcome to Section! resources: handout | |||||
Fri 06/24 | LES 02 Strings and Lists | |||||
Out A0 I.S. 11:59 pm | Out LR0 I.S. 11:59 pm | Out CP0 Due 11:59 pm | ||||
Module 1 - Data Structures and Files | ||||||
Mon 06/27 | LES 03 File Processing | |||||
Wed 06/29 | LES 04 Data Structures | |||||
Thu 06/30 | SEC 01 Python Practice resources: handout | |||||
Fri 07/01 | LES 05 CSV Data | |||||
Out A1 I.S. 11:59 pm | Out LR1 I.S. 11:59 pm | Out CP1 Due 11:59 pm | ||||
Module 2 - Pandas | ||||||
Mon 07/04 | HOLIDAY Independence Day | |||||
Wed 07/06 | LES 07 pandas : DataFrame s | |||||
Thu 07/07 | SEC 02 pandas resources: handout | |||||
Fri 07/08 | LES 08 pandas : Group-by and Apply | |||||
Out A2 I.S. 11:59 pm | Out LR2 I.S. 11:59 pm | Out CP2 Due 11:59 pm | Out PROJ P0 Due 11:59 pm | |||
Module 3 - Data Science Libraries | ||||||
Mon 07/11 | LES 09 Data Visualization | |||||
Wed 07/13 | LES 10 Introduction to Machine Learning | |||||
Thu 07/14 | SEC 03 Data Science Libraries resources: handout | |||||
Fri 07/15 | LES 11 ML cont.; ML and Society | |||||
Out A3 I.S. 11:59 pm | Out LR3 I.S. 11:59 pm | Out CP3 Due 11:59 pm | ||||
Module 4 - Classes and Objects | ||||||
Mon 07/18 | LES 12 Objects | |||||
Wed 07/20 | LES 13 More Objects | |||||
Thu 07/21 | SEC 04 Classes and Objects resources: handout | |||||
Fri 07/22 | LES 14 Search Prep | |||||
Out A4 I.S. 11:59 pm | Out LR4 I.S. 11:59 pm | Out CP4 Due 11:59 pm | ||||
Module 5 - Efficiency and Geospatial data | ||||||
Mon 07/25 | LES 15 Algorithmic Efficiency | |||||
Wed 07/27 | LES 16 Geospatial Data | |||||
Thu 07/28 | SEC 05 Geospatial Data resources: handout | |||||
Out PROJ P1 Due 11:59 pm | ||||||
Fri 07/29 | LES 17 Dissolve and Joins | |||||
Out A5 I.S. 11:59 pm | Out LR5 I.S. 11:59 pm | Out CP5 Due 11:59 pm | ||||
Module 6 - Images | ||||||
Mon 08/01 | LES 18 numpy and Images | |||||
Wed 08/03 | LES 19 Convolutions | |||||
Thu 08/04 | SEC 06 Images resources: handout | |||||
Fri 08/05 | LES 20 Machine Learning and Images | |||||
Out LR6 I.S. 11:59 pm | Out CP6 Due 11:59 pm | |||||
Module 7 - Data Science and Society | ||||||
Mon 08/08 | LES 21 Ethics | |||||
Wed 08/10 | LES 22 Algorithmic Fairness | |||||
Thu 08/11 | SEC 07 Statistics and p-hacking resources: AA handout AB handout AC handout | |||||
Fri 08/12 | LES 23 Algorithmic Privacy | |||||
Out LR7 I.S. 11:59 pm | Out CP7 Due 11:59 pm | |||||
Module 8 - Special Topics | ||||||
Mon 08/15 | LES 24 Indexes / Trees | |||||
Out PROJ P2 Due 1:10 pm | ||||||
Wed 08/17 | CSE 163 Final Project Presentation Note: Presentation during class time, SIG 134 @ 1:10 pm | |||||
Out PROJ P3 Due 11:59 pm | ||||||
Thu 08/18 | SEC 08 TA's Choice | |||||
Fri 08/19 | LES 25 Victory Lap & Next Steps | |||||