This is a repository of resources used for my sessions as a tutor for CSE 20: Programming with Python at UC Santa Cruz. This repository serves as a long-term place to store useful guides for students in my sessions, as well as an easy-to-reference toolbox for applying foundational concepts in the Python language. You'll find Jupyter Notebooks that can be thought of as one-pager lessons on programming topics, along with practice problem files for active learning and concept-application.
- Data structures: Dictionaries, lists, tuples, etc..
- Control flow: Conditionals, loops, error-handling.
- Object-oriented programming: Class construction, inheritance, polymorphism.
- Data analysis: File manipulation, data processing with NumPy, Pandas, and Matplotlib.
- Search algorithms
To make a copy of this repository, see GitHub's information on the process of cloning. From there, you can work on practice problems at your own pace, or read through my Jupyter Notebooks to sharpen your understanding of how many Python features work. Keep in mind that this repository will update from time to time, so your cloned version might not be the newest or most accurate one eventually.
- Introducing Python: Modern Computing in Simple Packages by Bill Lubanovich, 2019 (O'Reilly)
- Fluent Python: Clear, Concise, and Effective Programming by Luciano Ramalho, 2022 (O'Reilly)
- Open access: GitHub with support files and related resources
- Python Data Analytics by Fabio Nelli, 2018 (Apress)
- Open access: Official Python documentation. Always read the documentation!