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 CSE122 (Introduction to Computer Programming II) or CSE160 (Data Programming).
The course complements CSE123 or CSE143, which focus 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 CSE122 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.
- Foundations of data literacy and technical communication for critical and conscientious data science.
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 122/142 or CSE 160 and the class has been designed to be accessible to students from either of those backgrounds. Students that have taken 123/143 are welcome to take this class as it will serve as a complement to the material learned in 123/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:
- 122/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.
- 123/143: You are in a similar boat as the 122/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 123/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-adviser@cs.washington.edu instead.
Announcements¶
Mar 30 Welcome to CSE 163!
Welcome to the start of the quarter!
See the full announcement on Ed!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!
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 | Weekly Assignment | Final Project | ||
|---|---|---|---|---|---|
| Module 0 - Python Fundamentals | |||||
| Mon 03/30 | LES 00 Intro to CSE 163 | ||||
| Out WA1 Due 11:59 pm | |||||
| Wed 04/01 | LES 01 Control Structures | ||||
| Thu 04/02 | SEC 01 Welcome to Section! resources: handout slides gradescope | ||||
| Out WA2 Due 11:59 pm | |||||
| Fri 04/03 | LES 02 Strings and Lists | ||||
| Out THA1 I.S. 11:59 pm | |||||
| Module 1 - Data Structures and Files | |||||
| Mon 04/06 | LES 03 File Processing | ||||
| Wed 04/08 | LES 04 Data Structures | ||||
| Out WA3 Due 11:59 pm | |||||
| Thu 04/09 | SEC 02 Python Practice resources: slides gradescope | ||||
| Fri 04/10 | LES 05 Objects | ||||
| Out THA2 I.S. 11:59 pm | |||||
| Module 2 - Pandas | |||||
| Mon 04/13 | LES 06 More Objects | ||||
| Wed 04/15 | LES 07 Inheritance lesson: lesson | ||||
| Out WA4 Due 11:59 pm | |||||
| Thu 04/16 | SEC 03 Classes and Objects | ||||
| Fri 04/17 | LES 08 CSV Data lesson: lesson | ||||
| Module 3 - Data Science Libraries | |||||
| Mon 04/20 | LES 09 pandas: DataFrames | ||||
| Out PROJ P1 Due 11:59 pm | |||||
| Wed 04/22 | LES 10 pandas: Groupby and Indexing | ||||
| Out WA5 Due 11:59 pm | |||||
| Thu 04/23 | SEC 04 pandas | ||||
| Fri 04/24 | LES 11 Data Literacy & Communications | ||||
| Out THA3 I.S. 11:59 pm | |||||
| Module 4 - Classes and Objects | |||||
| Mon 04/27 | LES 12 Humanistic Computing | ||||
| Wed 04/29 | LES 13 Data Visualization | ||||
| Out WA6 Due 11:59 pm | |||||
| Thu 04/30 | SEC 05 Data Science Libraries | ||||
| Fri 05/01 | LES 14 Statistical Testing | ||||
| Out THA4 I.S. 11:59 pm | |||||
| Module 5 - Statistical Learning | |||||
| Mon 05/04 | LES 15 Introl to Machine Learning | ||||
| Out PROJ P2 Due 11:59 pm | |||||
| Wed 05/06 | LES 16 ML Evaluation | ||||
| Out WA7 Due 11:59 pm | |||||
| Thu 05/07 | SEC 06 Machine Learning | ||||
| Fri 05/08 | LES 17 Geospatial Data | ||||
| Out THA5 I.S. 11:59 pm | |||||
| Module 6 - Geospatial Data | |||||
| Mon 05/11 | LES 18 Dissolve & Joins | ||||
| Wed 05/13 | LES 19 numpy and Images | ||||
| Out WA8 Due 11:59 pm | |||||
| Thu 05/14 | SEC 07 Geospatial Data | ||||
| Fri 05/15 | LES 20 Convolutions | ||||
| Module 7 - Images | |||||
| Mon 05/18 | LES 21 ML and Images | ||||
| Out PROJ P3 Due 11:59 pm | |||||
| Wed 05/20 | LES 22 Research Methods | ||||
| Out WA9 Due 11:59 pm | |||||
| Thu 05/21 | SEC 08 Images | ||||
| Fri 05/22 | LES 23 Algorithmic Fairness and Privacy | ||||
| Module 8 - Data Science and Society | |||||
| Mon 05/25 | LES 24 Holiday | ||||
| Wed 05/27 | LES 25 Ethics Case Studies | ||||
| Out WA10 Due 11:59 pm | |||||
| Thu 05/28 | SEC 09 Project/Portfolio Check-In | ||||
| Fri 05/29 | LES 26 Applications I | ||||
| Module 9 - Applications | |||||
| Mon 06/01 | LES 27 Applications II | ||||
| Out PROJ P4 Due 11:59 pm | |||||
| Wed 06/03 | LES 28 Victory Lap & Next Steps | ||||
| Thu 06/04 | SEC 10 Final Presentations | ||||
| Out PROJ P5 Due 11:59 pm | |||||
| Fri 06/05 | LES 29 Presentations | ||||
| Module 10 - Final Week | |||||
| Mon 06/08 | EXAM FINAL REFLECTION: MONDAY, JUNE 8TH (8:30AM-10:20AM) | ||||