Editing Intro to Programming and Data Science (Fall 2023)
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 64: | Line 64: | ||
On Tuesdays, we will review the Coding Challenges that were due. Those who were assigned will explain how they solved (or didn't solve!) each problem. | On Tuesdays, we will review the Coding Challenges that were due. Those who were assigned will explain how they solved (or didn't solve!) each problem. | ||
On Thursdays, we will begin by discussing the reading for the day, with discussions generally led by a student. We will then have a discussion about the concepts that are still confusing. Next, we will have optional co-working time to start on the next assignment | On Thursdays, we will begin by discussing the reading for the day, with discussions generally led by a student. We will then have a discussion about the concepts that are still confusing. Next, we will have by optional co-working time to start on the next assignment. | ||
I try to make the classes useful and to tailor them to the needs of the students, and I highly encourage you to attend as many of our sessions as possible. My teaching style is very conversational and relies on students being willing to speak up to express confusion, seek clarification, or make a well-informed point, so please participate! | I try to make the classes useful and to tailor them to the needs of the students, and I highly encourage you to attend as many of our sessions as possible. My teaching style is very conversational and relies on students being willing to speak up to express confusion, seek clarification, or make a well-informed point, so please participate! | ||
Line 145: | Line 145: | ||
Nearly every week you will have set of coding challenges to complete. These coding challenges will be turned in on Brightspace but will not be graded. I encourage you to work together on these challenges but to make sure that you understand the concepts yourself. | Nearly every week you will have set of coding challenges to complete. These coding challenges will be turned in on Brightspace but will not be graded. I encourage you to work together on these challenges but to make sure that you understand the concepts yourself. | ||
Each day I will randomly select a set of students to share their solutions to a selected exercise. This will involve putting your solution on | Each day I will randomly select a set of students to share their solutions to a selected exercise. This will involve putting your solution on Piazza at least one hour before the next day's lecture starts, and being prepared to walk us through the solution. If you can't figure out the problem that's been assigned to you, then explain where you got stuck and what you tried. I encourage you to also use Piazza to ask and answer each other's questions as you work on the assignments. We will use some of our lecture time to review the problems and I will make sure that a correct solution is posted by the end of that day. As you will see over the course of the module, there are many possible solutions to many programming problems and my own approaches will often be different than yours. That's completely fine! Coding is a creative act! | ||
While I won't be grading these assignments, I will review a sample of them to look for common difficulties or problems. If you want me to provide specific feedback for an assignment, please let me know and I will be happy to do so. | While I won't be grading these assignments, I will review a sample of them to look for common difficulties or problems. If you want me to provide specific feedback for an assignment, please let me know and I will be happy to do so. | ||
Line 208: | Line 208: | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* Sign up for the [[/Element Signup|Element Space]] | * Sign up for the [[/Element Signup|Element Space]] | ||
* Install Anaconda and VSCode (Goal 1 in the [[/ | * Install Anaconda and VSCode (Goal 1 in the [[/Week 1 Coding Challenge]]). [https://www.youtube.com/watch?v=h1sAzPojKMg This video] may help if you get stuck. | ||
'''Required Readings:''' | '''Required Readings:''' | ||
Line 231: | Line 231: | ||
'''Readings (before class):''' | '''Readings (before class):''' | ||
* Bit By bit, [https://www.bitbybitbook.com/en/1st-ed/introduction/ Introduction] | * Bit By bit, [https://www.bitbybitbook.com/en/1st-ed/introduction/ Introduction] | ||
* | * Python for Everybody, chapters 1-4 | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_2/day_2.ipynb Today's Jupyter Notebook] (Right-click, save, and open in | * [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_2/day_2.ipynb Today's Jupyter Notebook] (Right-click, save, and open in Jupyter) | ||
** [https:// | ** [https://purdue.brightspace.com/d2l/le/content/598734/viewContent/10014636/View Notebook walkthrough] | ||
'''Agenda:''' | '''Agenda:''' | ||
Line 248: | Line 248: | ||
* Python for Everybody chapters_to_read = [5, 6, 8] | * Python for Everybody chapters_to_read = [5, 6, 8] | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_3/day_3.ipynb Today's Jupyter Notebook] | * [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_3/day_3.ipynb Today's Jupyter Notebook] | ||
** [https:// | ** [https://purdue.brightspace.com/d2l/le/content/598734/viewContent/10014637/View Notebook walkthrough] | ||
* Foote, J., Shaw, A., & Hill, B.M. (2017). [https://jeremydfoote.com/files/foote_computational_2017.pdf Computational analysis of social media scholarship]. In Burgess, J., Poell, T., Marwick, A. (Eds.), The Sage Handbook of Social Media. Sage. | * Foote, J., Shaw, A., & Hill, B.M. (2017). [https://jeremydfoote.com/files/foote_computational_2017.pdf Computational analysis of social media scholarship]. In Burgess, J., Poell, T., Marwick, A. (Eds.), The Sage Handbook of Social Media. Sage. | ||
** Discussant: | ** Discussant: | ||
Line 268: | Line 268: | ||
book.close() | book.close() | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_4/day_4.ipynb Today's Jupyter Notebook] | * [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_4/day_4.ipynb Today's Jupyter Notebook] | ||
** [https:// | ** [https://purdue.brightspace.com/d2l/le/content/598734/viewContent/10014638/View Notebook walkthrough] | ||
* Nelson, Laura K. 2017. "[https://doi.org/10.1177%2F0049124117729703 Computational Grounded Theory: A Methodological Framework]." Sociological Methods and Research. | * Nelson, Laura K. 2017. "[https://doi.org/10.1177%2F0049124117729703 Computational Grounded Theory: A Methodological Framework]." Sociological Methods and Research. | ||
** Discussant: | ** Discussant: | ||
'''Agenda:''' | '''Agenda:''' | ||
Line 279: | Line 279: | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* [[/Week 5 Coding Challenges|Week 5 Coding Challenges]] | * [[/Week 5 Coding Challenges|Week 5 Coding Challenges]] | ||
* Do the [[/ | * Do the [[/Twitter_authentication_setup|Twitter Authentication Setup]] | ||
'''Readings:''' | '''Readings:''' | ||
* Python for Everybody, chapters 9 and 10 | * Python for Everybody, chapters 9 and 10 | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_5/day_5.ipynb Today's Jupyter Notebook] | * [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_5/day_5.ipynb Today's Jupyter Notebook] | ||
** [https:// | ** [https://purdue.brightspace.com/d2l/le/content/598734/viewContent/10014639/View Video walkthrough] | ||
* Margolin, D. B., Hannak, A., & Weber, I. (2018). [https://doi.org/10.1080/10584609.2017.1334018 Political Fact-Checking on Twitter: When Do Corrections Have an Effect?] Political Communication, 35(2), 196–219. | * Margolin, D. B., Hannak, A., & Weber, I. (2018). [https://doi.org/10.1080/10584609.2017.1334018 Political Fact-Checking on Twitter: When Do Corrections Have an Effect?] Political Communication, 35(2), 196–219. | ||
** Discussant: | ** Discussant: | ||
'''Agenda:''' | '''Agenda:''' | ||
Line 297: | Line 297: | ||
* Shen, C., Monge, P., & Williams, D. (2014). [https://libkey.io/libraries/228/articles/5013123/full-text-file Virtual brokerage and closure: Network structure and social capital in a massively multiplayer online game]. Communication Research. 41(4): 459–480. | * Shen, C., Monge, P., & Williams, D. (2014). [https://libkey.io/libraries/228/articles/5013123/full-text-file Virtual brokerage and closure: Network structure and social capital in a massively multiplayer online game]. Communication Research. 41(4): 459–480. | ||
** Discussant: | ** Discussant: | ||
== Week 6: Dataframes and Visualization (October 3) == | == Week 6: Dataframes and Visualization (October 3) == | ||
Line 305: | Line 305: | ||
'''Readings:''' | '''Readings:''' | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_6/day_6.ipynb Week 6 notebook] | * [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_6/day_6.ipynb Week 6 notebook] | ||
** [https:// | ** [https://purdue.brightspace.com/d2l/le/content/598734/viewContent/10014640/View Notebook walkthrough] | ||
* Shaw, A., & Hill, B. M. (2014). Laboratories of oligarchy? How the iron law extends to peer production. Journal of Communication, 64(2), 215–238. https://doi.org/10.1111/jcom.12082 | |||
* | |||
** Discussants: Miriam | |||
'''Agenda:''' | '''Agenda:''' | ||
Line 317: | Line 315: | ||
== Week 7: Dataframes and visualization (continued) (October 12) == | == Week 7: Dataframes and visualization (continued) (October 12) == | ||
'''OCTOBER BREAK ON OCTOBER 10''' | '''OCTOBER BREAK ON OCTOBER 10''' | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* [[/Week 7 Coding Challenges|Week 7 Coding Challenges]] | * [[/Week 7 Coding Challenges|Week 7 Coding Challenges]] | ||
Line 325: | Line 321: | ||
'''Readings:''' | '''Readings:''' | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_7/day_7.ipynb Week 7 notebook] | * [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_7/day_7.ipynb Week 7 notebook] | ||
** [https:// | ** [https://purdue.brightspace.com/d2l/le/content/598734/viewContent/10014641/View Notebook walkthrough] | ||
* Lazer, D., & Radford, J. (2017). [https://doi.org/10.1146/annurev-soc-060116-053457 Data ex Machina: Introduction to Big Data]. Annual Review of Sociology, 43(1), 19–39. | |||
* | ** Discussant: | ||
'''Agenda:''' | '''Agenda:''' | ||
Line 339: | Line 332: | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* [[/Week 8 Coding Challenges|Week 8 Coding Challenges]] | * [[/Week 8 Coding Challenges|Week 8 Coding Challenges]] | ||
** [https://youtu.be/TASX3evcgG4 Video instructions to install tweepy] | |||
* 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 | ||
Line 344: | Line 338: | ||
'''Readings:''' | '''Readings:''' | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_8/day_8.ipynb Intro to APIs Notebook] | * [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_8/day_8.ipynb Intro to APIs Notebook] | ||
** (Long) [https:// | ** (Long) [https://purdue.brightspace.com/d2l/le/content/598734/viewContent/10014642/View walkthrough of notebook] | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/extra_topics/twitter_v2_example.ipynb Twitter V2 Academic API Notebook] | |||
** [https://www.youtube.com/watch?v=rQEsIs9LERM&lc=UgzEMuqQB8UpkOQr0Hd4AaABAg Video walkthrough] | |||
* 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. | ||
** Discussant: | ** Discussant: | ||
'''Agenda:''' | '''Agenda:''' | ||
Line 359: | Line 355: | ||
'''Readings:''' | '''Readings:''' | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_9/day_9.ipynb Week 9 Notebook] | * [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_9/day_9.ipynb Week 9 Notebook] | ||
** [https:// | ** [https://purdue.brightspace.com/d2l/le/content/598734/viewContent/10014643/View Notebook walkthrough] | ||
* Python for Everybody, Chapter 13 | * Python for Everybody, Chapter 13 | ||
* 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 | ||
** Discussant: | ** Discussant: | ||
* 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 from Spring 2020]. | * [https://youtu.be/daUuC-PMZc4 Very brief lecture on web scraping from Spring 2020]. | ||
Line 378: | Line 373: | ||
'''Readings:''' | '''Readings:''' | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_10/day_10.ipynb Today's Notebook] | * [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_10/day_10.ipynb Today's Notebook] | ||
** [https:// | ** [https://purdue.brightspace.com/d2l/le/content/598734/viewContent/10014644/View Notebook walkthrough] | ||
* 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. | ||
'''Agenda:''' | '''Agenda:''' | ||
Line 386: | Line 380: | ||
'''Resources:''' | '''Resources:''' | ||
* [https://youtu.be/FhxZdc1OaNU Two videos of me clumsily solving the Week 8 Problems] | |||
* [https://github.com/jdfoote/Intro-to-Programming-and-Data-Science/blob/master/resources/solutions/Twitter_answers.ipynb My answers to the Week 8 problems] | |||
https:// | |||
== Week 11: Data cleaning and operationalization (November 7) == | == Week 11: Data cleaning and operationalization (November 7) == | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_11/day_11.ipynb Week 11 Coding Challenges] | * [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_11/day_11.ipynb Week 11 Coding Challenges] | ||
Line 398: | Line 389: | ||
'''Readings:''' | '''Readings:''' | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_11/day_11.ipynb Today's Notebook] | * [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_11/day_11.ipynb Today's Notebook] | ||
** [https:// | ** [https://purdue.brightspace.com/d2l/le/content/598734/viewContent/10014645/View Notebook walkthrough] | ||
* 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. | * 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. | ||
* 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. | ||
** Discussant: | ** Discussant: | ||
'''Resources:''' | '''Resources:''' | ||
Line 414: | Line 405: | ||
* [https://www.youtube.com/watch?v=SWYqp7iY_Tc Git & GitHub Crash Course For Beginners] - YouTube video (not by me) introducing Git and Github | * [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://learngitbranching.js.org/ Interactive git branching tutorial] | ||
* 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. | |||
** Discussant: | |||
** Discussant: | |||
'''Agenda:''' | '''Agenda:''' | ||
Line 424: | Line 413: | ||
'''Resources:''' | '''Resources:''' | ||
'''NO CLASS ON NOVEMBER 17 | '''NO CLASS ON NOVEMBER 17''' | ||
* I will show up in the classroom if people want to have a co-working session / ask questions. | * I will show up in the classroom if people want to have a co-working session / ask questions. | ||
== Week 13: Statistics and Statistical Programming (November 21) == | == Week 13: Statistics and Statistical Programming (November 21) == | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* [[/Week_13_Coding_Challenges|Week 13 Coding Challenges]] | * [[/Week_13_Coding_Challenges|Week 13 Coding Challenges]] | ||
* [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_13/day_13.ipynb Week 13 Notebook] | * [https://jeremydfoote.com/Intro-to-Programming-and-Data-Science/day_13/day_13.ipynb Week 13 Notebook] | ||
** [https:// | ** [https://purdue.brightspace.com/d2l/le/content/598734/viewContent/10014646/View Notebook walkthrough] | ||
'''Agenda:''' | '''Agenda:''' | ||
Line 443: | Line 427: | ||
== Week 14: Ethics of Online Research (November 28) == | == Week 14: Ethics of Online Research (November 28) == | ||
'''Readings:''' | '''Readings:''' | ||
* 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. | ||
* (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. | ||
* (Optional) Crawford, K., & Finn, M. (2015). [https://doi.org/10.1007/s10708-014-9597-z The limits of crisis data: Analytical and ethical challenges of using social and mobile data to understand disasters]. GeoJournal, 80(4), 491–502. | * (Optional) Crawford, K., & Finn, M. (2015). [https://doi.org/10.1007/s10708-014-9597-z The limits of crisis data: Analytical and ethical challenges of using social and mobile data to understand disasters]. GeoJournal, 80(4), 491–502. | ||
Dec 1 | |||
'''Reading:''' | |||
Dec 1 | * Field, A., Kliger, D., Wintner, S., Pan, J., Jurafsky, D., & Tsvetkov, Y. (2018). [https://doi.org/10.18653/v1/D18-1393 Framing and Agenda-setting in Russian News: A Computational Analysis of Intricate Political Strategies]. Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, 3570–3580. | ||
** Discussant: | |||
== Week 15: Final Project Presentation (December 5) == | == Week 15: Final Project Presentation (December 5) == | ||
'''Assignment Due:''' | '''Assignment Due:''' | ||
* Final project presentations | * Final project presentations | ||
* Prepare a presentation and post it on Brightspace | |||
'''Readings:''' | '''Readings:''' |