Week 1: March 28
- Assignments due
- fill out the pre-course survey
- Agenda
- Quick introductions — Be ready to introduce yourself and describe your interest and goals in the class.
- Why Programming and Data Science for UX Research? — What this course is about
- Class overview and expectations — We'll walk through this syllabus.
- Group formation — We'll assemble in our peer programming groups for the first time.
- Installation and setup — You'll install software including the Python programming language and run through a series of exercises.
- Interactive lecture: programming concepts 1
- Self-guided tutorial and exercises — You'll work through a self-guided tutorial to practice the basic concepts we introduced in the lecture.
- Homework
- Complete Self-guided tutorial and exercises (if you didn't finish this in class).
- Complete CodeAcademy lessons
- Resources
- Python for Informatics: Preface and Chapter 1 Why should you learn to write programs?
- Command line cheat sheet — covers basics like
ls, pwd, cd
and much more.
Week 2: April 4
- Agenda
- We will review the programming concepts introduced last week as a group.
- We will introduce some new programming concepts into the mix.
- We will play a guessing game (click here to download the code)
- We will use what we have learned so far to cheat at Scrabble.
- We will introduce our first set of Coding Challenges.
- We will take a sneak peak at what a good final project looks like.
- Homework
- Complete the second set of CodeAcademy lessons
- Work on the Week 2 coding challenges
- Resources
- Python for Informatics: Chapter 2 Variables, expressions and statements and Chapter 3 Conditional execution
- Python data types cheat sheet
- Python loops cheat sheet
- Working within loops
- Wordplay handout
- cdsw-au2015-lecture1-20151010.ogv -- Mako Hill's lecture video from a previous course, which covers most of the concepts from my Week 1 and Week 2 lectures.
Week 3: April 11
- Agenda
- We will review your feedback from last week
- We will walk through the solutions to the code challenges from last week
- We will introduce some new programming concepts
- We will walk through an example of programming in a UX Research context
- We will begin working on a series of exercises using the Baby Names dataset
- Homework
- Resources
- go here
Week 4: April 18
- Agenda
- Week 3 code challenges — We'll briefly walk through the concepts and solutions to the Week 3 coding challenges as a group.
- Day 3 follow up — We will cover some important concepts that we didn't have a chance to cover in depth last week.
- Reading and writing files — we will learn how to read and write basic datafiles with Python.
- Burke-Gilman traffic counter — we will start working with a dataset of bike and pedestrian traffic on the Burke-Gilman trail.
- Wikipedia Notifications survey analysis — We will walk through a real life example that uses the concepts we've developed so far to answer research questions.
- Homework
- Day 4 coding challenges (Required) Turn in here!
- Resources
- Two video lectures by Mako Hill, which covers most of the concepts from NEXT week's lecture (as well as some useful review):
Week 5: April 25
- Assignments due
- Agenda
- Week 4 code challenge solutions — We'll walk through the concepts and solutions to the Week 4 coding challenges as a group.
- Lecture 1: What is an API? — Ray will introduce us to APIs ("Application Programming Interfaces").
- Exercise 1: PlaceKitten API — we will write our first API requests using the PlaceKitten API.
- Lecture 2: Using data from APIs in Python — Ray will introduce us to JSON ("JavaScript Object Notation"), a type of data structure that is commonly used by APIs, which can be easily imported into Python and converted to a dictionary for analysis.
- Week 5 project: Introducing the Wikipedia API — We will learn the syntax of the MediaWiki API (used by Wikipedia), as well as how to test API queries in a sandbox, and how to perform those queries in Python—in preparation for the Week 5 coding challenges.
- We will go over a list of sample APIs, datasets, and research questions that will get you thinking about what research you want to conduct for your final class project.
- Homework
- Day 5 coding challenge (Update: NOT Required)
- Final project ideas
- Resources
- Project Idea Assignment resources: some examples of APIs, datasets, and research questions to help you complete your Final Project Idea Assignment.
- JSON formatter and validator: (useful for examining the structure of large/complex JSON blobs)
- Hurl.it API sandbox: like the Wikipedia API sandbox, but can query many more APIs!
- Two video lectures by Tommy Guy and Mako Hill, which covers most of the concepts from this week (as well as some useful review):
Week 6: May 2
- Assignments due
- Agenda
- Panama Papers project — using Wikipedia APIs to gather information related to a breaking news event.
- An interactive lecture introducing the concept of user-defined functions
- Homework
- Day 6 coding challenge (Required)
- Resources
- Click here to download the solutions to the week 5 coding challenges (the ones that weren't required)
Week 7: May 9
- Assignments due
- Day 6 coding challenges (Required)
- Agenda
- Week 6 coding challenge solutions - Jonathan will review the solutions to the week 6 coding challenges and answer questions
- Writing your own functions - Ray will give a lecture and lead us through a series of interactive exercises on creating custom functions to make our code simpler, clearer, and more flexible.
- Working with location data - Jonathan will introduce some simple techniques for aggregating and visualizing datasets that have a location component, using a corpus of Seattle building permit data.
- Coding challenges
Week 8: May 16
- Assignments due
- Final project proposal MOVED FROM WEEK 7
- Agenda
- Jupyter notebooks: intro and setup
- CLICK HERE to create a Wikipedia account
- Jupyter intro notebook
- Click here to download today's notebooks (I'm not 100% sure this will work)
- Some new concepts:
try/except, sleep(), dateutil.parser, datetime.datetime
- Functions II: walk through examples in Jupyter and terminal
- Coding challenges
- No coding challenges this week!
- Resources
- Data Science from Scratch, Joel Grus (O'Reilly)
Week 9: May 23
- Agenda
- Day 9 lecture
- review of key concepts and tools from this course
- presentation workshop
- Resources
- go here
Week 10: June 3 (DATE CHANGE)
Please note that this class we will meet Friday evening, rather than Monday evening, because of the Memorial Day holiday.
- Assignments due
- Agenda
- Day 10 lecture - Final project report review, next steps for Data Science
- Final project presentations
- Resources
- one
Week 11: June 6
FINALS WEEK - NO CLASS
- Assignments due
- Final project report and code due by midnight on Wednesday, 6/8/2016