# gregmalcolm/python_koans

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/gregmalcolm-python-koans).**

5,097 stars · 2,846 forks · Python · MIT

## Links

- GitHub: https://github.com/gregmalcolm/python_koans
- awesome-repositories: https://awesome-repositories.com/repository/gregmalcolm-python-koans.md

## Topics

`koans` `python`

## Description

This project is an automated syntax trainer and interactive Python course designed as a test-driven learning framework. It teaches Python language features and syntax by guiding learners through a series of coding exercises where the goal is to modify source code until a suite of failing tests passes.

The system utilizes a test-driven development methodology, providing a sequence of incremental challenges that increase in complexity. It features an automated test runner and file-change monitoring to provide immediate feedback by automatically re-executing tests when source files are modified.

The learning environment organizes exercises via the file system and allows for targeted test execution to verify specific programming concepts without running the full suite.

## Tags

### Education & Learning Resources

- [Test-Driven Learning Cycles](https://awesome-repositories.com/f/education-learning-resources/curricula-instructional-design/educational-frameworks-architectures/instructional-methodologies/iterative-learning-cycles/test-driven-learning-cycles.md) — Uses an instructional design where learners modify code until automated tests pass to validate understanding.
- [Interactive Coding Courses](https://awesome-repositories.com/f/education-learning-resources/interactive-coding-courses.md) — Offers a collection of code-based lessons that guide learners through Python features using automated test feedback.
- [Python Exercises](https://awesome-repositories.com/f/education-learning-resources/programming-exercises/python-exercises.md) — Provides a series of small, guided coding challenges focused on Python language proficiency.
- [Programming Language Tutorials](https://awesome-repositories.com/f/education-learning-resources/programming-language-tutorials.md) — Guides learners through Python language features using a suite of executable tests and immediate feedback.
- [Complexity Progression](https://awesome-repositories.com/f/education-learning-resources/spaced-repetition-systems/learning-step-configurations/complexity-progression.md) — Structures exercises in a sequence of increasing technical difficulty to match the learner's progress.
- [Automated Syntax Trainers](https://awesome-repositories.com/f/education-learning-resources/automated-syntax-trainers.md) — Monitors source files and reruns tests to provide immediate validation of Python code changes.

### Part of an Awesome List

- [Interactive Learning](https://awesome-repositories.com/f/awesome-lists/learning/interactive-learning.md) — Teaches Python syntax through interactive, test-driven exercises and iterative problem solving. ([source](https://github.com/gregmalcolm/python_koans/blob/master/contemplate_koans.py))

### Programming Languages & Runtimes

- [Python Language Features](https://awesome-repositories.com/f/programming-languages-runtimes/python-language-features.md) — Teaches core Python syntax and functional capabilities through incremental coding challenges.

### Testing & Quality Assurance

- [Test-Driven Development Resources](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/test-driven-development-resources.md) — Provides structured guides and practice for learning software design by writing failing tests before implementation.
- [Test Suite Runners](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-execution-runners/test-suite-runners.md) — Provides a utility to manage and execute collections of Python tests for immediate feedback.

### Development Tools & Productivity

- [Automated Test Execution](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/test-execution-management/automated-test-execution.md) — Triggers and runs test suites automatically upon file modification to provide immediate development feedback. ([source](https://github.com/gregmalcolm/python_koans#readme))
- [Source File Watching](https://awesome-repositories.com/f/development-tools-productivity/workflow-automation-tools/development-automation/development-rebuild-triggers/source-file-watching.md) — Monitors source files for changes to automatically trigger the re-execution of the test suite.
