Any suggestions?
- topological sorting the build graph - what is a graph - running child processes - what a process is - process api - interaction with the filesystem - r/w files - mtime comparisons - how computers store time - what is incremental execution
I would suggest to skip parsing, and use a Python literal to hold the 'Makefile'-equivalent dependency graph data structure.
You let students come up with their own fun build graphs, like making sushi:
tuna_maki -> nori, cooked_rice, tuna_fillet, chef, sushi_roller
cooked_rice -> uncooked_rice, rice_cooker, water, rice_seasoning
tuna_fillet -> tuna_slab, knife
tuna_slab -> fishmonger, money
nori -> algae, dehydrator
And then, when executed, it would print the steps, or say that a target was already made.
Good luck!
Persist data -> search it -> too much data, need an index -> search on that index -> keep that index updated
I think you can split that in couple of parts to teach it in a few sessions and then join everything in one project, which when I started with Python it was hard for me to understand.
Also, convert data in a PDF to a CSV file. I have needed to do that many times over the years and learned a lot of Python by improving my approaches.
https://app.codecrafters.io/catalog
You can get any of those projects and chop it down to fill the time you need.