Practice problem solving and computer science with Python.
Python programming practice
Status: Outline with beginner lessons available in the foundations track.
Prerequisites
- Computing and Python foundations
- Variables, conditions, loops, functions, and basic debugging
Learning objectives
- break a problem into inputs, transformations, and outputs;
- choose readable data structures and functions;
- test normal, edge, and invalid inputs; and
- explain time, space, and maintainability trade-offs.
Ordered subtopics
- Decomposing problems and writing pseudocode
- Functions and reusable modules
- Text and file processing
- APIs, JSON, and network requests
- Classes and object-oriented design
- Searching and sorting
- Stacks, queues, trees, and graphs
- Recursion and algorithmic thinking
- Complexity and performance
- Testing, code review, and project structure
Planned projects: quiz game, maze solver, API dashboard, and shortest-path visualizer.
Best practices
- Prefer small functions with one clear responsibility.
- Validate input at the boundary of a program.
- Keep network calls, file access, and core logic separable.
- Use tests and examples before optimizing performance.
- Never execute untrusted code or paste secrets into a debugging request.
References
Problem-solving pattern
For every project, write these four parts before coding:
- Input: What information does the program receive?
- Process: What steps transform the input?
- Output: What should the user see?
- Examples: Which normal and unusual cases should work?