FURTHER EDUCATION AND TRAINING
CERTIFICATE: INFORMATION TECHNOLOGY:
SYSTEMS DEVELOPMENT
ID 78965 LEVEL 4 – CREDITS 165
FACILITATOR GUIDE
SAQA: 14909
DESCRIBE THE DIFFERENCE BETWEEN PROGRAMMING
IN OBJECT ORIENTATED AND PROCEDURAL
LANGUAGES
Facilitator Information:
Details Please Complete this Section
Name & Surname:
Organisation:
Unit/Dept:
Facilitator Name:
Date Started:
Date of Completion:
Copyright
All rights reserved. The copyright of this document, its previous editions and
any annexures thereto, is protected and expressly reserved. No part of this
document may be reproduced, stored in a retrievable system, or
transmitted, in any form or by any means, electronic, mechanical,
photocopying, recording or otherwise without the prior permission.
2
Facilitator Guide Introduction
About the This Facilitator Guide provides a comprehensive overview of
Facilitator Develop a community development intervention plan,
Guide… and forms part of a series of Facilitator Guides that have been
developed for FURTHER EDUCATION AND TRAINING
CERTIFICATE: INFORMATION TECHNOLOGY: SYSTEMS
DEVELOPMENT ID 78965 LEVEL 4 – CREDITS 165. The
series of Facilitator Guides are conceptualized in modular’s
format, in accordance with the Learner Guides. This guide has
been designed and developed to assist you in effectively and
efficiently prepare and implement your various training
interventions.
Purpose The purpose of this Facilitator Guide is to assist facilitators in
delivering training sessions, related to FURTHER EDUCATION
AND TRAINING CERTIFICATE: INFORMATION
TECHNOLOGY: SYSTEMS DEVELOPMENT ID 78965
LEVEL 4 – CREDITS 165. The Guide also provides
information on facilitation methodologies and strategies to be
adopted during training sessions.
US No US Title Level Credit
14909 Describe the difference between 4 4
programming in Object Orientated
and Procedural Languages
Objectives Describe the difference between programming in
Object Orientated and Procedural Languages
Outcomes The qualifying learner is capable of:
Describe the difference between programming in
Object Orientated and Procedural Languages
Facilitation The programme is very practical and aims to provide practical
Methodology tools and skills for adult learners. The methodology should
ensure that:
The learning environment is physically and
psychologically comfortable.
Contact training periods are short and varied to avoid
boredom.
Learner expectations are articulated and clarified and
managed by the learner and facilitator.
The experience of participants is acknowledged and
drawn on in the learning programme.
Facilitation, rather than teaching, is used to allow
participants to participate fully.
The facilitator balances the presentation of new
material, debate and discussion in such a way that the
outcomes of the module are met, while ensuring that all
participants are valued and are able to contribute to the
learning process.
The learning will be problem-oriented, personalized and
accepting of participants’ needs for self-direction and
personal responsibility.
The module presented in a way that allows a participant
to participate fully in the language of their choice.
The facilitation process accommodates participants who
may not be literate, or who are not literate in English.
The contact session uses a participatory methodology. This is appropriate for
adult audiences who come with a wide range of experiences and skills. It also
accommodates a broader range of learning styles. Some techniques that can
be used include:
Method Description
Structured learning experience Participants engage with a
complex game or activities that
represent real-life situations
that they may encounter in the
course of their work as a Ward
Committee member.
Case study This is a realistic story or real-
life situation that has taken
place, in which participants
4
need to apply their knowledge
and skills to practice how they
can deal with the issues
presented.
Group work Participants work on tasks in
their groups and report their
findings back to plenary.
Lecture The facilitator presents a short
talk (maximum of 10 minutes)
to introduce a new subject, to
provide details, or to wrap up a
session.
Discussion This is a free exchange of ideas
or experiences on a particular
topic. It may be between the
facilitator and the participants
or between the participants.
Brainstorming Participants generate a number
of ideas on a particular subject
or question. It may be used to
gather different opinions or to
find out what participants know
about a particular topic.
Role-play Participants are asked to act out
a scenario where each
participant plays a particular
role. A role-play may be used to
illustrate how people respond in
different situations.
Panel discussion This is a planned presentation
by one or more experts. It may
be followed by a discussion
session or a round of questions.
5
Resources White board and/or Flipcharts
Laptop & Data Projector (not compulsory)
Facilitator & Learner Guide
Learner Workbook
Appendices (attached to learner guide)
Time Contact/ Facilitation Days
Theory
Practical
Assessments
Workplace Application Days
6
Facilitator’s Checklist & Training Aids
Learner support strategies:
Learners are supplied with all resources and aids as required by the program –
including:
Objects & devices such as equipment, protective clothing, and
safety gear, etc.
Learner Guides and Learner Workbook
Visual aids, etc.
Use this checklist below during your preparation to ensure that you
have all the equipment, documents and training aids for a
successful session.
Preparation: Yes No
Qualification Knowledge – I have familiarised myself
with the content of the applicable qualification
Unit Standard Knowledge – I have familiarised myself
with the content of all aspects of the applicable unit
standard
Content Knowledge – I have sufficient knowledge of the
content to enable me to facilitate with ease
Application knowledge – I understand the programme
matrix & have prepared for programme delivery
accordingly
Contextualisation – I have included information which is
specific to the commodity and practices related to the
commodity
Ability to respond to learners background &
experience – I have studied the learner
demographics, age group, experience & circumstances &
prepared for programme delivery accordingly
Enthusiasm & Commitment – I am passionate about
my subject & have prepared my programme delivery to
create a motivating environment with real commitment to
success
Enterprise knowledge – I know & understand the
values, ethics, vision & mission of the workplace & have
prepared my programme delivery, reporting &
administrative tasks accordingly.
Equipment check:
Learner guides x 1 per learner
Assessment guides x 1 per learner
Writing materials & stationary (facilitator & learner)
White board & pens
Flip chart paper
Proximal projector & screen
Laptop & programme disk
Sample Hand-outs and examples of laws and other
relevant documents
Safety gear as prescribed by unit standard and applicable
legislation
8
Documentation checklist:
Attendance Register
Course Evaluation
Learner Course Evaluation
Portfolios of evidence
9
Learning Program Time Frames
Total
Theoretical Activitie
time Practical
learning time s to be
allocate learning time
allocated complete
d allocated (hours)
(hours) d
(hours)
Complete
Program
(including
summative
assessment)
Learner 1 hour 30 minutes 30 minutes
Orientation
and “Ice
Breaker”
Purpose, 1 hour 30 minutes 30 minutes
Introduction
and Learner
Directions
Conduct 80 hour 24 hours 56 hours
negotiations
to deal with
conflict
situations
Preparation 0.5 - - -
for
Assessment
& revision
TRAINING PROGRAM
Briefing Session: Day1
1. Introduction to the Learning Units
Start with an “ice-breaker”, and eventually discuss the global
outcome of the learning units with learners and emphasize the
assessment process.
Topics Time Remarks
Ice Breaker 15 min Please refer to Learner
Course expectations Guide and Assessment
Assessment Criteria 10 min Guide for details.
Learner’s Responsibilities
5 min
2. Training Ground Rules
Discuss the training session ground rules with learners to avoid
disturbance during the session
Topics Time Remarks
Learning Units estimated 10 Min Write down the training
time session ground rules
Ethical behavior and keep them posted
Cellular phones – (off/silent) in the classroom for the
Breaks – (tea, lunch….) duration of the session.
Etc…
11 | P a g e ALL COPYRIGHT RESERVED
WORKBOOK MEMORANDA
1
Describe the difference between
programming in Object Orientated and
Procedural Languages
Learning Unit
UNIT STANDARD NUMBER : 14909
LEVEL ON THE NQF : 4
CREDITS : 4
FIELD : Human and Social Studies
SUB FIELD : People/Human-Centred Development
This unit standard is intended:
to provide a conceptual knowledge of the areas covered
PURPOS for those entering the workplace in the area of systems development
E: as additional knowledge for those wanting to understand the areas covered
People credited with this unit standard are able to:
describe basic object oriented terminology
describe the fundamental differences between procedural and object oriented
programming.
The performance of all elements is to a standard that allows for further learning in
this area.
LEARNING ASSUMED TO BE IN PLACE:
The credit value of this unit is based on a person having the prior knowledge and skills to:
be able to apply the principles of Procedural Computer Programming
12 | P a g e ALL COPYRIGHT RESERVED
SESSION 1.
Describe basic object oriented terminology.
Learning Outcomes
1.The description explains the basic principles of a class.
2. The description explains the basic principles of an object.
3. The description explains the basic principles of information hiding and encapsulation
4. The Description explains the basic principles of inheritance.
5. The Description explains the principles of polymorphism.
Activity Questions Description Mark
1 Define object-oriented programming 5
Object-oriented programming is a programming paradigm that uses abstraction to create
models based on the real world. It uses several techniques from previously established
paradigms, including modularity, polymorphism, and encapsulation.
Activity Questions Description Mark
Define the following terms
Class
Object
Property
Method
2 Constructor 9
Inheritance
Encapsulation
Abstraction
Polymorphism
Class
Defines the characteristics of the Object.
Object
13 | P a g e ALL COPYRIGHT RESERVED
An Instance of a Class.
Property
An Object characteristic, such as color.
Method
An Object capability, such as walk.
Constructor
A method called at the moment of instantiation.
Inheritance
A Class can inherit characteristics from another Class.
Encapsulation
A Class defines only the characteristics of the Object, a method defines only how the method
executes.
Abstraction
The conjunction of complex inheritance, methods, properties of an Object must be able to
simulate a reality model.
Polymorphism
Different Classes might define the same method or property.
Activity Questions Description Mark
3 Distinguish between Encapsulation and Information Hiding 5
Encapsulation vs. Information Hiding
How is encapsulation related to information hiding? You can think of it as two ways of refer- ring
to the same idea. Information hiding is the goal, and encapsulation is the technique you use to
accomplish that goal. Encapsulation can be defined as the hiding of internal data
representation and imple- mentation details in an object. The only way to access the data within
an encapsulated object is to use defined operations. By using encapsulation, you are enforcing
information hiding. Many object-oriented languages use keywords to specify that methods and
attributes should be hidden. In Java, for instance, adding the private key word to a method will
ensure that only code within the object can execute it. There is no such keyword in JavaScript;
we will instead use the concept of the closure to create methods and attributes that can only be
accessed from within the object. It is more complicated (and confusing) than just using keywords,
but the same end result can be achieved.
Encapsulation seems to be a combination of one or more of:
14 | P a g e ALL COPYRIGHT RESERVED
Grouping of relating things together
GateKeeper (state or data protection)
Information Hiding, on the other hand, is
Hiding details of implementation
Activity Questions Description Mark
Describe and explain the principles of polymorphism
4 5
Polymorphism and Overloading
Polymorphism refers to the capability of having methods with the same names and parameter
types exhibit different behavior depending on the receiver. In other words, you can send the
same message to two different objects and they can respond in different ways. More generally,
the capability of using names to mean different things in different contexts is called overloading.
This also includes allowing two methods to have the same name but different parameters types,
with different behavior depending on the parameter types. Note that a language could support
some kinds of overloading without supporting polymorphism. In that case, most people in the
object-oriented community would not consider it to be an object-oriented language.
Polymorphism and overloading can lead to confusion if used excessively. However, the capability
of using words or names to mean different things in different contexts is an important part of the
power of natural languages. People begin developing the skills for using it in early childhood.
SESSION 2.
Describe the fundamental differences between procedural
and object oriented programming.
Learning Outcomes
1. The description explains the use of functions and variables in structure programming,
using simple examples.
2. The description compares encapsulation of data and functions in objects versus
15 | P a g e ALL COPYRIGHT RESERVED
procedural programming
3. The Description identifies possible classes for simple examples.
Activity Questions Description Mark
Describe the fundamental differences between procedural
5 12
and object oriented programming.
A Real-World Example
Okay, that's enough theory. We're going to put both types of programming to the test with a
real-world example. Let's say that you are working for a vehicle parts manufacturer that needs to
update its online inventory system. Your boss tells you to program two similar but separate forms
for a website, one form that processes information about cars and one that does the same for
trucks.
For cars, we will need to record the following information:
Color
Engine Size
Transmission Type
Number of doors
For trucks, the information will be similar, but slightly different. We need:
Color
Engine Size
Transmission Type
Cab Size
Towing Capacity
In procedural programming, you would write the code first to process the car form and then the
code for the truck form. With object-oriented programming, you would write a base class called
vehicle that would record the common characteristics what we need from both trucks and cars.
In this case, the vehicle class will record:
Color
Engine Size
Transmission Type
We'll make each one of those characteristics into a separate method. The color method, for
example, could take the color of the vehicle as a parameter and do something with it, like storing
it in a database. Next, we will create two more classes: truck and car, both of which will inherit all
of the methods of the vehicle class and extend it with methods that are unique to them. The car
class will have a method called number Of Doors and the truck class will have the methods cab
16 | P a g e ALL COPYRIGHT RESERVED
Size and towing Capacity. Okay, so let's assume that we have a working example for both
procedural and OO programming. Now, let's run through a few scenarios that we could come
across in a normal working environment. You know the type of scenario because it always begins
with the thought: I really wish my boss didn't send this in an email request at 4pm on a Friday
afternoon.
Scenario 1
Suppose that we suddenly need to add a bus form, that records the following information:
Color
Engine Size
Transmission Type
Number of passengers
Procedural: We need to recreate the entire form, repeating the code for Color, Engine Size, and
Transmission Type.
OOP: We simply extend the vehicle class with a bus class and add the method, number Of
Passengers.
Scenario 2
Instead of storing color in a database like we previously did, for some strange reason our client
wants the color emailed to him.
Procedural: We change three different forms: cars, trucks, and buses to email the color to the
client rather than storing it in the database.
OOP: We change the color method in the vehicle class and because the car, truck, and bus
classes all extend (or inherit from, to put it another way) the vehicle class, they are automatically
updated.
Scenario 3
We want to move from a generic car to specific makes, for example: Nissan and Mazda.
Procedural: We create a new form for each make, repeating all of the code for generic car
information and adding the code specific to each make.
OOP: We extend the car class with a nissan class and a mazda class and add methods for each
set of unique information for that car make.
Scenario 4
We found a bug in the transmission type area of our form and need to fix it.
Procedural: We open and update each form.
OOP: We fix the transmission Type method in the vehicle class and the change perpetuates in
every class that inherits from it.
Wrapping It Up
17 | P a g e ALL COPYRIGHT RESERVED
As you can see from the above scenarios, employing an OOP style has significant advantages
over procedural programming, especially as your scale increases. Consider the savings we would
receive from OOP in terms of repeated code, flexibility, and maintenance if we also had to add
forms for boats, motorcycles, planes, go-karts, ATVs, snowmobiles, etc. Objects and methods are
also far easier to test than procedural programming by using unit testing to test results. Does
this mean that you should never use procedural programming? Not necessarily. If you're doing a
mockup or a proof-of-concept app, you might not have the time to make everything object-
oriented and so I think it might would be better to use procedural programming for a prototype,
but it would be best to make the production product in an OO-manner.
This has been just a brief foray into a very large subject, but I hope that you've been able to get
a better understanding of procedural vs. object-oriented programming and when and how to use
each. If this tutorial has been helpful to you, please bookmark it for your reference and share it
with your friends and colleagues.
We can summarize the differences as follows :
• Procedural Programming
– top down design
– create functions to do small tasks
– communicate by parameters and return values
• Object Oriented Programming
– design and represent objects
– determine relationships between objects
– determine attributes each object has
– determine behaviours each object will respond to
– create objects and send messages to them to use or manipulate their attributes
18 | P a g e ALL COPYRIGHT RESERVED