By the end of Session 3, you should be able to:
- explain the difference between iterables, iterators, and generators
- use
iter(),next(), file iteration, andyield - choose when to stream data and when to load all data into memory
- estimate time and space complexity for common text-processing tasks
- use Gemini on a text dataset for structured character and event extraction
- build a tiny RAG pipeline with chunking, retrieval, and Gemini
- recognize algorithmic patterns that do not scale well
- Part 1
- Part 2
- Part 3
- Homework
- Write your own work in solutions.
- Review reference solutions only after attempting tasks yourself.
- Practice with quizzes when ready.
- Keep your own solutions in separate files inside
solutions/. - Use exercise-style names in
solutions/(for exampleexercise-03-01.py,exercise-03-02.py,exercise-03-03.py). - Reference answers are in
session_solutions/. - Do not commit
.venv/to GitHub. - Use
requirements.txtfor Parts 1 and 2. Userequirements-homework.txtin a separate environment for Part 3 and the Gemini homework tasks. - Pull the latest repository changes before starting each session.