Python programming: analysis, design and evaluation - remote CP464

Develop your Python programming skills by exploring the analysis, design and evaluation stages of the software development life cycle.


Develop your Python programming skills by exploring the analysis, design and evaluation stages of the software development life cycle. This course progresses from Python fundamentals to a comprehensive understanding of how sophisticated programs emerge from methodical development processes.

You’ll develop your understanding of how to analyse a set of requirements, discerning vital programming techniques, and mastering the interpretation of these requirements through abstraction and decomposition. Enhance your planning skills for programming projects with expert guidance on developing decomposition diagrams.

Transitioning from analysis to design, you’ll explore how to  architect robust programs by crafting algorithms in flowcharts, reflecting your design solutions. Finally, you’ll learn how to rigorously assess the success of your programming projects, ensuring alignment with predefined objectives and user needs.

Mapped closely to the specifications of GCSE computer science, the course will provide you with deepened knowledge and confidence that your students are equipped for programming assessments.

Prior knowledge:

You’ll need to be confident in the essentials of sequence, selection, iteration and working with data files to access this course. It’s recommended that you undertake the following courses prior to this one: Python programming constructs: sequencing, selection and iteration and Python programming: working with data.

If you are entirely new to computer science, we recommend first participating in our one-day course: An introduction to algorithms, programming and data in GCSE computer science.

Recommended next steps:

To compliment this course we also have: Python programming: advanced subject knowledge, implementation and testing available. It’s recommended that you complete this course alongside, to give you the knowledge of the full software life cycle.

This course is delivered as part of the National Centre for Computing Education.

Who is it for?

This course is for current or prospective teachers of computer science, to undertake this course it is advised that you have a strong understanding of the fundamentals of the Python language.

What topics are covered?

01 | Analysing a project - Explore how to interpret a set of programming requirements effectively, you’ll learn more about abstraction and decomposition and how to apply these concepts when analysing the requirements of a project.

02 | Decomposition Diagrams – During this session you’ll learn how to develop a decomposition diagram to support your planning of a project.

03 | Designing a solution - In this session you’ll begin designing an algorithm to tackle the analysis completed in the first two session. 

04 | Modular Programming – You’ll explore how flowcharts can be used to represent the modular  design to a solution.

05 | Evaluating a solution - In this session you’ll explore how to evaluate the success of a program.

How will you learn?

Scheduled live, interactive online sessions led by an experienced practitioner. Flexible, Professional Development Leader-supported, participant-led tasks, involving deep exploration of the subject content.

How long is this course?

This course is approximately five hours in duration, split across several days.


By the end of this course, you will be able to:

  • Analyse programming project requirements, employing abstraction and problem decomposition to prepare for the design and analysis stages.
  • Design program solutions, utilising appropriate constructs and subroutines, and construct algorithms to accurately represent solutions.
  • Critically evaluate programming solutions against success criteria, ensuring alignment with project objectives.
  • Refine and enhance solutions, focusing on their effectiveness, readability, and efficiency for continuous improvement.