Instructor: Alex Vakanski (vakanski@uidaho.edu)
Teaching Assistant: Longze Li (li8975@vandals.uidaho.edu)
Semester: Fall 2023 (August 21 – December 15)
Course website: https://fall-2023-python-programming-for-data-science.readthedocs.io/en/latest/
GitHub repository: https://www.github.com/avakanski/Fall-2023-Python-Programming-for-Data-Science/blob/main/README.md
- Joel Grus, "Data Science from Scratch: First Principles with Python", 2nd Edition, O'Reilly Media, 2019, ISBN: 9781492041139.
- Chip Huyen, "Designing Machine Learning Systems", O'Reilly Media, 2022, ISBN: 9781098107963.
Upon the completion of the course, the students should demonstrate the ability to:
- Attain proficiency with commonly used Python frameworks for managing the life cycle of data science projects.
- Develop pipelines for integrating data from multiple sources, designing predictive models, and deploying the models.
- Apply Python tools for data collection, analysis, and visualization, such as NumPy, Pandas, Matplotlib, and Seaborn, to real-world datasets.
- Implement machine learning algorithms for image processing, natural language processing, and time series analysis using Python-based frameworks, such as Scikit-Learn, Keras, TensorFlow, and PyTorch.
- Understand the principles of model selection and evaluation, including hyperparameter tuning, cross-validation, and regularization.
- Understand the primary characteristics of current Python libraries for deployment, continuous integration, and monitoring of data science projects.
- Deploy data science projects as web applications using Flask, and to cloud servers using Microsoft’s Azure platform.
The course requires to have basic programming skills in Python. While having knowledge of data science methods would be advantageous, it is not mandatory.
Student assessment will be based on 6 homework assignments (worth 60 pts), 3 quizzes (worth 30 marks), and class participation and engagement (worth 10 marks).
pdf_link_lecture1
Lectures/Theme_1-Python_Programming/Lecture_2-Data_Types_in_Python/Lecture_2-Data_Types.ipynb Lectures/Theme_1-Python_Programming/Lecture_3-Statements,_Files/Lecture_3-Statements,_Files.ipynb Lectures/Theme_1-Python_Programming/Lecture_4-Functions,_Iterators,_Generators/Lecture_4-Functions.ipynb Lectures/Theme_1-Python_Programming/Lecture_5-OOP/Lecture_5-OOP.ipynb Lectures/Theme_1-Python_Programming/Lecture_6-Exceptions,_Modules/Lecture_6-Exceptions,_Modules.ipynb
Lectures/Theme_2-Data_Engineering/Lecture_7-NumPy/Lecture_7-NumPy.ipynb Lectures/Theme_2-Data_Engineering/Lecture_8-Pandas/Lecture_8-Pandas.ipynb Lectures/Theme_2-Data_Engineering/Lecture_9-Matplotlib/Lecture_9-Matplotlib.ipynb Lectures/Theme_2-Data_Engineering/Lecture_10-SQL/Lecture_10-SQL.ipynb Lectures/Theme_2-Data_Engineering/Lecture_11-Data_Exploration/Lecture_11-Data_Exploration_and_Preprocessing.ipynb Lectures/Theme_2-Data_Engineering/Lecture_12-Seaborn/Lecture_12-Seaborn.ipynb
Lectures/Theme_3-Model_Engineering/Lecture_13-Scikit-Learn/Lecture_13-Scikit-Learn.ipynb Lectures/Theme_3-Model_Engineering/Lecture_14-Ensemble_Methods/Lecture_14-Ensemble_Methods.ipynb Lectures/Theme_3-Model_Engineering/Lecture_15-ANNs/Lecture_15-ANNs.ipynb Lectures/Theme_3-Model_Engineering/Lecture_16-ConvNets/Lecture_16-ConvNets.ipynb Lectures/Theme_3-Model_Engineering/Lecture_17-Model_Selection,Tuning/Lecture_17-Model_Selection.ipynb Lectures/Theme_3-Model_Engineering/Lecture_18-NNs_with_PyTorch/Lecture_18-NNs_with_PyTorch.ipynb Lectures/Theme_3-Model_Engineering/Lecture_19-Natural_Language_Processing/Lecture_19-NLP.ipynb Lectures/Theme_3-Model_Engineering/Lecture_20-Transformer_Networks/Lecture_20-Transformer_Networks.ipynb Lectures/Theme_3-Model_Engineering/Lecture_21-NLP_with_Hugging_Face/Lecture_21-NLP_with_Hugging_Face.ipynb Lectures/Theme_3-Model_Engineering/Lecture_22-Diffusion_Models/Lecture_22-Diffusion_Models.ipynb Lectures/Theme_3-Model_Engineering/Lecture_23-LLMs/Lecture_23-LLMs.ipynb
pdf_link_lecture24 Lectures/Theme_4-Model_Deployment/Lecture_25-Deploying_to_Web/Lecture_25-Deploying_to_Web.ipynb Lectures/Theme_4-Model_Deployment/Lecture_26-Deploying_to_Cloud/Lecture_26-Deploying_to_Cloud.ipynb Lectures/Theme_4-Model_Deployment/Lecture_27-Reproducible_Projects/Lecture_27-Reproducible_Projects.ipynb
Lectures/Theme_1-Python_Programming/Tutorial_1-Jupyter_Notebooks/Tutorial_1-Jupyter_Notebooks.ipynb Lectures/Theme_1-Python_Programming/Tutorial_2-Terminal_and_Command_Line/Tutorial_2-Terminal_and_Command_Line.ipynb Lectures/Theme_1-Python_Programming/Tutorial_3-VS_Code/Tutorial_3-VS_Code.ipynb Lectures/Theme_2-Data_Engineering/Tutorial_4-Virtual_Environments/Tutorial_4-Virtual_Environments.ipynb Lectures/Theme_2-Data_Engineering/Tutorial_5-Web_Scraping/Tutorial_5-Web_Scraping.ipynb Lectures/Theme_2-Data_Engineering/Tutorial_6-Google_Colab/Tutorial_6-Google_Colab.ipynb Lectures/Theme_3-Model_Engineering/Tutorial_7-Image_Processing/Tutorial_7-Image_Processing.ipynb Lectures/Theme_3-Model_Engineering/Tutorial_8-TensorFlow/Tutorial_8-TensorFlow.ipynb Lectures/Theme_3-Model_Engineering/Tutorial_9-PyTorch/Tutorial_9-PyTorch.ipynb Lectures/Theme_3-Model_Engineering/Tutorial_10-TensorFlow_Datasets/Tutorial_10-TensorFlow_Datasets.ipynb Lectures/Theme_3-Model_Engineering/Tutorial_11-CometML/Tutorial_11-CometML.ipynb Lectures/Theme_3-Model_Engineering/Tutorial_12-GitHub/Tutorial_12-GitHub.ipynb