Practice problem solving and computer science with Python.

Python programming practice

Status: Outline with beginner lessons available in the foundations track.

Prerequisites

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

  1. Decomposing problems and writing pseudocode
  2. Functions and reusable modules
  3. Text and file processing
  4. APIs, JSON, and network requests
  5. Classes and object-oriented design
  6. Searching and sorting
  7. Stacks, queues, trees, and graphs
  8. Recursion and algorithmic thinking
  9. Complexity and performance
  10. 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:

  1. Input: What information does the program receive?
  2. Process: What steps transform the input?
  3. Output: What should the user see?
  4. Examples: Which normal and unusual cases should work?