# 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/programming/control-flow/original-py-control-flow/) — `original-py-control-flow` (8 min)
2. [Aliasing and shallow copy](https://mlprep.iwase.dev/programming/python/original-py-alias-copy/) — `original-py-alias-copy` (7 min)
3. [Balanced delimiters with a stack](https://mlprep.iwase.dev/programming/data-structures/original-py-balanced/) — `original-py-balanced` (10 min)
4. [Recursive binary search](https://mlprep.iwase.dev/programming/recursion/original-py-binary-search/) — `original-py-binary-search` (10 min)
5. [Shortest unweighted distance with BFS](https://mlprep.iwase.dev/programming/data-structures/original-py-bfs/) — `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)
