PRECEDENT: UNEB sets about Program Pseudocode and Flowcharts for the first time in UCE Computer Studies Theory

After 10 years since the introuction of the subject, UNEB finally set a question on flowcharts and pseudo code, joining other examination bodies, most notably KCSE in Kenya. Read about the current status of teaching programming in Uganda schools and find some Notes, Pastpapers questions and answers and other RICH resources on this page: https://www.ictteachersug.net/precedent-uneb-sets-about-program-pseudocode-and-flowcharts-for-the-first-time-in-uce-computer-studies-theory/ and share more through the comments!
A participant presenting her discussion group's Pseudocode and Flow Chart during an ICT Teachers workshop at Mbale SS in May 2018

Featured Image: A participant presenting her discussion group’s Pseudocode and Flow Chart during an ICT Teachers workshop at Mbale SS in May 2018.

Since the introduction of the 2008 NCDC syllabus for UCE Computer studies, it has taken 10 years for Uganda National Examination Board (UNEB) to set a question on program algorithm design. It should be noted that these programming questions are common in many examination bodies such as Kenya’s KNEC  (Download some Past KCSE Exams here 🙂  KCSE COMPUTER STUDIES PAPER 1 Past Papers (21 downloads ) ) ,  Cambridge IGCSE(also check out these guides ), AQA GCSE, etc. In many countries worldwide, programming principles are taught even to kids in primary school!

In Uganda, we have been lagging behind in this area.  UNEB recently in 2015 released a circular (  UNEB Computer Studies Circular 2016 (2933 downloads ) ) warning the teachers to start teaching the topic. The topic was on the syllabus but many thought it was not examinable. When the circular was released, some retooling workshops were organized with a special focus on programming, flowcharts and pseudo code.

Mr. Kalema Golooba Ayub was the lead trainer of these national UCC –funded workshops which introduced most of the ICT teachers to flow charts and pseudocode. He was using Kenyan text books as a reference. Reacting to the fact that UNEB had started setting about them, Mr. Kalema had this to say.


“ I remember how people argued vigorously with us, when we handled these during retooling, saying we were going out of syllabus scope. Those who listened benefited. Change takes a while”.


Kalema Golooba Ayub, on 1st November 2018 via ITAU Whatsapp Annex Group.

UNEB has set a precedent, now the schools which have not been teaching the topic will start teaching!

Poor Syllabus, Interpretation

The 2008 NCDC syllabus for computer studies is too brief, outdated  and some topics are not well outlined. In fact, there is nowhere in the syllabus where the words pseudocode or flow chart and mentioned – giving reason to why some teachers have not been teaching them. The syllabus is silent even on the programming languages to be used for examining programming principles – and UNEB had to release a supplentary circular in 2016, specifying that two programming languages, C and Visual would be used. Below is the extract of the syllabus about the topic of programming.

Extract from  the 2008 NCDC syllabus for UCE Computer studies,

Compare the above Uganda O Level programming syllabus with the more specific / elaborate KENYA ELEMENTARY PROGAMMING SYLABUS here.
Intepretation: During the retooling workshops, teachers were told that the flowcharts and pseudo code fall under the “planning” stage indicated on the syllabus – which stage is part of the program development cycle.

Feedback on Current status of Teaching Programming at O Level

Ten years down the road, the situation is still bad.

Feedback from the field and through the ITAU social media platforms shows that many schools still don’t teach programming principles. Below are some of the messages from some  ITAU whatsapp groups by teachers in reaction  on to the UNEB precedent.

ITAU Whatapp chats about programming
Screenshot of discussions on some ITAU Whatsapp platforms

In May 2018, Only 4% of the teachers who attended the Eastern Region Tooling and  Retooling workshop for ICT Teachers in Mbale said that they had taught their learners before about programming. But after the first programming session, many teachers said that they had been inspired. Below were some of the participants’ reflections:


The session has helped me to develop the skill of coming up with a program by use of flowcharts and pseudocoding. I have come up with a program that will help both my school and students. I have been having a negative attitude towards programming and have been teaching only the theory part of it. I now feel I can handle the practical part as well.”

…………………. Tenywa Andrew, Bukedi College


The session has changed positively my attitude on ICT and computer usage. I had a lot of fear after just reading the word programming. However, through the able presentation of the facilitator and all his inspiring words, I have developed the confidence that it is possible for me to develop a program to solve a problem. Through elementary programming, a lot of work at school can be simplified. I have also learned that anybody at any age can do it.”

….. ………… Ilukor Gershom Olagwa, Asinge SS


 “The session has helped me increase on the knowledge and skills I had about programming. I will use the knowledge and skills I have gained to teach my students programming practically. I am also ready to fight the negative attitude my students have towards the topic of programming.”

…… Kakomo Sumaya, Hamdan Girls High School

“The session has changed my attitude towards programming from negative to positive. I always thought programming was too hard to understand but now I know some of the terminologies used in programming and can write the pseudocode and draw a flowchart for a simple program which I did not know before.”

….. Wepukulu Rashid, Nabbongo SS


I have learnt that there is nothing hard but it’s all about having interest and developing a positive attitude towards it. I have learnt how to develop a simple program using a flowchart and pseudocode. I can now effectively teach program design to my learners.

Beth, Nkoma SS


“I realized I need to practically demonstrate what I teach theoretically to make computer programming work for my students. I need to do more research to improve my knowledge and skills in programming.

….. Husa Awali, Ikiki SS
Mr. Mukalele Rogers facilitating the programming session during the workshop.

Read this full workshop report ( Full Report: KAWA Eastern ICT Teachers Worshop 2018 (175 downloads ) ) for details of the content which was discussed during the workshop and more reflections from the participants.

The Programing Question Set by UNEB in UCE Computer Studies 2018

UNEB’s question required the candidates to give advantages of flowcharts over pseudo code during algorithm design, and then write an algorithm for a given problem. Below is the Question

UNEB 2018 Computer Studies Paper 1 Qn.29
UNEB 2018 Computer Studies Paper 1 Qn.29 DOWNLOAD FULL PAPER PDF HERE

Posible Solution 29 (a)

  • Pseudocode and Flowcharts are the commonly used Algorithm design Tools, and others tools include Decision Tables and Decision Trees. Pseudocode is a method of documenting a program logic in which English-like statements are used to describe the processing steps, while A flow chart is diagram that describes, in sequence, all the operations required to process data in a computer program. An Algorithm is a step-by-step (a set of) instructions which when followed will produce a solution to a given problem. Algorithms take little or no account of the programming language. And they must be precise/ accurate, unambiguous/clear and should guarantee a solution.

The following are the reasons why Flowcharts may be used instead of pseudocode:

  • Quicker understanding of relationships. They illustrate the algorithm flow making it easy for programmers to understand procedures more quickly. A programmer can represent a lengthy procedure more easily with the help of a flowchart than describing it by means of written pseudo codes.
  • Effective synthesis.Flowcharts may be used as working models in the design of new programs and systems. 
  • Proper program documentation even for non-programmers. Program flowcharts serve as good program documentation, which is needed for the following reasons:
    • If programs are modified in future, the flowcharts will direct the programmer on what was originally done.
    • When staff changes occur, the flowcharts may help new employees understand the existing programs.
  • Guide for Effective coding.Program flowcharts act as a guide during the program preparation stage.  Instructions coded in a programming language may be checked against the flowchart to ensure that no steps are omitted.
  • Orderly debugging and testing of programs. Flowcharts help in detecting, locating and removing mistakes. The programmer can refer to the flowchart as he/she re-checks the coding steps, & the logic of the written instructions.
  • Efficient program maintenance. Flowcharts facilitate the maintenance of operating programs.  They help the programmer to concentrate on the part of the information flow which is to be modified.

NB: On the other hand, Pseudocodes also have an advantage over flowcharts, in that; the algorithm can be read from top to bottom without the need for jumping backwards and forwards to follow the logic of the algorithm which is common in flowcharts.

29 (b) This question required an algorithm which can be written using Pseudocode or a flowchart.

Pseudocode Alternative Attempt

START
  PRINT
“Enter BOT, MOT and EOT marks”
  READ BOT, MOT, EOT
  COMPUTE TOTAL = BOT + MOT + EOT
  COMPUTE AVERAGE = TOTAL/3
  IF AVERAGE > 60 THEN
     PRINT
“Student is promoted”
  ELSE          
      IF
AVERAGE >= 50 THEN
           PRINT
“Student should repeat”
 ELSE    
           PRINT
“Student is dismissed”
       ENDIF
  ENDIF

END

Pseudo Code for Qn 29 UNEB 2018 Computer Studies

Flow Chart Alternative Attempt


Flow Chart for Qn 29 UNEB 2018 Computer Studies

NB: Below is corresponding C and VB code for this program.
(NB code wasn’t required by UNEB, this program has been written for learning purposes only.

/* UNEB UCE 840/1 2018 Qn 29(b) Program Corresponding C Code*/
#include <stdio.h>                       //Preprocessor Directive for including library
int main(){                              //starting main function
    double BOT, MOT, EOT, TOTAL, AVERAGE;   //Declaring variables
    printf("Enter BOT, MOT & EOT marks 1 by 1\n"); //Asking user to enter marks
    scanf("%lf",&BOT);                                          //Read keyboard input and save BOT mark
    scanf("%lf",&MOT);                                         //Read keyboard input and save MOT mark
         scanf("%lf",&EOT);                                         //Read keyboard input and save EOT mark
    TOTAL = BOT+MOT+EOT;                      //Computing the TOTAL
    AVERAGE = TOTAL/3; 	                                               //Computing the AVERAGE
    printf("The Average is %.1lf :",AVERAGE); //Displaying the AVERAGE, (wasn’t required)
	if(AVERAGE > 60)                   //Decision with condition [AVERAGE > 60]
	 printf(" Student is promoted.");  //Print 'Promoted' if condition is true
    else  						//If above condition is false...
     if(AVERAGE>=50)                     //Decision with condition [AVERAGE > 50]
		printf(" Student should repeat."); //Print 'Repeat' if condition is true
		else                  //Else part executed  only if above condition is false...
		printf(" Student is dismissed."); 
    return 0; 				//End program
} 					      //closing the main function
'UNEB UCE 840/1 2018 Qn 29(b) Program Corresponding VB Code*
Private Sub CommandButton1_Click()            'Opening Sub routine statement
    Dim BOT, MOT, EOT, TOTAL, AVERAGE As Double 'Declaring variables
    BOT = Val(InputBox("Enter BOT mark")) 'Prompt User to input mark and store in BOT variable
    MOT = Val(InputBox("Enter MOT mark")) 'Prompt User to input mark and store in MOT variable
    EOT = Val(InputBox("Enter EOT mark")) 'Prompt User to input mark and store in EOT variable
    
    TOTAL = BOT + MOT + EOT             'Computing the TOTAL
    AVERAGE = TOTAL / 3             'Computing the AVERAGE
    MsgBox ("The Average is " & AVERAGE) 'DISPLAYING Printing the AVE, (wasn't required)
    If AVERAGE > 60 Then                'Decision with condition [AVERAGE > 60]
        MsgBox ("Student is promoted.") 'Print 'Promoted' if condition is true
    Else                                'If above condition is false...
        If AVERAGE >= 50 Then        'Decision with condition [AVERAGE > 60]
            MsgBox ("Student should repeat.") 'Print 'Promoted' if condition is true
        Else
            MsgBox ("Student is dismissed.") 'Print 'Child' if condition is false
        End If                               'End First If
    End If                                  'End Second If
End Sub 

NB: Find solutions to other UCE past paper questions with  summarized programming notes in this handout: S4 Topic 11 Elementary Programming Notes Handout with Past Paper Qns and Answers (114 downloads )

Way Forward: Is organizing more programming workshops the solution?

In my opinion as an individual, I think it’s just us the teachers to take steps to gain more knowledge and skills in the topics we feel inadequate.

There’s a lot of information, resources and tutorials online. If a teacher is really interested, he/age can take a step to do some reading and practice to learn whatever he/she wants.

Retooling / capacity development workshops are vital, but they cant do much. They can only inspire us but nothing more.

For example, we have already had a number of elementary programming sessions through 5-day UCC funded workshops which have been free to attend. But after the retooling workshops, the teachers have to go back to their schools and start from there to read more and practice in order to concretize what they got in the workshop.

So I think even if ITAU organizes more full day or 5day workshops, it will almost come to the same thing if the teachers don’t take personal initiatives to do more to better their knowledge.

Teaching Notes and References / Resources on Programming

Computer Studies and ICT Teachers have a scarcity of reference books with the programming notes. Many confess that they dont have the notes. I have compiled a list of some Academic References below.

  1. Programming Handout with notes and past paper questions Compiled and Shared by Mukalele Rogers: S4 Topic 11 Elementary Programming Notes Handout with Past Paper Qns and Answers (114 downloads )
  2. Computer Studies Notes, Past Papers by Mwangaza Secondary School Kenya: http://mwangazasecondary.sc.ke/content.php?pid=54 (Check out the Elementary Programming under Form 3)
  3. PSEUDOCODE STANDARD by California Polytechnic State University http://users.csc.calpoly.edu/~jdalbey/SWE/pdl_std.html
  4. BBC Algorithm Designs: https://www.bbc.com/bitesize/guides/z3bq7ty/revision/3
  5. Programming Basics by Vidyapeeth University India: http://www.tmv.edu.in/pdf/distance_education/bca%20books/bca%20ii%20sem/bca-222%20%27c%27%20%27programming.pdf
  6.  Pseudocode and Flowcharts notes by RICE University: http://www.owlnet.rice.edu/~ceng303/manuals/fortran/FOR3_3.html
  7. VIDEO: Concepts of Algorithm, Flow Chart & C Programming by Garden City University https://www.youtube.com/watch?v=DF2XAc07eI0
  8. Computer Studies Notes section on Elimu Library Kenya: https://elimulibrary.com/site/category/5/secondary-notes/15/computer-studies
  9. C Programming Foundation Level Notes: https://www.ictteachersug.net/cmdownloads/1102-c-programming-foundation-level-pdf/
  10. Visual Basic Tutorials at VBTUTOR.NET (These tutorials cover both the legacy Visual Basic 6 and the newer Visual Basic.NET programming language plus Excel VBA )

Feel free to download and also to share other resources you may be having by uploading them to the resources sharebility section of this website or by leaving links to other resourceful sites in the comment section at the bottom of this page.