Editing Intro to Programming and Data Science (Fall 2023)

From CommunityData
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

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. That means that you should watch the next week's lecture before Thursday, so you are ready to go. All of the videos are [https://www.youtube.com/playlist?list=PLP6zcrJrVWgceJzuIE6k-cYr3IZJBnMJ4 in this playlist].
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 Element 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 Element 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!
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 [[/Week 1 Coding Challenge|Week 1 Coding Challenge]]). [https://www.youtube.com/watch?v=h1sAzPojKMg This video] may help if you get stuck.
* 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]
* [http://do1.dr-chuck.com/pythonlearn/EN_us/pythonlearn.pdf Python for Everybody], chapters 1-4
* 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 VSCode)
* [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://www.youtube.com/watch?v=DkedcwquYdg Notebook walkthrough]
** [https://www.youtube.com/watch?v=DkedcwquYdg Notebook walkthrough]


Line 270: Line 270:
** [https://youtu.be/eDalraJxQfw Notebook walkthrough]
** [https://youtu.be/eDalraJxQfw 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: Hannah
** 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 [[/Reddit_authentication_setup|Reddit Authentication Setup]]
* Do the [[/Twitter_authentication_setup|Twitter Authentication Setup]]


'''Readings:'''
'''Readings:'''
Line 286: Line 286:
** [https://youtu.be/az5nruguWIk Video walkthrough]
** [https://youtu.be/az5nruguWIk 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: Cara
** 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: Mary Grace
** Discussant:


== Week 6: Dataframes and Visualization (October 3) ==
== Week 6: Dataframes and Visualization (October 3) ==
Line 306: Line 306:
* [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://youtu.be/cevyNtquwuA Notebook walkthrough]
** [https://youtu.be/cevyNtquwuA 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


* Freelon, D., McIlwain, C., & Clark, M. (2018). Quantifying the power and consequences of social media protest. New Media & Society, 20(3), 990–1011. https://doi.org/10.1177/1461444816676646
** Discussants: Miriam
** Discussants: Diana
* (Optional) 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
 


'''Agenda:'''
'''Agenda:'''
Line 326: Line 324:
* [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://youtu.be/fcq5BjxYkwk Notebook walkthrough]
** [https://youtu.be/fcq5BjxYkwk Notebook walkthrough]
* Orea-Giner et al. (2022). [https://doi.org/10.1016/j.tourman.2022.104586 Does the Implementation of Robots in Hotels Influence the Overall TripAdvisor Rating? A Text Mining Analysis from the Industry 5.0 Approach]
* 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: Jin
** Discussant:
 
* (Optional) 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.
 


'''Agenda:'''
'''Agenda:'''
Line 339: Line 334:
'''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 340:
'''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://youtu.be/Qzs7FX5oD6U walkthrough of notebook]
** (Long) [https://youtu.be/fKxtQDlBTxU 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: Jeremy
** Discussant:


'''Agenda:'''
'''Agenda:'''
Line 359: Line 357:
'''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://www.youtube.com/watch?v=7H3gSagXZQQ Notebook walkthrough]
** [https://youtu.be/i2sBKXiYF70 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: Subulola
** 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 380: Line 377:
** [https://youtu.be/330LkROnxS0 Notebook walkthrough]
** [https://youtu.be/330LkROnxS0 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.
** Discussant: Zack


'''Agenda:'''
'''Agenda:'''
Line 386: Line 382:


'''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]


'''Sign up for meeting w/Jeremy:'''
https://etherpad.communitydata.science/p/meeting_signup_IPDS


== Week 11: Data cleaning and operationalization (November 7) ==
== Week 11: Data cleaning and operationalization (November 7) ==
Line 401: Line 396:
* 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: Cassidy
** Discussant:


'''Resources:'''
'''Resources:'''
Line 414: Line 409:
* [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]
* Hardt, D., & Glückstad, F. K. (2024). [https://doi.org/10.1016/j.tourman.2023.104821 A social media analysis of travel preferences and attitudes, before and during Covid-19]. Tourism Management, 100, 104821.
* 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.
** Discussant:
-->
** Discussant: Yoon Joo


'''Agenda:'''
'''Agenda:'''
Line 426: Line 419:
'''NO CLASS ON NOVEMBER 17 (NCA)'''
'''NO CLASS ON NOVEMBER 17 (NCA)'''
* 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.
* The discussion of the reading will move to Tuesday, November 22


== 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]]


'''Readings'''
* [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://youtu.be/Rz3qTPmlOpg Notebook walkthrough]
** [https://youtu.be/Rz3qTPmlOpg Notebook walkthrough]
* Johnson, Tana, and Joshua Y. Lerner. “Environmentalism Among Poor and Rich Countries: Using Natural Language Processing to Handle Perfunctory Support and Rising Powers.” Review of International Political Economy : RIPE, vol. 30, no. 1, 2023, pp. 127–52, https://doi.org/10.1080/09692290.2021.1974523.
** Discussant: Mazie


'''Agenda:'''
'''Agenda:'''
Line 443: Line 431:


== 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.
** Discussant: Suchi
* (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:
Ethics discussion
 
Peer feedback / work on final project


== 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:'''
Please note that all contributions to CommunityData are considered to be released under the Attribution-Share Alike 3.0 Unported (see CommunityData:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)