Skip to content

Term project

A Python project in teams of two: a classification task on a dataset of your choice, delivered as one well-commented Jupyter notebook, an opponent review of another team's project, and a mandatory presentation with a defence. It is worth 20 points (project) + 5 (opponent review) + 5 (presentation and defence).

AI component

For 4IZ582 / 4IZ583 the project must contain an AI component — one of the five routes below. For 4IZ566 / 4IZ565 the same routes are the optional extension.

Milestones — winter 2026/27

When Milestone
23.09. (week 1) Teams form in seminar 1; start choosing a dataset
Sun 04.10. (week 2) Team and dataset registered in INSIS
14.10. – 22.11. (weeks 4–9) Analysis
Sun 22.11. (end of week 9) Notebook submitted in INSIS — the full pipeline including the AI component
Sun 29.11. (week 10) Opponent review submitted (PDF)
09.12. and 16.12. Presentations and defences in the seminar slots; allocation announced on 02.12.

Choosing a dataset

The task must be classification — the target variable is nominal. A numeric target is acceptable only if its values are a small number of categories. Aim for a few thousand rows and a handful of features; more is fine if the notebook still runs in five minutes.

Generic sources

Czech open data and current problems

You may propose any other dataset. Register it in INSIS by 4 October.

What every project must contain

  1. Exploratory analysis — shape and types, missing values, the class balance of the target, at least two plots that say something (seminar 1).
  2. Preprocessing in pandas — any two of: remove rows by subsetting · derive new columns · aggregate with groupby · treat missing values · join two tables (seminar 1). Encoding and scaling go inside a Pipeline / ColumnTransformer, not before the split (seminar 2).
  3. Modelling — a held-out test set and stratified cross-validation on the training part; at least two algorithm families (for example logistic regression and a random forest or gradient boosting). Any scikit-learn classifier is fine.
  4. Hyperparameter tuningGridSearchCV / RandomizedSearchCV with refit, or a documented table of configurations you tried. Report the nested or held-out estimate, not the search's own best score (seminar 2).
  5. Evaluation — accuracy plus one threshold-independent metric (ROC AUC or average precision); the confusion matrix at the threshold you chose and why; the ROC curve for a binary task; the metric justified by the class balance; the test set touched once.
  6. No leakage — preprocessing or feature selection fitted outside the pipeline, target leakage (a feature that is only known after the outcome), temporal leakage, duplicated or grouped samples across the split. Seminar 2 shows each of these; the Princeton reproducibility checklist is the reference.

AI component

Mandatory for 4IZ582 / 4IZ583, optional for 4IZ566 / 4IZ565. Choose one:

Route What you build Taught in
A — LLM-generated features A structured-output schema over a text column (or the llm-feature-gen package — see the extra notebook of seminar 3), the features joined into the pipeline; the model must never see the label; report with and without them seminar 3
B — embedding features Embeddings of a text column as classifier input, against a TF-IDF baseline seminar 3
C — LLM as a zero-/few-shot classifier The model labels the test split; confusion matrix against your tuned model, and the cost per 1 000 rows seminars 2–3
D — RAG component Retrieval-augmented question answering over the documents of your dataset's domain, or retrieval-augmented few-shot classification; at least 10 labelled questions, hit@k and MRR reported seminar 4
E — image data, CNN / transfer learning A baseline (logistic regression on pretrained embeddings or downscaled pixels) against a fine-tuned model, same evaluation protocol; trained weights or cached embeddings shipped. The ÚTIA seminars on 11.11. and 18.11. come before the deadline, transfer learning (02.12.) after it — plan accordingly ÚTIA block

Rules for all routes: use the school endpoints, keys in environment variables, never in the notebook; ship the cached model outputs (CSV) so that the notebook re-runs offline in under five minutes; say what the component cost in requests and time.

Submission

The notebook is the report — there is no separate document. Upload one .zip (not .rar) to INSIS with

  • the Jupyter notebook (.ipynb) with your analysis, commented so that a reader can follow and replicate it: explain every choice in text cells (parameters, removed or added features, the metric), and state who did what and what was done with AI tools (see Assessment);
  • its HTML export (File → Save and Export Notebook As → HTML);
  • the dataset as .csv — or a download link if it does not fit — plus any cached model outputs the AI component needs to re-run offline.

The notebook must pass Restart Kernel and Run All Cells without errors in roughly five minutes (shrink the search space if tuning takes longer), use relative paths only (data/file.csv, never C:\...), and justify every package beyond the standard stack with a comment and its install command at the top.

Opponent review

One PDF per team, on another team's notebook, answering:

  • Did the authors select suitable modelling algorithms?
  • Was hyperparameter tuning performed where appropriate?
  • Are the results replicable — does the notebook describe every step in enough detail?
  • Were proper evaluation metrics selected? Are the results correctly interpreted?
  • Is the AI component (or extension) justified and evaluated honestly?
  • Are all important steps explained and justified? Is the writing clear and concise?

Presentation and defence

The presentation is mandatory for every team member — a term project that has not been presented and defended is not complete, and the points for it are not awarded.

Slides are recommended. Up to 8 minutes (about sixty teams share six 90-minute blocks), followed by questions to individual team members: the dataset · preprocessing · modelling · the AI component · lessons learned · response to the review.

Every student is asked a verification question on the project during the presentation. Its purpose is to verify that the student actually did the work — it targets the code, the data or a decision in the notebook, and it is answered individually, without the teammate. The answer is the individual part of the defence points. Instructions given in class take priority.

How the 20 project points are awarded

Proposed rubric — may still be adjusted before the semester

Part Points
Data and exploratory analysis 3
Preprocessing 3
Modelling and tuning 4
Evaluation and reproducibility 4
AI component (4IZ582/583) or extension (4IZ566/565) 6

Plus 5 points for the opponent review and 5 for the presentation and defence, where half of the defence points depend on each member's answer to their verification question.