Not logged in
Talk
Contributions
Create account
Log in
Navigation
Main page
About
People
Publications
Teaching
Resources
Research Blog
Wiki Functions
Recent changes
Help
Licensing
Page
Discussion
Edit
View history
Editing
Community Data Science Course (Spring 2023)
(section)
From CommunityData
Jump to:
navigation
,
search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Schedule == {{notice|This section will be modified throughout the course to introduce the week's material, assignments, and so on.}} === Week 1: March 27 === Today we'll be getting software installed and getting setup with Python. '''Class Schedule:''' * Introduce ourselves to each other * Class overview and expectations — We'll walk through this syllabus ** We'll decide how we're going to stay in touch outside of class sessions. ** We'll introduce the teaching team. ** We'll discuss an example of a successful final project from a previous version of the class. * [[/Week 1 Exercise]] — You'll install software including the Python programming language and run through a series of exercises. * Introduce [[/Week 1 coding challenges]] '''By the end of class you will:''' * Under the class plan and goals (at least as much as possible at this point!) * Have a working Python environment on your personal laptop. * Have a GitHub account for turning in your coding challenges. * Have an account on the class synchronous discussion system. * Have written your first program in the Python language. (!!!) * Have learned a few basics about programming in Python including variables and lists. * Be ready to start on Week 1 coding challenges. If all goes well, you'll start on them! '''Programming challenges answers:''' * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=f85d134d-fc3a-4cc3-b3b5-afda01621fe7 Video from class walking through the results] * [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week1/week1-programming_challenge_examples.ipynb Jupyter notebook with Kaylea's assembled list of examples from you along with notes] * [https://github.com/kayleachampion/spr23_CDSW/blob/main/week1-homework/hill-week_01_coding_challenges-20230403.ipynb Jupyter notebook with Mako's answers to the programming challenges] === Week 2: April 3 === Today we'll be doing a crash course in basic programming in Python. '''Class session:''' * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=f85d134d-fc3a-4cc3-b3b5-afda01621fe7 Video of announcements and week 1 programming challenges] [Requires Canvas Access] * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=47a9e5d4-2998-4943-a047-afda01621fe4 Video of week 2 lecture] [Requires Canvas Access] * [[/Week 2 lecture notes]] * [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week2/week2-class_lecture.ipynb Week 2 lecture Jupyter notebook] '''Resources:''' * Chapters 2 and 3 of ''Python for Everyone'': ** [https://www.py4e.com/html3/02-variables Chapter 2, Variables] ** [https://www.py4e.com/html3/03-conditional Chapter 3, Conditionals] * [[Python data types cheat sheet]] '''Assignment Due:''' * Finish and turn in your [[/Week 1 coding challenges]] (Due Sunday before class) '''Class schedule:''' * Announcements * Answer any questions that folks have about the final projects * Review answers to last week's coding challenges (~60m) [Kaylea will lead] * ''Break'' * [[/Week 2 lecture notes]] which will briefly review stuff from last week and introduce new material including loops and lists * Introduce the [[/Week 2 coding challenges]] and the three worked examples '''By the end of class you will:''' * Have a better understanding of the expectations for your final project, * Start working on your idea for your final project choice (due on Monday! Ask for early feedback via teams!) * Feel (more?) comfortable with the week 1 material * Have written your first program with loops and lists === Week 3: April 10 === Today we'll be doing introducing some additional programming concepts in Python including aggregating and counting with dictionaries and some first steps toward writing data to files. '''Class session:''' * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=f855f94e-a0e7-4483-ad73-afe1011f745d Video of announcements and week 2 programming challenges] [Requires Canvas Access] * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=da51ee4c-59b7-4925-9f64-afe1011f7452 Video of week 2 lecture] [Requires Canvas Access] * [[/Week 3 lecture notes]] * [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week3/week3-class_lecture.ipynb Week 3 lecture Jupyter notebook] '''Resources:''' * Chapter 5, 6, and 8 of ''Python for Everyone'': ** [https://www.py4e.com/html3/05-iterations Chapter 5, Iterations]: Feel free to skip down to "Definite loops using for" or just skim the first part since we'll introduce it next week ** [https://www.py4e.com/html3/06-strings Chapter 6, Strings] ** [https://www.py4e.com/html3/08-lists Chapter 8, Lists]: You can skip the part on "Parsing lines" * [[Python loops cheat sheet]] '''Assignment Due:''' * [[#Final Project Idea|Final project idea]] (Due at 5pm on Monday, April 10) * Finish and turn in your [[/Week 2 coding challenges]] (Due Sunday before class) '''Class schedule:''' * Some quick announcements * Go over last week's assignments * [[/Week 3 lecture notes]] introducing new material on dictionaries and aggregations plus average, more loop control, and writing data to files * ''A Break'' * Introduce the [[/Week 3 coding challenges]] based on the [[Baby names]] project. * Project time—We'll work through projects <!--'''Resources:''' * [[Python data types cheat sheet]] A cheat sheet with everything we've covered in class so far including today. '''By the end of class you will:''' --> === Week 4: April 17 === Today we'll be learning about the basic of web APIs and JSON. '''Class session:''' * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=49d798d0-61b0-4998-b8db-afe8013c5ca8 Video of announcements and week 3 programming challenges] [Requires Canvas Access] * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=8aa88ce5-5de7-4b49-8920-afe8013c5cb9 Video of week 4 lecture part 1] [Requires Canvas Access] * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=001c2a6d-71ea-478d-9ce6-afe801795f2c Video of week 4 lecture part 2] [Requires Canvas Access] (rerecorded material from the last 30m of class) * [[/Week 4 lecture notes]] * [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week4/week4_lecture_part_1_bored_api.ipynb Week 4 lecture Jupyter notebook part 1] covering the [http://www.boredapi.com/ Bored API] * [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week4/week4_lecture_part_2_nominatim.ipynb Week 4 lecture Jupyter notebook part 2] covering the [https://nominatim.openstreetmap.org/ OpenStreetMap Nominatim API] '''Assignment Due:''' * Finish and turn in your [[/Week 3 coding challenges]] (Due Sunday before class) '''Resources:''' * Read chapters 7 and 9 of ''Python for Everyone'': ** [https://www.py4e.com/html3/07-files Chapter 7, Files] — we'll only be doing the section on "Writing files" (NB: you'll notice that the book uses <code>.write()</code> instead of <code>print()</code>) ** [https://www.py4e.com/html3/09-dictionaries Chapter 9, Dictionaries] — feel free to stop when you get to the section on "Advanced text parsing" '''Class schedule:''' * Go over the [[/Week 3 coding challenges]] * [[/Week 4 lecture notes]] introducing new material on APIs and JSON * Introduce the [[/Week 4 coding challenges]] <!-- [[Community Data Science Course (Spring 2019)/Day 5 Coding Challenges|Day 5 Coding Challenges]] --> * Project time—We'll work through projects === Week 5: April 24 === Today we'll be using Python to read and write files from disk and walk through an API project from start to finish. '''Class session:''' * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=8dff4630-e718-489c-a0c3-afef01525285 Video of announcements and week 4 programming challenges] [Requires Canvas Access] * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=8133566f-217d-4e45-b3c9-afef0152528b Video of week 5 lecture] * [[/Week 5 lecture notes]] * Notebooks from the lecture including: ** [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week5/week_5_lecture_part_1-data_collection.ipynb Week 5 lecture notebook part 1] - Data Collection ** [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week5/week_5_lecture_part_2-data_processing.ipynb Week 5 lecture notebook part 2] - Data Processing ** [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week5/week-5-lecture_pre-baked_workthrough-20230424.ipynb Week 5 lecture notebook (prebaked)] — A combination of the ideas from both notebooks above with the version of the code that I wrote as notes for myself before the class. '''Assignment Due:''' * Finish and turn in your [[/Week 4 coding challenges]] (Due Sunday before class) '''Resources:''' * Read selections of chapter 13 from ''Python for Everyone'': ** [https://www.py4e.com/html3/13-web Chapter 13, Python and Web Services] — sections on "JavaScript Object Notation - JSON", "Parsing JSON", and "Application Programming Interfaces" '''Class schedule:''' * Go over the [[/Week 4 coding challenges]] * [[/Week 5 lecture notes]] introducing some new concepts and walking through a project from start to finish * Introduce the [[/Week 5 coding challenges]] * Project time—We'll work through projects === Week 6: May 1 === Today we'll be putting everything together and walking through a project that builds a dataset from the Wikipedia API from start-to-finish, with a focus on cleaning and getting data into tools like Excel or Google Sheets, and introducing a set of tricks along the way. '''Class session:''' * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=cc521a93-d6ea-4093-aefe-aff6016dde91 Video of announcements and week 5 programming challenges] [Requires Canvas Access] * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=cc2034fa-eeb3-4b07-abbc-aff8007f170f Video of week 6 lecture] * [[/Week 6 lecture notes]] * Notebooks from the lecture including: ** [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week6/01-collect_rock_bands_json.ipynb Week 6 lecture notebook Wikipedia part 1] which handles data collection ** [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week6/02-analyze_rock_band_data.ipynb Week 6 lecture notebook Wikipedia part 2] which handles data analysis ** [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week6/yelp_business_search-module.ipynb Week 6 lecture notebook Yelp (module)] which uses the [https://github.com/lanl/yelpapi yelpapi] Python module ** [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week6/yelp_business_search-module.ipynb Week 6 lecture notebook Yelp (direct)] which uses API directly and is only here so you can see how this would work without a module so you get a sense for what the module is doing '''Assignment Due:''' * Finish and turn in your [[/Week 5 coding challenges]] (Due Sunday before class) '''Class schedule:''' * Let's discuss remaining schedule * Go over the [[/Week 5 coding challenges]] * [[/Week 6 lecture notes]] * Introduce the [[/Week 6 coding challenges]] * Project time—We'll work through projects <!-- * We will be discussing this data set: https://data.seattle.gov/Transportation/Collisions/vac5-r8kk * Introduce and start working on [[/Day 7 coding challenges]] [[Community Data Science Course (Spring 2019)/Day 8 notes|Day 8 notes]] * Discuss data downloading and cleaning. Refer to [[/Day 7 notes]] * [[/Day 8 notes]] --> === Week 7: May 8 === Today we'll (finally!) focus on using a module called <code>pandas</code> that provides spreadsheet like functionality within Python. '''Class session:''' * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=8078bce8-61bf-4b3d-8bf5-affd0130c1a7 Video of announcements and week 6 programming challenges] [Requires Canvas Access] * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=a815f1ce-ded8-4972-9bb0-affd0130c1a6 Video of week 7 lecture on pandas] [Requires Canvas Access] * [[/Week 7 lecture notes]] * Notebooks from the lecture including: ** [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week7/week_7_lecture_as_delivered-2023-05-08.ipynb Week 7 lecture notebook] which is the notebook I created in class ** [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week7/week_7_lecture_prework-2023-05-08.ipynb Week 7 lecture notebook (prework)] which is most of the same content but it is the version I created before class ** [https://github.com/kayleachampion/spr23_CDSW/blob/main/curriculum/week7/02-analyze_rock_band_data-pandasify.ipynb Wikipedia revisions pandas-ified] which is a modification of the <code>02-analyze_rock_band_data-pandasify.ipynb</code> notebook I created last week but which is modified to output pandas data. '''Assignment Due:''' * Finish and turn in your [[/Week 6 coding challenges]] (Due Sunday before class) '''Class schedule:''' * Go over the [[/Week 6 coding challenges]] * [[/Week 7 lecture notes]] introducing new material on new APIs * Introduce the [[/Week 7 coding challenges]] * Project time—We'll work through projects === Week 8: May 15 === We'll be transitioning into a focus on the final projects and trying to build time into class to make real progress on the programming and data collection part of your final projects. '''Class session:''' * [https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=bb9b5451-6d22-4e70-ac30-b00500463da4 Video of announcements and week 7 programming challenges] [Requires Canvas Access] * <strike>[https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=322d5481-254f-4df4-929d-b00500463da3 Video of the second part of the class with final presentations overview]</strike> [Appears to be Basically broken; Requires Canvas Access] '''Resources:''' * Readings: ** [https://pandas.pydata.org/docs/user_guide/10min.html 10 minutes to pandas] (from the pandas user guide) '''Assignment Due:''' * [[#Final Project Proposal]] * Finish and turn in your [[/Week 7 coding challenges]] (Due Sunday before class) '''Class schedule:''' * Let's discuss remaining schedule * Go over the [[/Week 7 coding challenges]] * We'll talk in some depth about the [[#Final Presentation]] * Project time—We'll work through projects === Week 9: May 22 === Today we'll be talking about doing data visualization in a range of tools in Python. '''Assignment Due:''' * Upload your complete data collection code to the [https://github.com/kayleachampion/spr23_CDSW/tree/main/week8-homework week8-homework directory] in the Github repository and be ready to talk about it in class! '''Class schedule:''' * Project time—We'll check in on projects and walk through folks data collection code in two groups * We'll do three topics in parallel: (1) ChatGPT API with Josh; (2) AI/ML for classification with Kaylea, and (3) statistics with Mako. === Week 10: May 29 (NO MEETING) === Because of Memorial Day, '''there will be no class this week.''' In lieu of class, we will arrange to have a virtual final presentations this week. This will involve (a) posting a short video of you presentation and (b) giving feedback to some number of your classmates. Details are posted in the [[#Final Presentation]] section of this page.
Summary:
Please note that all contributions to CommunityData are considered to be released under the Attribution-Share Alike 3.0 Unported (see
CommunityData:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:
Cancel
Editing help
(opens in new window)
Tools
What links here
Related changes
Special pages
Page information