# Programming Diagnostic

> ML preparation set.

- Stable ID: `programming-diagnostic`
- Area: programming
- Kind: diagnostic
- Timebox: 50 minutes

Check Python semantics, data-structure selection, algorithmic control flow, and recursion.

## Instructions

1. Predict behavior before executing code.
2. State expected time complexity for implemented algorithms.

## Ordered items

1. [Classify values in one pass](https://mlprep.iwase.dev/item/original-py-control-flow/?set=programming-diagnostic) — `original-py-control-flow` (8 min)
2. [Aliasing and shallow copy](https://mlprep.iwase.dev/item/original-py-alias-copy/?set=programming-diagnostic) — `original-py-alias-copy` (7 min)
3. [Balanced delimiters with a stack](https://mlprep.iwase.dev/item/original-py-balanced/?set=programming-diagnostic) — `original-py-balanced` (10 min)
4. [Recursive binary search](https://mlprep.iwase.dev/item/original-py-binary-search/?set=programming-diagnostic) — `original-py-binary-search` (10 min)
5. [Shortest unweighted distance with BFS](https://mlprep.iwase.dev/item/original-py-bfs/?set=programming-diagnostic) — `original-py-bfs` (12 min)

## Completion

Use failed tests or incorrect predictions to choose the corresponding topic practice set.

## Next recommended practice

- [Control Flow Practice](https://mlprep.iwase.dev/sets/control-flow-practice.md)
- [Data Structures Practice](https://mlprep.iwase.dev/sets/data-structures-practice.md)
- [Python Practice](https://mlprep.iwase.dev/sets/python-practice.md)
- [Recursion Practice](https://mlprep.iwase.dev/sets/recursion-practice.md)
