Lectures
The course covers the following topics, with corresponding lecture materials available in the lectures folder. Please refer to the syllabus for additional suggested readings on each topic. Links will be added as the materials are posted.
Module 01: Introduction
August 27, 2026:
- Syllabus and course repository: https://github.com/danilofreire/datasci350.
- Lecture 01: Welcome to DATASCI 350 - Introduction.
- Course tutorials: installing Anaconda and VS Code, Jupyter and Markdown, and opening a free educational account on GitHub.
Suggested references:
- Cleveland, W. S. (2001). Data science: An action plan for expanding the technical areas of the field of statistics. International Statistical Review, 69(1), 21-26.
- Donoho, D. (2017). 50 Years of Data Science. Journal of Computational and Graphical Statistics, 26(4), 745-766.
- Breiman, L. (2001). Statistical Modeling: The Two Cultures (with Comments and a Rejoinder by the Author). Statistical Science, 16(3), 199-231.
- Brady, H. E. (2019). The Challenge of Big Data and Data Science. Annual Review of Political Science, 22(1), 297-323.
September 1, 2026:
- Lecture 02: Computational Literacy.
Suggested references:
- Campbell-Kelly, M., Aspray, W. F., Yost, J. R., Tinn, H., & Díaz, G. C. (2023). Computer: A History of the Information Machine. Routledge.
- Shalf, J. (2020). The Future of Computing beyond Moore’s Law. Philosophical Transactions of the Royal Society A, 378(2166), 20190061.
- Wing, J. M. (2006). Computational Thinking. Communications of the ACM, 49(3), 33-35.
- Videos: David J. Malan - Abstraction, Khan Academy - Hexadecimal Number System, Matthias Wandel - Marble Adding Machine, Crash Course - Early Computing and Electronic Computing (the last two are quite entertaining!).
Module 02: Introduction to the Command-Line Interface and Version Control
September 3, 2026:
- Lecture 03: The Command-Line Interface (CLI), Shell Basics, and File Management.
- Assignment 01.
- Kahoot Quiz
Suggested references:
- Janssens, J. (2021). Data Science at the Command Line: Obtain, Scrub, Explore, and Model Data with Unix Power Tools (2nd ed.). O’Reilly Media.
- Levy, J. (2024). The Art of Command Line. GitHub.
- Shotts, W. (2019). The Linux Command Line: A Complete Introduction. No Starch Press.
- Healy, K. (2019). The Plain Person’s Guide to Plain Text Social Science. Chapters 1-5.
September 8, 2026:
- Lecture 04: More Command Line Tools, Text Files and Scripting.
- Kahoot Quiz.
Suggested references:
- Kerr, D. (2024). Effective Shell.
- Irianto, I. (2021). Learn Vim (the Smart Way).
- Dennis, J. Your problem with Vim is that you don’t grok vi. (Stack Overflow).
- Videos: freeCodeCamp - Command line crash course, Percy Grunwald - Absolute beginner guide to the macOS terminal, NetworkChuck - 50 macOS tips and tricks using terminal
September 10, 2026:
- Lecture 05: Version control with Git and GitHub.
- Assignment 01 due (5%).
- Assignment 02.
- Kahoot Quiz.
Suggested references:
- Chacon, S. and Straub, B. (2014). Pro Git. Apress. (Instructor’s note: this is the book on Git).
- GitHub tutorials: GitHub skills (recommended), Git guides, Best practices for repositories.
- Dangit, Git!?!. Note: the fix for the commit you did not mean to make, in plain language.
September 15, 2026:
- Lecture 06: More Git and GitHub: pull requests, issues, pages, and collaboration features.
- Kahoot Quiz.
Suggested references:
- Perez-Riverol, Y., Gatto, L., Wang, R., Sachsenberg, T., Uszkoreit, J., Leprevost, F. da V., Fufezan, C., Ternent, T., Eglen, S. J., Katz, D. S., Pollard, T. J., Konovalov, A., Flight, R. M., Blin, K., & Vizcaíno, J. A. (2016). Ten Simple Rules for Taking Advantage of Git and GitHub. PLOS Computational Biology, 12(7), e1004947.
- Beckman, M. D., Çetinkaya-Rundel, M., Horton, N. J., Rundel, C. W., Sullivan, A. J., & Tackett, M. (2021). Implementing version control with git and GitHub as a learning objective in statistics and data science courses. Journal of Statistics and Data Science Education, 29(sup1), S132-S144.
- Escamilla, E., Klein, M., Cooper, T., Rampin, V., Weigle, M. C., & Nelson, M. L. (2022). The Rise of GitHub in Scholarly Publications. arXiv preprint arXiv:2208.04895.
September 17, 2026:
- Lecture 07: More Git Commands, CLI and Git Practice.
- Assignment 02 due (5%).
- Assignment 03.
- Kahoot Quiz.
September 22, 2026:
- Lecture 08: Review session for Quiz 01. This session revises everything covered so far and prepares students for Quiz 01 on September 24, which is examinable on Lectures 02-07.
Module 03: Reproducible Research with Quarto
September 24, 2026:
- Lecture 09: Quiz 01: The Command Line, Git and GitHub (6%). Covers Lectures 02-07.
- Assignment 03 due (5%).
- Assignment 04.
Suggested references:
September 29, 2026:
- Lecture 10: Reproducible Research and Literate Programming.
Suggested references:
- Sandve, G. K., Nekrutenko, A., Taylor, J., & Hovig, E. (2013). Ten Simple Rules for Reproducible Computational Research. PLOS Computational Biology, 9(10), e1003285.
- The Turing Way: Guide for Reproducible Research.
- Quarto: Get Started.
- Çetinkaya-Rundel, M. & Lowndes, J. S. (2022) Keynote talk: Hello Quarto: Share • Collaborate • Teach • Reimagine. Slides and source code. This is one of the nicest Quarto presentations I have seen.
October 1, 2026:
- Lecture 11: Quarto in Practice.
- Assignment 04 due (5%).
- Assignment 05.
- Kahoot Quiz
Suggested references:
Module 04: AI-Assisted Programming
October 6, 2026:
- Lecture 12: Local Language Models.
- Kahoot Quiz.
Suggested references:
- Ollama Documentation and the Modelfile Reference.
- Ollama Model Library. Note: browse this before class and pick a model your laptop can hold.
- Wolfram, S. (2023). What Is ChatGPT Doing, and Why Does It Work?.
- Google (2025). Gemini Prompting Guide. Note: the source of the PTCF framework we use to write system prompts.
October 8, 2026:
- Lecture 13: Quiz 02: Reproducible Research and Quarto (6%). Covers Lectures 10 and 11.
- Assignment 05 due (5%).
- Assignment 06.
October 13, 2026: Fall Break (No Classes)
October 15, 2026:
- Lecture 14: Calling Models from Your Own Code.
Note: create a free OpenRouter account and API key before this class, and set the key’s spending limit to $0.00. The steps are in the lecture README.
Suggested references:
- Ollama API Documentation and its OpenAI compatibility page. Note: lecture 12 runs Ollama from the terminal, and this lecture calls the same server from Python.
- OpenRouter Quickstart and the model catalogue. Note: filter the catalogue by Prompt pricing “Free” to find a model that costs nothing today.
- OpenAI Python library. Note: despite the name, it is a client for a protocol that Ollama and OpenRouter both speak.
- Willison, S. (2025). The lethal trifecta for AI agents.
October 20, 2026:
- Lecture 15: Retrieval-Augmented Generation and Fine-Tuning.
Note: install or update Ollama before this class, then run pip install ollama numpy. The steps are in the lecture README.
Suggested references:
- Ollama Documentation: Embedding models.
- EmbeddingGemma on the Ollama model library. Note: this is the model we run in class.
- Sentence Transformers Documentation. Note: the clearest explanation of what a sentence embedding is and how similarity search uses it.
- Unsloth Documentation. Note: the tool behind the fine-tuning demonstration; you are not expected to run it yourself.
Module 05: Cloud Computing
October 22, 2026:
- Lecture 16: Introduction to Cloud Computing.
- Assignment 06 due (5%).
- Assignment 07.
- Kahoot Quiz.
Suggested references:
- Amazon Web Services (AWS) Documentation.
- AWS Free Tier. Note: read this before opening an account, and set a zero-spend budget.
- AWS Cloud Practitioner Tutorial.
October 27, 2026:
- Lecture 17: Cloud Computing II: Running Your Own Server on AWS.
- No new assignment this week. Start reading the final project instructions.
- Instructions for the Final Project.
- Kahoot Quiz.
Suggested references:
- Amazon EC2 Documentation.
- AWS CloudShell Documentation. Note: the way out when a key file’s permissions will not work on Windows.
- Ubuntu Server Documentation. Note: the instance we launch runs Ubuntu, and
aptis how you install anything on it.
Module 06: Getting Data from the Web
October 29, 2026:
- Lecture 18: Web APIs and JSON.
- Assignment 07 due (5%).
- Kahoot Quiz.
Suggested references:
- Requests: Quickstart.
- MDN. An overview of HTTP.
- World Bank API Documentation. Note: the API behind the final project.
- Working with JSON.
November 3, 2026:
- Lecture 19: Working with APIs in Practice.
- Optional: Web scraping tutorial. Self-study, not examinable.
- Kahoot Quiz.
Suggested references:
- pandas: json_normalize. Note: how nested JSON becomes a flat table.
- python-dotenv Documentation. Note: how an API key stays out of your repository.
- Apache Parquet Documentation. Note: the format we save results in, and the one Lectures 21 and 22 read back.
- wbgapi. Note: a Python client for the World Bank API, useful for the final project.
November 5, 2026:
- Lecture 20: Quiz 03: AI-Assisted Programming and Cloud Computing (6%). Covers Lectures 12, 14, 15, 16, and 17.
- Assignment 08.
Module 07: Scaling and Performance
November 10, 2026:
- Lecture 21: Parallel Computing Fundamentals.
Suggested references:
November 12, 2026:
- Lecture 22: SQL Revision with DuckDB.
- Assignment 08 due (5%).
- Assignment 09.
- Kahoot Quiz.
Suggested references:
- DuckDB Documentation.
- DuckDB Python API.
- Python sqlite3 Documentation.
- SQL Essentials with DuckDB. Note: the course tutorial, with every clause from the lecture in more depth.
Module 08: Containers and Reproducibility
November 17, 2026:
Suggested references:
- Python Documentation: venv.
- uv Documentation. Note: the tool we use in class to create environments and lock dependencies.
- Docker: Get Started.
November 19, 2026:
- Lecture 24: Quiz 04: Web APIs and JSON (6%). Covers Lectures 18 and 19.
- Assignment 09 due (5%).
- Assignment 10.
November 24, 2026:
- Lecture 25: Docker for Data Science.
- Kahoot Quiz.
Suggested references:
- Dockerfile Reference.
- Docker Compose Documentation.
- Jupyter Docker Stacks. Note: ready-made images for data science work.
November 26, 2026: Thanksgiving Recess (No Classes)
December 1, 2026:
- Lecture 26: Revision: Scaling, SQL and Containers. Covers Lectures 21, 22, 23, and 25, with SQL practice exercises and project Q&A.
- Kahoot Quiz.
December 3, 2026:
- Lecture 27: Quiz 05: Scaling, SQL, Docker and Containers (6%). Covers Lectures 21, 22, 23, and 25.
- Assignment 10 due (5%).
December 8, 2026:
- No lectures.
- Q&A session and final project work time.
- Final Project due (20%).