Software development Teaching Guide
Software development Teaching Guide
This unit and all the worksheets, PowerPoint presentations, teaching guides and other
associated files distributed with it are supplied to you by PG Online Limited under licence
and may be used and copied by you only in accordance with the terms of the licence. Except
as expressly permitted by the licence, no part of the materials distributed with this unit may
be used, reproduced, stored in a retrieval system, or transmitted, in any form or by any
means, electronic or otherwise, without the prior written permission of PG Online Limited.
Licence agreement
This is a legal agreement between you, the teaching institution, and PG Online Limited. PG
Online Limited grants to you a non-exclusive, non-transferable, revocable licence to use this
unit and all the worksheets, PowerPoint presentations, teaching guides and other associated
files distributed with it in the course of teaching by your teachers and/or employees.
The materials distributed with this unit may be copied and used by your teachers and/or
employees on a single site only in the course of their teaching. You warrant that you shall
not, and shall procure that each of your teachers and/or employees shall not, share in any
way any of the materials or part of the materials with any third party, including users on
another site or individuals who are teachers and/or employees of a separate institution. You
acknowledge and agree that the materials must remain with you, the teaching institution, and
no part of the materials may be transferred to another institution. You also warrant that you
shall not, and shall procure that each of your teachers and/or employees shall not, procure,
authorise, encourage, facilitate or enable any third party to reproduce these materials in
whole or in part without the prior permission of PG Online Limited.
In consideration of the licence granted to you, you shall indemnify PG Online Limited against
all liabilities, costs, expenses, damages and losses (including but not limited to any direct,
indirect or consequential losses, loss of profit, loss of reputation and all interest, penalties
and legal costs and all other professional costs and expenses) suffered or incurred by PG
Online Limited arising out of or in connection with the exercise by you of your rights granted
under this licence.
Summary
The unit is subdivided into four topics and an end-of-unit assessment. Each topic may be
spread over more than one lesson, especially if time is spent in the lessons going over
homework tasks.
It is a theoretical unit covering the OCR Computer Science specification sections 1.2.3
(Software development) and 1.2.4 (Types of programming language). The first two lessons
cover systems analysis methods and algorithm design. The next two topics cover
programming paradigms, assembly language and an introduction to the main concepts of
object-oriented programming.
Some programming experience in a high-level language will be useful for this unit. It is
expected that practical programming lessons will take place in parallel with or prior to
studying this unit. Students should have a basic understanding of computer systems from
lessons delivered as part of the Key Stage 3 national curriculum and preferably also a GCSE
course in Computer Science.
Suggested Resources
A standard office suite of applications for the presentation and printing of provided
resources.
Access to the Internet so that students can run programs on the Little Man Computer and
possibly work through part of a Prolog tutorial.
The textbook OCR A Level Computer Science by PM Heathcote and RSU Heathcote,
endorsed by OCR and published in September 2016, provides comprehensive coverage of
all the theoretical topics in the OCR specification (H446).
Each of the twelve sections in the book corresponds to one of the teaching units in this
series and will be extremely useful as a course textbook and also as a revision guide.
Sample questions, many taken from past exam papers, are included at the end of each
chapter and can be set as additional homework. Answers to all questions and exercises,
including coded solutions to pseudocode algorithms are available in a free teacher’s pack
which can be ordered and downloaded from our website www.pgonline.co.uk
The book is published by PG Online in a printed and electronic edition. Please refer to
www.pgonline.co.uk for ordering and pricing details.
Assessment
Students will sit an end-of-unit test.
A few points to note:
These are not live assessment questions. They have all been created from scratch for this
scheme of work. We cannot guarantee the areas covered in the test will cover all areas that
could come up in any given exam paper. That being said, when producing the test, the
following have been carefully taken into account:
• the range of questions is designed to elicit the understanding of students from E-A*
grade.
• appropriate command words and language is used across the range of questions
(list, describe, state, discuss, explain…)
Real exam papers go through a serious quality assurance process; feel free to use and
adapt these questions as you see fit.
Learning Objectives:
Content Resources
Testing strategies
Go over black box and white box testing. Both are needed;
every bit of code needs to be tested at least once, to make
sure the program does not crash or come up with a wrong
answer or unexpected action (white box). But white box on its
own will not find missing functions or menu options which
have not been coded – you can’t test what isn’t there! So
black box testing compares what should be there with what is
there.
Alpha testing is carried out in-house and by the user, once
the system has been installed on their hardware. Often it
turns out not to be quite what the user expected, and further
development will be necessary.
Beta testing is commonly carried out by large companies
such as Microsoft which has thousands of users and which
produces frequent new versions of software.
Acceptance testing takes place when everyone is fairly
confident that the system is complete and does what it is
supposed to do.
Maintenance
All systems undergo change over a period of time. Discuss
the three different types of maintenance.
In this cyclical model, each stage is completed before moving
on to the next stage.
The waterfall model
This is essentially an illustration of one pass through the
system lifecycle – each stage is completed before moving to
the next.
Go through the slides describing this model.
Give out Worksheet 1 and let students work in pairs or small Software development
groups to try and answer the questions in Tasks 1 and 2. If Worksheet 1 Systems
the students google, for example, “Artists websites” they will analysis methods
get a good idea of what sort of website might be required and
what questions they could ask the customer. For example,
Software development
http://www.websitedesignforartists.com/examples_of_artist_w
Worksheet 1 Answers
ebsites.html
Have a class discussion on the answers.
Plenary
Show the final slide and review the major points of the
lesson.
Give out Homework Sheet 1.
Software development
Homework 1 Systems
analysis methods
Software development
Homework 1 Answers
Preparation:
Bring in a set of playing cards or just simply cards with numbers written on them, to
demonstrate manually the insertion sort and possibly the bubble sort.
Learning Objectives:
• To understand the term ‘algorithm’
• To learn how to write and interpret algorithms using pseudocode
Content Resources
Plenary:
Go over the main points of the lesson.
Give out Homework 2.
Software development
Homework 3 Writing and
following algorithms
Software development
Homework 3 Answers
H2 Qu2 check
barcodes.py
Learning Outcomes:
• Understand the need for and characteristics of a variety of programming paradigms
• Describe the features of procedural languages
• Describe the features of declarative languages
• Describe the features of object-oriented languages
o Develop an understanding of classes, objects, methods, attributes,
inheritance, encapsulation and polymorphism
Content Resources
Main:
Four programming paradigms
There are four common programming paradigms. Emphasise
that a paradigm is a way or style of programming – it is not a
type of programming language. A particular programming
language may support one or more paradigms.
The students may not have heard of functional programming,
which is included here for completeness, but it is not included in
this specification so there is no need to go into detail.
Procedural programming
Languages such as Python, Pascal, VB all support a procedural
style of programming, with each statement being an instruction
of what to do next. In structured programming, the constructs
are limited to sequence, selection, iteration and recursion. In
modular structured programming, the program is split into a
series of subroutines which are called in a hierarchical manner,
starting with a main module.
Declarative programming
This is a completely different style of programming. The
example that students will most likely know is SQL – ask them
to describe an SQL statement, and what it does. How is this
style of programming different from procedural programming?
Logic programming
Prolog is an example of a type of declarative programming, also
called “logic programming”. More on this after they have done
the first task on the worksheet.
Learning Outcomes:
• Write and follow simple assembly language programs
• Understand and apply immediate, direct, indirect and indexed addressing modes
Content Resources
Learning Outcomes:
• Be able to apply their knowledge in answers to a range of questions
• Be able to highlight areas of strength and any gaps in their understanding
of computers
Content Resources
Artwork