By the end of this course you will be able to take a problem somebody actually has, work out what a program would need to do about it, and build that program in Python β€” then hand it over to the person whose problem it was. Writing code is the easy half. Deciding what to build, for whom, and knowing when it is genuinely finished is the part this course is really about. In the curriculum’s own words, three of the goals are:

B1. Problem-solving Strategies

use a variety of problem-solving strategies to solve different types of problems independently and as part of a team;

Link to original

A2. Control Structures and Simple Algorithms

demonstrate the ability to use control structures and simple algorithms in computer programs;

Link to original

B4. The Software Development Life Cycle

apply a software development life-cycle model to a software development project.

Link to original

The full set β€” every overall and specific expectation across the four strands β€” lives in the Curriculum folder, and each task links to exactly the expectations it addresses.

Put plainly, week to week that means:

  • Meet the idea by needing it β€” you will hit the problem before you meet the tool. Copying a line a hundred times is what makes loops obvious; the same eight lines appearing four times is what makes Functions obvious.
  • Write Python that runs β€” and, just as importantly, read an error message without panicking; see Reading an Error Message.
  • Build for a person, not a mark β€” every task names who it is for, and The Community App is built with a real client: their problem, in their words, tested by them, handed over so they can use it without you in the room.
  • Grow visibly β€” your Code Journal is where a confusing hour turns into evidence of what you now understand; see How Marks Work.