(69 intermediate revisions by the same user not shown) | |||
Line 21: | Line 21: | ||
* Python for Informatics: [http://www.pythonlearn.com/html-009/book001.html Preface] and [http://www.pythonlearn.com/html-009/book002.html Chapter 1 Why should you learn to write programs?] | * Python for Informatics: [http://www.pythonlearn.com/html-009/book001.html Preface] and [http://www.pythonlearn.com/html-009/book002.html Chapter 1 Why should you learn to write programs?] | ||
* [http://sites.tufts.edu/cbi/files/2013/01/linux_cheat_sheet.pdf Command line cheat sheet] — covers basics like <code>ls, pwd, cd</code> and much more. | * [http://sites.tufts.edu/cbi/files/2013/01/linux_cheat_sheet.pdf Command line cheat sheet] — covers basics like <code>ls, pwd, cd</code> and much more. | ||
<br/> | |||
<br/> | |||
=== Week 2: April 4 === | === Week 2: April 4 === | ||
Line 44: | Line 46: | ||
* [[Wordplay handout]] | * [[Wordplay handout]] | ||
* [http://communitydata.cc/~mako/cdsw-au2015-lecture1-20151010.ogv 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. | * [http://communitydata.cc/~mako/cdsw-au2015-lecture1-20151010.ogv 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. | ||
<br/> | |||
<br/> | |||
=== Week 3: April 11 === | === Week 3: April 11 === | ||
Line 60: | Line 64: | ||
;Resources | ;Resources | ||
*''go here'' | *''go here'' | ||
<br/> | |||
<br/> | |||
=== Week 4: April 18 === | === Week 4: April 18 === | ||
Line 65: | Line 71: | ||
;Agenda | ;Agenda | ||
* We'll walk through the concepts and solutions to the [[DS4UX_(Spring_2016)/ | * [[DS4UX_(Spring_2016)/Day_3_coding_challenge|Week 3 code challenges]] — We'll briefly walk through the concepts and solutions to the Week 3 coding challenges as a group. | ||
*[[DS4UX_(Spring_2016)/Day_4_lecture| | * [[DS4UX_(Spring_2016)/Day_4_lecture#Week_3_follow-up|Day 3 follow up]] — We will cover some important concepts that we didn't have a chance to cover in depth last week. | ||
* | * [[DS4UX_(Spring_2016)/Day_4_lecture#Reading_and_writing_files|Reading and writing files]] — we will learn how to read and write basic datafiles with Python. | ||
* | * [[DS4UX_(Spring_2016)/Seattle_traffic|Burke-Gilman traffic counter]] — we will start working with a dataset of bike and pedestrian traffic on the Burke-Gilman trail. | ||
* [[DS4UX_(Spring_2016)/Wikipedia Notifications survey|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 | ;Homework | ||
* [[DS4UX_(Spring_2016)/Day_4_coding_challenge|Day 4 coding challenges]] (''' | * [[DS4UX_(Spring_2016)/Day_4_coding_challenge|Day 4 coding challenges]] (Required) '''[https://canvas.uw.edu/courses/1040891/assignments/3264409 Turn in here!]''' | ||
;Resources | ;Resources | ||
* Two video lectures by Mako Hill, which covers most of the concepts from NEXT week's lecture (as well as some useful review): | |||
* Two video | |||
:* [https://communitydata.cc/~mako/cdsw-au2015-lecture2-20151024.ogv cdsw-au2015-lecture2-20151024.ogv] | :* [https://communitydata.cc/~mako/cdsw-au2015-lecture2-20151024.ogv cdsw-au2015-lecture2-20151024.ogv] | ||
:* [https://communitydata.cc/~mako/cdsw-au2015-lecture3-20151107.ogv cdsw-au2015-lecture3-20151107.ogv] | :* [https://communitydata.cc/~mako/cdsw-au2015-lecture3-20151107.ogv cdsw-au2015-lecture3-20151107.ogv] | ||
<br/> | |||
<br/> | |||
=== Week 5: April 25 === | === Week 5: April 25 === | ||
Line 83: | Line 91: | ||
;Assignments due | ;Assignments due | ||
* [[DS4UX_(Spring_2016) | * [[DS4UX_(Spring_2016)/Day_4_coding_challenge|Day 4 coding challenge]] '''[https://canvas.uw.edu/courses/1040891/assignments/3264409 Turn in here!]''' | ||
;Agenda | ;Agenda | ||
*[[DS4UX_(Spring_2016)/Day_5_lecture| | * [[DS4UX_(Spring_2016)/Day_4_coding_challenge#Solutions|Week 4 code challenge solutions]] — We'll walk through the concepts and solutions to the Week 4 coding challenges as a group. | ||
* | * [[DS4UX_(Spring_2016)/Day_5_lecture#Lecture_1:_What_is_an_API.3F|Lecture 1: What is an API?]] — Ray will introduce us to APIs ("Application Programming Interfaces"). | ||
* | * [[DS4UX_(Spring_2016)/Day_5_lecture#Exercise_1:_How_do_we_use_APIs_to_get_kitten_pictures.3F|Exercise 1: PlaceKitten API]] — we will write our first API requests using the [http://placekitten PlaceKitten API]. | ||
* [[DS4UX_(Spring_2016)/Day_5_lecture#Lecture_2:_Using_data_from_APIs_in_Python|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. | |||
* [[DS4UX_(Spring_2016)/Day_5_lecture#Week_5_project:_How_do_we_use_APIs_to_get_data_from_Wikipedia.3F|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 [[DS4UX_(Spring_2016)/Day_5_coding_challenge|Week 5 coding challenges]]. | |||
* | *We will go over a [https://docs.google.com/document/d/1RPjvoxYX87DM_px8UX9my6rEg0V3rTcNvRHzSAHxAzU/edit 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 | ;Homework | ||
*[[DS4UX_(Spring_2016)/Day_5_coding_challenge|Day 5 coding | *[[DS4UX_(Spring_2016)/Day_5_coding_challenge|Day 5 coding challenge]] ('''Update: NOT Required''') | ||
*[[DS4UX_(Spring_2016)#Final_Project_Idea|Final project ideas]] | |||
;Resources | ;Resources | ||
* | * [https://docs.google.com/document/d/1RPjvoxYX87DM_px8UX9my6rEg0V3rTcNvRHzSAHxAzU/edit# Project Idea Assignment resources]: some examples of APIs, datasets, and research questions to help you complete your [[DS4UX_(Spring_2016)#Final_Project_Idea|Final Project Idea Assignment]]. | ||
* [https://jsonformatter.curiousconcept.com/ JSON formatter and validator]: (useful for examining the structure of large/complex JSON blobs) | |||
* [https://www.hurl.it/ Hurl.it API sandbox]: like the [https://en.wikipedia.org/wiki/Special:ApiSandbox 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): | |||
:* [https://communitydata.cc/~mako/cdsw-au2015-lecture2-20151024.ogv cdsw-au2015-lecture2-20151024.ogv] | |||
:* [https://communitydata.cc/~mako/cdsw-au2015-lecture3-20151107.ogv cdsw-au2015-lecture3-20151107.ogv] | |||
<br/> | |||
<br/> | |||
=== Week 6: May 2 === | === Week 6: May 2 === | ||
Line 105: | Line 119: | ||
;Assignments due | ;Assignments due | ||
* | *[[DS4UX_(Spring_2016)#Final_Project_Idea|Final project ideas]] ([https://canvas.uw.edu/courses/1040891/discussion_topics/3325827 Turn in on Canvas]) | ||
;Agenda | ;Agenda | ||
* [[DS4UX_(Spring_2016)/ | * [[DS4UX_(Spring_2016)/Panama_Papers|Panama Papers project]] — using Wikipedia APIs to gather information related to a breaking news event. | ||
:* [https://jtmorgan.net/ds4ux/week6/panama-papers.zip Click here to download the Panama Papers project] | |||
* | * An interactive lecture introducing the concept of user-defined functions | ||
* | :* [https://jtmorgan.net/ds4ux/week6/lecture.zip Click here to download the lecture slides and code] | ||
;Homework | ;Homework | ||
*[[DS4UX_(Spring_2016)/Day_6_coding_challenge|Day 6 coding | *[[DS4UX_(Spring_2016)/Day_6_coding_challenge|Day 6 coding challenge]] ('''Required''') | ||
;Resources | ;Resources | ||
* | *[http://jtmorgan.net/ds4ux/week5/wikipedia-solutions.zip Click here to download the solutions to the week 5 coding challenges] (the ones that weren't required) | ||
<br/> | |||
<br/> | |||
=== Week 7: May 9 === | === Week 7: May 9 === | ||
[[DS4UX_(Spring_2016)/Day_7_plan|Day 7 plan]] | [[DS4UX_(Spring_2016)/Day_7_plan|Day 7 plan]] | ||
;Assignments due | |||
*[[DS4UX_(Spring_2016)/Day_6_coding_challenge|Day 6 coding challenges]] '''(Required)''' | |||
*[[DS4UX_(Spring_2016) | :* [https://jtmorgan.net/ds4ux/week6/panama-papers-solutions.zip Click here to download the week 6 challenge solutions] | ||
* | |||
;Agenda | ;Agenda | ||
* [[DS4UX_(Spring_2016)/ | * 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. | |||
:* [https://jtmorgan.net/ds4ux/week7/lecture.zip Click here to download the lecture slides and code] | |||
* | * [[DS4UX_(Spring_2016)/Building_permits|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. | ||
:* [https://jtmorgan.net/ds4ux/week7/bpdata.zip Click here to download the building permit code and data] | |||
;Coding challenges | ;Coding challenges | ||
*[[DS4UX_(Spring_2016)/Day_7_coding_challenge|Day 7 coding challenges]] | *[[DS4UX_(Spring_2016)/Day_7_coding_challenge|Day 7 coding challenges]] | ||
<!-- | |||
;Resources | ;Resources | ||
*''go here'' | *''go here'' | ||
--> | |||
<br/> | |||
<br/> | |||
=== Week 8: May 16 === | === Week 8: May 16 === | ||
[[DS4UX_(Spring_2016)/Day_8_plan|Day 8 plan]] | [[DS4UX_(Spring_2016)/Day_8_plan|Day 8 plan]] | ||
;Assignments due | |||
*[[DS4UX_(Spring_2016)#Final_Project_Proposal|Final project proposal]] '''MOVED FROM WEEK 7''' | |||
;Agenda | ;Agenda | ||
* [[ | *Jupyter notebooks: intro and setup | ||
:* paws.wmflabs.org | |||
* | :* [https://en.wikipedia.org/w/index.php?title=Special:UserLogin&type=signup CLICK HERE to create a Wikipedia account] | ||
-- | :* [https://paws-public.wmflabs.org/paws-public/User:Jtmorgan/DS4UX%20Jupyter%20intro.ipynb Jupyter intro notebook] | ||
:* [http://jtmorgan.net/ds4ux/week8/notebooks.zip Click here to download today's notebooks] ''(I'm not 100% sure this will work)'' | |||
*Some new concepts: <code>try/except, sleep(), dateutil.parser, datetime.datetime</code> | |||
:* [https://paws-public.wmflabs.org/paws-public/User:Jtmorgan/Week%208%20new%20concepts.ipynb Week 8 new concepts notebook] | |||
*Functions II: walk through examples in Jupyter and terminal | |||
:* [https://paws-public.wmflabs.org/paws-public/user/Jtmorgan/notebooks/Parsing%20permit%20data%20demo.ipynb Building permit notebook] | |||
:* [http://jtmorgan.net/ds4ux/week8/lecture.zip Click here to download the wiki shows demo code] | |||
:* [https://paws-public.wmflabs.org/paws-public/user/Jtmorgan/notebooks/Wiki%20shows.ipynb Wiki-shows notebook] | |||
;Coding challenges | ;Coding challenges | ||
* | *No coding challenges this week! | ||
;Resources | ;Resources | ||
*'' | *''Data Science from Scratch'', Joel Grus (O'Reilly) | ||
<br/> | |||
<br/> | |||
=== Week 9: May 23 === | === Week 9: May 23 === | ||
Line 161: | Line 187: | ||
;Agenda | ;Agenda | ||
* | * We will review the requirements for the Final Presentation and Final Project assignments | ||
* review | * We will review the course as a whole, and what we accomplished | ||
* | * We will go through 1-2 more examples of how to organize a program into functions | ||
* We will have an opportunity to review key Python concepts as a class | |||
* | * We will have plenty of time to ask questions about and work on final projects | ||
;Resources | ;Resources | ||
* '' | * [http://effbot.org/pyfaq/tutor-what-is-if-name-main-for.htm What is 'if __name__ == "__main__"' for?] (''effbot.org'') | ||
* [https://www.quora.com/What-is-use-of-main-method-in-Python-Can-someone-explain-with-example What is use of main method in Python? Can someone explain with example?] (''Quora.com'') | |||
;Free (mostly) Python 3 tutorials and reference works | |||
* ''[http://www.diveintopython3.net/ Dive into Python3]'' | |||
* ''[http://learnpythonthehardway.org/book/ Learn Python the Hard Way]'' | |||
* ''[http://www.python-course.eu/python3_course.php Python-Course.EU]'' | |||
* ''[http://thepythonguru.com/ The Python Guru - Beginner's tutorial]'' | |||
* ''[https://www.gitbook.com/book/krother/python-3-basics-tutorial/details GitBook Python 3 Basics Tutorial]'' | |||
* ''[https://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3 WikiBooks Non-programmer's Python 3 tutorial]'' | |||
* ''[http://docs.python-guide.org/en/latest/intro/learning/ The Hitchhiker's Guide to Python]'' (links to many different tutorials!) | |||
* ''[https://www.dataquest.io/track/data-analyst-track DataQuest Data Analyst interactive course series]'' | |||
* ''[http://shop.oreilly.com/product/0636920023784.do Python for Data Analysis]'' (O'Reilly media book) | |||
<br/> | |||
<br/> | |||
=== Week 10: June 3 (DATE CHANGE) === | === 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.'' | ''Please note that this class we will meet from 6pm to 9pm on Friday evening, rather than Monday evening, because of the Memorial Day holiday.'' | ||
;Assignments due | ;Assignments due | ||
* [[DS4UX_(Spring_2016)#Final_Project_Presentation|Final project presentation]] | * [[DS4UX_(Spring_2016)#Final_Project_Presentation|Final project presentation]] | ||
;Agenda | ;Agenda | ||
* Final project presentations | * Final project presentations | ||
;Resources | |||
* ''one'' | |||
<br/> | |||
<br/> | |||
=== Week 11: June 6 === | === Week 11: June 6 === | ||
FINALS WEEK - NO CLASS | FINALS WEEK - NO CLASS | ||
;Assignments due | ;Assignments due | ||
*[[DS4UX_(Spring_2016)#Final_Project_Report|Final project report and code]] due '''by midnight on Wednesday, 6/8/2016''' | *[[DS4UX_(Spring_2016)#Final_Project_Report|Final project report and code]] due '''by midnight on Wednesday, 6/8/2016''' | ||
<br/> | |||
<br/> | |||
[[Category:DS4UX (Spring 2016)]] | [[Category:DS4UX (Spring 2016)]] |
Latest revision as of 20:02, 23 May 2016
Week 1: March 28[edit]
- 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[edit]
- 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[edit]
- 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[edit]
- 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[edit]
- 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[edit]
- 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[edit]
- 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[edit]
- Assignments due
- Final project proposal MOVED FROM WEEK 7
- Agenda
- Jupyter notebooks: intro and setup
- paws.wmflabs.org
- 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[edit]
- Agenda
- We will review the requirements for the Final Presentation and Final Project assignments
- We will review the course as a whole, and what we accomplished
- We will go through 1-2 more examples of how to organize a program into functions
- We will have an opportunity to review key Python concepts as a class
- We will have plenty of time to ask questions about and work on final projects
- Resources
- What is 'if __name__ == "__main__"' for? (effbot.org)
- What is use of main method in Python? Can someone explain with example? (Quora.com)
- Free (mostly) Python 3 tutorials and reference works
- Dive into Python3
- Learn Python the Hard Way
- Python-Course.EU
- The Python Guru - Beginner's tutorial
- GitBook Python 3 Basics Tutorial
- WikiBooks Non-programmer's Python 3 tutorial
- The Hitchhiker's Guide to Python (links to many different tutorials!)
- DataQuest Data Analyst interactive course series
- Python for Data Analysis (O'Reilly media book)
Week 10: June 3 (DATE CHANGE)[edit]
Please note that this class we will meet from 6pm to 9pm on Friday evening, rather than Monday evening, because of the Memorial Day holiday.
- Assignments due
- Agenda
- Final project presentations
- Resources
- one
Week 11: June 6[edit]
FINALS WEEK - NO CLASS
- Assignments due
- Final project report and code due by midnight on Wednesday, 6/8/2016