Design, implement, debug and test small programs for solving problems motivated by real-world
interests,
using the
above concepts and
modern software engineering practices including (where
appropriate, and at an elementary level):
- An appropriate integrated development environment with version control
- Coding to a specification
- Iterative enhancement
- Pair programming
- Test-first programming
- Documenting software, for internal readers and for external readers
- Use of application programming interfaces (APIs)