Advanced Programming Concepts I
Course Code: Y1D3
ECTS Credits: 3.0
Course Description
This course introduces students to production-grade programming in Python, with a strong focus on Machine Learning Operations (MLOps) and Model Deployment. Learners begin by mastering essential MLOps skills including virtual environments, dependency management using Poetry, Git-based version control, and modular Python package structuring.
Throughout the course, students build real-world machine learning pipelines using Python. They learn to write clean, testable, and maintainable code, document it professionally using tools like pdoc
and Sphinx
, and evaluate robustness using unit testing (pytest
) with test coverage analysis. A special focus is placed on PEP8 coding standards, automated code formatting (with black
), and linting (flake8
) to ensure consistency and readability in team projects.
A core highlight of the course is developing and deploying ML applications using Streamlit and Gradio. Students connect trained models to interactive UIs, validate inputs, visualize metrics, and deploy them publicly via Streamlit Cloud or Gradio Spaces.
By the end of the course, students will have developed, tested, and deployed a modular ML application as a public-facing product. They will be equipped with the practical and collaborative coding skills needed to transition from data science notebooks to scalable ML systems—ready for real-world use and future integration into data engineering pipelines.
Course Content
- Python Virtual Environments & Poetry
- Git & Version Control (CLI)
- Modular Code and Package Structure
- Writing Unit Tests with
pytest
- Measuring Test Coverage
- Python Docstrings and Documentation (
pdoc
,Sphinx
) - Linting (
flake8
) and Code Formatting (black
) - Logging and Debugging Best Practices
- Streamlit & Gradio UI Development
- Model Deployment (Streamlit Cloud, HuggingFace Spaces)
- Final Project: Building and Deploying an ML App
Prerequisites
- Introduction to Programming with Python (Y1A1)
- Introduction to Machine Learning (Y1B1)
Recommended Reading & Tools
- Poetry Documentation
- Pytest Documentation
- Streamlit Docs
- Gradio Docs
- Sphinx Documentation
- Git Cheat Sheet – GitHub Education