Practical Machine Learning and AI Systems

Course website on GitHub Pages · Start here · Course outline

Read the lessons here on GitHub or on the reading site. If a download link does not open, use the offline access route.

Learn to frame a useful problem, work with data, build and evaluate models, and explain whether an AI system should be used. This open educational resource combines short lessons, runnable Python examples, guided notebooks, independent practice and worked feedback across 14 modules.

Start with the readiness check and learning routes, or pick one of the learning paths. If you have never programmed, begin with Python Foundation, then return for our Python-to-ML bridge. You can learn through this resource independently or use it alongside an instructor's course.

Edition 0.7.0. Current status and tested scope.

All 14 modules include separate practice and solution notebooks. Attempt practice before consulting solutions; connect the small operations to the complete study and transfer task.

Who this is for

You do not need prior ML knowledge, calculus, a GPU or a paid AI account for the documented core activities. New programmers need planned preparation time. Python Foundation estimates about 12 guided hours plus practice; our bridge then adds dictionaries, packages, paths, CSV/JSON and dataframes. Experienced students can use the readiness check to skip familiar preparation. This support does not create a formal prerequisite course.

What you will learn

You will practice how to:

These are resource learning goals. The module outcomes identify more specific evidence; an adopting course sets its own official outcomes and assessments.

Get your first result

  1. Choose support: complete readiness and any needed Python preparation.
  2. Get the complete source: follow download, extraction and folder instructions. A notebook downloaded alone does not include the shared code and data.
  3. Run Module 1: open a terminal in the extracted project folder, where README.md and examples are visible. Python 3.11–3.13 are supported for the core modules; CI checks 3.12 and 3.13. The first script uses only the standard library.

Windows PowerShell:

py examples/first-run/scripts/first_run.py --storage-percent 85 --output runs/module01/first-run.txt

If py is unavailable, use python in the command above.

Linux or macOS:

python3 examples/first-run/scripts/first_run.py --storage-percent 85 --output runs/module01/first-run.txt

Expect Review storage. Open runs/module01/first-run.txt, change 85 to 70, save to a different output filename and explain the changed decision. This is a human-written rule; it does not train a model.

Continue with Module 1 and first-run setup. If a command fails, use troubleshooting before reinstalling unrelated software.

Choose how to work

Choose how to work — table 1
Route How to begin Execution scope
Notebook Keep it inside the complete source folder, install the matching environment and select its kernel Interactive construction and saved explanations
Script Run the public script from the complete source folder with the matching environment Same shared implementation; text/CSV/HTML evidence
Reading Use the lesson pages and verified worked reports Interpretation practice; implementation outcomes still need execution

Core execution is checked on Windows and Linux. Framework modules 8–12 and 14 use a separate Linux CPU environment for TensorFlow, PyTorch/Transformers and Streamlit. For framework work on other platforms, use the Linux CPU reference environment. First installation and data/model downloads need connectivity; keep valid caches for later replay. Framework work needs additional disk and memory; see the framework requirements.

Environment choices explains Codespaces, Colab, Binder and local setup, including access, saving and verification limits. Select a service that can access the complete source and meets the documented environment requirements. Use an instructor's verified workspace when available.

Module map

The historical phishing-detection case adds an authentic IT security example with separate preparation, training, validation, evaluation and reporting stages, plus a combined notebook. The project companion helps you connect concepts across an existing course project or independent study.

A repeatable learning workflow

For an optional view of the entire lifecycle, use the complete capstone exemplar: a separate CPU project with grouped tuning, multi-seed and split-sensitivity experiments, frozen evaluation, a numeric inference bundle, monitoring rehearsal and an annotated completed report. The advanced route explains these investigations and distinguishes implemented experiments from further extensions. The existing 14 modules and their commands remain independently usable.

  1. Read the outcomes and decide what evidence you need to produce.
  2. Review the foundation bridge; use the glossary for unfamiliar terms.
  3. Predict the result of the guided construction before running it.
  4. Execute the notebook or script, inspect saved evidence and check a calculation independently.
  5. Make the required purposeful change, diagnose a failure and explain what happened.
  6. Attempt practice before comparing worked feedback; try a changed example if an answer was unfamiliar.
  7. Save code, commands, versions, source identities, readable results and your explanation. For notebooks, restart and run all to expose hidden state.
  8. Attempt optional depth after meeting the core outcome. Preserve evaluation boundaries when experimenting.

All modules include outcomes, a foundation bridge, guided construction, practice, public feedback and instructor notes. A copied report or successful run alone does not demonstrate independent mastery. Small models can perform poorly; those results are retained so you can critique them.

Data, reports and responsible AI use

Early modules use clearly labeled original teaching fixtures. Regression and the later modeling modules use attributed public datasets; the phishing case uses real historical security attributes. The source register documents rights, reviewed hashes, transformations and model provenance. Historical benchmark results do not establish current operational performance.

Lesson source is readable directly on GitHub. The reading site adds verified reports, executed notebook copies and source/data downloads; if a link there does not open, see reading the reports. You do not need to build the full site to study one module.

GenAI assistance is optional. Verify suggestions against code and evidence, protect private data, and follow the AI collaboration guidance and your instructor's disclosure rules. Public feedback supports self-study; it is not a confidential answer key.

Repository guide

Repository guide — table 3
Location Purpose
docs/start-here.md Readiness, Python preparation and learning routes
docs/lessons/ Student lessons, guided construction, practice, feedback and instructor notes
notebooks/ Interactive companions; use inside the complete source tree
examples/ Public scripts calling the shared implementation
src/practical_ml_ai/ Shared Python processing, modeling and reporting code
data/ Original fixtures, schemas and source manifests; downloaded external records stay in ignored runtime caches
docs/setup/ Acquisition, environments, Python bridge and troubleshooting
docs/instructor/ Adoption, assessment, pacing, alignment and learner-pilot guidance
templates/ Reusable lesson, practice, data/model-card and review templates
tests/, scripts/, environments/ Maintainer checks, build tools and tested dependency constraints
docs/maintenance/ Repository hygiene and historical review evidence

Generated site files, runtime results, environment folders, credentials, student submissions and private institutional planning sources do not belong in tracked course source. See the inventory audit and retention rules.

Instructors, contributors and help

Independent reviewers can use the review guide. Start with teach and adapt, assessment guidance and pacing. The resource does not replace Canvas grading, deadlines, accommodations or official course policies. Pilot preparation and workload with your actual learners. Text/table and script routes support access; accessibility status records remaining human testing.

Report security problems privately as described in SECURITY.md. For a nonsensitive reproducible software problem, open an issue with the module, environment, command and error text. Report accessibility barriers to ntiik@ucmail.uc.edu; see the reporting guide. Use the institution's established channels for course assessment or accommodation decisions.

Maintainers should use DEVELOPMENT.md for the separate core/framework test profiles, notebook verification, site assembly, archive checks and browser checks. Read CONTRIBUTING.md, the architecture and release checklist before extending the course. Students do not need the maintainer toolchain for their first lesson.

Maintainer and license

Maintained by Isaac K. Nti. Code is licensed under MIT; original educational content is CC BY 4.0 with component boundaries. External datasets and models retain their own rights. Use citation metadata and cite the datasets/models used in your work.

Authorship and course relationship

Isaac K. Nti developed the original explanations, activities, worked examples, code, and supporting materials in this repository. These supplementary resources support the course he teaches in the School of Information Technology at the University of Cincinnati. The official course description, course learning outcomes, and module learning outcomes are attributed to the University of Cincinnati and are excluded from this repository’s license grants. External materials retain their respective attribution and terms. These resources supplement the official syllabus. See licensing and institutional boundaries.