DS4UX (Spring 2016)/Schedule: Difference between revisions

From CommunityData
 
(72 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 49: Line 53:


;Agenda
;Agenda
* We'll walk through the concepts and solutions to the [[DS4UX_(Spring_2016)/Day_2_coding_challenge|code challenges from last week]] as a group.
* We will review your feedback from last week
* [[DS4UX_(Spring_2016)/Day_3_lecture|Interactive lecture]] - reading and writing datafiles, dictionaries
* We will walk through the [[DS4UX_(Spring_2016)/Day_2_coding_challenge#Solutions|solutions to the code challenges from last week]]
* We'll explore dataset and research question options for the Final Project assignments.
* We will introduce some [[DS4UX_(Spring_2016)/Day_3_lecture|new programming concepts]]
* We'll begin working on a series of exercises using the Baby Names dataset
* We will walk through an example of programming in a UX Research context
<!--[[Baby Names]] ([[Community_Data_Science_Workshops_(Fall_2015)/Day_1_baby_names_project_download|download]]) -->
* We will begin working on a series of exercises using the [[DS4UX_(Spring_2016)/Baby Names|Baby Names]] dataset


;Homework
;Homework
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)/Day_3_coding_challenge|code challenges]] from last week as a group.
* [[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|Interactive lecture]] - background of web APIs; requesting web pages with <code>requests</code>, JSON, and writing to files.
* [[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.
* We'll discuss the Final Project Idea assignment (due next 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.
* We'll begin working on [[Community Data Science Course (Spring 2015)/Wikipedia API projects|a series of projects using the Wikipedia API]].
* [[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]] ('''Required''')
* [[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
* Python for Informatics: [http://www.pythonlearn.com/html-009/book013.html Chapter 12  Networked programs] and [http://www.pythonlearn.com/html-009/book014.html Chapter 13  Using Web Services]
*  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 lecturs by Mako Hill, which covers most of the concepts from this week's lecture (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-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)#Final_Project_Idea|Final project idea]]
* [[DS4UX_(Spring_2016)/Day_4_coding_challenge|Day 4 coding challenge]] '''[https://canvas.uw.edu/courses/1040891/assignments/3264409 Turn in here!]'''
* Day 4 coding challenge


;Agenda
;Agenda
*[[DS4UX_(Spring_2016)/Day_5_lecture|Day 5 lecture]] - visualizing web data
* [[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.
*Introduction to Jupyter notebooks
* [[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").
* graphing data with matplotlib
* [[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.
;Exercises
* [[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]].
* visualize Seattle building permit data
*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 challenges]] ('''Required''')
*[[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
*''go here''
* [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
* Day 5 coding challenge
*[[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)/Day_6_lecture|Day 6 lecture]] - querying databases
* [[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]
*MYSQL queries with Quarry
* An interactive lecture introducing the concept of user-defined functions
*SOQL queries with Hurl.it and Python
:* [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 challenges]] ('''Required''')
*[[DS4UX_(Spring_2016)/Day_6_coding_challenge|Day 6 coding challenge]] ('''Required''')


;Resources
;Resources
*''go here''
*[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


;Assignments due
*[[DS4UX_(Spring_2016)/Day_6_coding_challenge|Day 6 coding challenges]] '''(Required)'''
*[[DS4UX_(Spring_2016)#Final_Project_Proposal|Final project proposal]]
:* [https://jtmorgan.net/ds4ux/week6/panama-papers-solutions.zip Click here to download the week 6 challenge solutions]
* Week 6 coding challenge


;Agenda
;Agenda
* [[DS4UX_(Spring_2016)/Day_7_lecture|Day 7 lecture]] - corpus analysis
* 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.
* counting mentions and welcomes in the Teahouse corpus
:* [https://jtmorgan.net/ds4ux/week7/lecture.zip Click here to download the lecture slides and code]
* plotting trends over time in the Teahouse corpus
* [[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
* [[DS4UX_(Spring_2016)/Day_8_lecture|Day 8 lecture]] - statistics with scipy
*Jupyter notebooks: intro and setup
<!--
:* paws.wmflabs.org
* plotting Burke-Gilman bike traffic on rainy days
:* [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
*[[DS4UX_(Spring_2016)/Day_8_coding_challenge|Day 8 coding challenges]]
*No coding challenges this week!


;Resources
;Resources
*''go here''
*''Data Science from Scratch'', Joel Grus (O'Reilly)
 
<br/>
<br/>


=== Week 9: May 23 ===
=== Week 9: May 23 ===
Line 161: Line 187:


;Agenda
;Agenda
* [[DS4UX_(Spring_2016)/Day_9_lecture|Day 9 lecture]] - research study design
* We will review the requirements for the Final Presentation and Final Project assignments
* review of key concepts and tools from this course
* We will review the course as a whole, and what we accomplished
* presentation workshop
* 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
* Replicate Teahouse invite A/B test
* We will have plenty of time to ask questions about and work on final projects
-->


;Resources
;Resources
* ''go here''
* [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
* [[DS4UX_(Spring_2016)/Day_10_lecture|Day 10 lecture]] - Final project report review, next steps for Data Science
* 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]

Day 1 plan

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
Resources



Week 2: April 4[edit]

Day 2 plan

Agenda
Homework
Resources



Week 3: April 11[edit]

Day 3 plan

Agenda
Homework
Resources
  • go here



Week 4: April 18[edit]

Day 4 plan

Agenda
Homework
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]

Day 5 plan

Assignments due
Agenda
Homework
Resources



Week 6: May 2[edit]

Day 6 plan

Assignments due
Agenda
  • An interactive lecture introducing the concept of user-defined functions
Homework
Resources



Week 7: May 9[edit]

Day 7 plan

Assignments due
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]

Day 8 plan

Assignments due
Agenda
  • Jupyter notebooks: intro and setup
  • 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]

Day 9 plan

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
Free (mostly) Python 3 tutorials and reference works



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