Editing Intro to Programming and Data Science (Summer 2020)
From CommunityData
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
= Course Information = | = Course Information = | ||
:'''COM | :'''COM 574: Introduction to Programming and Data Science''' | ||
:'''Location:''' https://meet.jit.si/COM674 | :'''Location:''' https://meet.jit.si/COM674 | ||
:'''Class Hours:''' M-F, 10 am - 12 pm | :'''Class Hours:''' M-F, 10 am - 12 pm | ||
Line 77: | Line 75: | ||
# '''Research Project:''' The main outcome of this course will be a research project exploring a social science question using Python, and the bulk of your grade will be based on that project. Submit these via Brightspace | # '''Research Project:''' The main outcome of this course will be a research project exploring a social science question using Python, and the bulk of your grade will be based on that project. Submit these via Brightspace | ||
# '''Coding Challenges:''' There will be daily programming assignments that I will ask you to turn in on Brightspace but which will only be graded as complete/incomplete. I will also randomly assign someone to present their solution to each of the problems, on [piazza.com/purdue/summer2020/com674 Piazza]. | # '''Coding Challenges:''' There will be daily programming assignments that I will ask you to turn in on Brightspace but which will only be graded as complete/incomplete. I will also randomly assign someone to present their solution to each of the problems, on [ | ||
piazza.com/purdue/summer2020/com674 Piazza]. | |||
# '''Paper Discussion:''' Each day we will read and discuss a paper which uses computational approaches to address social science questions. | # '''Paper Discussion:''' Each day we will read and discuss a paper which uses computational approaches to address social science questions. | ||
Line 138: | Line 137: | ||
The presentation will provide an opportunity to share a brief summary of your project and findings with the other members of the class. However, don't treat it as a comprehensive overview of your paper: I would rather you tell a subset of the story well than the whole story in a rushed fashion. For instance, you can give a completely successful presentation by describing the motivation and walking through one plot in your paper. Since you will all give other research presentations throughout your career, I strongly encourage you to take the opportunity to refine your academic presentation skills. | The presentation will provide an opportunity to share a brief summary of your project and findings with the other members of the class. However, don't treat it as a comprehensive overview of your paper: I would rather you tell a subset of the story well than the whole story in a rushed fashion. For instance, you can give a completely successful presentation by describing the motivation and walking through one plot in your paper. Since you will all give other research presentations throughout your career, I strongly encourage you to take the opportunity to refine your academic presentation skills. | ||
All presentations will need to be ''a maximum of 8 minutes long''. Concisely communicating an idea in the time allotted is an important skill in its own right. I am still working on finding the right software for doing these, but I think we will likely use FlipGrid. | |||
== Daily Coding Challenges == | == Daily Coding Challenges == | ||
Line 257: | Line 256: | ||
'''Agenda:''' | '''Agenda:''' | ||
* Programming principles (iteration, strings, and lists) | * Programming principles (iteration, strings, and lists) | ||
** Follow along with [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/raw/summer2020/day_3/day_3.ipynb this Jupyter Notebook] | ** Follow along with [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/raw/master/summer2020/lectures/day_3/day_3.ipynb this Jupyter Notebook] | ||
* Go over last day's assignment | * Go over last day's assignment | ||
* Introduce wordplay project | * Introduce wordplay project | ||
Line 282: | Line 281: | ||
'''Agenda:''' | '''Agenda:''' | ||
* Reading from and writing to files | * Reading from and writing to files | ||
* [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/raw/summer2020/day_4/day_4.ipynb Today's Jupyter Notebook] | * [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/raw/master/summer2020/lectures/day_4/day_4.ipynb Today's Jupyter Notebook] | ||
* [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_4.html Today's slides] | * [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_4.html Today's slides] | ||
Line 301: | Line 300: | ||
* Dictionaries | * Dictionaries | ||
* Tuples | * Tuples | ||
* [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/raw/summer2020/day_5/day_5.ipynb Today's Jupyter Notebook] | * [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/raw/master/summer2020/lectures/day_5/day_5.ipynb Today's Jupyter Notebook] | ||
* [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_5.html Today's slides] | * [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_5.html Today's slides] | ||
Line 319: | Line 318: | ||
'''Agenda:''' | '''Agenda:''' | ||
* Dataframes and visualization | * Dataframes and visualization | ||
* [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_6.html Today's slides] | * [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_6.html Today's slides] | ||
Line 330: | Line 328: | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* Finish Day 6 Coding Challenges | * Finish Day 6 Coding Challenges | ||
'''Readings:''' | '''Readings:''' | ||
* Lazer, D., & Radford, J. (2017). Data ex Machina: Introduction to Big Data. Annual Review of Sociology, 43(1), 19–39. https://doi.org/10.1146/annurev-soc-060116-053457 | * Lazer, D., & Radford, J. (2017). Data ex Machina: Introduction to Big Data. Annual Review of Sociology, 43(1), 19–39. https://doi.org/10.1146/annurev-soc-060116-053457 | ||
** | ** Discussants: Naomi and Ji-young | ||
'''Agenda:''' | '''Agenda:''' | ||
* | * More dataframes + visualization | ||
* | * We will be discussing this data set: https://hub.mph.in.gov/dataset/aries-crash-data-2007-2017/resource/cc90589c-72d8-4d92-a5fe-73254b555c73 | ||
* [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_7.html Today's slides] | * [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_7.html Today's slides] | ||
'''Coding challenges:''' | '''Coding challenges:''' | ||
* [ | * [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/blob/master/resources/exercises/week_7_exercises.ipynb Day 7 Coding Challenges] | ||
== Day 8: Collecting Data with APIs (May 28) == | == Day 8: Collecting Data with APIs (May 28) == | ||
Line 348: | Line 346: | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* Turn in Day 7 Coding Challenges | * Turn in Day 7 Coding Challenges | ||
'''Readings:''' | '''Readings:''' | ||
* Kieran Healy and James Moody (2014). “[https://doi.org/10.1146/annurev-soc-071312-145551 Data Visualization in Sociology].” American Review of Sociology. 40: 105-28. | * Kieran Healy and James Moody (2014). “[https://doi.org/10.1146/annurev-soc-071312-145551 Data Visualization in Sociology].” American Review of Sociology. 40: 105-28. | ||
** | ** Discussants: Jessie and Tiwalade | ||
'''Agenda:''' | '''Agenda:''' | ||
* Introduce the [https://2.python-requests.org/en/master/ requests] library | * Introduce the [https://2.python-requests.org/en/master/ requests] library | ||
* Discuss the main kinds of online data gathering: downloading, scraping, and APIs. | * Discuss the main kinds of online data gathering: downloading, scraping, and APIs. | ||
* [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/ | * [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/blob/master/resources/exercises/week_8_intro.ipynb Intro to APIs Notebook] | ||
* [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_8.html Today's slides] | * [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_8.html Today's slides] | ||
Line 363: | Line 361: | ||
* [[Intro to Programming and Data Science (Summer 2020)/Day 8 Coding Challenges|Day 8 Coding Challenges]]. | * [[Intro to Programming and Data Science (Summer 2020)/Day 8 Coding Challenges|Day 8 Coding Challenges]]. | ||
* (Optional) [https://learn.datacamp.com/courses/introduction-to-data-science-in-python DataCamp: Intro to Data Science] and/or [https://learn.datacamp.com/courses/intermediate-python Intermediate Python] | * (Optional) [https://learn.datacamp.com/courses/introduction-to-data-science-in-python DataCamp: Intro to Data Science] and/or [https://learn.datacamp.com/courses/intermediate-python Intermediate Python] | ||
== Day 9: Collecting Data with APIs (continued) (May 29) == | == Day 9: Collecting Data with APIs (continued) (May 29) == | ||
Line 370: | Line 369: | ||
* First [[Self_Assessment_Reflection | self-assessment reflection]] is due (on Brightspace). | * First [[Self_Assessment_Reflection | self-assessment reflection]] is due (on Brightspace). | ||
* Project Planning Document Due | * Project Planning Document Due | ||
* Day 8 coding challenges | |||
'''Readings:''' | '''Readings:''' | ||
* Python for Everybody, Chapter 13 | * Python for Everybody, Chapter 13 | ||
* Vitak, J., Shilton, K., & Ashktorab, Z. (2016). [https://doi.org/10.1145/2818048.2820078 Beyond the Belmont Principles: Ethical Challenges, Practices, and Beliefs in the Online Data Research Community]. Proceedings of the 19th ACM Conference on Computer-Supported Cooperative Work & Social Computing, 941–953. | * Vitak, J., Shilton, K., & Ashktorab, Z. (2016). [https://doi.org/10.1145/2818048.2820078 Beyond the Belmont Principles: Ethical Challenges, Practices, and Beliefs in the Online Data Research Community]. Proceedings of the 19th ACM Conference on Computer-Supported Cooperative Work & Social Computing, 941–953. | ||
** | ** Discussants: Carly and Zhaozhe | ||
* (Optional) Williams, M. L., Burnap, P., & Sloan, L. (2017). [https://doi.org/10.1177/0038038517708140 Towards an Ethical Framework for Publishing Twitter Data in Social Research: Taking into Account Users’ Views, Online Context and Algorithmic Estimation]: Sociology. | * (Optional) Williams, M. L., Burnap, P., & Sloan, L. (2017). [https://doi.org/10.1177/0038038517708140 Towards an Ethical Framework for Publishing Twitter Data in Social Research: Taking into Account Users’ Views, Online Context and Algorithmic Estimation]: Sociology. | ||
* (Optional) Salganik, M. [https://www.bitbybitbook.com/en/1st-ed/ethics/ Ethics] chapter from Bit By Bit. | * (Optional) Salganik, M. [https://www.bitbybitbook.com/en/1st-ed/ethics/ Ethics] chapter from Bit By Bit. | ||
Line 382: | Line 381: | ||
'''Agenda:''' | '''Agenda:''' | ||
* [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_9.html Today's slides] | * [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_9.html Today's slides] | ||
'''Coding Challenge:''' | '''Coding Challenge:''' | ||
* [[Intro to Programming and Data Science (Summer 2020)/ | * [[Intro to Programming and Data Science (Summer 2020)/Twitter Assignment|Day 9 Coding Challenges]] | ||
* (Optional) [https://learn.datacamp.com/courses/analyzing-social-media-data-in-python DataCamp: Analyzing Social Media] | * (Optional) [https://learn.datacamp.com/courses/analyzing-social-media-data-in-python DataCamp: Analyzing Social Media] | ||
== Day 10: | |||
== Day 10: Data cleaning and operationalization (June 1) == | |||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* [[Intro to Programming and Data Science (Summer 2020)/Day 8 | * [[Intro to Programming and Data Science (Summer 2020)/Day 8 Coding Challenges|Day 9 Coding Challenges]] | ||
'''Readings:''' | '''Readings:''' | ||
* Robert K. Merton. 1948. [https://www-jstor-org.ezproxy.lib.purdue.edu/stable/2087142?sid=primo&origin=crossref&seq=1#metadata_info_tab_contents The Bearing of Empirical Research Upon the Development of Social Theory]. American Sociological Review 13(5): 505-515. | |||
* Christopher A. Bail et al. 2018. [https://doi.org/10.1073/pnas.1804840115 Exposure to opposing views on social media can increase political polarization]. PNAS 115(37): 9216-9221 | * Christopher A. Bail et al. 2018. [https://doi.org/10.1073/pnas.1804840115 Exposure to opposing views on social media can increase political polarization]. PNAS 115(37): 9216-9221 | ||
** | ** Discussants: Zhaozhe and Yihan | ||
'''Agenda:''' | '''Agenda:''' | ||
* [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_10.html Today's slides] | * [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_10.html Today's slides] | ||
Line 408: | Line 405: | ||
* [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/blob/master/resources/solutions/Twitter_answers.ipynb My answers to the Day 8 problems] | * [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/blob/master/resources/solutions/Twitter_answers.ipynb My answers to the Day 8 problems] | ||
== Day 11: | == Day 11: Introduction to git and GitHub (June 2) == | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* [ | * [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/blob/master/resources/exercises/week_11_challenges.ipynb Day 11 Programming challenges] | ||
'''Readings:''' | '''Readings:''' | ||
* Sara Klingenstein, Tim Hitchcock, and Simon DeDeo. 2014. [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4084475/ The civilizing process in London’s Old Baily]. Proceedings of the National Academy of Sciences 111(26): 9419-9424. | * Sara Klingenstein, Tim Hitchcock, and Simon DeDeo. 2014. [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4084475/ The civilizing process in London’s Old Baily]. Proceedings of the National Academy of Sciences 111(26): 9419-9424. | ||
** | ** Discussants: Carly and Vanessa | ||
'''Resources:''' | '''Resources:''' | ||
* [https:// | * [https://www.youtube.com/watch?v=SWYqp7iY_Tc Git & GitHub Crash Course For Beginners] - YouTube video (not by me) introducing Git and Github | ||
* [https://learngitbranching.js.org/ Interactive git branching tutorial] | |||
* [https://youtu.be/-_mjC3lAKL4 Data management] - My video | |||
* [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_11.html Today's slides] | * [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_11.html Today's slides] | ||
== Day 12: | == Day 12: Statistical summaries and tests (June 3) == | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* | * Put your Twitter project (or your entire course) on Github and email me the URL | ||
'''Readings:''' | '''Readings:''' | ||
* DellaPosta, D., Shi, Y., & Macy, M. (2015). [https://doi.org/10.1086/681254 Why Do Liberals Drink Lattes]? American Journal of Sociology, 120(5), 1473–1511. | * DellaPosta, D., Shi, Y., & Macy, M. (2015). [https://doi.org/10.1086/681254 Why Do Liberals Drink Lattes]? American Journal of Sociology, 120(5), 1473–1511. | ||
** | ** Discussants: Naomi and Yihan | ||
'''Agenda:''' | '''Agenda:''' | ||
* [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_12.html Today's slides] | * [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_12.html Today's slides] | ||
'''Resources:''' | '''Resources:''' | ||
== Day 13: Statistical summaries and tests (June 4) == | == Day 13: Statistical summaries and tests (continued) (June 4) == | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* | * If you would like, try to apply some statistical tests to your API data | ||
'''Readings:''' | '''Readings:''' | ||
* Tan, C. (2018). [https://aaai.org/ocs/index.php/ICWSM/ICWSM18/paper/view/17811 Tracing community genealogy: How new communities emerge from the old]. Proceedings of the Twelfth International Conference on Web and Social Media (ICWSM ’18), 395–404. | * Tan, C. (2018). [https://aaai.org/ocs/index.php/ICWSM/ICWSM18/paper/view/17811 Tracing community genealogy: How new communities emerge from the old]. Proceedings of the Twelfth International Conference on Web and Social Media (ICWSM ’18), 395–404. | ||
** | ** Discussants: Ji-young and Tamara | ||
'''Agenda:''' | '''Agenda:''' | ||
* [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/ | * [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/blob/master/resources/exercises/week-13-challenges.ipynb Day 13 Notebook] | ||
* [https://youtu.be/j8e8JPWAHr8 Video explanation of notebook | * [https://youtu.be/j8e8JPWAHr8 Video explanation of notebook] | ||
* [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_13.html Today's slides] | * [https://jeremydfoote.com/teaching/2020-summer/intro_to_programming/day_13.html Today's slides] | ||
== Day 14: Screen scraping (June 5) == | == Day 14: Screen scraping (June 5) == | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* | * Response to reading on FlipGrid | ||
'''Readings:''' | '''Readings:''' | ||
* Shaw, A., & Hill, B. M. (2014). [https://doi.org/10.1111/jcom.12082 Laboratories of oligarchy? How the iron law extends to peer production]. Journal of Communication, 64(2), 215–238. | * Shaw, A., & Hill, B. M. (2014). [https://doi.org/10.1111/jcom.12082 Laboratories of oligarchy? How the iron law extends to peer production]. Journal of Communication, 64(2), 215–238. | ||
** | ** Discussants: Jessie and Nate | ||
* [https://towardsdatascience.com/ethics-in-web-scraping-b96b18136f01 Ethics in Web Scraping] by James Densmore | * [https://towardsdatascience.com/ethics-in-web-scraping-b96b18136f01 Ethics in Web Scraping] by James Densmore | ||
'''Agenda:''' | '''Agenda:''' | ||
* If you are interested in doing web scraping, then look at this [https://github.com/CU-ITSS/Web-Data-Scraping-S2019 incredible mini-course on the topic]. It is all done with Jupyter Notebooks and you have all of the prerequisite knowledge to understand it. | * If you are interested in doing web scraping, then look at this [https://github.com/CU-ITSS/Web-Data-Scraping-S2019 incredible mini-course on the topic]. It is all done with Jupyter Notebooks and you have all of the prerequisite knowledge to understand it. | ||
* [https://youtu.be/daUuC-PMZc4 Very brief lecture on web scraping | * [https://youtu.be/daUuC-PMZc4 Very brief lecture on web scraping]. | ||
== Day 15-17: Work on final project (June 8-10) == | == Day 15-17: Work on final project (June 8-10) == | ||
Line 487: | Line 471: | ||
'''Agenda:''' | '''Agenda:''' | ||
* I will be available to answer questions and provide help | * I will be available to answer questions and provide help | ||
== Day 18: Final project presentation (June 11) == | == Day 18: Final project presentation (June 11) == | ||
Line 515: | Line 490: | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* Final paper due | * Final paper due | ||
* | * Self reflection due | ||
= Administrative Notes = | = Administrative Notes = |