As you progress beyond the basics of Python programming, this course will help you develop an understanding how programs are developed using the software life cycle, specifically the analysis, design and evaluation of a working solution.
During this course you’ll develop your understanding of how to analysis a set of requirements, including spotting patterns of which programming techniques maybe required, how to interpret these requirements through the use of abstraction and decomposition and learn how to develop decomposition diagrams to aid the planning of a programming project.
You’ll also explore how to effectively design a program, based upon your analysis of the requirements. You’ll build algorithms represented as either pseudocode or flowcharts to represent your designed solution.
Finally, you’ll learn how to effectively evaluate whether your programming project has been a success.
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 assessments.
Who is it for?
This course is for current or prospective teachers of GCSE computer science, to undertake this course it is advised that you have a strong understanding of the fundamentals of the Python language.
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
To compliment this course Python programming projects: advanced subject knowledge, implementation and testing is also available. It’s recommended that you complete this course alongside, to give you the knowledge of the full software life cycle.
What does it cost?
This course is fully funded for participants from maintained schools in England. If you are from an independent school or from an organisation outside England, then the course fee is £220.
01 | Analysis of programming 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. During this session you’ll learn how to develop a decomposition diagram to support your planning of the project.
02 | Designing a solution - in this session you’ll begin designing an algorithm to tackle the analysis completed in the first session. You’ll explore how pseudocode and flowcharts can be used to represent a design to a solution.
03 | Evaluating a solution - in this session you’ll explore how to evaluate the success of a program, this session will also explore how to write a report for a programming project.
How will you learn?
You’ll engage with active learning in groups including direct instruction, hands-on activities and challenge-based learning. Examination practice with guidance will be linked to the specific requirements of the main awarding bodies. The course will model teaching approaches that can be taken back to the classroom.
How long is the course?
This is a one-day course which consists of five hours of teaching time.
Recommended next steps:
This course forms part of the Computer Science Accelerator Programme. To compliment this course Python programming projects: advanced subject knowledge, implementation and testing is also 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.
- Learn the importance of the implementation and testing stages of the software development life cycle
- Learn how to apply abstraction and decomposition to a programming project during the analysis and design phases
- Understand how to create suitable algorithms to represent a design to a solution
- Develop confidence in leading your students as they develop their programming skills