Grade 8 Rationalized Schemes

Free Grade 8 Rationalized Schemes of Work downloads:

Grade_8_Rationalised_Creative_Arts_and_Sports_Schemes_of_Work_Term 2

GRADE_8_TERM_2_AGRI_NUTRITION_SCHEMES

GRADE_8_TERM_2_CRE_SCHEMES

GRADE_8_TERM_2_INTEGRATED_SCIENCE_SCHEMES_mentor

GRADE_8_TERM_2_KISWAHILI_SCHEMES_klb

GRADE_8_TERM_2_MATHEMATICS_SCHEMES_klb

GRADE_8_TERM_2_PRETECHNICAL_SCHEMES

GRADE_8_TERM_2_SOCIAL_STUDIES_SCHEMES 

 

Kerio Valley TVC Courses, Contacts, Fees, Location and How To Apply

Kerio Valley Technical and Vocational College (TVC) is located in Marakwet East Sub-County, near Chebilil Trading Centre, Elgeyo Marakwet County, Kenya. It officially opened and welcomed its first intake in January 2021. 
The college is situated on a 92-acre piece of land and is the only TVET institution in Marakwet East Constituency. It offers courses in various departments, including ICT, Fashion and Design, Mechanical Engineering, Building and Construction, and Electrical Engineering. 

The institution is registered with the Technical and Vocational Education and Training (TVET) Authority and is listed on the KUCCPS website. It is a government TVET institution under the Ministry of Education, State Department for Technical, Vocational Education and Training.

Kerio Valley Technical and Vocational College Contacts

To contact Kerio Valley Technical and Vocational College (TVC), you can use the following contact information: P.O. Box 152 – 30700, Iten, Kenya or +2547264 3 354, according to the college’s website. You can also email them at keriovalleytti@gmail.com. Additionally, their website, www.keriovalleytvc.ac.ke, offers online application and information. 

Kerio Valley Technical and Vocational College Courses offered

Kerio Valley Technical and Vocational College (KVTVC) offers a variety of courses across several departments including Mechanical Engineering, Electrical Engineering, Building and Construction, ICT, Fashion and Design, and AgricultureSpecific courses include Diploma, Certificate, and Artisan programs in areas like Electrical Installation, Solar Installation, General Agriculture, Welding and Fabrication, and Masonry, among others. The college also has a Building Department with workshops for Plumbing, Masonry, and Carpentry. 
Here’s a more detailed breakdown:
Departments and Courses:
  • Electrical & Electronics Engineering: Offers courses in Electrical & Electronics Engineering (Power), Electrical Installation, and Solar Installation. 
  • Building & Construction: Offers courses in Diploma, Certificate, and Artisan levels, with workshops in Plumbing, Masonry, and Carpentry. 
  • Agriculture: Offers courses in Diploma, Certificate, and Artisan levels. 
  • ICT: Offers courses in ICT Technician, Library and Information Science, and Computer Packages. 
  • Fashion and Design: Offers courses in Fashion and Design. 
  • Mechanical Engineering: The college offers Diploma, Certificate, and Artisan courses in Mechanical Engineering. 
Entry Requirements:
Entry requirements vary by course and level, but generally include KCSE results or relevant artisan certificates. 
Exam Body:
Most courses are examined by the TVET CDACC or KNEC. 
Other Programs:
The college also offers a Diploma in Technical Teacher Education (Mixed-mode), a Diploma in Technical Teacher Education with ICT, a Diploma in Instructor Training, and a Diploma in Technical Teacher Education (Mechanical Engineering) Pre-service. 

Kerio Valley Technical and Vocational College Kuccps Approved Courses

The TVC offers the following Courses that are approved by the Kenya Universities and Colleges Central Placement Service (KUCCPS):

  1. Diploma In Building Technician (Cdacc)
  2. Diploma In General Agriculture
  3. Diploma In Electrical & Electronics Level Six(Tivet)-Cdacc
  4. Library Information Science Level 5
  5. Diploma In Information Science Level Six(Tvet-Cdacc)
  6. Diploma In Information And Communication Technology (Ict)
  7. Certificate In Building Construction
  8. Certificate In Information Communication Technology (Ict)
  9. Certificate In Electrical And Electronic Engineering (Power)
  10. Craft In Electrical And Installation (Cdacc)
  11. Certificate In Fashion And Design
  12. Ict Technician Level 6
  13. Diploma Building Technology
  14. Craft Certificate In General Agriculture
  15. Electrical And Electronic Technology (Power Option) Level 6
  16. Diploma In Information Studies
  17. Certificate In Welding And Fabrication
  18. Masonry Level 4
  19. Artisan Fashion Design And Garment Making
  20. Fashion And Design Level 4
  21. Artisan In Fashion Design & Garment Making Level 4 ( Cdacc )
  22. Artisan In Electrical Installation
  23. Artisan In Masonry
  24. Electrical Installation Level 4 (Tvet- Cdacc)
  25. Artisan In Welding & Fabrication
  26. Welding Level Four(Tvet-Cdacc)
  27. Fashion Design Level 5

Kerio Valley Technical and Vocational College (TVC) Fees Structure

The fees at Kerio Valley Technical and Vocational College (TVC) includes fees for tuition, hostel accommodation, student council, ID card, KUCCPS validation, log book processing, registration, TVET annual fee, and meals, totaling Ksh 8,200.00

Kerio Valley TVC Courses Duration.

TVC (Technical and Vocational College) courses vary in duration, depending on the specific course. Generally, Craft Certificates take 1-2 years, while Diplomas can range from 2-3 yearsSome short courses, like welding or baking, may be completed in a few weeks or months.

Examples of course durations:
  • Craft Certificate:
    • Building Technology: 1 year 6 months (Module I & II)
    • Carpentry & Joinery: 2 years
    • Plumbing: 3 months
    • Welding & Fabrication: 8 weeks
  • Diploma:
    • Building Construction Technology: 3 years
    • Human Resource Management: 3 years
    • General Agriculture: 3 years
    • Automotive Engineering: 3 years
  • Short Courses:
    • Welding/Fabrication: 12 weeks
    • MIG Welding: 8 weeks
    • TIG Welding: 8 weeks
    • Cake Baking and Decoration: 2 months

Factors affecting duration:

  • Level of the course:Certificates are typically shorter than Diplomas.
  • Specific trade or field:Different trades may have varying durations.
  • College or institution:Some institutions may have slightly different program structures.
  • Intake schedule:Some courses have specific intake periods (e.g., January, May, September).

Check the specific Course fees details here:

Kerio Valley TVC online application

Applications and placement to the TVC are done through the Kenya Universities and Colleges Central Placement Service (KUCCPS) Portal. To apply for placement through KUCCPS, you need to access the student’s portal on the KUCCPS website and log in using your KCSE index number, year of examination, and passwordOnce logged in, you can explore available programs and institutions, and then submit your preferred choices. Start your application by clicking on this Kuccps Student Portal Link.
You can also apply directly to the institution for admission.
 
The Minimum requirements are: C- for diplomas, D+ for craft certificates and E for artisan courses. But, different Courses may have more specific requirements.

Kerio Valley Technical and Vocational College Admission Letter.

You can get the admission letter to the TTI by visiting the Kuccps Student Portal, Instituion’s Website and by paying a physical visit to the Tertiary institution. But, the best, quickest and most convenient application method is via the Kuccps portal.

All Technical Training Institute Diploma, Certificate and Artisan Courses Fees 

Download the free pdf documents below that have complete details of all TTI Courses and their Fees per year:

TECHNICAL AND VOCATIONAL COLLEGE FEES STRUCTURE

The annual tuition fee for TVET courses at many Kenyan Technical and Vocational Colleges (TVCs) is Ksh 67,189This includes a government capitation of Ksh 30,000 per trainee, leaving a balance of Ksh 26,420 to be paid by the student, which can be paid in installments. Additionally, students may be eligible for a HELB loan of Ksh 40,000. Other potential costs include KUCCPS registration fees, industrial attachment fees, and examination fees. 

TVC Fees Structure Per Year.
TECHNICAL AND VOCATIONAL COLLEGE FEES STRUCTURE

GOVERNMENT SCHOLARSHIP AND LOAN FOR TVC STUDENTS.

Following your placement, you are eligible for a Government scholarship, Loan and Bursary to assist with your educational expenses. If you need Government financial support, you MUST make an application for consideration through the official website www.hef.co.ke. In the case Government scholarship, Loan and bursary do not cover the entire cost of your program, the deficit will be met by your parent/guardian.

REQUIREMENTS FOR APPLICATION FOR TVC FUNDING

1. A valid email address
2. Valid telephone number (must be registered in your name to apply for a loan)
3. KCPE and KCSE index numbers and year of examination
4. Passport size photo
5. Copy of your National ID (for loan application)
6. College/University admission letter
7. Your parents’ registered telephone number
8. Your parents’ national ID number
9. Death certificate if any of your parents is deceased.
10. Your birth certificate.
11. Two guarantors’ (Can be your parents) ID numbers and registered telephone

DETAILS ON ALL TTI/ TVC INSTITUTIONS.

Ziwa Technical Training Institute Courses, Contacts, Fees, Location


Wote Technical Training Institute Courses, Contacts, Fees, Location


Tseikuru Technical Training Institute Courses, Contacts, Fees, Location


Thika Technical Training Institute Courses, Contacts, Fees, Location


Sotik Technical Training Institute Courses, Contacts, Fees, Location


Sot Technical Training Institute Courses, Contacts, Fees, Location


VTC Sikri Technical Training Institute Courses, Contacts, Fees, Location


Siala Technical Training Institute Courses, Contacts, Fees, Location


Shamberere Technical Training Institute Courses, Contacts, Fees, Location


Riragia Technical Training Institute Courses, Contacts, Fees, Location


Rift Valley Technical Training Institute Courses, Contacts, Fees, Location


PC Kinyanjui Technical Training Institute Courses, Contacts, Fees, Location


Ol’lessos Technical Training Institute Courses, Contacts, Fees, Location


Nkabune Technical Training Institute Courses, Contacts, Fees, Location


Njoro Technical Training Institute Courses, Contacts, Fees, Location


Ngeria Technical Training Institute Courses, Contacts, Fees, Location


Narok West Technical Training Institute Courses, Contacts, Fees, Location


Nairobi Technical Training Institute Courses, Contacts, Fees, Location


Musakasa Technical Training Institute Courses, Contacts, Fees, Location


Murang’a Technical Training Institute Courses, Contacts, Fees, Location


Mukurweini Technical Training Institute Courses, Contacts, Fees, Location


Mukiria Technical Training Institute Courses, Contacts, Fees, Location


Mitunguu Technical Training Institute Courses, Contacts, Fees, Location


Merti Technical Training Institute Courses, Contacts, Fees, Location


Matili Technical Training Institute Courses, Contacts, Fees, Location


Mathenge Technical Training Institute Courses, Contacts, Fees, Location


Godoma TTI TTI KUCCPS Courses, Requirements, Fees, Duration and Career Opportunities


Mathenge TTI Admissions: Download Kuccps Admission Letters


Karen TTI Kuccps Course List, Requirements, Fees, Duration and Job Opportunities


Emining TTI KUCCPS Courses, Requirements, Fees, Duration and Career Opportunities


Gitwebe TTI KUCCPS Courses, Requirements, Fees, Duration and Career Opportunities


kARUMO TTI Kuccps Course List, Requirements, Fees, Duration & Job Opportunities


Kaelo TTI Kuccps Courses, Fees, Duration, Requirements, Application Form & Job Opportunities


Bumbe TTI Latest Kuccps Course List, Requirements, Fees & Duration


Chepalungu TTI Latest Kuccps Course List, Requirements, Fees & Duration


Bushiangala TTI Latest Kuccps Course List, Requirements, Fees & Duration


Gitwebe TTI Latest Kuccps Course List, Requirements, Fees & Duration


Godoma TTI Latest Kuccps Course List, Requirements, Fees & Duration


Bureti TTI Latest Kuccps Course List, Requirements, Fees & Duration


Katine TTI Kuccps Course List, Requirements, Fees, Duration & Job Opportunities


Endebess TTI College Latest Kuccps Course List, Requirements, Fees & Duration


Emurua Dikirr TTI College Latest Kuccps Course List, Requirements, Fees & Duration


Ekerubo Gietai TTI College Latest Kuccps Course List, Requirements, Fees & Duration


Kuccps Final Course List for Ahmed Shahame Mwidani TTI; Course Codes, Fees, Requirements, Cluster Cut Off Points


Masai Technical Training Institute Courses, Contacts, Fees, Location


Mandera Technical Training Institute Courses, Contacts, Fees, Location


Koshin Technical Training Institute Courses, Contacts, Fees, Location


Konoin Technical Training Institute Courses, Contacts, Fees, Location


Kitelakapel Technical Training Institute Courses, Contacts, Fees, Location


Kiirua Technical Training Institute Courses, Contacts, Fees, Location


Kigumo Technical Training Institute Courses, Contacts, Fees, Location


Keroka Technical Training Institute Courses, Contacts, Fees, Location


Karumo Technical Training Institute Courses, Contacts, Fees, Location


Karen Technical Training Institute Courses, Contacts, Fees, Location


Kapchepkor Technical Training Institute Courses, Contacts, Fees, Location


Kaelo Technical Training Institute Courses, Contacts, Fees, Location


Godoma Technical Training Institute Courses, Contacts, Fees, Location


Gitwebe Technical Training Institute Courses, Contacts, Fees, Location


Endebess Technical Training Institute Courses, Contacts, Fees, Location


Emurua Dikirr Technical Training Institute Courses, Contacts, Fees, Location


Emining Technical Training Institute Courses, Contacts, Fees, Location


Chepalungu Technical Training Institute Courses, Contacts, Fees, Location


Bushiangala Technical Training Institute Courses, Contacts, Fees, Location


Bureti Technical Training Institute Courses, Contacts, Fees, Location


Bumbe Technical Training Institute Courses, Contacts, Fees, Location


Bondo Technical Training Institute Courses, Contacts, Fees, Location


Aldai Technical Training Institute Courses, Contacts, Fees, Location


Ahmed Shahame Mwidani Technical Training Institute Courses, Contacts, Fees, Location


KMTC CAMPUSES.

Kitale KMTC Admission, Courses, Fees, Location, Contacts


Kisumu KMTC Admission, Courses, Fees, Location, Contacts


Kisii KMTC Location, Admission, Courses, Fees Structure, Contact Details


KMTC list of all Campuses: Location, Admission, Courses, Fees Structure, Contact Details


Kilifi KMTC Campus Admission, Courses, Fees, Location, Contacts


Karuri KMTC Campus Location, Admission, Courses, Fees Structure, Contact Details


Karen KMTC Location, Admission, Courses, Fees Structure, Contact Details


Kaptumo KMTC Admission, Courses, Fees, Location, Contacts


Kapenguria KMTC Location, Admission, Courses, Fees Structure, Contact Details


Kapkatet KMTC Admission, Courses, Fees, Location, Contacts


Kangundo KMTC Location, Admission, Courses, Fees Structure, Contact Details


Kakamega KMTC Admission, Courses, Fees, Location, Contacts


Kabarnet KMTC Admission, Courses, Fees, Location, Contacts


Iten KMTC Admission, Courses, Fees, Location, Contacts


Isiolo KMTC Location, Admission, Courses, Fees Structure, Contact Details


Imenti KMTC Location, Admission, Courses, Fees Structure, Contact Details


Homabay KMTC Location, Admission, Courses, Fees Structure, Contact Details


Gatundu KMTC Location, Admission, Courses, Fees Structure, and Contact Details


Garissa KMTC Location, Admission, Courses, Fees Structure, Contact Details


Embu KMTC Location, Admission, Courses, Fees Structure, Contact Details


Eldoret KMTC Location, Admission, Courses, Fees Structure, Contact Details


Chwele KMTC Location, Admission, Courses, Fees Structure, Contact Details


Chuka KMTC Location, Admission, Courses, Fees Structure, Contact Details


Chemolingot KMTC Location, Admission, Courses, Fees Structure, Contact Details


Busia KMTC Location, Admission, Courses, Fees Structure, Contact Details


Bungoma KMTC Admissions, Courses, Fees, Location, Contacts


Bondo KMTC Location, Admission, Courses, Fees Structure, Contact Details


Bomet KMTC Admissions, Courses, Fees, Location, Contacts


KMTC Nyeri Campus: Courses, Fees, Location, Contacts and Programs plus Requirements


KMTC Kapenguria Campus: Courses, Fees, Location, Contacts and Programs plus Requirements

 

St Georges Gataragwa Secondary School’s CBE Subjects, Pathways, Contacts, Location, Fees, Admission {Full Details}

St Georges Gataragwa Secondary School is a public Mixed, (Boys’ and Girls’) Sub-County Level Day Senior School that is physically located at Kieni West Subcounty in Nyeri County of the Central Region, Kenya. Placement in the school is done by the Ministry of Education of the Republic of Kenya. To be placed to join this school, a grade 9 learner has to select the school online and placement is done based on the available grade 10 vacancies.  We have also provided the School’s Official Phone Number Contact. Reach the Principal directly on:  0706680015

Key Details about the school.

Country where found: Kenya.

Region: Central.

County: Nyeri County.

Subcounty: Kieni West Subcounty.

School Type/ Ownership: A Public School.

Nature os School/ CBE Level: Senior School (SS).

Category: Regular School

School’s Official Name: St Georges Gataragwa Secondary School

Sex: Mixed, (Boys’ and Girls’)  School.

School Cluster/ Level: Sub-County School whose Classification is C4.

Accomodation Type: Day  School.

Knec Code:  08220302

School’s Official Phone Number:   0706680015

Official Email Address for the School: stgeorgesecondary@yahoo.com

Postal Address: P.O. Box 259 Mwiga, Nyeri

Total Number of Subjects Combinations Offered at the School: 8 Subjects’ Combinations in various Pathways.

Fees paid at St Georges Gataragwa Secondary School

Fees paid at the school is determined by the Ministry of Education and is uniform for all Senior Schools; countrywide. National Senior schools have the highest fees set; followed by Extra-County, County and Sub-County schools in that order.

Subject Combinations Offered at St Georges Gataragwa Secondary School

View all available subject combinations at this school

STEM

5
APPLIED SCIENCESCode: ST2007
Business Studies,Computer Studies,Physics
3 SubjectsSTEM
APPLIED SCIENCESCode: ST2067
Agriculture,Computer Studies,Physics
3 SubjectsSTEM
APPLIED SCIENCESCode: ST2075
Agriculture,Geography,Physics
3 SubjectsSTEM
PURE SCIENCESCode: ST1042
Agriculture,Biology,Chemistry
3 SubjectsSTEM
APPLIED SCIENCESCode: ST2077
Advanced Mathematics,Business Studies,Computer Studies
3 SubjectsSTEM

SOCIAL SCIENCES

3
LANGUAGES & LITERATURECode: SS1040
Computer Studies,Fasihi ya Kiswahili,Indigenous Language
3 SubjectsSOCIAL SCIENCES
HUMANITIES & BUSINESS STUDIESCode: SS2019
Christian Religious Education,Geography,History & Citizenship
3 SubjectsSOCIAL SCIENCES
HUMANITIES & BUSINESS STUDIESCode: SS2004
Geography,History & Citizenship,Literature in English
3 SubjectsSOCIAL SCIENCES

How to get the School’s Knec Results.

To check the school’s Knec results, visit Knec Portal and search for the school by its name.

📍 How to get more Information about the School

For more information about admission requirements, facilities, and application procedures, contact the school directly. Use the official phone number indicated above to get information about the school’s fees, uniform, meals and performance.

How to Select Grade 10 Subjects and schools

To select Grade 10 schools and subjects under the Competency-Based Curriculum (CBC) in Kenya, Grade 9 learners should first choose a career pathway (STEM, Social Sciences, or Arts & Sports Science). Then, they’ll select three subject combinations within that pathway and finally, choose four schools for each combination, totaling 12 schools. To select preferred Grade 10 Schools and Subject Combinations, use the Ministry of Education portal selection.education.go.ke.

1. How you can Choose a Career Pathway:

  • Identify your interests and potential career aspirations.
  • Select one of the three pathways: STEM, Social Sciences, or Arts & Sports Science.
  • Confirm your choice to proceed with the pathway.

2. Select Subject Combinations:

  • The portal will provide you with a list of subject combinations available within your chosen pathway.
  • Choose three subject combinations that align with your interests and strengths.

3. Select Preferred Senior Schools:

  • For each subject combination, select four schools from the available clusters.
  • This ensures a diverse range of options and equal representation from different categories of schools.
  • A total of 12 schools will be selected: 4 for the first subject combination, 4 for the second, and 4 for the third.

TSC List of Approved TSC Teaching Subject Combinations for Secondary Schools

Science Combinations

  • Chemistry & Biology
  • Chemistry & Physics
  • Agriculture & Geography
  • Biology & Geography
  • Home Science & Biology
  • Physics & Computer
  • Agriculture & Biology
  • Agriculture & Chemistry

Language Combinations

  • English & Literature
  • Kiswahili & CRE (Christian Religious Education)
  • Kiswahili & History
  • Kiswahili & Geography
  • German & Geography
  • German & CRE
  • Kiswahili & IRE (Islamic Religious Education)
  • Kiswahili & Home Science
  • Kiswahili & P.E. (Physical Education)
  • French & Geography
  • French & Business Studies
  • French & CRE
  • French & History
  • Arabic & IRE
  • German & History

Mathematics Combinations

  • Mathematics & Business Studies
  • Mathematics & Geography
  • Mathematics & Computer
  • Mathematics & Chemistry
  • Mathematics & Biology
  • Mathematics & Physics

Humanities Combinations

  • Geography & CRE
  • History & CRE
  • Geography & History
  • Geography & IRE
  • History & IRE
  • History & P.E.
  • Geography & P.E.
  • Geography & Business Studies
  • Home Science & History
  • Home Science & CRE
  • SNE & P.E.
  • Music & P.E.

Technical Combinations

  • Metal Work & Mathematics
  • Metal Work & Physics
  • Woodwork & Mathematics
  • Woodwork & Physics
  • Electricity & Mathematics
  • Electricity & Physics
  • Fine Arts & History (Fine)
  • Art & Geography
  • Art & Design & History
  • Art & Design & Geography
  • Kiswahili & Home Science
  • Kiswahili & P.E.

LIST OF ALL SENIOR SCHOOLS PER COUNTY.

Senior School Subjects and Pathways selection Form.
Senior School Subjects and Pathways selection Form.

Senior School Selection Form educationnewshub.co.ke

ALL NATIONAL SCHOOLS IN KENYA

New list of all National Schools in North-Eastern Region {CBE Senior Schools}

New list of all National Schools in Nairobi Region {CBE Senior Schools}

List of National Schools Offering Biology, Building & Construction and Chemistry CBE Subjects

Nkubu High School: National School’s Full Details

Meru School : National School’s Full Details

New list of all National Schools in Eastern Region {CBE Senior Schools}

New list of all National Schools in Central Region {CBE Senior Schools}

Kaaga Girls High School : National School’s Full Details

St. Mary’s Girls High School Igoji : National School’s Full Details

Moyale Boys Secondary School : National School’s Full Details

Moi Girls High School Marsabit: National School’s Full Details

New list of all National Schools in Rift-valley Region {CBE Senior Schools}

New list of all National Schools in Nyanza Region {CBE Senior Schools}

Moi Girls’ Secondary School-Mandera: National School’s Full Details

New list of all National Schools in Coast Region {CBE Senior Schools}

Mandera Secondary School : National School’s Full Details

Matiliku Secondary School : National School’s Full Details

Mukaa Boys’ High School: National School’s Full Details

New List of All National Schools Per Region {For all 8 Regions}

New list of all National Schools in Western Region {CBE Senior Schools}

Number of KCSE candidates in all Boys’ National schools; School KNEC code, name, category, type and cluster

List of all the Boys’ national schools in Kenya; New list, their contacts, enrollment plus locations

New List of all Boys’ National Schools under CBC, CBE Curriculum

Mama Ngina Girls High School, the only girls’ national school in Mombasa County, relocated to ultra modern facilities

Chewoyet National School; full details, KCSE  Analysis, Contacts, Location, Admissions, History, Fees, Portal Login, Website, KNEC Code

New List of all Girls’ National Schools under CBC, CBE Curriculum

New List of all National Schools under CBC, CBE Curriculum

List of all National Schools in Kenya; Location, Knec Code and Type

New List of all Mixed National Schools under CBC, CBE Curriculum

ALL EXTRA COUNTY SCHOOLS IN KENYA

List of best performing, top, extra county schools in Nakuru County

Extra County Secondary Schools in Garissa County; School KNEC Code, Type, Cluster, and Category

Extra County Secondary Schools in Narok County; School KNEC Code, Type, Cluster, and Category

List of all Best Extra County High Schools in Kenya- Knec Code, Category, Cluster

Best and top extra county secondary schools in Nyeri county

Extra County Secondary Schools in Laikipia County; School KNEC Code, Type, Cluster, and Category

Best, top, Extra County Schools in Kirinyaga County

List of best performing Extra County schools in Machakos County

Nyeri County Best National, Extra County Secondary Schools

List of best Extra County secondary schools in Elgeyo Marakwet County

How to know 2024 form one admission results and download 2024 Extra County School admission letters, online: Education News

List of all Best Girls’ Extra County High Schools in Kenya- Knec Code, Category, Cluster

List of all Boys Extra County Schools in Kenya; Location, Knec Code and Type

ALL SENIOR SCHOOLS IN KENYA.

Kihuru-ini Mixed Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Del Monte Mixed Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

St. Teresa’s Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Ngatho Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mugumo Mixed Day Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kyaume Mixed Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Iembeni Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Muti Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Thungururu Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Gititu Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Ngelelya Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Swani Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

St Benedict Ithanga Township Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Ithanga High School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mwanawikio Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Matunda Mixed Day Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kanderendu Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Karega Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Wamahiga Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mutunguru Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kigumo Mixed Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Marumi Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mugumoini Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kigumo Bendera High School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mununga Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mathareini Mixed Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kinyona Mixed Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

St Francis Mukuyuini Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mairi Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Makomboki Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Muthithi Mixed Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Matu Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mumbu Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mwarano Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mariira Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Ikumbi Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Gikigie Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Thamara Mixed Day Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Rarakwa Girls High School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

St John The Baptist Kirie Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Gatumbi Baptist Mixed Day Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Ndugamano Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Njora Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kigumo Girls High School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Nguku Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Ack Kahumbu Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kamukabi Mixed Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Turuturu Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Njiiri Boys Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kiugu Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Karinga Mixed Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Githima Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Bishop Gatimu Kinyona Girls Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kiaguthu Boys School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kianderi Girls High School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mukumu Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mukangu Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Karingu Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Gathinja Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kamaguta Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Gitare Mixed Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Dr. Gitau Matharite Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Mirichu Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kiumba Mixed Day Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Gitie Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Theri Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kiboi Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Koimbi Boys High School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Gatara Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Gitura Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Murarandia Mixed Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Dr. Kiano Girls Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kianderi Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kahuhia Mixed High School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kahuro Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kahatia Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Weithaga Mixed High School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Yamugwe Secondary School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kirogo Boy’s High School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Kaganda High School’s CBE Subjects, Pathways, Contacts, Location {Full Details}

Bachelor of Horticulture Kuccps Course Code, Requirements and Fees in all universities

Bachelor of Horticulture Kuccps Course Code, Requirements and Fees in all universities

BACHELOR OF SCIENCE(HORTICULTURE)

 

No SUB CLUSTER PROG CODE INSTITUTION NAME PROGRAMME NAME PROGRAMME COST
1 15G 1053185 JARAMOGI OGINGA ODINGA UNIVERSITY OF

SCIENCE AND TECHNOLOGY

BACHELOR OF SCIENCE(HORTICULTURE) 275,400
2 15G 1057185 EGERTON UNIVERSITY BACHELOR OF SCIENCE (HORTICULTURE) 307,340
3 15G 1073185 RONGO UNIVERSITY BACHELOR OF SCIENCE (HORTICULTURE) 275,400
4 15G 1087185 KISII UNIVERSITY BACHELOR OF SCIENCE (HORTICULTURE) 294,185
5 15G 1091185 TAITA TAVETA UNIVERSITY BACHELOR OF SCIENCE (HORTICULTURE) 275,400
6 15G 1093185 UNIVERSITY OF EMBU BACHELOR OF SCIENCE (HORTICULTURE) 244,800
7 15G 1105185 CHUKA UNIVERSITY BACHELOR OF SCIENCE (HORTICULTURE) 275,400
8 15G 1114185 UNIVERSITY OF ELDORET BACHELOR OF SCIENCE (HORTICULTURE) 275,400
9 15G 1118185 UNIVERSITY OF KABIANGA BACHELOR OF SCIENCE (HORTICULTURE) 275,400
10 15G 1229185 MASENO UNIVERSITY BACHELOR OF SCIENCE (HORTICULTURE, WITH IT) 275,000
11 15G 1240185 MERU UNIVERSITY OF SCIENCE AND TECHNOLOGY BACHELOR OF SCIENCE HORTICULTURE 275,400
12 15G 1244185 KARATINA UNIVERSITY BACHELOR OF SCIENCE IN HORTICULTURAL SCIENCE

& MANAGEMENT

275,400
13 15G 1249185 JOMO KENYATTA UNIVERSITY OF AGRICULTURE

AND TECHNOLOGY

BACHELOR OF SCIENCE HORTICULTURE 275,400
14 15G 1515185 TOM MBOYA UNIVERSITY BACHELOR OF SCIENCE (HORTICULTURE, WITH IT) 275,400
Find Programmes by School
Continue reading..

How to check KUCCPS placement results and admission letters for KCSE candidates, all applicants

How to check kuccps degree and diploma placement

Kuccps placement results through SMS and online

More articles with related information on KUCCPS

KUCCPS Student portal login student.kuccps.net for Admission Application

How to check kuccps degree and diploma placement

Kuccps admission lists and letters pdf for all universities (How to download Kuccps letter)

Kuccps Diploma Programmes (Course codes, requirements and institutions)

Kuccps cut off points for all courses

Kuccps cutoff points

KUCCPS opens portal for first application, revision of courses for KCSE candidates

Kuccps opens student portal for University and College placement applications/ revision of courses

KUCCPS latest placement news for KCSE candidates-

kuccps placement (How to get results and admission letters)

Kuccps latest news (How to apply for Courses, Revise, Check placement results, Apply for inter institution transfer and Download admission letter)

Kuccps diploma courses and their codes & colleges

Kuccps portal login (Login to select courses, check placement results and apply for transfer)

Kuccps Student Portal ( Student Login – KUCCPS | The Placement Service)

Kuccps placement results out (How to check Kuccps placement results

Download Kuccps admission letters here

Kuccps Admission Letters Download

Kuccps cutoff and cluster points per course

Kuccps mean grade and courses cutoff points

Bachelor of Education Science Degree Course (Kuccps cluster points cutoff, Course Codes & Subject Requirements)

Bachelor of Education Arts Course (Kuccps cluster points cutoff, Course Codes & Subject Requirements)

The Kuccps student portal login

How to apply for Kuccps placement (Simplified guide)

Kuccps Student Portal

Important KMTC Links

COMPUTER STUDIES NOTES FREE PDF FORM 3

DATA REPRESENTATION IN A COMPUTER

Chapter outline

1.1 Introduction

1.2 Concepts of data representation in digital computers

1.3 Bits, bytes, nibble and word

1.4 Types of data representation

1.5 Binary arithmetic operations

DOWNLOAD COMPUTER STUDIES NOTES IN PDF IN THE LINKS BELOW;

COMPUTER STUDIES NOTES FORM 1-4 PDF

Free Computer Studies notes, revision questions, KCSE past Papers, Exams, Marking Schemes, Topical revision materials, Syllabus and Many more

Form 3 notes for all subjects; free pdf & word downloads

Introduction

In Book 1 of this series, we learnt that computers are classified according to functionality, physical size and purpose. We saw that when classified according to functionality, computers can be analog, digital or hybrid. Digital computers process data that is in discrete form while analog computers process data that is continuous in nature. Hybrid computers, on the other hand can process both discrete and continuous data.

In digital computers, the user input is first converted and transmitted as electrical pulses that can be represented by two distinct digits’ l’ and ‘0’ before processing. These two digits are referred to as binary digits or in short bits.

Although two graphs can look different in their appearance, they may repeat themselves at equal time intervals. Electronic signals or waveforms of this nature are said to be periodic. Generally, a periodic wave representing a signal can be described using the following parameters.

  1. Amplitude (A)
  2. Frequency (f)
  3. Periodic time (T)

Amplitude (A): Amplitude is the maximum value a wave can attain. For example, the amplitude of waves in Figure 1.1 is 1.

Frequency (f): Frequency of a wave is the number of cycles made by the wave in one second. It is measured in units called hertz (Hz). 1Hz is equivalent to 1 cycle/second.

Periodic time (T): The time taken by a signal to complete one cycle is called periodic time. Periodic time, T, is given by the formula T = 1/f where f is the frequency of the wave.

When a digital signal is to be sent over analog telephone lines e.g. e-mail, it has to be converted to analog signal. This is done by connecting a device called a modem to the digital computer. This process of converting a digital signal to an analog signal is known as modulation. On the receiving end, the incoming analog signal is converted back to digital form in a process known as demodulation.

Concepts of data representation in digital computers

Since digital computers are the most widely used, this book seeks to explain in details how data is represented in digital form.

Data and instructions cannot be entered and processed directly into computers using human language. Any type of data be it numbers, letters, special symbols, sound or pictures must first be converted into machine readable form i.e. binary form. Due to this reason, it is important to understand how a computer together with its peripheral devices handle data in its electronic circuits, on magnetic media arid in optical devices.

Data representation in electronic circuits

Electronics components, such as the microprocessor, are made up of millions of electronic circuits. The availability of a high voltage (on) in these circuits is interpreted as ‘I’ while a low voltage (off) is interpreted as a ‘0’. This concept can be compared to switching on and off of an electric circuit. (Figure 1.3). When the switch is closed, (Figure 1.3 (a)), the high voltage in the circuit causes the bulb to light (‘ l’ state). On the other hand, when the switch is open (Figure 1.3 (b)), the bulb goes off (‘0’ state).

Data representation on magnetic media

The presence of a magnetic field in one direction on magnetic media is interpreted as ‘I’, while the field in the opposite direction is interpreted as ‘0’. Magnetic technology is mostly used on storage devices which are coated with special magnetic materials such as iron oxide. Data is written on the media by arranging the magnetic dipoles of some iron oxide particles to face in the same direction and some others in the opposite direction. Figure 1.4 shows how data is recorded on the surface of a magnetic disk. Note that the dipoles on the track are arranged in groups facing opposite directions.

Data representation on optical media

In optical devices, the presence of light is interpreted as ‘1’ while its absence is interpreted as ‘0’. Optical devices use this technology to read or store data. Take an example of a CD-ROM. If the shiny surface is placed under a powerful microscope, the surface can be observed to have very tiny holes called pits. The areas that do not have pits are called land (Figure 1.5).

In Figure 1.5 (a) the laser beam reflects from the land which is interpreted as ‘1’ while in Figure 1.5 (b) the laser beam enters a ‘pit’ and is not reflected. This is interpreted as ‘0’. The reflected pattern of light from the rotating disk falls on a receiving photoelectric detector that transforms the patterns into digital form.

 

Reason for use of binary system in computers

It has proved difficult to develop devices that can understand or process natural language directly due to the complexity of natural languages. It is, however, possible to develop devices that can understand binary language. Devices that read, process and output data in digital form are used in computers and other digital devices such as calculators. Binary logic has therefore simplified the technology needed to develop both hardware and software systems. Other reasons for the use of binary are that digital devices are more reliable, small in size and use less energy as compared to analog devices.

 

Bits, bytes, nibble and word

The terms bits, bytes, nibble and word are used widely in reference to computer memory and data size. Let us explain each term.

Bits: A bit can be defined as binary digits that can either be 0 or 1. It is the basic unit of data or information in digital computers.

 

Byte: A group of bits (often 8) used to represent a character is called a byte. A byte is considered as the basic unit of measuring memory size in computers.

A nibble: Half a byte, which is usually a grouping of 4 bits is called a nibble.

 

Word: Two or more bytes make a word. The term word length is used as a measure of the number of bits in each word. For example a word can have a length of 16 bits, 32 bits, 64 bits etc.

 

Types of data representation

Computers not only process numbers, letters and special symbols but also complex types of data such as sound and pictures. However these complex types of data take a lot of memory and processor time when coded in binary form. This limitation necessitates the need to develop better ways of handling long streams of binary digits. Higher number systems are used in computing to reduce these streams of binary into manageable form. This helps to improve the processing speed and optimise memory usage.

 

Number systems and their representation

As far as computers are concerned, number systems can be classified into four major categories:

  1. Decimal number system.

2, Binary number system

  1. Octal number system.
  2. Hexadecimal number systems.

 

Let us now consider each number system and its representation.

 

Decimal number system

The term decimal is derived from a Latin prefix deci which means ten. Decimal number system has ten digits ranging from 0-9. Because this system has ten digits, it is also called a base ten number system or denary number system,

 

A decimal number should always be written with a subscript 10 e.g. XIO

But since this is the most widely used number system in the world, the subscript is usually understood and ignored in written work. However, when many number systems are considered together, the subscript must always be put so as to differentiate the number systems.

 

The magnitude of a number can be considered using three parameters.

  1. Absolute value.
  2. Place value or positional value.
  3. Base value.

The absolute value is the magnitude of a digit in a number. For example, the digit 5 in 7458 has an absolute value of 5 according to its value in the number line as shown in the Figure 1.6.

 

The place value of a digit in an number refers to the position of the digit in that number i.e. whether “tens”, “hundreds”, “thousands” etc. as shown in Table 1.1.

 

Table 1.1

 

Thousands, 103 Hundreds, 102 Tens, 101 Ones, 10°
7 4 5 8

 

The total value of a number is the sum of the place value of each digit making the number. For example, the total value of the digits in Table 1.1 can be worked out by as shown below:

 

7 x 1000 = 7 000

4x 100     = 400                                                                                                                      400

5 x 10    =         50

8  x   l     =          8

Total =           7458

 

The base value of a number also known as the radix, depends on the type of number system that is being used. The value of any number depends on the radix. For example the number 10010 is not equivalent to 1002,

 

Binary number system

Binary number system uses two digits namely, 1 and 0 to represent numbers. Unlike in decimal numbers where the place values go up in factors of ten, in binary system, the place values increase by factors of two. Binary numbers are written as X2. Consider a binary number such as 10112. The right most digit has a place value of 1 x 2° while the left most has a place value of 1 x 23 as shown in Table 1.2.

 

Table 1.2

 

Place values (2n) Eights 23 =8 Fours 22 =4 Twos 21 = 2 Ones 2° = 1
Binary digit 1 0 1 1

The decimal equivalent of 10112 can be worked out as shown below.

1 x 8 = 8   Ox4 = 0   1 x 2 = 2   l  x  l =1      Total = 11

 

;Octal number system

The octal number system consists of eight digits running from 0 – 7. The place value of octal numbers go up in factors of eight from right to left as shown in Table 1.3. For example to represent an octal number such as 724\, we proceed as follows:

Table 1.3

 

Place values 83 =512 82 =64 81 = 8 8° = 1
Octal digit 7 2 4 5

The decimal equivalent can be worked out as follows:

7 x 512 = 3 584     2 x 64 = 128    4 x 8=32 5xl = 5    Total = 3749

 

Hexadecimal number system

This is a base sixteen number system that consist of sixteen digits ranging from 0 – 9 and letters A – F where A is equivalent to 10, B to 11 up to F which is equivalent to 15 in base ten system. The place value of hexadecimal numbers goes up in factors of sixteen as shown in Table 1.4. Table 1.5 gives digits for base 10 and base 16.

 

Table 1.4

 

Place value 162= 256 161 = 16 16° = 1
Hexadecimal digit 9 4 6

 

Table 1.5

 

Base 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Base 16 0 1 2 3 4 5 6 7 8 9 A B C D E F

 

A hexadecimal number is usually denoted using 16 as a subscript or capital letter H to the right of the number. For example, 94B can be written as 94BI6 or 94BH.

The decimal equivalent of94BI6 can be worked out as shown below.

 

9 x 256 =2304     4 x 16 = 64    11xl =11  total = 2379

 

Further conversion of numbers from one number system to another

So far, we have looked at the four types of number systems and introduced their basic concepts in a general and limited way. However, in this section, we shall have a detailed look at how to convert numbers from one system to another. The following conversions will be considered.

  1. Conversion between binary and decimal numbers.
  2. Converting octal numbers to decimal and binary form.
  3. Converting hexadecimal numbers to decimal and binary form.

 

Conversion between binary and decimal numbers

 

Converting binary numbers to decimal numbers

To convert a binary number to decimal number, we proceed as follows:

  1. First write the place values starting from the right hand side.
  2. Write each digit under its place value.
  3. Multiply each digit by its corresponding place value.
  4. Add up the products. The answer will be the decimal number in base 10.

Converting decimal numbers to binary                                                    

To convert a decimal number to binary, there are two possible methods, the long division method and the place value method.

In long division method, the decimal number is continuously divided by 2. However, at each level of the division, the remainder which is either a 1 or 0 is written to the right of the quotient. Starting from bottom upwards, read the series of the remainder digits. The series of 1 ‘s and O’s obtained represent the binary equivalent of the number.

To convert a decimal number to a binary number using place value method proceed as follows:

Write down the place values in factors of 2 up to the value immediately larger or equal to the number being considered. For example, to convert 24710 into binary, we write” down the place values up to 28 i.e.256. Similarly to convert 25810‘ write down the place values up to 29 i.e. 512. If the number being considered is itself a factor of 2 such as 64, 128, 256 etc., then place values should be written up to the number itself.

Let us now convert 24710 to binary. Starting from the left as shown in Table 1.6, subtract the place value from the number being converted. If the difference is a positive number or a 0, place a 1 in the binary digit row. If the difference is negative, place a Zero.

 

In Table 1.6, a 0 is placed in the binary digits row of the first column because 247 – 256 gives a negative value. The number 247 is then carried forward to the next lower place value i.e. 128.

 

Table 1.6

 

Place value 28 27 26 25 24 23 22 21
Difference 247 – 256 247 – 128              
Binary digit 0                

 

Since 247 – 128 gives a positive difference of 119, the digit 1 is placed in the second column of the binary digit row and the difference is carried forward to the next lower place value as shown in Table 1.7.

Table 1.7

 

256 128 64 32 16 8 4 2 1
247 – 256 247 – 128 119 – 64            
0 1              

 

Table 1.8 shows the completed operation.    Table 1.8

 

256 128 64 32
247 – 256 247 – 128 119 – 64 55 – 32
0 1 1 1

 

16 8 4 2 1
23 – 16 7-8 7-4 3-2 1 – 1=0
1 0 1 1 1

 

Converting a binary fraction to decimal number

A decimal number which has both an integral and fractional part is called a real number. The weight of the integral part of a real number increases from right to left in factors of I 0 while that of the fractional part decreases from left to right in factors of 10-x. Table 1.9 shows how a real number 87.537 can be represented using the place values.

Table 1.9

 

Place value 101 10° . 10-1 10-2 10-3
Decimal digit 8 7 . 5 3 7
Value 80 7 . 0.5 0.03 0.007

 

For a binary number, the same approach as in Table 1.9 can be used, only that the place values (weight) are based on factors of 2. For example, the binary number 11.110112 can be represented as shown in Table 1.10.

Table 1.10

 

Place value 21 . 2-1 2-2 2-3 2-4 2-5
Binary digit 1 1 . 1 1 0 1 1
Value in base ten 2 1 . 0.5 0.25 0 0.0625 0.03125

 

NB: When converting a real number from binary to decimal, work out the integral and fractional parts separately then combine them.

 

Converting a decimal fraction to binary

Remember that to convert a decimal integer to its binary equivalent we continuously divide the number by 2. In real decimal numbers, we do the same for the integral part. However to convert the fractional part to its binary equivalent, we proceed as follows:

  1. Multiply the fractional part by 2 and note down the product.
  2. Take the fractional part of the immediate product and multiply it by 2 again.
  3. Continue this process until the fractional part of the subsequent product is 0 or starts repeating the value of the original fractional part of the number being converted:
  4. The binary equivalent of the fractional part is extracted from the products by reading the respective integral digits from the top downwards as shown by the arrow in
  5. Combine the two parts together to get the binary equivalent.

 

Converting octal numbers to decimal and binary numbers

 

Converting octal numbers to decimal numbers

To convert a base 8 number to its decimal equivalent we use the same method as we did with binary numbers. However, it is important to note that the maximum absolute value of an octal digit is 7. For example 982 is not a valid octal number because digits 8 and 9 are not octal digits, but 7368 is valid because all the digits are in the range of 0 – 7. Example 1.13 and 1.14 show how to convert an octal number to a decimal number.

 

Converting octal numbers to binary numbers

To convert an octal number to binary, each digit is represented by 3 binary digits because the maximum octal digit i.e. 7 can be represented with a maximum of 3 digits. See Table 1.11.

 

Table 1.11

 

Octal digit Binary equivalents
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

 

Examples 1.15, 1.16 and 1.17 show how to convert octal numbers to binary numbers.

 

Converting hexadecimal numbers to decimal and binary numbers

 

Converting hexadecimal numbers to decimal number

To convert a hexadecimal number to its base ten equivalents, we proceed as follows:

  1. First write the place values starting from the right hand side.
  2. If a digit is a letter such as an ‘A’ write its decimal equivalent.
  3. Multiply each hexadecimal digit with its corresponding place value and then add the products.

The following examples illustrate how to convert a hexadecimal number to a decimal number.

Converting hexadecimal numbers into binary numbers

Since F is equivalent to a binary number 11112, the hexadecimal numbers are represented using 4 digits as shown in Table 1.12.

 

Table 1.12

 

Decimal. Hexadecimal Binary
equivalent digit equivalent
00 00 0000
01 01 0001
02 02 0010
03 03 0011
04 04 0100
05 05 0101
06 06 0110
07 07 0111
08 08 1000
09 09 1001
A 10 1010
B 11 1011
C 12 1100
D 13 1101
E 14 1110
F 15 1111

 

The simplest method of converting a hexadecimal number to binary is to express each hexadecimal digit as a four bit binary number and then arranging the groups according to their corresponding positions as shown in Example 1.21.

 

Symbolic representation using coding schemes

In computing, a single character such as a letter, a number or a symbol is represented by a group of bits, the number of bits per character depends on the coding scheme used.

The most common coding schemes are the Binary Coded Decimal (BCD), Extended Binary Coded Decimal Interchange Code (EBCDIC) and American Standard Code for Information Interchange (ASCII).

 

Binary Coded Decimal

Binary Coded Decimal is a 4-bit code used to represent numeric data only. For example, a number like 9 can be represented using Binary Coded Decimal as 10012, Binary Coded Decimal system is mostly used in simple electronic devices like calculators and microwaves. This is because it makes it easier to process and display individual numbers on their Liquid Crystal Display (LCD) screens.

 

A standard Binary Coded Decimal, an enhanced format of Binary Coded Decimal, is a 6-bit representation scheme which can represent non­numeric characters. This allows 64 characters to be represented. For example, letter A can be represented as 1100012 using the standard Binary Coded Decimal. A set of Binary Coded Decimal and standard Binary Coded Decimal code are provided in Appendix II.

 

Extended Binary Coded Decimal Interchange Code (EBCDIC)

Extended Binary Coded Decimal Interchange Code (EBCDIC) is an 8­bit character coding scheme used primarily on IBM computers. A total of256 (28) characters can be coded using this scheme. For example, the symbolic representation of letter A using Extended Binary Coded Decimal Interchange Code is 110000012, See Appendix II for a detailed scheme.

 

American Standard Code for Information Interchange (ASCII)

American Standard Code for Information Interchange (ASCII) is a 7-bit code, which means that only 128 characters i.e. 27 can be represented. However manufacturers have added an eighth bit to this coding scheme, which can now provide for 256 characters. This 8-bit coding scheme is referred to as an 8-bit American Standard Code for Information Interchange. The symbolic representation of letter A using this scheme is 10000012, See Appendix II for more details,

 

»Binary arithmetic operations

In mathematics, the four basic arithmetic operations applied on numbers are addition, subtraction, multiplication and division. In computers the same operations are performed inside the central processing unit by the arithmetic and logic unit (ALU). However the arithmetic and logic unit cannot perform binary subtraction directly. It performs binary subtraction using a process known as complementation. For multiplication and division, the arithmetic and logic unit uses a method called shifting before adding the bits; however, because the treatment of this method is beyond the scope of this book, we shall only explain how the computer performs binary addition and subtraction.

 

Representation of signed binary numbers

In computer technology there are three common ways of representing a signed binary number.

  1. Prefixing an extra sign bit to a binary number.
  2. Using ones complement.
  3. using twos complement.

 

Prefixing an extra sign bit to a binary number

In decimal numbers, a signed number has a prefix “+” for a positive number e.g. +2710 and “-” for a negative number e.g. -2710 However in binary, a negative number may be represented by prefixing a digit 1 to the number while a positive number may be represented by prefixing a digit O. For example, the 7-bit binary equivalent of 127 is 11111112, To indicate that it is positive, we add an extra bit (0) to the left of the number i.e. (0) 11111112, To indicate that it is a negative number we add an extra bit (1) i.e. (1) 11111112, The problem of using this method is that the zero can be represented in two ways i.e. (0)00000002 and (1 )00000002,

 

Ones complement

. The term complement refers to a part which together with another makes up a whole. For example in geometry two complementary angles add up to one right angle (90°). The idea of complement is used to address the problem of signed numbers i.e., positive and negative.

In decimal numbers (0 to 9), we talk of nine’s complement. For example the nines complement of 9 is 0 that of 5 is 4 while that of 3 is 6. However, in binary numbers, the ones complement is the bitwise NOT applied to the number. Bitwise NOT is a unary operator (operation on only one operand) that performs logical negation on each bit. For example the bitwise NOT of 11002 is 00112 i.e. Os are negated to Is while I’s are negated to O’s. Likewise the bitwise NOT of 00 1 0 11 0 1 is 110100102 which represents -4510‘ The bitwise NOT of 8-bit zero 000000002 is 111111112, Looking at the two numbers, the most significant digit shows that the number has a sign bit “0” for “+0″ and” 1″ for “-0”. Like in the method of using an extra sign bit, in ones complement, there are two ways of representing a zero.

 

Twos complement

Twos complement, equivalent to tens complement in decimal numbers, is the most popular way of representing negative numbers in computer systems. The advantages of using this method are:

  1. There are no two ways of representing a zero, as is the case with the other two methods.
  1. Effective addition and subtraction can be done even with numbers that are represented with a sign bit without a need for extra circuitries to examine the sign of an operand.

The twos complement of a number is obtained by getting the ones complement then adding a 1. For example, to get the twos complement of a decimal number 4510‘ first convert it to its binary equivalent then find its ones complement. Add a 1 to the ones complement i.e.

4510 = 001011012

Bitwise NOT (00101101) = 11010010

 

Two’s complement = 110100112

 

Binary addition

The five possible additions in binary are:

  1. 0+0=0
  2. 0 + 12= 12
  3. 12 + 0 = 12
  4. 12 + 12 =102 (read as 0, carry 1)
  5. 12 + 12 + 12 = 112 (read as 1, carry 1)

 

Binary subtraction

 

Direct subtraction

The four possible subtractions in binary are:

  1. 0-0=0
  2. 12-0= 1
  3. 12 – 12 = 0
  4. 102 – 12 = 12 (Borrow 1 from the next most significant digit to make 0 become 102, hence 102 – 12 = 12)

The following examples illustrate binary. Subtraction using the direct. method.

 

Subtraction using ones complements

The main purpose of using the ones complement in computers is to perform binary subtractions. For example to get the difference in 5 – 3, using the ones complement, we proceed as follows:

  1. Rewrite the problem as 5 + (-3) to show that the computer performs binary subtraction by adding the binary equivalent of 5 to the ones complement of 3.

2.Convert the absolute value of 3 into 8-bit equivalent i.e. 000000112,

3.Take the ones complement of 000000 112 i.e. 111111002 which is the binary representation of -310

  1. Add the binary equivalent of5 to the one’s complement of3 i.e.

000000101

+  111111000

(1)00000001

 

Looking at the difference of the two binary numbers, you will observe that:

  1. It has a ninth bit. The ninth bit is known as an overflow bit.
  2. The result show that the difference between the two numbers is 00000001. This is not true! We know that it should be 00000010.

To address this problem in a system that uses ones complement, the overflow digit is added back to the magnitude of the 8-bit difference. Therefore the difference becomes 00000001 + 1 = 00000010, which is the correct answer.

Subtraction using twos complements

Like in ones complement, the twos complement of a number is obtained by negating a positive number to its negative counterpart. For example to get the difference in 5 – 3, using the two’s complement, we proceed as follows:

  1. Rewrite the problem as 5 + (-3).
  2. Convert the absolute value of 3 into 8-bit binary equivalent i.e. 00000011.
  3. Take the ones complement of 000000 11 i.e. 11111100.
  4. Add a 1 to the ones complement i.e. 11111100 to get 11111101
  5. Add the binary equivalent of 5 to the twos complement of 3 i.e.

000000101

+ 111111001

(1 )000000 1 0

  1. Ignoring the overflow bit, the resulting number is 00000010 which is directly read as a binary equivalent of +2.

 

DATA PROCESSING

 

Chapter outline

 

2.1 Introduction

2.2 Data processing cycle

2.3 Description of errors in data processing

2.4 Data integrity

2.5 Data processing methods

2.6 Computer files

2.7 Types of computer processing files

2.8 File organisation methods

2.9 Electronic data processing modes

 

Introduction

Data refers to the raw facts that do not have much meaning to the user and may include numbers, letters, symbols, sound or images. Information, on the other hand, refers to the meaningful output obtained after processing the data.

 

Therefore the data processing refers to the process of transforming raw data into meaningful output i.e. information. Data processing can be done manually using pen and paper, mechanically using simple devices like typewriters or electronically using modem data processing tools such as computers. Electronic data processing has become so popular that manual and mechanical methods are being pushed to obsolescence.

 

Data processing cycle

Data processing cycle refers to input-process-output stages that data goes through to be transformed into information. It is often referred to as a cycle because the output obtained can be stored after processing and may be used in future as input. The four main stages of data processing cycle are:

  1. Data collection
  2. Data input
  3. Processing
  4. Output

 

 

Data collection

Data collection is also referred to as data gathering or fact-finding. It involves looking for crucial facts needed for processing.

 

Methods of data collection

Some methods of data collection include interviews, use of questionnaires, observation etc. In most cases, the data is collected after sampling. Sampling is the process of selecting representative elements (e.g. people, organisations) from an entire group (population) of interest. Some of the tools that help in the data collection include source documents such as forms, data capture devices such as a digital camera etc.

 

Stages of data collection

The process of data collection may involve a number of stages depending on the method used. These include:

Data creation: This is the process of putting together facts in an organised format. This may be in form of manually prepared document or captured from the source using a data capture device such as a bar code reader.

Data transmission: This will depend on whether data need to be transmitted via communication media to the central office.

 

Data preparation: This is transcription (conversion) of data from source document to machine-readable form. This may not be the case for all input devices. Data collected using devices that directly capture data in digital form do not require transcription.

 

. Media conversion: Data may need to be converted from one medium to another e.g. from a floppy disk to hard disk for faster input.

Input validation: Data entered into the computer is subjected to validity checks by a computer program before being processed to reduce errors at the input.

Sorting: In case the data needs to be arranged in a predefined order, it is first sorted before processing.

 

Data input

Data input refers to a process where the collected data is converted from human readable form to machine-readable form (binary form). The conversion takes place in the input device.

 

Processing

This is the transformation of input data by the central processing unit (CPU) to a more meaningful output (information). Some of the operations performed on data include calculations, comparing values and sorting.

 

Output

The final activity in data processing cycle is producing the desired output also referred to as information. The information can then be distributed to the target group or stored for future use. Distribution is making the information available to those who need it and is sometimes called information dissemination. This process of dissemination may involve electronic presentation over radio or television, distribution of hard copies, broadcasting messages over the Internet or mobile phones etc.

 

Description of errors in data processing

The accuracy of computer output is very critical. As the saying goes, garbage in, garbage out (GIGO), the accuracy of the data entered in the computer directly determines the accuracy of the information given out.

 

Some of the errors that influence the accuracy of data input and information output include transcription, computation and algorithm errors.

 

Transcription errors

Transcription errors occur during data entry. Such errors include misreading and transposition errors.

 

Misreading errors

Incorrect reading of the source document by the user and hence entering wrong values bring about misreading errors. For example, a user may misread a hand written figure such as 589 and type S86 instead i.e. confusing 5 for S.

 

Transposition errors

Transposition errors results from incorrect arrangement of characters i.e. putting characters in the wrong order. For example, the user may enter 396 instead of369.

 

Transcription errors can be avoided by using modem data capture devices such as bar code readers, optical character readers, and digital cameras etc., which enter data with minimum user intervention.

 

Computational errors

Computational errors occur when an arithmetic operation does not produce the expected results. The most common computation errors include overflow, truncation and rounding errors.

 

Overflow errors

An overflow occurs if the result from a calculation is too large to be stored in the allocated memory space. For example if a byte is represented using 8 bits, an overflow will occur if the result of a calculation gives a 9-bit number.

 

Truncation errors

Truncation errors result from having real numbers that have a long fractional part that cannot fit in the allocated memory space. The computer would truncate or cut off the extra characters from the fractional part. For example, a number like 0.784969 can be truncated to four digits to become 0.784. The resulting number is not rounded off.

 

Rounding errors

Rounding errors results from raising or lowering a digit in a real number to the required rounded number. For example, to round off 30 666 to one decimal place, we raise the first digit after the decimal point if its successor is more than 5. In this case, the successor is 6 therefore 30.666 rounded up to one decimal place is 30.7. If the successor is below 5, e.g. 30.635, we round down the number to 30.6.

 

Algorithm or logical errors

An algorithm is a set of procedural steps followed to solve a given problem. Algorithms are used as design tools when writing programs. Wrongly designed programs would result in a program that runs but gives erroneous output. Such errors that result from wrong algorithm design are referred to as algorithm or logical errors.

 

Data integrity

Data integrity refers to the accuracy and completeness of data entered in a computer or received from the information system. Integrity is measured in terms of accuracy, timeliness and relevance of data.

 

Accuracy

Accuracy refers to how close an approximation is to an actual value. As long as the correct instructions and data are entered, computers produce accurate results efficiently. In numbers, the accuracy of a real number depends on the number. For example 72.1264 is more accurate than 72.13.

 

Timeliness

Timeliness of data and information is important because data and information have a time value attached to them. If received late, information may have become meaningless to the user. For example, information on the newspaper that is meant to invite people for a meeting or occasion must be printed prior to the event and not later.

 

Relevance

Data entered into the computer must be relevant in order to get the expected output. In this case, relevance means that the data entered must be pertinent to the processing needs at hand and must meet the requirements of the processing cycle. The user also needs relevant information for daily operations or decision making.

 

Threat to data integrity

 

Threats to data integrity can be minimized through the following ways:

 

  1. Backup data preferably on external storage media.
  2. Control access to data by enforcing security measures.
  3. Design user interfaces that minimize chances of invalid data entry.
  4. Using error detection and correction software when transmitting data.
  5. Using devices that directly capture data from the source such as bar code readers, digital cameras, optical character readers etc.

 

Data processing methods.

As mentioned earlier, data can be processed manually, mechanically or electronically.

Manual data processing

In manual data processing, most tasks are done manually with a pen and a paper. For example in a busy office, incoming tasks (input) are stacked in the “in tray”. The processed tasks are then put in the “out tray” (output). The processing of each task involves a person using the brain in order to respond to queries. The processed information from the out tray is then distributed to the people who need it or stored in a file cabinet.

 

Mechanical data processing

Manual processing is cumbersome and boring especially when processing repetitive tasks. Mechanical devices were developed to help in automation of manual tasks. Examples of mechanical devices include the typewriter, printing press and weaving looms. Initially, these devices did not have any electronic intelligence.

 

Electronic data processing

For a long time, scientists have researched on how to develop machines or devices that would simulate some form of human intelligence during data and information processing. This was made possible to some extent with the development of electronic programmable devices such as computers.

The advent of microprocessor technology has greatly enhanced data processing efficiency and capability. Some of the microprocessor-controlled devices include computers, cellular (mobile) phones, calculators, fuel pumps, modem television sets, washing machines etc.

Computer files

A file can be defined as a collection of related records that give a complete set of information about a certain item or entity. A file can be stored manually in a file cabinet or electronically in computer storage devices. Computerized storage offers a much better way of holding information than the manual filing systems, which heavily rely on the concept of the file cabinet. Some of the advantages of computerized filing system include:

  1. Information takes up much less space than the manual filing.
  2. It is much easier to update or modify information.
  3. It offers faster access and retrieval of data.
  4. It enhances data integrity and reduces duplication.

 

Elements of a computer file

A computer file is made up of three elements namely: characters, fields and records.

 

Characters A character is the smallest element in a computer file and refers to a letter, number or symbol that can be entered, stored and output by a computer. A character is made up of a set of seven or eight bits depending on the character-coding scheme used.

 

Fields

A field is a single character or collection of characters that represents a single piece of data. For example, in a student’s record, the student’s admission number is an example of a field.

 

Records

A record is a collection of related fields that represent a single entity. For example, in a class score sheet, details of each student in a row such as admission number, name, total marks and position make up a record.

 

Logical and physical files

Computer files are classified as either logical or physical.

 

Logical files

A logical file is a type of file viewed in terms of what data items it contains and details of what processing operations may be performed on the data items. It does not have implementation specific information like field, data types, size and file type. Logical files are discussed in system design later in the book.

 

Physical files

As opposed to a logical file, a physical file is one that is viewed in terms of how data is stored on a storage media and how the processing operations are made possible. Physical files have implementation specific details such as characters per field and data type for each field. Physical files are discussed later in system implementation and operation in this book.

 

Types of computer processing files

There are numerous types of files used for storing data needed for processing, reference or backup. The main common types of processing files include master files, transaction, reference, backup, report and sort file.

 

Master file

A master file is the main file that contains relatively permanent records about particular items or entries. For example a customer file will contain details of a customer such as customer ID, name and contact address.

 

Transaction (movement) file

A transaction file is used to hold input data during transaction processing. The file is later used to update the master file and audit daily, weekly or monthly transactions. For example in a busy supermarket, daily sales are recorded on a transaction file and later used to update the stock file. The file is also used by the management to check on the daily or periodic transactions.

 

Reference file

A reference file is mainly used for reference or look-up purposes. Look­up information is that information which is stored in a separate file but is required during processing. For example, in a point of sale terminal, the item code entered either manually or using a bar code reader looks up the item description and price from a reference file stored on a storage device.

 

Backup file

A backup file is used to hold copies (backups) of data or information from the computers fixed storage (hard disk). Since a file held on the hard disk may be corrupted, lost or changed accidentally, it is necessary to keep copies of the recently updated files. In case of the hard disk failure, a backup file can be used to reconstruct the original file.

 

Report file

A report file is used to store relatively permanent records extracted from the master file or generated after processing. For example you may obtain a stock levels report generated from an inventory system while a copy of the report will be stored in the report file.

 

Sort file

A sort file is mainly used where data is to be processed sequentially. In sequential processing, data or records are first sorted and held on a magnetic tape before updating the maste file.

 

File organization methods

File organization refers to the way data is stored in a file. File organization is very important because it determines the method of access, efficiency, flexibility and storage devices to be used. There are four methods of organizing files on a storage media. This includes: sequential, random, serial and indexed-sequential

Sequential file organisation

In sequential file organisation, records are stored and accessed in a particular order sorted using a key field. Retrieval requires searching sequentially through the entire file record by record from the beginning to the end. Because the records in the file are sorted in a particular order, better file searching methods like the binary search technique can be used to reduce the time used for searching a file. Since the records are sorted, it is possible to know in which half of the file a particular record being searched is located. Hence this method repeatedly divides the set of records in the file into two halves and searches only the half in which the record is found. For example, if the file has records with key fields 20, 30, 40, 50, 60 and the computer is searching for a record with key field 50, it starts at 40 upwards in its search, ignoring the first half of the set.

 

Random or direct file organisation

In random or direct file organisation, records are stored randomly but accessed directly. To access a file stored randomly, a record key is used to determine where a record is stored on the storage media. Magnetic and optical disks allow data to be stored and accessed randomly.

 

Serial file organisation

With serial file organisation, records in a file are stored and accessed one after another. The records are not sorted in any way on the storage medium. This type of organisation is mostly used on magnetic tapes.

Indexed-sequential file organisation method

This method is almost similar to sequential method, only that an index is used to enable the computer to locate individual records on the storage media. For example, on an magnetic drum, records are stored sequentially on the tracks. However, each record is assigned an index that can be used to access it directly.

 

Electronic data processing modes

There are several ways in which a computer, under the influence of an operating system is designed to process data. Examples of processing modes are:

 

  1. Online processing
  2. Real-time processing
  3. Distributed processing
  4. Time-sharing.
  5. Batch processing
  6. Multiprocessing
  7. Multitasking
  8. Interactive processing

 

On-line processing

In online data processing data is processed immediately it is received the computer is connected directly to the data input unit via a communication link. The data input may be a network terminal or an online input device attached to the computer.

 

Real-time processing

In a real-time data processing, computer processes the incom111g data as soon as it occurs, up-dates the transaction file and gives an immediate response that would affect the events as they happen. This is different from online in that for the latter an immediate response may not be required. The main purpose of a real-time processing is to provide accurate, up-to-date information hence better services based on a true (real) situation. An example of real-time processing is making a reservation for airline seats. A customer may request for an airline booking information through a remote terminal and the requested information will be given out within no time by the reservation system. If a booking is made, the system immediately updates the reservations file to avoid double booking and sends the response back to the customer immediately.

 

Distributed data processing

Distributed data processing refers to dividing (distributing) processing tasks to two or more computers that are located on physically separate sites but connected by data transmission media. For example, a distributed database will have different tables of the same database residing on separate computers and processed there as need arises. The users of the distributed database will be completely unaware of the distribution and will interact with the database as if all of it was on their computer.. This distribution of processing power increases efficiency and speed of processing. An example is in the banking industry where customers’ accounts are operated on servers in the branches but all the branch accounts can be administered centrally from the main server as if they resided on it. In this case, we say that the distributed database is transparent to the user because the distribution is hidden from the user’s point of view.

 

Time-sharing

In a time-sharing processing, many terminals connected to a central computer are given access to the central processing unit apparently at the same time. However in actual sense, each user is allocated a time slice of the CPU in sequence. The amount of time allocated to each user is controlled by a multi-user operating system. If a user’s task is not completed during the allocated time slice, he/she is allocated another time slice later in a round robin manner.

 

Batch processing

In batch processing, data is accumulated as a group (batch) over a specified period of time e.g. daily, weekly or monthly. The batch is then processed at once. For example in a payroll processing system, employees’ details concerning number of hours worked, rate of pay, and other details are collected for a period of time, say one month. These details are then used to process the payment for the duration worked. Most printing systems use the batch processing to print documents.

 

Multiprocessing

Multiprocessing refers to the processing of more than one task at the same time on different processors of the same computer. This is possible in computers such as mainframes and network servers. In such systems, a computer may contain more than one independent central processing unit, which works together in a coordinated way. At a given time, the processors may execute instructions from two or more different programs or from different parts of one program simultaneously. This coordination is made possible by a multiprocessing operating system that enables different processors to operate together and share the same memory.

 

Multiprogramming

Multiprogramming, also referred to as multi-tasking refers to a type of processing where more than one programs are executed apparently at the same time by a single central processing unit. It is important to note that, as opposed to multiprocessing. In multiprogramming, a computer has only one central processing unit. The operating system allocates each program a time slice and decides what order they will be executed. This scheduling is done so quickly that the user gets the impression that all programs are being executed at the same time.

 

Interactive processing

In interactive data processing, there is continuous dialogue between the user and the computer. As the program executes, it keeps on prompting the user to provide input or respond to prompts displayed on the screen.

 

ELEMENTARY PROGRAMMING PRINCIPLES

 

Chapter  outline

 

3.1 Introduction

3.2 Computer programming

3.3 Description of terms used in programming

3.4 Levels of programming languages

3.5 Advantages and disadvantages of low level and high-level languages

3.6 Program development

3.7 Program documentation

3.8 Development of algorithms

3.9 Program control structures

3.10 Designing more complex algorithms

 

Introduction

Human beings have evolved from the Stone Age to a highly sophisticated and advanced society by inventing things like the wheel, fire, transistors and today’s ultra modem devices like computers. The idea of computers started way back in the nineteenth century.

The first generation computers called Electronic Numeric integrator and Calculator (ENIAC 1) were operated by plugging wires into a control panel that resembles the old telephone switchboards

Computer programming

A computer works by executing a set of instructions known as a program. The term programming refers to the process of developing computer instructions (programs) used to solve a particular task. It involves use of special characters, signs and symbols found in a particular programming language to create computer instructions. A programming language is a special set of symbols that can be translated into machine-readable form by the computer when arranged in a particular sequence or order. Each language has a special sequence or order of writing characters usually referred to as syntax.

It was John von Neumann of Princeton University (USA) who first came up with the proposition to store programs in the computer memory. Perhaps, this was one of the most dramatic developments in the computer history. Why? Because not only did the new stored-program way of computing increase-processing speed but also allowed easy and flexible methods of editing and updating the program.

 

Description of terms used in programming

Before we go further with programming, it is important to define some common terms used in computer programming.

 

Source program

The term source program refers to the program code that the programmer enters in the program editor window that is not yet translated into machine-readable form. The source program is usually created using a particular programming language as discussed later.

 

Object code

The term object code refers to the program code that is in machine-readable. A source code that is not in machine-readable form must be translated into object code.

 

Translators

The term translator is used to refer to language processors such as assemblers, interpreters and compilers that convert the source program into object code.

 

Assembler

An assembler translates assembly language into machine language that the computer can understand and execute.

 

Interpreter

An interpreter translates the source program line-by-line, allowing the CPU to execute one line before translating the next. The translated line is not stored in the computer memory. It means that every time the program is needed for execution, it has to be translated. This method of translating programs was very common in early computers that did not have enough memory to store the object code as a file that can be executed later

 

Compiler

A compiler translates the entire source program into object code: The object code file can be made into a fully executable program by carrying out another process known as linking which joins the object code to all the other files that are needed for the execution of the program. After the linking process, an executable file (application file) is generated. This file is stored on a storage media such as a disk with a name that has a unique extension (.EXE). Examples of executable files are WINWORD.EXE and PM70.EXE used to start Microsoft Word and Adobe PageMaker 7.0 respectively.

 

The difference between the interpreters and compilers are summarised below:

 

Interpreters Compilers
1. Translates the source program

one statement at a time

1. Translates the entire source code

at once before execution

2. Translates the program each

Time it is run hence slower than

Compiling

2. Compiled program (object code) can be saved on a storage media and run as required, hence

Executes faster than interpreted

Programs.

3. Interpreted object code takes

Less memory compared to

Compiled program.

3. Compiled programs require

More memory as the object file

Are larger.

 

Levels of programming languages

Many programming languages have been developed over the years. These languages are classified into two major levels namely:

  1. Low-level languages
  2. High-level languages

 

These levels are further subdivided into five generations. The first and second generations consist of low-level languages while the third to the fifth generation consist of high-level languages.

 

Low-Level languages

Low-level languages are classified as low because the computer can easily understand them directly or they require little effort to translate into computer understandable form. These languages are hardware oriented and therefore they are not portable i.e. a program written for one computer cannot be installed and used on another. Two types of low level languages are the machine languages and assembly languages.

 

Machine languages (First generation languages)

In machine languages, instructions are written using binary logic. Given that data and instructions are in binary form, many lines of code are needed to accomplish even a simple task like adding two numbers. A program written in machine language might look like this:

It is evident from the above code that it is hard for a person to guess what the program is all about unless they have special knowledge in machine level programming. Furthermore, different CPU’s have different machine codes e.g. those for the Intel Pentium processors may differ from Motorola or Cyrix processors. Therefore before decoding the meaning, a programmer has to know for which CPU the program was written. Obviously, such programs are hard to understand from the programmer’s point of view, but very easy to execute from the computer’s perspective.

 

Assembly languages (Second generation languages)

Assembly languages were developed in order to overcome the difficulties of understanding and using machine languages. These languages represented the first successful attempt to make computer languages readable. The languages allowed programmers to write programs as a set of symbolic operation codes called mnemonics. Mnemonics are basically shortened two or three letter words.  Programs written in assembly language require an assembler in order to convert them into machine language that the computer can understand. Just like the machine languages, assembly languages are also machine dependent and therefore a program written for one computer cannot be used on another.

 

High-level languages

High-level languages are very close to the human language (English like) and they can be read and understood even by people who are not experts in programming. There are many types of high-level languages and each of them was developed to address a particular problem-solving domain while others came about due to advancement in technology. These languages are machine independent. This means that a programmer concentrates on problem solving during a programming session rather than how a machine operates.

High-level languages can be classified into five groups:

  1. Third generation languages. (3 GLs)
  2. Fourth generation languages. (4 GLs)
  3. Fifth generation languages. (5 GLs)
  4. Object oriented languages. (OOPs)
  5. Web scripting languages.

 

Third generation languages (3 GLs)

Third generation languages (3 GLs) are also called structured or procedural languages. A procedural language makes it possible to break a program into components called modules each performing a particular task. This is referred to as structured programming. The structured programming approach emphasizes the following:

  1. Large programs can be broken down into smaller sub programs each performing a single task.
  2. Use of a few simple control structures in problem solving. These control structures include sequence, selection and iteration as covered later in this book.

Structured programming offers many benefits because it is flexible, easier to read and modify. Examples of third generation programming languages include:

Pascal: Pascal was initially developed as an academic language, to help in the teaching and learning of structured programming.

FORTRAN: (FORmula TRANslator): This language was developed for mathematicians, scientists and engineers. It enables writing of programs with mathematical expressions.

COBOL: (Common Business Oriented Language): This language is designed for developing programs that solve business problems e.g. developing data processing applications such as computer-based inventory control systems.

BASIC: (Beginners All-purpose Symbolic Instructional Code): This language was mainly developed to enable students to easily learn programming. Basic is a simple general-purpose language used for developing business and educational applications. Because of its simplicity, it is a powerful tool for students who wish to learn programming. It was the first high-level language that was available for microcomputer users.­

C: This is a programming language mainly used for developing system software such as the operating system. It is one of the most popular and powerful high-level languages in the business world because of its ability to provide the programmer with powerful features of low-level languages and at the same time easily understandable as a high level language.

Ada: This language was named after the first lady programmer, Ada Lovelace. Ada is suitable for developing military, industrial and real­ time systems. .

A sample program written in Pascal language

Imagine the task of developing a program that would solve the equation of a straight line given by the algebraic expression:

Y = MX + C.

To enter the program code below in Pascal, proceed as follows:

  1. From Windows explorer, locate a folder called TP and open it.
  2. From the TP folder select BIN
  3. From BIN window, double click a file named turbo.EXE. Pascal program window is displayed on the screen.
  4. Enter the program code exactly as it is but ignore the numbering.
  5. Program Straight Line (Input, Output);
  6. Var
  7. y, m, x, c: Integer;
  8. Begin
  9. Writeln (‘Input the value of m‘);
  10. Readln (m);
  11. Writeln (‘Input the value of x’);
  12. readln (x);
  13. Writeln (‘Input the value of c ‘);
  14. Readln (c);
  15. Y: = m * x + c;
  16. Writeln (The value of y is:’, y);
  17. End.

Explanation

Line 1: This is the program header. The word “Program” indicate the beginning of the program whose name is Straight-Line. The (input, output) statements shows that the program will expect some input from the keyboard and display the output on the screen.

Line 2: Var is short form for variable. A variable is a location for data in the computer memory. This statement tells the computer that variables are about to be declared. When a variable is declared, the computer sets aside some memory space to store a value in the variable.

Line 3: F our variables have been declared of type integer. This means that the memory spaces that will be set aside can only hold values that are whole numbers.

Line 4: The Begin statement shows that this is the start of the program body. The computer executes statements in this section. For example, the execution starts by asking the user to input the value of m.

Line 5: The writeln statement displays whatever is in the brackets on the screen. Notice that the statements in brackets are written between inverted commas. The string will be sent to the screen exactly the way it appears in the brackets. If you wish to display the value held in a variable on the screen, then you have to remove the inverted comma’s and write the name of the variable in the brackets e.g. writeln (y) will display the value held in the variable y.

Line 6:The read or readln statement reads a value and stores it in a variable. When the program is running, a read/readln statement in the code will display a blinking cursor that indicates to the user where to type the input.

Line 11: Calculates the value of y. Notice the symbol’: =’. In Pascal! This is called the assignment statement. The values on the righ1 are calculated then stored in the variable y, which is on the left of the assignment symbol.

Line 12: The writeln displays the value stored in yon the screen. Notice that y is not within the inverted commas. If you gave the value of m as 10, x as 2 and c as 20 then the following should appeal on your screen: The value of y is: 40.

This is because the statements between the inverted comma’ are meant to make the output readable on the screen. Otherwise: only the value 40 would have been displayed.

Line 13: The ‘End.’ statement shows the end of a program.

 

Fourth generation languages (4 GLs)

Fourth generation languages make programming an even easier task that the third generation languages because they present the programmer with more programming tools. Examples of such tools include command buttons, forms etc. With the advent of these languages, gone are the days when a person had to write lines upon lines of code. Instead, the programmer selects graphical objects on the screen called controls then uses them to create designs on a base form. The programmer may also use an application generator that works behind the scenes to generate the necessary code; hence the programmer is freed from the tedious work of writing the code. Examples of fourth generation languages are: Visual Basic, Delphi Pascal and Visual COBOL.

 

A sample form designed using Visual basic programming language

The programmer in this case simply picks a tool from the toolbox and uses it to create objects such as command buttons, textboxes etc. on the form by dragging the mouse pointer on the form during design.

Fifth generation languages (5 GLs)

Fifth generation languages are designed around the concept of solving problems by enabling the computer to depict human like intelligence. These programs are designed to make the computer solve the problem for the programmer rather than the programmer spending a lot of time to come up with the solution. With such languages, the programmer only worries about what problem needs to be solved and what conditions need to be met without worrying about how to implement an algorithm to solve them. Examples of these languages are those used in artificial intelligence like PROLOG, Mercury, LISP and OCCAM.

 

Object-oriented programming languages (OOP)

The idea behind object-oriented programming (OOP) was developed in the 1960’s but its significance was not appreciated until lately. The concept behind object oriented programming languages is to look at a program as having various objects interacting to make up a whole. Each object has specific data values that are unique to it (called state) and a set of the things it can accomplish called (functions or behavior). This process of having data and functions that operate on the data within an object is called encapsulation. Several objects can then be linked together to form a complete program. Examples of object-oriented languages include Simula, which was developed in the 1960’s. However, C++, Java and SmallTalk are contemporary languages in this range. Although Java is sometimes associated with development of web sites it can be used to create whole application programs that do not need a web browser to run. OOP has contributed greatly to the development of graphical user interface operating systems and application programs.

I

Web Scripting languages!

Web scripting languages are used to develop or add functionalities on web pages. Web pages are hypertext documents created in a language called Hypertext Markup Language (HTML). The language simply consists of tags that are interpreted by the web browser software to display text when the HTML file is opened on the screen by a web browser software. A tag is a special word enclosed between the less than and greater than (<>) symbols and the browser can interpret it as a command. For example, to start a HTML page, one must use the <HTML> tag at the very top of the document. Other languages like Extended HTML (XML) have been derived directly from HTML with the only difference being that XML allows the user to define their own tags instead of using the standard HTML tags.

Unlike other programming languages, HTML does not have the declaration part and control structures (to be covered later in the book). Due of this reason, it is not considered as a true programming language.

Due to its simplicity, HTML has many limitations and cannot be used alone when it comes to developing functional websites. Some special blocks of code known as scripts may be inserted in HTML pages using scripting languages like JavaScript, VBScript and Hypertext Preprocessor (PHP) in order to add functionality to the HTML page. A script is a small program fragment, written in a different language other than HTML but inserted into the HTML program.

Most HTML tags have an opening tag and a closing tag. An opening tag is enclosed between < > while a closing one between </ >. Text that is to be displayed on the screen is enclosed between an opening and closing tag. For example, the statement <B> Hello </B> will display the word “Hello” in boldface on the screen. Table 3.1 shows examples of HTML tags and their meanings:

 

 

 

1

Table 3.1

Tag Meaning
1. <HTML></HTML> Marks the beginning and end of a HTML

document. All other tags and text fall

between these two tags.

2. <HEAD> </HEAD> Marks the header part of the document.
3. <TITLE> </TITLE> Gives title of the web page. Text between

this tags appears in the title bar when the

page is browsed.

4. <BODY></BODY> Marks the body part of the document.
5. <CENTER></CENTER> Centres text and objects on the web page.
6. <B></B> Bolds the text on the web page.
7. <1></1> Italicise the text.
8. <Hl></Hl> Sets size of text on the web page with H6

displaying the smallest and H1 the largest

Size.

Creating a script using Javascript

Javascript is a popular scripting language. Before writing your HTML program with a script inserted, make sure that you have the latest browser software installed on your computer. Older browsers may not have support for Javascript. If you are using Internet Explorer, it should be version 5.0 and above.

Open Notepad and key in the following program. Do not write the numbers to the left of each line of code.

  1. <HTML>
  2. <HEAD>
  3. < TITLE> Scripting Example </TITLE>
  4. </HEAD>
  5. <BODY>
  6. <HI> < CENTER. <B> We are the world </B> </CENTER> </HI>
  7. <SCRIPT LANGUAGE = ‘JavaScript’>
  8. Document. Write (‘My name is strongman’);
  9. alert (‘congratulations for succeeding to run this script’);
  10. </SCRIPT>
  11. </BODY></HTML>

After typing the entire program, save your file on the desktop as Example.html and then close the notepad. Notice that the icon to your file on the desktop look like that of the default web browser in your computer.

To view the web page, double click the icon of the file Example .htm1 on the desktop. Figure 3.3. shows an open webpage.

 

 

 

Fig. 3.3: A web page with a script.

Explanations

Line I: The tag <HTML> marks the beginning of the HTML document.

Line 2: The <TITLE> </TITLE> tags show the title of the web page. The text between this tags will appear in the title bar of the running HTML document as can be seen in Figure 3.2. Notice that the title is written in the header section i.e. between <HEAD> and </HEAD> tags.

 

Line 5: It marks the beginning of the body section. Anything between <BODY> and </BODY> will be executed and displayed when the webpage starts running.

Line 6: This line will display the text “We are the world” on the screen. The text will be large i.e. size HI and it will be centred on the screen. The text will also be bolded.

 

Line 7: It marks the start point of the script. Notice the line LANGUAGE = ‘JavaScript’ which tells the browser that the script will be written in JavaScript language.

Line 8: The statement Document. Write tells the browser using JavaScript to write whatever is in the brackets. Notice that in JavaScript, the end of a statement is marked by a semicolon (;).

Line 9: The word alert displays a message box on the screen with an OK button. Clicking the button makes the message box to disappear. The text in the brackets appears in the dialog box. Line 10: Closes the script.

Line 11: Marks the end of the body and the HTML code.

Practical activity 3.1

  1. Open a text editor program on your computer like NotePad or WordPad. I
  2. Type the following program exactly the way it is in the editor:

<HTML>

<HEAD><TITLE> This is my first webpage</TITLE></HEAD> <BODY bgcolor = “red” >

<H l><CENTER><B>Hello World</B></CENTER></HI>

</BODY> </HTML>

  1. Save your work as webpage.html on the desktop. Make sure that the Save As Type box reads “All Files” before clicking the save button in order to avoid saving a text file with two extensions i.e. webpage.html. txt
  2. Close your text editor. Notice that your file on the desktop has the icon of the default web browser installed on your computer. Double click it to view the web page! Figure 3.4 shows a sample of the display expected when the file is loaded to the browser. If you have a colour monitor, it should look as below only that it will have black bold text on a red background!
  3. Check your program and change your background to blue, save then click the refresh button. What happens?

 

 

Fig. 3.4: Sample web page

Advantages and disadvantages of low-level and high-level languages

Having looked at the various programming languages, it is important to identify the advantages and disadvantages associated with each level of programming languages.

Advantages and disadvantages of low level languages

Advantages

  1. The CPU understands machine language directly without translation.
  2. The processor executes them faster because complex instructions are already broken down into smaller simpler ones.
  3. Low level languages are stable and hardly crash or break down once written.

Disadvantages

  1. Low level languages are difficult and cumbersome to use and learn.
  2. They require highly trained experts both to develop and maintain programs.
  3. Removing errors (debugging) in low level language programs is difficult.
  4. Low level programs are machine dependent i.e. they are not transferable from one hardware or software platform to another.

Hence we say they are not portable.

Advantages and disadvantages of high level languages

Advantages

  1. High level languages are portable i.e. they are transferable from one computer to another.
  2. High level languages are user friendly and easy to use and learn.
  3. High level languages are more flexible; hence they enhance the creativity of the programmer and increase productivity in the workplace.
  4. High level languages are far much easier to correct errors (debug).

 

Disadvantages

  1. Their nature encourages use of many instructions in a word or statement hence the complexity of these instructions causes slower program processing.
  2. They have to be interpreted or compiled to machine readable form before the computer can execute them.

(Review questions 3.1)

  1. Define the term computer program.
  2. What is programming?
  3. State three advantages of high level languages over low level, languages.
  4. List four examples of high level languages and for each state its most appropriate application area.
  5. Why is an executable file unique as compared to any other file?
  6. Differentiate between a compiler and an interpreter. Why did early computers work well with interpreters?
  7. List the various examples of programming languages per generation.
  8. State one advantage of machine language over all the other languages.
  9. Write the following in full:

(a) HTML                        (b) OOP

  1. Distinguish between source program and object code in programming.
  2. Define the term encapsulation as used in object oriented programming.

Program development

The process of program development is not an easy task. Remember that in our definition of programming, we said that the program must solve a particular problem or accomplish a task. Hence, before developing a program, the requirements of the eventual users and its expected functions should be fully understood.

Program development can be broken into the following stages:

  1. Problem recognition.
  2. Problem definition.
  3. Program design.
  4. Program coding.
  5. Program testing and debugging.
  6. Implementation and maintenance.

The completion of one stage leads to the beginning of the next. At the same time, some stages have to be continuously reviewed in light of the step just before them to make sure that they meet the requirements. For example, after coding, the code has to be compared to the design to see whether it meets the design specification. Therefore, this method becomes very expensive if the correct requirements are not identified at each stage before the next is initiated.

It is important to note that although some people consider documentation as an independent stage, it is done at all stages of the program development lifecycle as shown in Figure 3.5. This is important so that the facts are recorded when they are still fresh and in the required detail by the programmer.

 

Problem recognition

Problem recognition refers to the understanding and interpretation of a particular problem. In order to understand a problem you need to look for the key words such as compute, evaluate, compare etc. You can then rewrite the problem in a more simplified way using the keywords.

A programmer identifies problems in the environment and seeks to solve them by writing a computer program that would provide the solution. Many of the privileges of automation that we enjoy today are as a result of people who wrote computer programs to do the tasks. For example, the intelligent control of traffic lights, the autopilot in aircraft and the use of robots in industry are good examples where problems were recognised and the computer was used as a tool to solve them. Think of the person who after seeing the tedious nature of typing using a manual typewriter decided to develop a word processor program!

In any given circumstance, the following three situations can cause the programmer to identify a problem that is worth solving:

  1. Problems or undesirable situations that prevent an individual or organisations from achieving their purpose.
  2. Opportunity to improve the current program. It can be argued that any unexploited opportunity is a problem.
  3. A new directive given by the management requiring a change in the status quo.

Sample problem

Consider a mathematical problem such as calculating the area of a circle. In this case, the problem is finding the area of a circle. As a programmer, it will be your interest to develop a program that can be used to calculate the area of any circle. The equation for calculating the area of a circle is given by A = лr2.

Problem definition

In problem definition, also referred to as problem analysis, the programmer tries to determine or define the likely input, processing activities and the expected output using the keywords outlined at the problem recognition stage.

At the end of this stage, the boundaries of the expected program will have been established i.e. a clear view of what the program needs to accomplish must be in place. In case, several methods are identified that can be used to solve the same problem, then the best alternative should be chosen.

In our problem of calculating the area of a circle, an investigation reveals that the parameters needed to determine the area of any circle are:

  1. Input: (a) Pie (л) which is a constant.

(b) The radius of the circle.

  1. Process: The formula of calculating area of a circle which is л x radius x radius.
  2. Output: The area of the circle (A).

The problem definition stage ends with the writing of a requirements report or document for the new program. It is this document that enables a programmer to come up with a program design that meets the needs at hand.

Program design

Program design is the actual development of the program’s processing or problem solving logic called the algorithm. An algorithm refers to a limited number of logical steps that a program follows in order to solve a problem. It is the programmer who will usually come up with the algorithm after carefully analysing the requirements specification. Many programs are not usually made up of one large block of code i.e. they are not monolithic. Instead, several units called modules work together to form the whole

In modular programming, each module performs a specific task. This approach makes a program flexible, easier to read and carry out error correction.

The design phase enables the programmer to come up with models of the expected program. The models show the flow of events and data throughout the entire program from the time data is input to the time the program gives out expected information. The development of algorithms is covered later in the chapter.

Program coding

Program coding is the actual process of converting a design model into its equivalent program. This is done by creating the program using a particular programming language. The end result of this stage is a source program that can be translated into machine readable form for the computer to execute and solve the target problem. Programs can be written in many different languages but the general trend in the world today is to use programs that are easy to learn and understand such as, Pascal, C++, Visual Basic and Java. Below is a comparison of the same program written in Pascal and C++ used to calculate the area of a circle.

Program in Pascal Program in c++
Program AreaCircle (input, output);

Const Pi = 3.142;

Var

Radius, Area: real;

Begin

Writeln (‘Enter the radius’);

Readln (radius);

Area: = Pi *Radius *Radius;

Writeln (‘The area is’, Area)

End.

#include<iostream.h>

main ( )

{

double radius, area;

const double pi = 3. 142;

cout«”Enter the radius”« “\n”;

cin»radius;

area = pi *radius * radius;

cout«”The area is”« area «”\n”;

return 0;

}

NB: Use lowercase when coding using C++.

Going through the two programs, you will realise that they are fairly similar, irregardless of the language that was used to code them. The table below explains the program codes.

Pascal code C++ code Explanation  
Program AreaCircle

(input, output);

#include<iostream.h» The header of the programs. The statements in ( ) and < > shows that the user inputs data via the keyboard and the program display information on the screen.  
Const Pi = 3.142; double pi = 3.142; A constant has been

declared with a name pi

and value 3.142.

Var

radius, area:real

double area, radius; Real variables with fractional

parts have been declared.

Begin { Marks the beginning of the

program body or c++

function

Writeln (‘Enter

the radius’);

cout< <“Enter radius”; Displays on the screen the

string between inverted

commas

Readln (Radius) cin> >radius; Displays a blinking cursor

that tells the user that an

input is needed before the

program can continue.

Area: = Pi*Radius

*Radius;

area = pi*radius

* radius;

Calculates the area. Notice

the assigment statement in

Pascal is : = while in C++ it

IS =

Writeln (‘The area

is’ Area)’

, ,

cout< <“The area

is” area « “\n”;

Display the value stored in

the variable Area.

End. return 0;

}

Marks the end of the

program

NB: “\n” is a C++ syntax of directing the character to a new line. It is equivalent to PASCAL’s “In” used in writeln and readln.

Program testing and debugging

After coding, the program has to be tested and the errors detected corrected (debugged).

There are two types of errors (bugs) that can be encountered when testing a program. These are:

1 Syntax errors: These errors emanate from improper use of language rules e.g. grammar mistakes, punctuation; improper naming of variables and misspelling of user defined and reserved words. Reserved words are those words that have a special meaning to the programming language and should not be used by the programmer for anything else. These errors are detectable by the translator and must be corrected before the program runs.

  1. Logical errors: They are not detectable by the translator. The program runs but gives wrong output or halts during execution. Such errors that occur during program execution are sometimes called runtime or execution errors.

Methods of error detection

There are several methods of testing the program for errors. These include:

  1. Desk checking (Dry-run)

It involves going through the program while still on paper before entering it in the program editor. This helps the programmer to detect the most obvious syntax and logical errors.

  1. Using debugging utilities

After entering the program in the program editor, you can run the debugging utilities during translation to detect syntax errors in order to correct them before execution.

  1. Using test data

The programmer carries out trial runs of the new program. At each run, the programmer enters various data variations and extremes including data with errors to test whether the system will grind to a halt. For example, if the input required is of numeric type, the programmer may enter alphabetic characters to see whether the program will grind to a halt unexpectedly. A good program should not crash due to incorrect data entry but should inform the user about the anomaly and request for the entry of the correct data.

Implementation and maintenance

Implementation

Implementation refers to the actual delivery and installation of the new program ready for use. New programs will obviously change the way things are done when implemented hence the need for review and maintenance.

Review and maintenance

Review and maintenance is important because of the errors that may be encountered after the program has been implemented or exposed to extensive use. A program may also fail not because of poor development but also due to poor use. Therefore proper training and post implementation support of users will always reduce the chances of having them entering invalid data that can crash the program.

 

Program documentation

Program documentation is the writing of support materials explaining how the program can be used by users, installed by operators or modified by other programmers. All stages of program development should be documented in order to help during future modification of the program.

Documentation can either be internal or external. Internal documentation, is the written non-excutable lines (comments) in the source program that help other programmers to understand the code statements. External documentation refers to reference materials such as user manuals printed as booklets. User manuals are common examples of external documentation There are three target groups for any type of documentation:

  1. User oriented documentation. These type enables the user to learn how to use the program as quickly as possible arid with little help from the program developer.
  2. Operator oriented documentation. It is meant for computer operators such as the technical staff. It helps them to install and maintain the program.
  3. Programmer oriented documentation. It is a detailed documentation written for skilled programmers. This documentation provides necessary technical information to help in future modification of the program. In this type of documentation, all stages of the program development should be documented because.

(a) There may come a need to revise or modify the program.

(b) Other programmers may think of ways of improving your program.

Development of algorithms

As defined earlier an algorithm can be defined as a limited number of logical steps that a program follows in order to solve a problem. In most cases, algorithms can be depicted using a number of tools such as decision tables, decision tree’s, flowcharts and pseudocodes. In this book, we shall mainly discuss program flowcharts and pseudocodes because they are the most widely used by programmers.

Pseudocode

As mentioned earlier, a pseudocode is a set of statements written in a readable language (usually English-like phrases) but expressing the processing logic of a program. Some of the words used in a pseudocode may be drawn directly from a programming language and then mixed with English to form structured statements that are easily understood by non-programmers and also make a lot of sense to programmers. However pseudocodes are not executable by a computer.

Guidelines for designing a good pseudocode

  1. The statements must be short, clear and readable
  2. The statements must not have more than one meaning i.e. should be unambiguous
  3. The pseudocode lines should be clearly outlined and indented clearly.
  4. A pseudocode should show clearly the start and stop of executable statements and the control structures (to be discussed later in the section).
  5. The input, output and processing statements should be clearly stated, using keywords such as PRINT, READ, INPUT etc. Below are some examples that demonstrate how to write a pseudocode.

Example 3.1

Write a pseudocode that can be used to prompt the user to enter two numbers, calculate the sum and average of the two numbers and then display the output on the screen.

 

Solution

START

PRINT “Enter two numbers”

INPUT X, Y

SUM = X + Y

AVERAGE = SUM/2

PRINT SUM

PRINT AVERAGE

STOP

Example 3.2

Write a structured algorithm that would prompt the user to enter the length and width of a rectangle, calculate the area and perimeter then display the result.

Solution

(i) First draw the rectangle of length (L) and width (W)

(ii) Write down the pseudocode

START

PRINT “Enter length and width”:

READ L, W

AREA = L * W

PERIMETER = 2(L + W)

PRINT AREA

PRINT PERIMETER

STOP

Example 3.3

Write a pseudocode for a program that can be used to classify people according to age. If a person is more than 20 years; output “Adult” else output “Young person”

Solution

START

PRINT “Enter the age” INPUT AGE

IF AGE> 20 THEN

PRINT “Adult”

ELSE

PRINT “Young person”

 

Program flowcharts

Unlike a pseudocode which expresses ideas in form of short statements, a flowchart does the same using both statements and special symbols that have specific meaning. Therefore, a flowchart is a diagrammatic representation of a program’s algorithm. The symbols are combined with short text clues which are a form of shorthand understood by programmers. The special symbols used to draw program flowcharts vary but the most common ones are as outlined below:

 

Ellipse: denotes the beginning and end of the program algorithm.

 

 

 

 

 

  1. Parallelogram: used to denote an input or output operation. For example, READ A, B, PRINT SUM.
Process

 

 

 

 

  1. Rectangle: Indicates that a processing or data transformation is taking place. For example SUM=A+B.

 

 

 

 

 

 

  1. Rhombus: Used to specify a condition. A condition must evaluate to a boolean value (True or false) for the program to execute the next instructions.

 

 

 

 

 

                                             

 

 

 

  1. Connector: Used as a connecting point or interface for arrows coming from different directions.

 

 

 

Arrow: Used to indicate the direction of flow of the program logic.

 

 

 

Guidelines for drawing a flowchart

  1. There should be only one entry/starting point and one exit point of the program algorithm.
  2. Use the correct symbol at each stage in the flowchart. For example, it is wrong to use a decision symbol where input is required.
  3. The logical flow should be clearly shown using arrows.

 

Comparison between a pseudocode and a flowchart

Taking our example of calculating the area of a circle mentioned in the earlier subtopic the algorithm by both methods are shown below.

 

 

 

Program control structures

Program control structures are blocks of statements that determine how statements are to be executed. In structured programming languages, there are three control structures namely; sequence, selection and iteration (looping).

Sequence

In sequence control structure, the computer reads instructions from a program file starting from the first top line and proceeding downwards one-by-one to the end. This is called sequential program execution.

Therefore, sequential program execution enables the computer to perform tasks that are arranged consecutively one after another in the code. However, most programs that solve real world problems need to enable the computer either to repeat tasks or to make decisions when certain conditions are true or false hence the need for selection and iteration.

Selection

In selection control, execution of statements depends on a condition that returns true or false. The condition must be a boolean expression. One example of a boolean expression is x > = 20. In such a case the condition is true if x is equal to or greater than 20. Any other value that is less than 20 is therefore false.

Generally, the four types of selection controls used in most high-level programming languages are:

  1. IF… THEN.
  2. IF … THEN … ELSE.
  3. Nested IF.

4 CASE selection.

In this book, we shall demonstrate how to implement these controls by using both pseudocodes and flowcharts.

IF … THEN

IF … THEN selection is used if only one option is available. In this case, all other options are ignored. For example, in a school environment, the administration may decide to reward only those students who attain a mean mark of 80% and above. Therefore, if a students attains 80% and above, he or she is rewarded while the rest are ignored. The following pseudocode and flowchart illustrate this condition:

 

IF … THEN… ELSE

IF … THEN… ELSE selection is suitable when there are two available options. For example, in a football match, if a player does a mistake which is considered serious by the rules of the game, he/she is given a red card. Otherwise, he/she is given a yellow card. The algorithms below illustrates this situation using the IF … THEN… ELSE selection.

 

Nested IF selection

Nested IF selection is used where two or more options have to be considered to make a selection. For example, in an Olympics track event, medals are awarded only to the first three athletes as follows:

(a) Position  1.Gold medal

(b) Position 2: Silver medal

(c) Position 3: Bronze medal

The pseudocode segment and flowchart extract below shows the structure of the Nested IF selection.

Pseudocode segment

IF position = 1 THEN

medal = “Gold”

ELSE

IF position = 2 THEN

medal = “silver”

ELSE

IF position = 3 THEN

medal = “bronze’

ELSE

medal = “nil”

END IF

ENDIF

ENDIF

Flowchart extract

 

 

 

The general format of the Nested IF is

IF < condition> THEN

statements

ELSE

     IF < condition> THEN

statements

ELSE

IF < condition> THEN

statements

ELSE

statements

              END IF

     END IF

ENDIF

CASE Selection

CASE selection is an alternative to the Nested IF especially where there are several options to choose from. This selection is preferred to the Nested IF in order to reduce the many lines of code. However, it is important to note that the boolean expression for the case selection can only be expressed using integers and alphabetic characters only. Generally the boolean expression should be CASE integer OF or CASE Char OF as illustrated in the example below. In this case, average must be an integer.

Pseudocode

CASE average OF

80..]00: Grade = ‘A’

70.. 79: Grade = ‘B’

60.. 69: Grade = ‘C’

50.. 59: Grade = ‘D’

40 .. 49: Grade = ‘E’

ELSE

        Grade = ‘F’

ENDCASE

Flowchart extract

General format of case

CASE x OF

Label: statement

Label 2: statement 2

Label 3: statement 3

                   Label n: statement n -1

ELSE

statementn

ENDCASE

Note that the flowchart is not different from that of the Nested IF construct-­

Iteration ( looping)

Iteration, also referred to a looping or repetition is designed to execute the same block of code again and again until a certain condition is fulfilled. Iteration is important in situations where the same operation has to be carried out on a set of data many times. For example, assume that you are writing a program that will use the same formula to calculate the average marks of three subjects for each student in a class and that the student records are stored in a computer file.

To calculate the average score for each student in a class, the program should repeatedly read record by record from the file, and then use the formula after each read operation to calculate the average.

Generally, the three main looping controls are:

( a) The WHILE loop

(b) The REPEAT. .. UNTIL loop

(c) The FOR loop

The WHILE loop

The ‘WHILE’ loop is used if a condition has to be met before the statements within the loop are executed. Therefore, this type of loop allows the statements to be executed zero or many times. For example in banking, to withdraw money using an automated teller machine (ATM) a customer must have a balance in his/her account.

This scenario can be represented as follows using an algorithm

Pseudocode segment

WHILE balance> 0 Do

Withdraw cash

Flowchart extract

Update account

END WHILE

Withdraw cash Update account

In our case above,

  1. The condition balance> 0 is first tested.
  2. If it is true, the account holder is allowed to withdraw cash.
  3. The program exits the loop once the balance falls to zero.

In general, the WHILE loop can be represented using a pseudocode and a flowchart extract as shown below.

Pseudocode segment

WHILE < condition> DO

statements

ENDWHILE

The REPEAT … UNTIL loop

Unlike the ‘WHILE’ loop, REPEAT… UNTIL allows the statements within it to be executed at least once since the condition is tested at the end of the loop. For example, consider the ATM cash withdrawal case discussed under the ‘WHILE’ loop. If the REPEAT … UNTIL is used, then the client will be able to withdraw the cash at least once since availability of balance is tested at the end of the loop as shown below.

Pseudocode

REPEAT

Withdraw cash

Update account

UNTIL balance > 0;

The general format of the REPEAT. .. UNTIL loop is;

Pseudocode

REPEAT

statements

UNTIL < condition>

The FOR loop

The FOR loop is used in circumstances where execution of the choosen statements has to be repeated a predetermined number of times. For I

example, consider a program that can be used to calculate the sum of ten numbers provided by the user. The ‘FOR’ loop can be used to prompt the user to enter the 10 numbers at most ten times. Once the numbers have been entered, the program calculates and displays the accumulated sum. The loop is predetermined because it has to be repeated 10 times as shown by the algorithms below.

Pseudocode

FOR count = 1 to 10 DO

PRINT “Enter a number (N)”

INPUT N

Sum=Sum+N

END FOR

Display SUM

Explanation

The FOR loop in the problem above functions as follows:

  1. The loop variable (count) is first initialised to the lower limit, in this case a value of 1.
  2. The lower limit is then tested against the upper limit whose value is set at 10.
  3. If the lower limit is less than or equal to 10, the program prompts the user to enter a number N, otherwise the computer exits the loop.
  4. After the last statement in the loop has been executed, the loop variable count is incremented by a 1 and stored in the lower limit i.e. lower limit = count + 1.
  5. The lower limit is then stored in count and step (2) is repeated

The FOR loop can also be used to count downwards from the upper limit to the lower limit. For example, in the above problem, the upper limit 10 can be tested against the lower limit 1 as follows.

FOR count = 10 DOWN TO 1 DO

Therefore the general format of the FOR loop can be represented using two sets of algorithms.

  1. Pseudocode for ‘FOR’ loop that counts from the lower limit

      FOR loop variable = lower limit To upper limit DO.

      statements

ENDFOR

  1. Pseudocode for a ‘FOR’ loop that counts from the upper limit down to the lower limit

FOR loop variable = Upper limit DOWN TO Lower limit DO

statements;

ENDFOR.

Designing more complex algorithms

The following examples demonstrates how to design more complex algorithms based on what has been covered previously. This is aimed at helping a beginner programmer understand how control structures are used to design logically correct algorithms.

Example 3.7

With aid of a pseudocode and a flowchart, design an algorithm that:

(a) Prompt the user to enter two numbers X and Y.

(b) Divide X by Y. However, if the value of Y is 0, the program should display an error message “Error: Division by zero”.

Solution

Using a pseudocode

START

PRINT “Enter 2 numbers X and Y”

INPUT X, Y

IF Y = 0 THEN

PRINT “Error: Division by zero”

ELSE

Quotient = X/Y

PRINT X, Y, Quotient

ENDIF

STOP

Example 3.8

Tusaidiane Savings Society (TSS) pays 5% interest on shares exceeding 100 000 shillings and 3% on shares that do not meet this target. However no interest is paid on deposits in the member’s TSS bank account. Design an algorithm for a program that would:

(a) Prompt the user for shares and deposit of a particular member.

(b) Calculate the interest and total savings.

(c) Display the interest and total savings on the screen for a particular member of the society.

Solution

Using a pseudocode

START

PRINT “Enter member name, share and deposit”

INPUT Name, Shares, Deposit

If shares> 100 000 THEN

Interest = 0.05 x shares

ELSE

Interest = 0.03 x shares

ENDIF

 

 

Total savings = Deposit + shares + Interest PRINT Name, Total Saving, Interest

STOP

Example 3.9

In an athletics competition, an athlete is rewarded as follows:

1 st position: Gold

2nd position: Silver

3rd position: Bronze

Draw a flowchart for a program that would be used to determine the type of medal to be rewarded to each athlete.

Example 3.10

The class teacher of Form 3W in a secondary school requested a programmer to design for her a simple program that would help her do the following:

(a) Enter the names of students and marks obtained in 8 subjects – Mathematics, English, Kiswahili, Biology, Chemistry, Business studies, Computer studies and History.

(b) After entering each subject mark, the program should calculate the total and average marks for each student.

(c) Depending on the average mark obtained, the program should assign grade as follows:

(i) Between 80 and 1 00 – A

(ii) Between 70 and 79 – B

(iii) Between 60 and 69 – C

(iv) Between 50 and 59 – D

(v) Below 50                  – E

 

(d) The program should then display each student’s name, total marks and the average grade. Using both a flowchart and a pseudocode, write an algorithm that shows the design of the program.

Solution

Using pseudocode

START

REPEAT

PRINT “Enter name and subject marks”

INPUT Name, Mathematics, English, Kiswahili, Biology, Chemistry, Business, Computer, History

SUM = Mathematics + English + Kiswahili + Biology + Chemistry +Business + Computer + History

AVG = SUM/8

IF (AVG <80) AND (AVG<100) THEN

Grade = ‘A’

ELSE

IF (AVG >70) AND (AVG > 79) THEN

Grade = ‘B’

ELSE

IF (AVG >60) AND (AVG >69) THEN

Grade = ‘c’

ELSE

IF (AVG >50) AND (AVG >59) THEN

Grade = ‘D’

ELSE

Grade = ‘E’

ENDIF

ENDIF

ENDIF

ENDIF

PRINT Name, Sum, AVG, Grade UNTIL Count = Number of students

STOP.­

 

 

Example 3.11

The gross salary of employees in KARU BOOKS ENTERPRISE is based on basic salary and additional benefits as follows:

(a) Employees who have worked for the company for more than 10 years receive an additional pay of 10% to their basic salary.

(b) Monthly salary bonus based on monthly sales of books as follows:

Monthly sales Bonus Rate (%)
Above 500 000 15
Between 250 000 and 500 000 10
Below 250 000 5

Draw a flowchart for a program that would be used to calculate the gross salary then output each employee’s basic salary, gross salary and all benefits.

 

 

 

SYSTEM DEVELOPMENT

Chapter outline

Introduction

Description of a system

Information system

Theories of system development

Stages of system development

System documentation

 

Introduction

The concept of a system emerged from early psychologists who believed that the mind was a whole unit, rather than a collection of psychological parts as the belief was by that time. However, it was Ludwig von Bertalanff, a German biologist, who gave the name “general systems theory” to the discipline that devoted itself to coming up with principles that apply to all systems.

A system is a set of organised components which interact in a given environment and within a specified boundary to achieve collective goals and objectives that are emergent. Emergent characteristics are those that result from interaction of various components and may not exist in the individual component. Therefore, once the components come together, they become interrelated and generate new goals and objectives. For example, a bicycle system has all the components working together to provide motion when ridden. The individual components cannot provide these services to a rider when on their own!

 

Description of a system

A system can be described as being either soft or hard.

Soft systems

Human activity systems are said to be soft systems. They are described as soft because of three main reasons:

  1. Their boundaries may be fluid or keep on changing.
  2. Their goals and objectives usually conflict and may not be captured clearly at anyone time because they are based on human factors like attitudes and preferences.
  3. It is difficult to precisely define exact measures of performance for them.

One example of a soft system is the political system. It is very difficult for instance to model a system that will predict the political mood in a country over a period of time. Another example is a sales tracking and prediction system in an organisation. Sales in an organisation depend on human factors like attitude in the market place.

Hard systems

Hard systems are systems whose goals and objectives are clearly defined and the outcomes from the systems processes are predictable and can be modeled accurately. Such systems are based on proven scientific laws like mathematical formulas or engineering solutions.

An example of a hard system would be a stock management system in a supermarket. It is possible to know exactly the stock levels, cost and sale price and to predict accurately the profit if all the stock is sold.

A good system incorporates both hard and soft aspects of a system. For example, a stock management system should be able to show when the demand for a certain item rises so that a decision can be made to stock more. New demand is driven by soft aspects in people’s lives like attitude and seasons!

 

Characteristics of systems

All systems have some common characteristics. Some of these characteristics are explained below.

Holistic thinking

In holistic thinking a system is considered as a whole. Aristotle, a Greek philosopher, once said that the whole is more than the sum of the parts. The various components that make up a system may be simple in nature and process but their combination creates a complex whole, whose overall goals are more sophisticated than those of the individual components. Hence, a system should be considered as a whole unit rather than considering its parts individually.

 

Subsystems

A system is made up of different components (subsystems). Therefore a system does not exist in solitude but it may be a component of larger a system. For example, the classroom system is part of a school system, which is part of the Ministry of Education. The Ministry of education is part of the Government which is part of the global system!

Boundary and environment

Each system has a space (boundary) within which the components operate. Any entity that falls outside the boundary but interacts with the system is part of the system environment. Such entities are called external entities. They provide the inputs and receive the outputs from the system. For example, the external entities to a school system may include the parents, various suppliers and the society at large.

Purpose

The purpose of each system is to perform a particular task or achieve a goal. The objectives that a system is supposed to achieve enable system developers to measure the performance of a system during its operation. One main objective for a school system for instance is to enable the students to excel in national examinations.

Process

A system usually will transform or process data from one state to another.

System entropy

The word entropy means decay. Systems “decay” naturally over time. This means that a system slowly becomes useless to the user either due to improvement in technology, new management policies or change in user requirements. Therefore a system must be reviewed in order to

improve it or to develop a new one.                                 .

Inputs and outputs

A system communicates with its environment by receiving inputs and giving outputs. For example, a manufacturing firm can be considered as a system that gets raw materials (inputs) from the environment and transforms them into finished products (outputs) released into the environment.

Open and closed systems

A system can be described as being open or closed. An open system receives input from and gives output to the environment while a closed system does not. Open systems normally adapt to changes in the environment.

Control

Control can be defined as the method by which a system adapts to changes in the environment in order to give the expected output or to perform to the expected level. Control is achieved through feedback which involves having outputs from the process of the system being fed back to the control mechanism. The control mechanism in turn adjusts control signals that are fed to the process which in turn makes sure that the output meets the set expectations. Fig. 4.1 depicts a typical system that has feedback to the control function. Imagine a motor vehicle manufacturing company that is producing several vehicles per day. Assuming that the demand rises, then feedback would show that the company is underperforming. Hence, control signals that would speed up movement of units on the assembly line can be issued to increase production.

 

Information system

An information system is an arrangement of people, data processes and information that work together to support and improve the day-to-day operations in a business and the decision making process. The main purposes of an information system in an organisation are:

  1. Supporting information processing by enhancing tasks such as data collection, processing and communication.
  2. Helping in decision making by collecting operational data, analyzing it and generating reports that can be used to support the decision making process. This process is referred to as on-line analytical processing.

 

  1. Enable sharing of information. Perhaps, this is one of the greatest powers of information systems. For example, any departments in a given organisation can now share the same electronic information stored in a central database at the click of a mouse button.

 

Why develop new information systems?

The need for developing information systems is brought about by three circumstances:

  1. New opportunities: A chance to improve quality of internal processes and service delivery in the organisation.
  2. Problems: These are undesirable circumstances that prevent the organisation from meeting its goals.
  3. Directives: These are new requirements imposed by the government, management or external influences.

Role of information system analyst

A system analyst is a person who is responsible for identifying an organisation’s needs and problems then designs and develops an information system to solve them. The system analyst does this by:

  1. Reviewing the existing system and making recommendations on how to improve or implement an alternative system.
  2. Working hand in hand with programmers to construct a computerized system.
  3. Coordinating training of the new system users and owners.

Project management

The system analyst is the overall project manager of the information system being implemented. His project management skills like assuring quality, keeping within schedule and budget determine whether the system will be successfully implemented or not. For example, a project that does not stick to its schedule will most likely overshoot its budgeted cost leading to unsuccessful completion.

 

Theories of system development

Several theories or methods are used in system development. The aim of all these theories and methods is to identify business requirements and to develop information systems that effectively meet them. This helps to support the day to day operations and decision making processes in an organisation.

Some of the most common system development theories include:

  1. Traditional approach.
  2. Rapid application development (RAD).
  3. The structured approach.

At this level, we will concern ourselves mostly with the structured approach. However, we shall briefly discuss the other two methods of system development.

Traditional approach

Traditional approach relies mostly on the skills and experience of individual staff members carrying out the project. This means that there is no formal documented methodology to be followed by all system developers in the organisation. This obviously presents a chaotic scene in system development especially where more than one persons are involved in the development effort. In most cases, success depends on the heroic efforts of an individual. This means that all other projects heavily rely on a particular person for their success.

In this approach, the manual system is replaced with a computerised one without change in overall structure of the former system. Hence the weaknesses of the former system are not addressed and are carried forward to the new system. For example, in a banking hall, a manual system is characterised by long queues and poor controls. If the traditional approach is followed, each cashier will simply be given a computer. The long queues might remain and lack of controls increase because no value was added to the former information system. This method is not recommended for today’s business environment.

Rapid application development (RAD)

Rapid application development (RAD) model evolved from the theory that businesses today heavily rely on information technology. Many information’ systems that were manual in nature are now fully computerised. Therefore, development and implementation of information systems needs to be quick enough for the organisation to maintain a competitive advantage in the market place.

Recent developments in programming software have seen the release of fourth generation languages (4GL’s) which are user-friendly because of their graphical interfaces. Rapid application development makes it possible for system developers to quickly capture user requirements by designing system interfaces in the presence of the user. This rapid application development technique is known as prototyping, and assumes that the user knows what they want when they see it. A prototype is a smaller working model of a real world system. Other approaches used in rapid application development include small team with advanced tools (SWAT) and joint application development (JAD).

The main disadvantage of rapid application development is that the working system may have oversights and weaknesses due to the quick Development. For example, a system may be working well but lack the necessary inbuilt security mechanisms. This would be undesirable in today’s insecure operating environment.

The structured approach

Structured approach to system development defines a set of stages that should be followed when developing a system. Each stage is well documented and specifies the activities to be carried out by the system analyst and his team while developing a system.

Stages of system development

The main stages in system 4evelopment as depicted by the structured approach include:

  1. Problem recognition and definition.
  2. Information gathering.
  3. Requirements specification.
  4. System design.
  5. System construction (coding).
  6. System implementation.
  7. System review and maintenance.

Figure 4.2 is a diagrammatic representation of the seven stages of the system development lifecycle (SDLC).

The stages of developing a system are also called the system development lifecycle. Each stage serves a role in the problem solving process. The lifecycle divides the life of an information system into two major parts namely:

  1. The development stage.
  2. The operation and support stage.

To demonstrate how to undertake each stage, we shall consider a case study.

Case study

Computer-based library management system

Mutito high school library has 3000 text books. Each book is identified by its author, ISBN number, book ID and title. The books are arranged on the shelves using their book ID. Card catalogues are maintained for all the books. There are two types of catalogues, one arranged according to the author’s names while the other is arranged according to the titles of the books. Each member is issued with three borrower cards that have a registration number and name of the member. To locate a book for borrowing, a member checks in the card catalogue for its classification then moves to the shelve to retrieve it. The member surrenders a borrower’s card .at the issue counter where the staff gives out the book and stamps the date of return. A member is not allowed to borrow more than three books at anyone time. Members are charged for overdue books at a fixed rate multiplied by the number of days delayed.

We now look at each of the stages of system development in more detail with this case study in mind.

Problem recognition and definition

Problem recognition is done during the preliminary investigation. During the recognition phase, the system analyst seeks to answer two questions. The first is whether the proposed project is worth looking at while the second is if the project is worth pursuing. After this, the system analyst has to define the scope of the project and establish the constraints, budget and schedule. The most common constraints are usually lack of finance, lack of enough expertise and/or lack of appropriate technology to develop the system.

Problem definition, also called problem analysis is the process of identifying the problem, understanding the problem and finding out any constraints that may limit the solution. This stage requires the analyst to find out as much as possible about the current system in order to draw up a good and relevant proposal for the new system. Remember that there is always an existing system whether manual or computerised. After this, several alternative solutions are modeled. The main question asked at this point is whether the proposed solution is the right one.

Looking at our case of the school library management system, the problem at hand is to replace the inefficient manual operations such as cataloguing with an efficient computerised system. The system analyst tries to answer the following questions.

  1. What are the shortcomings of the current systems?
  2. What types of records are used for books and students in the library?
  3. What procedure is followed to borrow/lend books?
  4. How are overdue books handled when returned?

In this first stage, a special study will be carried out to establish the costs and benefits of a new system. This study is called a feasibility study. A new system will only be developed if its benefits are more than its costs. The end of this stage is marked by presentation of a feasibility report to the management.

The feasibility of a system is assessed in four ways:

Operational feasibility: This establishes the extent to which the users are comfortable or happy with the proposed or new system.

Schedule feasibility: This establishes whether the development of the proposed system will be accomplished within the available time.

Technical feasibility: This establishes whether the technology available is sufficient or can be upgraded for the new system. It also seeks to find out whether the staff has relevant technical skills to develop and use the new system.

Economic feasibility: This establishes whether developing the new system is cost effective by analysing all the costs and benefits of the proposed system.

 

Information gathering

After the feasibility study report has been approved by the management, the system analyst can then proceed to the next stage referred to as information gathering or fact finding. Some of the methods used to collect or gather data include:

  1. Study of available documents.
  2. Interviews.
  3. Questionnaires.
  4. Observation.
  5. Automated methods.

 

Studying available documentation

The available documentation describes the current system and all its procedures. It forms a rich source of information for the analyst. Examples of such documents are card catalogues, receipts, reports, technical manuals, organisational charts and archival or backup files.

 

Interviews

Interviews should be carried with the relevant stakeholders in order to get views about the current system and gather information about the requirements for the proposed system. The interview method is powerful because it enables the analyst to have face to face contact with the interviewee.

Therefore in executing an interview, the following guidelines should be followed:

  1. The interviewee must be informed in good time and the topic of discussion communicated accordingly to allow for adequate preparation.
  2. Avoid personal biases in your questions and perspectives.
  3. Be careful about body language and proxemics. Proxemics refers to things like sitting arrangement, body closeness and how people react when their private distance is violated.

Figure 4.3 shows a verbatim introduction of sample interview with the library manager.

INTERVIEW TITLE

BRIEF INTRODUCTION         Interviewer: ……………

Interviewee:… .

Interviewer: Hello…………

Interviewee: Hello. Welcome to my office.

Interviewer: Thank you. Please call me Pat. I would like to ask you a few questions about the system that we are developing

Interviewee: …………………………………………………

…………………………………………………

…………………………………………………

Fig. 4.3: Example of an interview

 

Advantages of interviews

  1. Non-verbal communication like facial expressions can be used and observed.
  2. Questions can be rephrased instantly for clarification and to probe the interviewee further.

 

Disadvantages of interviews

  1. It is difficult to organise interviews and they are time consuming.
  2. The interviewee may not fully open up on some issues that may be personal or sensitive.

 

Questionnaires

A questionnaire is a special purpose document that allows a person to collect information and opinions from the people who receive and respond to it. The main advantage of using this method is that the questionnaires give the respondents privacy when filling them and they can do so at their own pleasure. This may enhance the sincerity of the information given.

Figure 4.4 below shows an extract of a questionnaire used to gather data from library attendants.

QUESTIONNAIRE

BRIEF INTRODUCTION                Date: …,………….

.

………………………………………………………………………

QUESTIONS

  1. How long have you worked as a library attendant:

1 yr.       2yrs.       over 2 yrs.

  1. How long does it take to rearrange books on the shelves?

days        weeks        months

Fig. 4.4: An example of a questionnaire

 

Advantages of questionnaires

  1. Since they are filled and returned in privacy, more sincere responses are possible.
  2. The respondent can fill the questionnaire at their own pace.

 

Disadvantages of questionnaires

  1. Good questionnaires are difficult to prepare.
  2. The respondent may not fully understand the questions because of ambiguity of language hence give erroneous responses.

 

Observation

Observation requires the observer to participate or watch closely as a person performs activities in order to learn about the system. This method gives the analyst first hand experience about the problems and exposes him/her to the system requirements. The main advantage of observation is that concepts that are too difficult for non-technical staff to explain can be observed. However, this method has some drawbacks too. These include:

  1. The person being observed might alter behaviour leading to wrong equirements being observed.
  2. The need to be on-site consumes a lot of time.

 

Automated methods

Automated data collection is mostly used when actual data is required but difficult to get through interviews, observation or questionnaires. Such data may be collected using devices that automatically capture data from the source such as video cameras, tape recorders etc.

 

Preparing and presenting the fact finding report

At the end of the information gathering stage, the analyst must come up with a requirements definition report that has the following details:

  1. Cover letter addressed to the management and IT task force written, by the person who gathered the facts.
  2. Title page which includes the name of the project, name of analyst and the date the proposal is submitted.
  3. Table of contents.
  4. Executive summary which provides a snapshot of how the new system is to be implemented. It also includes recommendations of the system analyst because some people will only have to read the summary to make decisions.
  5. Outlines of the system study which provides information about all the methods used in the study and who and what was studied.
  6. Detailed results of the study which provide details of what the system analyst has found out about the system such as problems, constraints and opportunities that call for an alternative.
  7. Summary which is a brief statement that mirrors the contents of the report? It also stresses the project’s importance.

This report is then presented to the management for evaluation and further guidance.

fig 4.5 shows a sample general outline of the fact finding report presented to the management of the school library and the head of the I

 

Library management information system

Fact finding report

1.0 Table of contents.

2.0 Executive summary.

2.1 Objectives: The new computerised system is intended to improve efficiency in the library by:

(a) Keeping an inventory of all the books in the library and automatically updating the stock hence eliminating the tedious physical counting         process.

(b) Reducing the time needed to seek for a book by 60%.

(c) Tracking overdue and lost books.

2.2 Recommendation:

This system could result in efficient processing of library transactions. It will replace the tedious manual system.

3.0 Methods used to study the system

3.1 Interviews: Used when seeking facts from management.

3.2 Questionnaires: Circulated to user staff.

3.3 Observation: Observed book search and issue.

4.0 Detailed results

4.1 Problems: Duplication of records, delays and book loss.

4.2 Opportunities: Efficiency, stock management etc.

4.3 Alternatives: Enforce controls in current system, more staff etc.

5.0 Summary.

The new system is highly recommended because the other alternative of enforcing controls and employing more staff will add operating costs with little additional value.

Fig. 4.5: A sample outline of a fact finding report

NB: The sample report is simplified for purposes of instruction at this level and should not be taken as a complete report. A complete report lay comprise of several bound pages.

 

Requirements specification

Requirement specification, the system analyst must come up with the detailed requirements for the new system. Remember that in the long run the hardware and software used to develop the system mainly depends on input, output and file requirements. For example, if one of the input requirements is that the system would require data in picture format then one input device that cannot be avoided is an image capturing device such as a digital camera or a scanner. At this stage the following requirements specifications are considered:

  1. Output specification.
  2. input specification
  3. File/data stores.
  4. Hardware and software requirements.

 

Output specifications

As opposed to data processing cycle where we follow the input-process-output m­odel in system development, consideration is given to the output requirements of the new system first. This is because; the main interest from a system is information (output). For example the management of the library in our case study is interested in whether the system can generate reports on overdue books, charges on late return, inventory etc.

The quality of system output depends on how well management and user requirements were identified. The Output is usually in the form of reports either in hardcopy or softcopy form.

The following factors should be put into consideration when designing the output

  1. The target audience. For example, top management would require a summary of overall performance in the organisation while a user report may show only the transactions carried out or transactions at hand
  2. The frequency of report generation. Some reports are required daily, others weekly, monthly or annually. However, some are required in an ad hoc manner i.e. at random.
  3. Quality and format: The quality and format of information to be generated should be put into consideration.

For our case study outlined earlier, the following outputs are needed from the library management system:

  1. A report about all the overdue books showing charges against each borrower.
  2. A search report for a particular book showing its classification and whether its on the shelve or not.
  3. A search report about a particular member showing which books he/she is currently holding. Table 4.1 below shows a sample report expected to be generated from the computerised library system showing all the overdue books.

       Table 4.1

  OVERDUE BOOKS    
ISBN Number Title Member

Name

Date

Issued

Date Due Overdue Days
1.9966495746

2. 9966 49 600 x

3. ……………

4. ……………

5. ……………

Computer studies

Mathematics 1

………………

………………

………………

James L. Wak

Linda Were

……………

……………

……………

10/01/2005

12/01/2005

……………

……………

……………

24/01/2005

26/01/2005

……………

……………

……………

6

4

……

……

……

 

Input specifications

Once the system analyst has identified the information (output) requirement of the new computerised system, he/she goes ahead to identify the input needed to obtain the relevant information from the system. In our case of the library, the following inputs can be deduced from the output specification:

  1. The type of data needed to add a book to the books file or database in the library. For example in the library database the following data items may be entered:

(a) Title of the book.

(b) Names of the author(s) of the books.

(c) The ISBN number of the book.

(d) Book ID

  1. Determine data that is needed for someone who wishes to borrow a book.

 

After identifying all the inputs, the analyst designs the user interface by designing data entry forms or screens. An example of an input form is the new member registration form as shown in Figure 4.6.

New member registration

Surname:

Registration number:

First name:

Gender:

Save
exit

 

 

 

Fig. 4.6: Data entry form design

The user interface is an important determinant of whether the system will be happily accepted by the users or not. Hence, it must be designed with a lot of care. The following guidelines should be observed:

  1. Objects placed on forms like text boxes, labels and command buttons must be neatly aligned and balanced on the form.
  2. The size of the form must not be too small for user legibility or too big to fit on the screen
  3. The colour for the interface must be chosen carefully to avoid hurting the eye. Avoid colours that are too bright.

 

File/data stores

File requirements specification involves making an informed decision on files required to store data and information in the system. The system analyst should identify the number of files that will be needed by the system and determine the structure of each of the files. For example, will the files allow direct access? Will the files be sequential files stored on a magnetic tape?

The attributes of the records in a file should also be identified. An attribute is a unique characteristic of a record for which a data value can be stored in the system database. If it is a student, one attribute can be the name and the other is the student’s registration number. For a book record, the attributes that can be identified include: Book ID, international serial book number (ISBN), the title, publisher, year of publication, date of issue and date of return.

However, only those attributes that are of importance to the system will be picked and used to store data for each record. In our case study for instance, we only need the Book ID, title, author, ISBN number, date of .issue and return.

These attributes will form the basis for table design in the database. Each attribute will become a field in the table. For example, there will be a Books table that will have fields for each record.

 

Factors to consider when designing a file

In order to design a good file, you need to consider the following aspects:

  1. The key attribute or field: This is usually an attribute that is unique for each record.
  2. The type of data: Each field has a data type. Book titles can be stored as data of type “text” while the date of borrowing a book as of the type “date” in the database.
  3. The length of each field: This is important because the longer the field, the slower the system takes to process transactions. A name field can be specified to be 30 characters long while the integer field can be 10 characters long. However, these vary depending on the system developer’s perception of how the system should store the data.
  4. Back up and recovery strategies: The updated copies of data and information files need to be stored in a different place other than the location of the current system. This makes sure that even if the current file gets corrupted or crashes, the backed up data can be used to recover or reconstruct the original file.

 

Hardware and software requirements

The system analyst should specify all hardware and software requirements for the new system. Some of the factors to consider in hardware and software specification are:

  1. Economic factors such as price and acquisition method.
  2. Operational factors e.g. reliability, upgradeability and compatibility with the existing resources.
  3. User-friendliness.

 

System design

There are several tools for designing an information system. Examples of such tools are flowcharts, data flow diagrams, entity relationship models and structured charts. In this book, we shall concentrate on the use of the system flowcharts as the primary tool for system design.

A system flowchart is a tool for analysing processes. It allows one to break process down into individual events or activities and to display these in shorthand form showing the sequential or logical relationships between them.

After drawing the system flowchart, other algorithm design tools like pseudo codes and program flowcharts can be used to extract the processing logic for each module in the system before system construction.

 

The system flowchart has many similarities to the program flowchart covered earlier in the book. However, it has its own set of symbols and it seeks to depict the whole system rather than the individual program modules. Figure 4.8 shows some common system flowchart symbols.

Other symbols that are of great importance at this level are as follows:

Rectangle with rounded corners: represents an event which occurs automatically and usually triggers a chain of other events. For example, the book lending process is triggered by a student request!

Kite: represents the sort operation.

Designing a system flowchart

Designing system flowcharts gives a concise picture of the way particular processes are done within the business organisation. After this has been achieved, the next logical step of making changes to the processes for the better can be handled easily.

Although there is no formal approach for designing a system flowchart, the following guidelines are important:

  1. Start by writing the title of the flowchart. For our case study, the title “Library Books Management Information System” could be sufficient.
  2. If possible, start drawing the flowchart with the trigger event. In this case, our trigger would be a student request to borrow a book or to return an overdue book.
  3. Note down the successive actions taken in their logical order until the event or process is concluded. Use few words to describe the actions.
  4. When there are many alternatives at the decision stage, follow the most important and continue with it. Other significant but less important alternatives can be drawn elsewhere and reference made to them by using the on/or off page connectors. Figure 4.9 shows the system flowchart for the proposed computerised library management system for the school.

Explanation

From the system flowchart, we observe that:

  1. A member e.g. a student requests for a particular book.
  2. The system checks for the students record in the system. If the student has more than three books, a message to this effect is displayed and cannot borrow an extra book.
  3. If the student has less than three books, then the book can be given out to him/her.

From the system flowchart, a program flowchart for a particular task can be extracted. Figure 4.10 illustrates the book lending process extracted from the library management system flowchart.

 

System construction

System construction refers to the coding, installation and testing of the modules and their components such as outputs, inputs and files.

The purpose of the construction phase is to develop and test a functional system that fulfils the business and design requirements. Indeed, programmers come in at this stage and are briefed on the system requirements as illustrated using various design tools in order for them to construct a computerised working model of the same.

System construction methods

There are a number of programming techniques that can be used to construct a designed system. These include:

  1. Using the high-level structured language such as Pascal, COBOL etc
  2. Using fourth generation languages (4GL) – These are easy to use programming languages. Some of the fourth generation languages            are Visual Basic, Visual COBOL, Delphi Pascal etc.
  3. Customising the standard packages – This involves the use of a ready made software package mostly a database software, financial package or enterprise management system.

Due to the varied approach to system construction available, Chapter 5 in this book introduces you to Visual Basic programming while Appendix I explains how a database package can be customised to construct a system. Figure 4.11 shows a data entry form constructed to enable entering a new book record into the library information database.

Testing the system

After construction, the system is tested by entering some test data to find out whether its outputs are as expected. The system is tested using the requirements specifications and the design specifications to find out whether it meets all requirements specified.

For example, if one of the requirements of the computerised library management system is to ensure that no member is allowed to borrow more than three books at the same time, it must do that without fail. Figure 4.12 shows a message box to this effect.

 

System implementation

System implementation is the process of delivering the system for use in day to day operating environment for the users to start using it. The areas to be addressed during system implementation include file conversion, staff training, and changeover strategies.

File conversion

Every time a new system is implemented, the format of data files might require modification or change. This process is referred to as file conversion. A new system may require a change in file format e.g. from manual to computerised. The factors to consider at this point are:

  1. Whether the new system requires a new operating system and hardware. The best practice today is to develop systems that do not need hardware change unless it is very necessary.
  2. Whether you need to install new application software. For example if you have developed a new system by Customising a database application software, you need to install that software if it is not installed.
  3. Whether you need to create new database files for the new system. For example, where files are manual, electronic ones will have to be made. However, remember that we strive to develop systems that are data independent too. That means that the systems can be changed without affecting the organisational data structures in the databases.

Staff training

Availability of appropriate documentation like user manuals goes a long way to make staff training easy, quick and effective. System implementation can fail if the staff are not trained properly leading to great loss of company resources.

Changeover strategies

Changeover simply means how to move from the old system and start using the new. Most businesses especially those that are driven by information technology need as smooth a changeover as possible. Some of the system changeover strategies are:

Straight changeover

In straight changeover, the old system is stopped and discarded and the new system started immediately. This sudden change of old to new means that the project faces higher risks in case the new system faces problems. This is because the old system would not be there to fall back to. The advantage of this method is that it is cheaper because you do not have to run the two systems in parallel. Figure 4.13 shows the straight changeover strategy diagramatically. At a time t, a switch is made from the old to new system.

Parallel changeover

In parallel changeover, both the old and new system are run parallel to each other for some time until users have confidence in the new system then the old system is phased out. This method is a bit costly because extra resources have to be engaged to run the two systems in parallel.

However, its lower risk to business operations and thorough testing of the new system are some of its advantages. This method is not suitable for large systems because of the high operational costs during changeover. Figure 4.14 depicts a parallel changeover process.

Phased changeover

In phased changeover, a new system is implemented in phases or stages. A good example is the way the education system is changed from the old to the new curriculum. Each year at least one class level changes over to the new syllabus.

Sometimes, one phase may run a new system for testing before it is implemented into all the other phases. This is called piloting. The main”, disadvantage of phased changeover is the danger of incompatibility between various elements i.e. hardware or software of the same system. However, its advantage is that it ensures slow but sure changeover.

 

Security control measures

Information and data security have become some of the most important aspects of information systems. A lot of careful planning has to be done in order to have what is called inbuilt security in the system. This is because information is under constant threat of being illegally accessed or disclosed to unauthorised parties. Therefore, the system implementers must make sure that the security features built in the system are properly configured during the implementation stage.

System maintenance and review

System maintenance is the adjustment and enhancement of requirements or correction of errors after the system has been implemented. Regardless of how well the system is constructed and tested, errors may be detected when the system is in use.

System review is a formal process of going through the specifications and testing the system after implementation to find out whether it still meets the original objectives. This act is sometimes called review and audit. If the system does not meet the stated objectives, system development might start all over again.

System documentation

System documentation is a life long process in the system development lifecycle. After a system has been implemented, any maintenance work must be documented in order to update the existing documentation. In this chapter, we have constantly provided sample documentation in every stage of system development using the school library management system case study. Generally comprehensive system documentation consists of the following:

  1. Report on fact finding
  2. Requirement specification
  3. System and module flowcharts
  4. Table/file structures description
  5. Sample test data and expected output
  6. Output reports

Reports on fact finding

At the end of fact finding stage, the system analyst should prepare a well detailed report that mainly outlines:

  1. The methods used to collect data.
  2. Weaknesses of the current system as evidenced by the collected data.
  3. Recommendations: Why there is a need to replace or upgrade the current system.

Figure 4.5 on page 104 shows a sample fact finding report for the school library system.

Requirement specification

The report on requirement specification outlines mainly the:

  1. Output requirements for the new system such as reports.
  2. Input requirements.
  3. Hardware and software required to develop the new system.

Table 4.1 on page 106 gives a sample report expected from a computerised library system, while Figure 4.6 on page 107 gives a simple illustration of an input form for new library members.

System flowchart

The system flowchart shows the overall functionality of the proposed information system. Therefore at the end of the designed phase, the system analyst should write a report that contains:

  1. The system flowchart or data flow diagrams that shows the processing logic of the information system.
  2. Any module flowchart that may help programmers in construction of the required subsystem or modules. a sample module flowchart.

Table file structures description

Depending on approach used in system construction, the report should contain file or table structure definitions. For example, if you opt to construct a system using customisation approach, details on table structures should be well documented (see Appendix I). Figure 4.15 shows a sample table structure of the Books table in a library system.

Sample test data

To test whether the new computerised information system is working as expected, you need to use test data for every module (subsystem). For example, in our library case study, we need to test sample data for books entry, book borrowing etc. Table 4.2 shows a sample test data that can be entered in the database whenever a book is borrowed.

Table 4.2

Last name Middle name Class Stream Book Date Return
        borrowed borrowed date
Mburu James 3 C Maths Form I 8/6/2005 26/6/2005
Janet Achieng 3 A Kamusi sanifu 23/6/2005 30/6/2005
Helen Mutua 4 B Elementary

chemistry

6/6/2005 24/6/2005
Ali Mohamed 2 A Computer

studies

6/5/2005 23/5/2005
Kerich Dennis I A Biology

form I

6/6/2005 24/6/2005
James Kamau 3 B Computer

studies

7/6/2005 25/6/2005

Output reports

To prove that the system is working and giving the desired result, you should provide a number of sample output from various system modules. Figure 4.16 shows a sample report showing a list of members who have borrowed books.

 

User manual

User manuals are supposed to help a person to use the system with as little guidance as possible. Therefore, the manual must contain information such as:

  1. How to install, start and run the system.
  2. How the system appears when running (interface).
  3. How to carry out various tasks e.g. in our case study, this would include new books entry, lending/borrowing, data entry etc.
  1. Error correction and how to get help when faced by exceptions. This would be in a troubleshooting guide.

Figure 4.17 shows a sample main menu screen switchboard from which the user can access other modules.

 

PROGRAMMING WITH VISUAL BASIC

Chapter outline

5.1 Introduction

5.2 Starting Microsoft Visual Basic

5.3 Features of Visual Basic Integrated Development Environment (IDE) window

5.4 Saving a Visual Basic project

5.5 Opening an existing project

5.6 Visual Basic fundamental concepts

5.7 Control structures

5.8 Working with graphical objects

5.9 Modules and procedures

5.10 Creating menus, messages and dialog boxes

5.11 List boxes and combo boxes

5.12 Visual Basic data structures

5.13 Linking Visual Basic forms to a database

5.14 Creating a Visual Basic executable file

Introduction

In the previous chapter, we studied how to develop a system using some system analysis and design methods without necessarily referring to any particular programming language. Therefore, we have been looking at what a system analyst ought to do rather than how a particular task should be done. In this chapter, we shall learn how to develop programs using Visual Basic programming language. Note that any other programming language can be used to develop programs. Therefore, as a leaner, you are at liberty to select any other programming language and learn how to use it to construct systems.

Definition of Visual Basic

Visual Basic (VB) is a graphical user interface programming language for creating software systems that run under Microsoft Windows environment. It is modeled in line with BASIC language which was originally created to help students learn how to program.

Visual Basic has the following features:

  1. It is an event driven programming language. An event is a response generated by the program when the user performs an action e.g. a mouse click. The response depends on the code held in an event procedure. An event procedure is a group of self contained statements that are executed by the computer when a trigger action is performed. For example, a mouse click may cause a menu to be displayed on the screen.
  2. It has a collection of tools that are used by programmers. These tools are called controls. The controls can be accessed easily by clicking their icons on the toolbox to select them.
  3. It has special objects called forms that have a title bar at the top. The programmer can then add controls such as a menu bar, status bar, toolbars, buttons, and slide bars to the form when creating an application.

Starting Microsoft Visual Basic

You can start Visual Basic from the Programs menu by pointing to Microsoft Visual Studio and then selecting Microsoft Visual Basic. Depending on the way the application has been setup, you may see the New Project dialog box

This dialog box allows you to set up a new project. You can set up several types of projects as shown by the different icons in this dialog box. However, for the purposes of learning, let us select the Standard.EXE project found on the New tab. Click the Open button. The application window will appear. This is the Visual Basic Integrated Development Environment (IDE).

Features of Visual Basic Integrated Development Environment (IDE) window

The Visual Basic application window (Figure 5.2) has many similarities to common windows based applications.

The following is a summary of the various features identified in the window:

The standard toolbar

Like in many other applications, the standard toolbar has the standard icons that are shortcut commands to the menu bar commands. Simply point to an icon and a text tip will appear telling you the name of the icon. Of great interest to us this time are the three commands of Start, Break and End.

To execute a Visual Basic project, simply click the Start button or select Start1from the Run menu. Execution of the program can be temporarily suspended by clicking the Break button. Resume the run by selecting Continue from the Run menu. Finally, the execution can be stopped by clicking the End button.

Forms and controls

Forms and controls are generally called objects. An object is usually associated with an event hence most objects have their own properties and methods. The properties define the appearance of the object while the method is a predefined action that can be set to occur or affect the object. For example show method makes a form visible on the screen.

The form design window is the place where the programmer does the actual design of the user interface for the program. This is accomplished by selecting the relevant control icons from the toolbox then placing them on the form design window. The control can then be moved and resized as desired by the programmer.

The entire form can be moved around on the screen by holding the title bar of the project container window then dragging it to the required position.

Project window

The project window displays a hierarchical list of files associated with a particular project. The files represent forms and program modules in the project. For example, Figure 5.2 shows a form whose title is Form 1.

Properties window

The properties window displays a set of various characteristics unique to each active object in the project. Some examples of properties include name, caption, colour, height etc.

When a new project starts, it is most likely that the form design window is active. In this case, the properties for the form will be displayed and can be changed by the programmer as appropriate. For example, we can change the caption of the form by clicking on the Alphabetic tab in the properties window then changing the value associated to Caption property from Form.l to say “Book Data Form”. Notice that the caption in the title bar of the active form changes simultaneously as you type the new name in the properties window.

 

 

Code editor window

Figure 5.2 shows that the project window has three icons at the top left hand comer. One of them is called the code view icon. Point to the icon with the mouse pointer and a tool tip will appear showing its name. If you click it, the code editor window opens displaying the code of the object that is currently selected. Alternatively, double click the object on the form for which you want to edit its code. The code editor window will open (Figure 5.4). In this case, we double clicked the form.

Form layout window

The form layout window allows you to specify the screen location of the form when the project is Executed. This can be done by dragging the form in this window to the desired location.

The Visual Basic toolbox

Visual Basic tool box has controls that enable a person to design and customise forms. Figure 5.5 depicts the toolbox.

Pointer: This is not actually a control but a tool used to select an object or objects to be worked on.

Picture box: A picture box is used to display graphical objects or text and to initiate event actions. It is similar to an image box but has more properties, redraws slower and cannot be stretched.

Label: A label displays text on a form. The text cannot be reassigned during program execution though its appearance can be altered.

Text box: A text box provides a means of entering or displaying text. The text may be already available or can be entered during the program execution.

Frame: A frame is a tool rather than a control used as a container for a group of controls.

Command button: A control used to activate an event driven procedure.

Check box: As opposed to the option buttons a check box is used if more than one selection are to be made.

Option button: Option buttons are used when one selection must be made before an action is carried out. For example, if you want to turn off a computer running on Microsoft Window 9x, check the shut down option button then click Yes/OK.

Combo box: A combo box is a special type of list box that combines the capabilities of a text box and a list box. It provides a list of text items for selection by the user during program execution. Items can also be added during program execution.

List box: The list box control provides a list of text items for selection by the user.

Horizontal scroll bar: A horizontal scroll bar is used for drawing horizontal scroll bars on a form.

Vertical scroll bar: A vertical scroll bar is used for drawing vertical scroll bar on a form.

Timer: Timer control allows timed events to occur repeatedly at a specific time intervals.

Drive list box: A drive list box provides a means of selecting a drive from a list of existing drives.

Directory list box: A directory list box provides a way of selecting a directory from a list.

File list box: A file list box provides a way of selecting files within a group of files.

Shape tool: A shape tool is used to draw circles, ellipses, squares and rectangles within forms.

Line tool: A line tool is used when drawing straight lines within forms.

Image box: An image box control is used to display graphical objects.

Data control: A data control when placed on a form provides a means of displaying information from an existing database.

NB The number of tools available on the tool box depends on the edition and release of Visual Basic you are using

Saving a Visual Basic project

Saving a project in Visual Basic is a bit different compared to other applications. This is because Visual Basic operation involves saving multiple files.

( a) To save a new Visual Basic project for the first time, select the Save project As command from the File menu. The Save File As dialog box of Figure 5.6 (a) appears. You will first have to enter a form name e.g. bookdata and then click the Save button. The form is saved as a file with extension .frm.

(b) After this, the Save Project As dialog appears. Type the name of the project and it will be saved as a file with extension. vbp (Visual Basic project

Opening an existing project

You can open a project when Visual Basic starts or from the file menu. To open a project during startup, from the New Project dialog box that appears when Visual Basic is starting, click the Existing tab. A list of existing projects will be displayed as shown in Figure 5.7

(a). Alternatively, if Visual Basic is already running, close all other projects then click the Open Project command on the File menu. The Open Project dialog box appears from which you can select the Existing tab. (Figure 5.7 (b)). Type the name of/or select the project to open.

Visual Basic fundamental concepts

Before going further into detailed discussion on how to develop programs in. Visual Basic, it is important to highlight some of the fundamental concepts used in Visual Basic.

Data types

Table 5.1 shows the data types supported by Visual Basic:

Table 5.1

Data type Description
Integer A whole number with no fractional part. Integers range

from -32768 to 32767.

Long integer Numbers which are integers but have a bigger value and

range. They range from -2,147,483,648 to 2,147,483,647.

Single

 

A single precision real constant includes a fractional part. The largest value is 3.4 x 1038
Double

 

It includes a fractional part but has far much larger magnitude than the single real number constant. However, it cannot be larger than l.2x 1 0308
String

 

Characters enclosed in quotation marks
Boolean

 

Data types that have only two logical states i.e. true or false.

 

 

­Constants

In programming, a constant is a value that remains the same. It does not change during the execution of the program. There are three types of constants: string, numeric and named constants.

String constants

A string constant can be defined as a sequence of characters enclosed in quotation marks. They are used to write non-numeric values like telephone numbers, addresses and names. The following are examples of string constants: “Holiday season”, “345678”, “Why don’t you call”, “$72.10”

Numeric constants

Numbers are usually referred to as constants in Visual Basic. In most cases, the numeric constants are either whole numbers (integer) or double or single. Some examples of numeric constants are:

0, 3, 6000 +70,   1.4E+2, 1.674,  -.00456,

Named constants

A named constant is identified by name rather than its actual value. In Visual Basic, the reserved word Canst is used to declare this type of constants e.g. Canst Price As Integer = 20, means that an integer value 20 is identified using the name price.

Variables

A variable is a memory location referred to by name used to hold a value that is subject to change during program execution. When a variable is declared in a program, the computer sets aside memory space to hold a value in the variable. The variable may be a numeric constant, a character, a string or any other data item.

In Visual Basic, the following rules should be followed when declaring variables:

  1. The variable name must not have more than 255 characters.
  2. The variable name must start with a letter.
  3. The letter case is not important when declaring variables.
  4. A variable name must not be a reserved word. A reserved word is a special word that Visual Basic understands as a command, internal function name or simply set aside for use by the program. Examples of reserved words are Case, Else, Dim, etc.
  5. Variable names should not have spaces.

A variable is declared using the reserved word Dim. Dim is the short form of the word dimension (size). It is used to associate a variable with a specific data type. For example to declare a variable that will store the first name of a student in a program, the following declaration can be used:

Dim FirstName As String

This means that the variable FirstName is of the type string.

Variants

A variant is a variable whose data type has not been explicitly declared by the programmer. In this case, the variable type will be determined by the value held by the variant. These types of variables are called variant type because their data type keeps on changing with the values they hold. Although this may sound okay, it is not a good programming practice. All variables should be explicitly declared.

Scope

The word scope refers to the level of the program that a variable, a constant or a procedure is recognised. The scope of a variable constant is said to be global or local. The scope of a procedure variables or constants is set by declaring it as either private or public. The following terms are used in this regard:

  1. Private subprocedure.
  2. Public subprocedure.
  3. Global variables/constants.
  4. Local variables/constants.

A public procedure can be accessed from any module or form in the program. However, a private procedure is accessed in the module or form within which it is declared.

A variable or constant that is declared within a procedure is said to be local. This means that it can only be accessed within that procedure. However, a variable or constant that is declared outside the standard module but within the same project is said to be global. Such variables can be accessed by all procedures within the project.

If a public procedure is to be accessed from a module or a form other than the one it is contained in, the form or module name must be preceeded by the module containing the definitions i.e. GlobalModuleName.Active FormName (Arguments).

In Visual Basic, to declare variables as either private or public use the syntax:

  1. Private X As Integer
  2. Public Y As String

In the first declaration, the private variable X can only be accessed in the module within which it is declared. In the second example, it can be accessed by other subroutines in the same project.

User defined data types

Sometimes, a programmer may want to have a single variable that can store several data types as a unit. Such a data type whose individual components are standard data items are referred to as user defined data types. Some examples of user defined data types are records, arrays, enumerated types, lists etc. They are user defined because it is the programmer who creates them in the program. Each element or member can be accessed individually by using a period between the user defined variable and the member name e.g. if a record known as schoolrecord has a name field, then to access the name field, a programmer will type schoolrecord.name in the code.

Using suffixes to declare variables and constants

Suffixes are special symbols appended to the end of a variable or constant name in order to associate them with a particular data type. It makes programming easier and faster. Table 5.2 summarises some common

suffixes.                                     Table 5.2

    Examples  
Suffix Data type Long declaration Short declaration
% Integer Dim A As Integer A%
! Single Dim X As Single X!
$ String Dim Q As String Q$
& Long integer Dim C As Long Integer C&
# Double Dim P As Double P#

Mathematical operators

In order to write correct mathematical expressions, you need to understand some of the operators used in Visual Basic. These include arithmetic, relational and logical operators.

Arithmetic operators

Arithmetic operators are special symbols that are used to write arithmetic expressions like addition, subtraction, division and multiplication. However, it is also possible to carry out other mathematical operations using other operators. Table 5.3 shows a summary of symbols used in arithmetic operations:

Table 5.3

Symbol Name Operation
+ Plus sign Addition
Minus sign Subtraction
* Asterisk Multiplication
/ Slash Division
/\ Caret Exponentiation
Back slash Integer division
MOD Modulus Integer remainder

NB: The last two rows in the table can be explained as follows:

  1. In an integer division, each of the numbers being divided is first rounded to become an integer then the quotient is truncated to an integer. For example, 2.4/3.5 will result in 2/4 being evaluated.
  2. The MOD operator returns the remainder of an integer division. For example, 4 MOD 3 returns 1 and 5MOD3 returns 2.

Operator precedence/hierarchy

Arithmetic operators in Visual Basic have the following order of precedence when used in a program. Notice that the order may not be the same as that of algebra in mathematics. Table 5.4 illustrates how to carry out operations.

Table 5.4

precedence symbol Explanation
1 Exponentiation All exponential expressions are performed first
2 Multiplication/division Carried out after exponentiation; left to right In an expression.
3 Integer division Done after all multiplication and normal division operations
4 Integer remainder Done after integer division
5 Addition and subtraction Are carried out last, left to right.

For example write down the order of evaluation of the following expression:

(b /\ 2 – 4 * a * c )/2 * a.

Relational operators

A relational operator is used in an expression that returns a true or false value when evaluated. The operators can compare numeric variables, constants or expressions. Table 5.5 shows a summary of relational operators used in Visual Basic.

Table 5.5

Operator Name
= Equal to
<> Not equal to
> Greater than
< Less than
<= Less than or equal to
>= Greater than or equal to

 

The following are examples of relational expressions:

  1. Y < > 100 2. Y> 60    3. S< = sqr(G + V) 3. Loss = (Expenses – Profit)

The expression in 1 will evaluate to true if y is not equal to 100 otherwise it will evaluate to false.

A decision construct in a program based on a relational expression would make a decision depending on the outcome of the evaluation.

Logical operators

Logical operators are used to combine expressions to form compound expressions. Table 5.6 summarises some common logical operators used in Visual Basic.

Table 5.6

Operator Operation
And Results in a condition that is true if both expressions are true.
Or Results in a condition that is true if one of the conditions is true or both are true.
Xor Results in a condition that is true if one of the conditions is true and the other is false.
Not Negates the value of a logical expression.

For example:

  1. (x = 30) AND (student = “John”)
  2. IF (x = 20) OR (y = 30) THEN
  3. IF x NOT 0 THEN

The assignment statement

An assignment statement is an executable statement that assigns whatever is on the right of the assignment operator to the variable on the left. In Visual Basic, the assignment operator is the equal sign (=). A variable can be assigned a value as follows:

Variable = Expression

Examples of assignment statements are:

  1. P = 0.25 2. E = M*C”2                3. Area = 1/2 * base* height 4. X = X + I

NB: The last statement on the right (X = X + I) does not make mathematical sense. Yet, this is the beauty of the assignment statement in programming. The statement can be interpreted as follows:

Add 1 to the original value of X and assign the sum to X.

The Print statement

The Print statement displays data on the active form of your Visual Basic project. It can be used to display processing results of a program. If you run the project, you will notice that the result of the Print statement starts being displayed in the top left comer of the form. The structure of the Print statement is:

Print VariableName (this prints out the value held in a variable).

or

Print “String”

(this prints out the string between the two quotation marks. If there is nothing between the two quotation marks, a blank line will be the output)

The skeletal code listing below shows a sample code that displays the values stored in the variables StudentName, TotalMarks and AverageMark on a form.

Private sub Form_Load ( )

Dim StudentName As String, TotalMarks As Single, AverageMark As Single

…………

StudentName = “Edward”

 TotalMarks = 1000

AverageMark = 200

……………

Print, StudentName, TotaIMc;zrks,AverageMark

End sub

The following output will be displayed on the form: Edward 1000 200

NB: The use of a comma to separate the various elements to be output by the Print statement makes them to be widely spaced on the screen. To have a compact display with the various outputs close to each other, then use a semicolon to separate the various elements e.g. Print StudentName; TotalMarks AverageMark would display

Edward       1000           200

Library functions

Library functions are modules that have been pre-written and included in the Visual Basic language. A function performs a single task like calculating a mathematical expression then returns a value. A function will usually have a name and can be called when needed to perform a particular task. Visual Basic has many library functions. A library function is accessed by stating its name followed by the information that must be supplied to the function enclosed in parenthesis. This process is called calling a/unction. The values held in the parenthesis are called arguments. When the function is called, it uses the supplied arguments to perform an operation and return a value. Table 5.7 shows a summary of some the library functions used in Visual Basic.

Table 5.7

Function Call Description
Date z = Date ( ) Returns the current date
Exp z = Exp(w) Returns the value of eW
Sqr z = Sqr(w) Returns the square root of w
Log z = Log(w) Returns the natural logarithm of w
Str z = Strew) Returns a string whose characters are w e.g.

Str(6.80) = “6.80”

Cos z = ‘Cos(w) Returns the cosine of w
Abs z = Abs(w) Returns absolute value ofw e.g. Abs(-8) = 8
U case z = Ucase(w) Returns the upper case equivalent of w
Int

 

 

z = Int(w) Returns the largest integer that is algebraically less than w e.g. Int(2.2) = 2
Time z = Time Returns the current system time.
Format z = Format Formats the output to appear as stated.

Using the format function

The format function helps the programmer to display data in many different formats. Table 5.8 below shows how data can be formatted.

Table 5.8

EXPRESSION SAMPLE FORMATTED OUTPUT
Print format(16.778994,”##,##”) 16.78(notice the rounding)
Print format(now, “mm-dd-yyyy”) 1-20-2006
Print format (15678, “##,###.00”) 15,678.00
Label1.caption=format$(sprice, “##,###,##”) 10,630.75

 

NB: The dollar sign may be used with the format function depending on the type of output required. In the last row of the table, the formatted output is displayed on a label control.

Program comments

Comments are English statements included in the code to document a program. The comments are not executed when the program is running. In Visual Basic, a comment starts with a single apostrophe (‘) followed by the comment statement. For example:

X = Sin(p) ‘find the sine of p and store it in X

Print X        ‘display the value ofX on the screen

Converting a numeric string to a value

If you enter a number in a text box, the best way to convert it into a value is to use the Val function This is because the computer treats anything typed in the textbox as a string. The Val function operates on the string and returns a numerical value.

Hence, if the name property of a text box is set to txtLength, then the number typed in it can be read as a value into a variable x as follows:

x = Val(txtLength.Text)

Converting a value to a string

Assuming a particular variable has a numeric value and you wish to display the value in a text box, then you have to convert the value to a string first. Suppose that the name of the text box is txtArea and the integer variable is x then:

txtArea.Text = Str(x) ‘ display the value in x as a string in txtArea.

 

Project 5.1

Create a program that can be used to calculate the area of a rectangle. The program should prompt the user to enter the length and width of the rectangle. Figure 5.8 shows an overview of such a program.

 

 

To create the project, proceed as follows:

  1. Open Visual Basic and select the Standard.EXE from the New Project dialog box. A blank form will be displayed as shown in Figure 5.9.

 

  1. Place the necessary controls on the form. We need three text boxes and two command buttons. Double click the text box tool on the toolbox then the command button. The controls are automatically placed on the form and are given default names like Text! and Commandl. Add another command button. Use the shape tool to place a rectangle on the form. Drag the controls to the desired location on the form and repeat the process until you have the interface as shown in Figure 5.10.
  2. The next step is to define the set of properties for each control. To do this, right click the control then click properties. Set each control properties in the properties window as shown in the Table 5.9 below:

Table 5.9

Object Property Value
Label1 Caption

Name

“Rectangle”

IblRectangle

Text1 Font

Name

Text

Arial

txtLength

(blank)

Text2 Font

Name

Text

Arial

txtWidth

(blank)

Text3 Font

Name

Text

Arial

txtArea

(blank)

Shape Shape

Border Width

FillStyle

FillColor

0- Rectangle

2

4-Upward Diagonal

Blue

Commandl Caption

Name

Font

Exit

cmdExit

Arial

Command2 Caption

Name

Font

Calculate

cmdCalculate

Arial

 

 

NB: The conventional way of setting the name property of any object in Visual Basic is to use object prefixes such as txt for text or boxes, lbl for labels, cmd for command buttons etc.

  1. After setting the properties, we can now write the event procedures that calculate the area of the rectangle once values are entered in the txtLength and txtBreadth text boxes. To write the code, double click calculate button and add the code listing between Private sub cmdCalculate click and the End sub.

Dim L As Single, W As Single, A As Single

 L= Val(txtLength. Text)

W= Val(txt Width. Text)

A=L*W

txtArea= Str( A)

For the cmdExit button, just write End between Private sub cmdExit click and the End sub.

Figure 5.11 shows how your code should look like in the code window.

 

 

 

  1. Run the project. Enter a value in the txtLength and another in the txtWidth text boxes then click the Calculate button. Notice that the area of the rectangle is displayed as shown in Figure 5.12.

 

Explanation

  1. The first line declares the variables needed for the program to run and store values.
  2. The second and third lines assign the values in the text boxes called txtLength and txtWidth variables Land W respectively.
  3. The second last statement calculates the area of the rectangle while the last uses a function Str to display the result as a string value in the textbox named txtArea.

Adding more forms to a project

Sometimes a Visual Basic project may require the use of more than one form. To add a form to a project, the following procedure is followed:

  1. Click the Project menu then select Add Form command.
  2. In the dialog that appears, select the type of form you want to add from the New tab then click Open button.

 

Control structures

In Chapter 3, we introduced the three control structures that determine the execution of statements in a program. In this topic we shall discuss how these controls are implemented in Visual Basic.

Selection

The most common selection controls used in Visual Basic are:

  1. IF…… THEN.
  2. IF…. THEN…… ELSE.
  3. Nested IF.
  4. CASE selection.

The IF…THEN selection

The IF. . . THEN selection is used to execute a single statement or a group of statements that represent only one alternative or option. This means that some circumstances have only one option for selection depending on whether a condition evaluates to true or false. For example IF y = 80 THEN

Print (“……..”)

END IF

The statements in the If…Then…End If will be executed if the value of y is equal to 80 otherwise the whole block will be bypassed and the statements after END IF will be executed.

IF…THEN…ELSE selection

The IF… THEN.. . ELSE allows the execution of two alternatives or options depending on whether the test returns a true or false. Consider the following example:

IF average> 80 THEN

Print(“Excellent work! Congratulations”)

ELSE

Print(“Work harder next time”)

END IF

In this case, the statements starting with  ‘Excellent Work!….. ‘ will be displayed on the screen if the average is greater than 80. Otherwise, if average is less than 80, the statement “Work harder next time” will be displayed on the screen.

Nested IF selection

Nested IF selection is used if there are more than two available options to choose from. The general format of Nested IF is

IF <condition> THEN

Statements

ELSE IF <condition> THEN

Statement

ELSE IF <condition> THEN

Statement

ELSE <condition> THEN

Statement

 

Project 5.2

Write a program that can be used to find the roots of a quadratic expression.

ax2 + bx + C = 0

The formulas to solve the values of x in this expression are:

 

Xl = -b -sqr(b2 – 4ac)

2a

X2 = -b -sqr(b2 – 4ac)

2a

X=-b

2a

i.e.b2 – 4ac = 0 or b2 = 4ac

To create the project, proceed as follows:

  1. Test whether b2 is larger than or equal to 4*a*c. If it is true, then:
  2. Create a new project that would be used to calculate the values of x, Xl and X2 also called roots of the quadratic equation.
  3. In the appropriate event procedure e.g. the calculate button, add the code listed below:

‘Calculating roots of a Quadratic Equation

Dim a,b,c As Integer

Dim z,X,X1,X2 As Double

z=(b^2-4*a*c)

IF z> 0 THEN

X1=(-b+Sqr(d)) / (2*a)

x2 –x1=(-b-Sqr(d)) / (2*a)

ELSE IF z= 0 THEN

       x = -b / (2*a)

ELSE IF z= 0 THEN

Print (“This quadratic equation is not soluble”)

END IF

ENDIF

ENDIF

 

Explanation

  1. The expression b/\2-4*a*c is first assigned to a variable z.
  2. z is then tested if it is greater than zero. If greater, the program calculates the values of Xl, X2 and x. Otherwise a message “This quadratic equation is not soluble” is displayed.

The Case construct

As discussed earlier in control structures of chapter 3, the Case construct is used to reduce the tedious work of coding associated with the nested IF… construct. Let us look at a case statement that can display the name of a weekday when its number is provided.

‘Display weekday

Dim D As Integer

SELECT CASE D

CASE 0

       Print(“Sunday”)

CASE 1

       Print(“Monday”)

CASE 2

       Print(“Tuesday”)

CASE 3

      Print(” Wednesday”)

CASE 4

      Print(“Thursday”)

CASE 5

      Print(“Friday”)

CASE 6

       Print(“Saturday”)

CASE ELSE

       MsgBox(“Error -That is not a day in the week”)

End SELECT

Looping construct

In Visual Basic looping instructs the computer to execute the same block of code many times before a particular condition is met. Common looping constructs used in Visual Basic are:

  1. DO loop.
  2. WHILE…Wendloop.
  3. FOR loop.

DO loop

There are four ways of writing the Do loop. Two of the constructs require the condition to be tested first while the other two require that the condition be tested after the statement within the construct is executed at least once. The general formats of the four Do constructs are:

  1. DO WHILE <condition>

Statements

Loop

 

2.DO Until <condition>

Statements

Loop

  1. DO

Statement,

Loop UNTIL <condition>

 

  1. DO

Statements

Loop WHILE <condition>

 

Explanation

The Do While. ..Loop in 1 continues to execute as long as the condition is true. The Do Until. ..Loop in 2 continues to execute as long as the condition remains false. The loop in 3 executes the statements at least once as long as the condition is not true. Lastly, the loop in 4 executes the statements within the construct at least once as long as the condition remains true. for the first two DO statements, the test of the condition is done at the beginning of the loop hence avoiding execution of any statements in the loop as long as the condition required is not met. On the other hand, the last two loops allow a pass through the loop at least once before the condition is tested.

example 5.1

Write a program using the DO loop that will write numbers between 1 and 20 on the screen then stop. Save the project as Example 5.1.

Solution

  1. Double click the form to display its code window
  2. Add the following code listing between the Private sub form-load and

End sub.

x=O

Counter=O

DO WHILE counter<=20

x=x+1

Counter=counter+ 1

Print x

Loop

NB: All the other DO loops can be easily implemented with little effort following the general format provided.

Looping with While-Wend

The While..Wend construct can be used in place of a Do While loop. The general format of this construct is:

While <condition>

Statements

Wend

As with the Do While loop, this loop executes the statements within the construct as long as the condition is true.

Practical activity 5.1

Open the project for Example 5.1 and replace its code with the code below.

Dim x As Integer, Counter As Integer

x=O

Counter = 0

While counter<=20

x=x+1

counter=counter+1

Print x

Wend

Save the project as Example 53.

The FOR – NEXT loop

The FOR – NEXT Loop executes the statements within the construct a predetermined number of times. The general format of the FOR – NEXT

Loop is:

For index = lower limit To upper limit                         ‘sets upper and lower limits

statements

Next index                                                  ‘increments index by 1.

You can set the STEP value of the index as follows:

For index = lower limit To upper limit STEP 2

statements

Next index                                        ‘STEP increments index by 2.

The FOR construct is very suitable for accessing values in a list or array because of their sequential nature.

 

Practical activity 5.2

Open the project for Example5.3 and replace the code with the listing below:

Dim Number As Integer, Counter As Integer

Number= 0

For counter= 1 TO 20 STEP 2

Number= Number +  counter

Print Number

Next counter

 

Working with graphical objects

To add a picture or object on to a form, simply click the picture box or the image tool on the toolbox and then drag to define the area where you want the picture to be placed. Right click the object and then click properties. Set the Name and Path properties. The Path property tells the control where the picture is located.

Notice that after setting the properties, the picture is displayed on the form. If it is lying on top of other controls and you want it to be the background, right click it then select Send to Back.

Modules and procedures

Large projects must be made modular in nature to enhance maintenance and independence of the various blocks of code. The three main modules used in Visual Basic are explained in Table 5.10.

Table 5.10

Module Definition
Standard modules Their declarations and procedures can be accessed

by other modules. They are usually stored in files

that have the extension. bas You can create a standard

module by clicking Project then Add Module.

Form module Are stored as files with extension frm Each form

may have many procedures and controls. To add a

form to the project, click the Project menu then

Add Form.

Procedures These are events or self contained blocks of code

or commands that can be accessed and used by

programmers. The called procedure will normally

carry out a specific function it was designed to do. Subroutines and functions are examples of procedures.

Declaring general subroutines

So far, we have mainly discussed event driven procedures. Visual Basic also lets the programmer create general procedures that can be called within another procedure (subroutine). The general format of a general purpose subroutine is:

Sub SubroutineName( )

statements

End Sub

Example 5.2

Write a general subroutine that would solve y = xn , given that the values of n are integers.

Solution

Sub Power of Number ( )

Dim x As Single, y As Single, n As Integer y = x^n

Print y

End Sub

Explanation

The above general subroutine is given the name PowerofNumber. To call the subroutine in another procedure such as an event procedure, simply use the call statement. For example, to call the subroutine in the cmdCalculate _Click event procedure, type:

Call PowerofNumber () or Power Of Number ()

The code is executed once the command button for the cmdCalculate click event procedure is clicked.

Project 5.3

Consider a subroutine that will determine the largest of two numbers. Use the code listing below to create a proj ect that can be used to determine the lagest value once the user clicks a command button.

Sub Largest ( )

Dim Larger As Integer, x As Integer, y As Integer

If (x>y) Then

Larger = x

Print (“The larger number is: “,x)

Else If (x<y) Then

Larger = y

Print (‘The larger number is “,y)

Else

       Print(“Both numbers are equal”)

   End If

 End If

End Sub

To create the project, proceed as follows:

  1. Open a new project and save it as LargerNumber.vbp. Save the form as LargerofTwo.frm. Set the objects properties for the three labels (Tabe 5.11) and design the interface as shown in Figure 5.13.

Table 5.11

Control Properties Settings
Labell Name

Caption

lblLarger

Larger between

Label 2 Name

Caption

lblx

x

Label 3 Name

Caption

 

y

Text! ,2,3 Name

Text

txtLarger, txtx, txty

(blank)

Command 1 Name

Caption

cmdExit

Exit

Command2 Name

Caption

cmdCompare

Compare

 

Double click the Calculate and Exit buttons and add the codes as shown:

 

Option Explicit

Dim x As Single, y As Single

Private sub cmdCompareXY- Click ()

X = Val (txtX Text)

Y = Val (txt Y. Text)

        call Largest                  ‘calls a procedure named Largest that

End Sub                                      passes the values of x and ythe

                                                          procedure.

  1. Create a general subroutine called Largest and write the code listing below:

Sub Largest ( )

Dim Larger As Single

If (x > y) Then

Larger = x

txtLarger = x

ElseIf (x < y) Then

Larger = y

txtLarger. Text = y

Else

txtLarger. Text = “The numbers are equal” End If

End Sub

Private Sub cmdExit Click()

End                                                 ‘code for the  exit button

End Sub

This code will appear as shown in Figure 5.14. The call statement in the cmdCalculate makes the Largest Sub procedure to be executed once the End sub is encountered, the control is returned back to the next statement often the procedure call.­

 

  1. Click the run button and enter a value in the text box labelled X and the other in Y. Figure 5.15 shows that the value of Y i.e. 50 is larger than that of X.

Creating menus, message and dialog boxes Menus enable the users to quickly select commands while dialog boxes enable the user to enter values and make selections when working with the computer.

Drop down menus

Drop down menus are the most common menus found in applications. When a menu is selected, a drop down list of commands is displayed.

For example to create a menu bar with the menu items File, Edit and Format with commands for each menu item as shown in the Table 5.12 below.

Table 5.12

Menu File Edit Format
Commands open

Save as

Exit

copy

Cut

Paste

font

Background

Cells

Proceed as follows:

  1. Click the Menu editor command on the toolbar. Alternatively, from Tools click the Menu Editor command. The menu editor window opens.
  2. Under caption, type the word File. This is the screen name of the menu item.
  3. In the Name box enter mnuFile. This is the name that will be used to refer to the File item when coding.
  4. Under Shortcut, select a shortcut key combination. This is optional.
  5. Click Insert button and notice that the cursor moves to the next line.
  6. Type Open in the Caption box and mnuFileOpen in the Name box.
  7. Click the flush right button to insert four dots to the left of Open i.e.

File

………. Open

This means that Open is an item of the File menu. Repeat steps 1 to 4 for all the items then click the OK button. Your complete set up should appear as shown in Figure 5.16 below.

  1. Click OK to close the menu Editor window and go to form design. You will notice that your form now has a menu bar at the top as shown in Figure 5.17 below. Clicking the File menu displays a list of the options that you defined.

It is now possible to activate the menu commands by adding code in their event procedures. To do this, simply click a menu option while in design view and the code window opens in which you can add its code.

 Message boxes

A message box is a special type of dialog box used to display a message to the user. To display a message box, use the syntax:

MsgBox “Message string”, Button/icon, “Title bar Caption”.

For Example: MsgBox(“Drive not Ready. Retry?”, vbRetryCancel + vbQuestion, “Drive Error”)

Displays a message box (Figure 5.18) that tells user that the drive is not ready. Note the Retry and Cancel buttons, the Question mark in the dialog box and “Drive Error” on the Title bar.

Table 5.13 outlines some of the buttons/icons used in Visual Basic

Table 5.13

button Constant
OK vbOKonly
Critical message icon vbCritical
Critical query icon vbQuestion
Warning message icon vbExclamation
Information message icon vbInformation

Dialog boxes

A dialog box enables the user to have a “dialog” with the computer i.e. to exchange information with the computer. You have seen these many times when you try to open or save a file; a dialog will always pop up asking you to fill or select some options. A dialog box is a special purpose form. It is usually accessed when a menu item is selected. Most dialog boxes have common controls like option buttons, list boxes and command buttons.

Simple dialog boxes

Visual Basic enables the user to create forms that can be used as dialog boxes. However, they are secondary to the primary form that is used to access them. Such a form is referred to as a modal form. This means that the form remains on top of the active form until the user clicks the OK or cancel button. To add a modal form to your project, use the Load form command. For example, if the name of the form is Form3 then the Load Form3 command will display the form into the current project. To stop the form from executing, use the unload command i.e. Unload Form3.

In most cases, a form that is loaded may not even be visible in the project window. To make it visible, simply use the Show method. Remember that a method carries out actions on objects. For example to display Form 3, use the syntax Form3.Show. To show the form as modal, use Fonn3.Show l or Form3.Show vbModal.

Project 5.4

Open a project on which you created the menu bar and do the following:

  1. From the project menu click Addform then click New from the Add Form dialog box.
  2. Select dialog A form with two command buttons ie Ok and Cancel is added to your project. Notice in the Project Explorer window that a new form called Form2 is placed hierarchically below the first form.

Change the form caption and name appropriately.

  1. From your main form file menu click the Open command.
  2. In the menuFileOpen code window that opens add the code as shown in Figure 5.19.
  3. Close the code editor window and run project. Notice that when you click File then Open the dialog box you created is displayed on top of Form 1 (Figure 5.20). Because of the Show 1 method, you cannot access the main form until you click ok or cancel button on the dialog box.

Directory list box

You can also add a directory list box on a form. To do this, proceed as follows:

  1. In the Project Explorer window, double click Form2 to open it in design view.
  2. Double click the DirListBox on the toolbar to place it on the form.
  3. Run the project and select the Open command from the File menu, you will be able to browse all the directories on your computer using the dialog box that you just created.(Figure 5.21).

Common dialog box control

Microsoft common dialog control is a component used to add dialog’ boxes such as Save As and Open onto a form. The common dialog control I is not available on the toolbox unless it is added. To add it, click Project then Components. The components dialog box as shown in Figure 5.22 will appear. Select the option Microsoft common dialog control as shown, then click the Apply button. Close the components dialog and check your toolbox for the new icon called common dialog.

Project 5.5

Using the common dialog box control, create a project that can be used to display the open and save As dialog boxes. To create the project, proceed as follows:

  1. On the form, create a menu bar with menu items File, Edit and Format and two command buttons with captions open and save as shown in Figure 5.23.
  2. Right click the common dialog control on your form to display its properties window. Set the name property e.g. commonDiagl.
  3. Double click Open from the File menu or the Open Command button on the design form then add the statement below between the Private sub and End sub.

CommonDiagl.ShowOpen

  1. Double click the mnuSaveAs or the Save Command and type the code CommonDiag I. Show Save

Save the project and run the form. Notice that if you click the Open command or button when the form is running, the Open dialog box opens as shown in Figure 5.24.

In the same way a Print dialog box can be called by adding the following to a menu or button event: CommonDiag 1.ShowPrint

Other dialog boxes supported by common dialog box are Show Color

and Show Font.

List boxes and combo boxes

List boxes and combo boxes are used to display a list of items the user can select from.

List boxes

A list box enables the user to select an item from a list of entries. Selecting an item on a list during runtime causes the value of the selected item to be assigned to the ListIndex property. The ListIndex is an integer with a range of 0 to n-I where the second item corresponds to index 1. Items can be added to a list using the AddItem method or using the list function.

Project 5.6

Create a project that leads a list of items into a list box when the form is loaded.

To create the project, proceed as follows:

  1. Place the list box on the form and then drag it to the expected size.
  2. Double click the Form and add the following code window in the Form_Load() event procedure:

Listl.List(O) = “Nairobi”                    Listl.Addltem(“Nairobi”)

Listl.List(1) = “Kisumu”                     Listl.Addltem(“Kisumu”)

Listl.List(2) = “Mombasa”                 Listl.Addltem(“Mombasa ”)

Listl.List(3) = “Bungoma”         or      Listl.Addltem(“Bungoma”)

Listl.List(4) = “Nyeri”               Listl.Addltem (“Nyeri”)

Listl.List(5) = “Nakuru”            Listl.Addltem(“Nakuru ”)

Alternatively you can add the items in the list property of the list box. To do this, display the list properties window, in the list property, enter the items. To move to the next line, during item entry, press Ctrl + Enter. Figure 5.25 shows the item list assigned to a list box using the properties window.

  1. Run the project. You will notice that the list builds dynamically as you click in the box when the form is running.

NB: The ListIndex and ListCount properties are very important. ListIndex can be used in CASE selection construct to point to the most recently selected list entry. For example,

Select Case Listlndex

       Case 0           ‘first entry in list corresponds to 0, not 1

“Nairobi”

Case 1

“Kisumu

Case 2

       “Mombasa”

Case 3

……….. ”          ..

End Select

On the contrary, the ListCount property shows the number of entries in a list and it starts from 1, not O.

Combo boxes

As opposed to a list box, a combo box allows the user not only to select but also make a new entry into the list of items.

Project 5.7

Create a project that loads a list items into a combo box when the form is loaded.

To create the project, proceed as follows:

  1. Place the combo box control on the form.
  2. Open its properties window and in the List property add the following items:

“Red”

“Yellow”

“Green”

“White”

“Black”

  1. Run the project to load the form. Click the down arrow on the combo box to view the list of item as shown in Figure 5.26 below.

Visual Basic data structures

Apart from using simple data structures such as Integer, Single, Double etc., Visual Basic comes with features that allow the programmer to create complex data structures. These include arrays, records and files.

Arrays

An array is a data structure that stores several data items of the same type hence it is called a homogeneous data structure. Table 5.14 shows how data of type Integer is stored in an array.

The array has cells. The numbers 0 to 5 are called array indices or subscripts. In Visual Basic, an array starts from cell 0 as shown in the table.

Declaring an array

To declare an array, use the statement Dim ArrayName (n), where n stands for the number of elements in the array. For example:

Dim Scores (4) is an array that holds five elements. An element is an item in an array that can be accessed using the array variable name and a subscript. For example, consider an array of 5 elements called Scores. To display the 4th element use:

Score4 = scores(3)

Print Score4

The value stored in the variable score4 is printed on the form. To store a value in an array variable, use the statement ArrayVariable (index). For example, to assign a numeric constant 90 to the fifth cell use

scores( 4) = 90

This statement will assign a value 90 in the cell 4th of the array.

NB: If the array was very large and you wish to read or enter values in it,

it would be very tedious entering a value cell by cell i.e. Score(O) = 10

Score( 1) = 20

Score(3) =30

Score(n) = x

To avoid this, the For.. loop can be used. Remember that this loop is used where the number of iterations are pre-determined hence its suitability for use with arrays.

For example, if you wish to request the user to enter six values in array named A, the following FOR loop can be used:

Dim A(5) As Integer

Dim index As Integer

Private Sub EnterArrayValues()

       For index= 0 To 5

       A(ifldex) = Val(Textl.Text)

       Next index

End Sub

Notice that the array is declared this time outside the Subroutine in order to make it a general procedure that can be accessed by other subroutines. To Display values of the array on the form the following statement can be used:

Private Sub Display Array Values ()

 For index = 0 To 5

Text2. Text= Str(A(index))

Next index

End Sub

Two dimensional arrays

A two dimensional array is a data structure in which elements are arranged in rows and columns. Two subscripts are used to identify an item. For example Dim Score(2,4) means that the element is in the 3rd row, 5th column. This is because the array was declared to start from row 0 column 0 same as Dim Score (0 to 2, 0 to 4). To manipulate elements stored in a

two dimensional array, we use the nested For.. Next or For Each.. Next

loop as shown below:

Dim iRow As Integer

Dim jColumn As Integer

For iRow = 1 T03

     For jColumn = 1 to 5

 Score(iRow, jColumn)

      Next jColumn

Next iRow

 

Records

A record comprises of a series of related data items (fields). They differ from arrays in that whereas all elements in an array are of the same data type, data items in a record may differ in type. For example, when you want to store a students record with the fields Name, Registration number and date of birth in a file as a unit, then you can define a record that

would hold all this data items in one structure. For example the following declaration will create StudentDetails record:

Type StudentDetai/s

Name As String 15

RegistrationNumber As String 10

DateofBirth As Date

…………        .

End Type

The first line in the type declaration gives the name of the data structure i.e. StudentDetails. The other three lines define fields in the data type. Notice that each field has its own data type and that the string data types are of fixed length. The last line i.e. End type marks the end of the record definition. A record is defined in a standard code module or the General Declaration section of a form module.

It is not possible to access the elements of a data structure directly. This is why after defining data structure, you must declare a variable that will be used to hold the records. This is done by declaring a variable whose type is the data structure. The general format of such a declaration is:

Dim RecordVariablelVame As RecordName

For example, the StudentDetails record can be declared as a variable using the statement:

Dim Student As StudentDetails

This means that the variable Student is of type StudentDetails. To access an element in the structure, the following syntax have to be used:

RecordVariable.FieldName e.g. Student.Name

Array of records

An set of user-defined data types can be stored and accessed in arrays too. Consider the record declared below:

Type Student

RegistrationNumber As Integer Name As String * 20

End Type

An array of the student record can then be declared as follows: Dim StudentArray(39) As Student

This means that the array can store fourty student records. To access a field in the array of records use the statement: Arrayname(index).FieldName e.g. StudentArray(20).Name will return the name of the student whose record is in the 20th cell.

Data files

A file can be defined as a storage location of related information or records. Visual Basic recognises three types of files namely: text (sequential) files, random access files and binary files. Sequential files consist of data made of text strings. A random access file contains data records each of equal length with each record having a unique identifier. Remember that a record is a data structure that has several related data items about a particular entity. In random files, a record can be accessed directly by specifying its corresponding record number or location. A binary file contains information expressed as a stream of bytes. Such files store graphics, sound files or compiled code.

Sequential files

A sequential file stores data items one after another in sequence. The keywords used in manipulating a sequential file include Output, Input, Write, Read and Close. Table 5.15 gives a summary of the keywords used in manipulating sequential files.

Table 5.15

Keyword Description
Output Data is written on the storage media at the beginning

of the file, overwriting any existing data.

Input Opens the sequential file for reading if data is to be

retrieved.

Append Data is added at the end of the last item in a file.
Write Data is output into the sequential file.
Read Reads data from the sequential file.  
Close Terminates the processing of a disk file and writes

the last partially filled buffer onto the storage media.

 
EOF(Filenumber) End of File marker. When reading data from a disk,

EOF tells the program when to stop. Attempt to read

past the EOF causes a run-time error.

 

The following statements are very important when working with this type of files:

( a) Open filename For Output As #n

(b) Open filename For Input As #n

(c) Close #n

where n refers to the file number (n is usually an integer value).

Manipulating data in a sequential file

To manipulate a text file you can use the tools that corne with Visual Basic such as the common dialog box. For example, to open a file for input, use the showOpen method of the common dialog box. The skeletal code below shows that when the user enters the name of the file in the open dialog box, it is assigned to a string variable TargetFile ready for input.

Private Sub mnuOpen _Click

Dim TargetFile As String, x As Integer, item As string

 CommonDialogl.ShowOpen

TargetFile= CommonDialog I.FileName

Open TargetFile For Input As #1

x= 0

Do Until EOF(I)

input # 1, item

‘Write a code that reads each data

‘Item from the TargetFile until the end-of file-condition is true

x=x+l

Loop

Close #1

End Sub

 

Likewise, you can write data to a new file by operating it in Output mode as shown in the skeletal code listing below. Note that the file number used is #2 to avoid overwriting the first file.

Private Sub mnuSaveAs Click

Dim NewFile As String, x As Integer, item As string

CommonDialog 1.ShowSave

NewFile= CommonDialogl.FileName

Open NewFile For Output As #2

n= 30

For x = 1 TO n

‘Write a code that writes each data item into the NewFile Next x

Close #2

End Sub

When you write to a file, all the original data in the file is lost. To avoid losing the content of a file open it in Append mode as shown in the skeletal code below.

Private Sub mnuSaveAs Click

Dim TargetFile As String, x As Integer, n As Integer

CommonDialog 1.ShowSave

TargetFile= CommonDialog.FileName

Open TargetFile For Append As #1

n= 20

For x = 1 TO n

‘write each data item at the end of an existing file Next x

Close #1

End Sub

Project 5.8

Using Visual Basic programming, develop a simple sequential file processing program that would read data from a file called ReaderFile.txt and write the contents to another file called Receive. txt . The system should be menu driven. The project should use the Open and Save as dialog boxes to access the two files on the disk.

To create the project, proceed as follows:

  1. Create a new project and save the default fonn as sequentialForm. Save the project as SequentialFiles. vbp
  2. Create a File menu having menu commands as shown in Figure 5.27 below: i.e. Click the tools then menu editor command.
  3. Place the Common dialog control, a combo box and a label on the form.
  4. Double click the form then add the code listing below.

Private Sub Form_Load()

Form I. Caption = “Text File I”

Labell. Caption = “Learning to work with text files”

mnuSave As. Enabled = False

Combo 1. Text = ” ”

End Sub

  1. Double click the Open command and type the code below:

Private Sub mnuOpen Click()

Dim TargetFile As String, Item As String

Dim x As Integer

CommonDialog I.Filter = “Text files (*. txt)/*. txt” ‘open only text files CommonDialog1.ShowOpen

TargetFile = CommonDialog1.FileName

Open TargetFile For Input As #1

x= 0

Do Until EOF(1)

Input #1, Item

ComboI.List(x) = Item  ‘Assign items to the list property of combo box

ComboI.Tag = x ‘Assign the index x to the tag property that represent the number of items read from the file.

x= x+ 1

Loop

Combo 1. Text = “Contents”

Combo I.Locked = True

mnuSave As.Enabled = True     ‘enable command after file open

Close #1

End Sub

Private Sub mnuSave _As Click()

Dim NewTargetFile As String

Dim x As Integer, m As Integer

CommonDialogI.Filter = “Textfiles (*.txt)/*.txt”

CommonDialog I.ShowSave

NewTargetFile = CommonDialogI.FileName

Open NewTargetFile For Output As #2

n = Val (Combo 1. Tag)              ‘Assign the value of the tag to n

For x = 0 To n

Print #2, ComboI.List(x)

Next x

Close #2

End Sub

 

Explanations

1.on running the program, a form is displayed on which is a combo box and a file menu.

  1. On clicking the open command in the File menu, the open dialog box is displayed from which the user can select or type the file name.The file is assigned to a variable TargetFile.
  2. Minimise the Visual Basic IDE Window and start a text editor program such as Notepad. In the window, write the text: we are the world.
  3. After saving the text file, close the program and now return to your project. Click File then Open on your running project. In the Open dialog box, locate your text file and open it. Notice now that the words “We are the World” are displayed in the Combo box as shown in Figure 5.28. You can now use the Save_As command to save the file elsewhere with another name.

NB: If we alter the text and separate the words in the sentence with commas or quotes each word will be read into the computer separately. In such a case the words will be displayed in a drop down list in the combo box.

  1. The reason why the text is displayed in the combo box is because we used the Print statement for output and directed the output to the combo box. However, to write the content into the file, use the Write #n statement instead of Print #n.

Project 5.9

Laura, a proprietor of Laura Refreshment Cafe has requested you to create a program that stores her products in a sequential file. The data entry form should display beverages in a combo box while juice flavours should be displayed in a list box. These two controls are populated with data stored in a sequential file. Using a command button, the user should be able to add more beverages in the combo box.

To create the project, proceed as follows:

  1. Create a new project with one form and add appropriate controls on the form as shown in Figure 5.29.

 

  1. Display each control properties window and set the properties of each control such as:­

(a) Name and caption of add beverages command button.

(b) A combo box with items such as Tea, Coffee, Cocoa, Beans etc.

(c) A List box with items such as Orange, Passim)., Mango etc.

(d) A menu bar with File and Edit Menus. The commands in the

File menu include Save and Exit while those in the Edit menu includes Delete an item, Clear the list and add an item

3, Write a code for each event procedure as shown by the listing below.

(a) Double click the Add Beverages command button and type the code below:

Option Explicit

Dim mbUnsaved As Boolean

Private Sub cmdAddBevarage Click()

‘Add new Beverage If cboBeverages.Text <> “” Then

       With cboBeverages

       .Add/tem cboBeverages

       .Text= “”

End With

mbUnsaved = True

Else

MsgBox “Enter the name of Beverage”, vbExclamation, “Missing Data”

End If cboBeverages.SetFocus

End Sub

 

(b) Double click the form to open the code editor window and enter the code listing below:

      Private Sub Form_Load()                .

‘Load the list

Dim stBeverages As String

On Error GoTo HandleErrors ‘Turn on the error handling routine

Open “a:BevFile.Dat” For Input As #1

Do Until EOF(1)

Input #1, stBeverages

      cboBeverages.AddItem stBeverages

Loop

Close #1

Form Load exit:

Exit Sub

HandleErrors:

                                    ‘The code below raises any type of error encountered during the file open operation

Dim iResponse As Integer

Select Case Err.Number

Case 53, 76 ‘ Invalid path or file name

  iResponse = MsgBox(“Create a new file?”, vbYesNo + vb Question, “File Not Found”) Display a message box

If iResponse = vb Yes Then

  Resume form_Load _exit ‘Exit the Procedure

Else

  mnuFileExit Click ‘Exit the program

End If

Case 71

iResponse = MsgBox(”Drive not Ready. Retry?”, .

vbRetryCancel + vbQuestion, “Drive Error”) display a message box

If iResponse = vbRetry Then

  Resume

Else

       mnuFileExit Click ‘Exit the program

End If

 

Case Else

.

Err.Raise Err display a message for any other type of error

End Select

End Sub

Private Sub mnuEditAdd Click()

‘Add a new beverage list cmdAddBevarage _Click

End Sub

(c) Double click the Add command from Edit menu and type the code below:

Private Sub mnuEditdelete Click()

‘Delete a selected item If cboBeverages.ListIndex <> -1 Then

cboBeverages.RemoveItem cboBeverages.ListIndex

mbUnsaved = True

Else

MsgBox “Select an item you want to delete”, vbInformation, – I

“Select an Item”

 End If

End Sub

(d) Double click the Exit command in the file menu and type the code listing below:

Private Sub mnuFileExit Click()

‘Exit from the program and save changes

Dim iResponse As Integer

If mbUnsaved = True Then

iResponse = MsgBox(“Save changes?”,vb YesNo + vbQuestion, “Save Changes”)

If iResponse = vb Yes Then

mnuFileSave Click

End If

End If

End

End Sub

(e) Double click the save command in the file menu and type the code listing below:

Private Sub mnuFileSave Click()

‘Save the combo box content into a sequential file

Dim iIndex As Integer

Dim iMax As Integer

Open “a:BevFile.Dat” For Output As #1

iMax = cboBeverages.ListCount – 1

For iIndex = 0 To iMax

Write #1, cboBeverages.List(iIndex)

Next iIndex

Close #1

mbUnsaved = False

End Sub

Explanation

  1. On running the program, the form is loaded and you can add a beverage item in the combo box as shown in Figure 5.30.

 

  1. When the user clicks the save command on the File menu, the Beverages list is saved on the floppy disk. You can view the items using Microsoft Windows NotePad or any Text Editor. Below is a list of items saved in the file BevFile.Dat.

“Chocolate”

       “Tea”

       “Coffee”

       ”Milo”

       “Plain Coffee”

“Soya”      I

“Cocoa”

  1. On error statement have been used in the Form Load procedure. This code ensures that the program does not halt in case the user forgets to insert a floppy disk. On error statement and the err objects are therefore used to trap run-time errors. The correct syntax of the On Error statement is: I

On Error GoTo LineLabel e.g. On Error GoTo ErrorHandler I

The lineLabel refers to the error handling code that begins with a line label such as HandleErrors:

The resume statement tells the program to resume back to the statement that caused the error. Resume Next option can also be used I to tells the program to execute the statement immediately following the line that caused the error.

The Err object holds information about an error that has occurred. The name of the application that caused the error is stored in the source property. The Number property contains error numbers ranging from 0 to 65,535. Examples of Err.Number are shown in Table 5.16.

Table 5.16

Number Err.Description Number Err.Description
7 Out of memory 58 File already Exists
11 Division by zero 61 Disk full
13 Type mismatch  71 Disk not ready
53 File not found 76 Path not found

You can use the raise method to set the error code, effectively turning on an error. This is necessary if the error that has occurred is not the one of the anticipated. The statement Err.Raise Err in the form load procedure therefore tells the program to display an error message for any other unhandled error.

Random access files

Random access files consists of fixed length records each assigned a unique identification number. The keywords use in random file manipulation are summarised in Table 5.17 below:

                                                  Table 5.17

Keyword Description
Random Records can be input or output and accessed in any,

order.

Get # FileNumber Reads data from a random disk file and place data

into the record name variable. The variable must

be a user-defined data type e.g. a record variable.

Put # FileNumber Writes the content of a record on the disk. The record

number determines the relative location within the

file. If the record number is omitted, the record will

be placed in the next location from the last Get or

Put operation.

Len Len refers to the length of a single record. For

example Len(EmployeeRecord) retUrns the size of

the employeeRecord in bytes.

LOF(FileNumber) Rather than using EOF, LOF is used to find the end

of a random file. This function returns the size of

the file in bytes. FileNumber is the file number

from the currently open file. To determine the highest

record number, divide the return value of LOF by

the size of one record. For Example

 Number _of_records = LOF(1)/

Len (EmployeeRecord).

Seek(FileNumber) Returns the current location of the file pointer. For

a sequential file the current byte number is returned

while in randof!! files, seek returns the position of

the next record. For example

NextRecord = seek (1)

To open a random file for input or output use the syntax: The following statement:

Open filename For Random As #n Len = record length

Reading records from a random file

Records are read one at a time using the following procedure

Get #n,record number, data item

Sometimes, you may ignore the record number but instead put two commas I.e.

Get #n”data item

The computer in this case will look for the record following the last’Get operation.

Writing to a random file

The statement below can be used to write records to a file.

Put #n,record number, data item or put #n”data item

The latter statement would write a record next to the last Put operation.

NB: Random files will accept data records only.

Project 5.10

You have been requested to develop a program that can store employees contact details. Create a project that has two forms namely the main form and a data form that can be used to manipulate employees records and store them in a random file. The forms should have the following controls:

Main form

  1. A List box where the names of the employees are displayed.
  2. Command buttons for Adding, Deleting, Updating and browsing employee’s records.
  3. Menu bar with File and View menus.

Data form

  1. Labels and Text boxes for LastName, FirstName, Address and City/Town
  2. Navigation buttons i.e. First, Next, Previous and Last.
  3. OK and Cancel buttons.

To create the project, proceed as follows:

  1. Create a project that has two forms namely the main form and a data form and add controls as shown in Figure 5.31 (a) and (b).

 

  1. Open the properties window and set the properties of each control such as:­

(a) Name and caption of each form controls

(b) Command buttons for both forms.

(c) A combo box with items such as Tea, Coffee, Cocoa Soya etc.

  1. Create a menu bar with File and View menus. The File menu should include at least one command e.g. Exit while the View menu should have at least View Records command.
  2. Write codes for each event procedure and standard procedure as shown by the listing below.

      Standard(Global) Procedure

Enter this code in a standard module code editor window.

Option Explicit

Type employeesRecord               ‘Define a record with five fields.

stLastName As String * 15

stFirstName As String * 15

stAddress As String * 10

stCity As String * 12

       stDeleted As String * 1

End Type                                     ‘End of record defination

Public gEmployee As employeesRecord

Public gstFileAction As String

Main form Procedures

Private Sub cmdAddNew Click()

‘Display a blank record in order to add a new employee

gstFileAction = “A”

frmFile.Show vbModal

End Sub

Private Sub cmdBrowse Click()

‘Browse the File

    gstFileAction = “B”

frmFile.Show vbModal End Sub

Private Sub cmddelete Click()

    ‘Delete an employee from the list

    iflstEmployee.ListIndex <> -1 Then

    gstFileAction = “D”

    frmFile.Show vbModal

    Else

    MsgBox “Select a record to be deleted!”, vbOKOnly + vbInformation, “Delete!”

End if

End Sub

Private Sub cmdUpdate ClickO

 ‘Update an employee record

    iflstEmployee.ListIndex <> -1 Then

    gstFileAction = “u”

    frmFile.Show vbModal

    Else

    MsgBox “Select a record to update”, vbOKOnly + vbInformation, “Update”

End if

End Sub

Private Sub Form_Load()

‘Store the details of the list box in a random file

 Dim iIndex As Integer

Dim iResponse As Integer

On Error GoTo HandleErrors

Open “a:Employee.Dat” For Random As #1 Len = Len(gEmployee)

 IfLOF(l) / Len (gEmployee) > 0 Then ‘Iffile not empty

  For ilndex = 1 To LOF(1) / Len (gEmployee)

  Get #1, ilndex, gEmployee

  If gEmployee.stDeleted <> “Y” Then

  AddtoList (iIndex)

  End If

  Next iIndex

Else

iResponse = MsgBox(“Create a new file?”, vb YesNo + vb Question, “File Not Found”)

If iResponse = vbNo Then

mnuFileExit _Click ‘Exit the program

End If

End If

form_Load exit:

Exit Sub

HandleErrors:

If Err.Number = 71 Then

     iResponse = MsgBox(“Drive not Ready. Retry?”, vbRetryCancel + vb Question, “Drive Error”)

     If iResponse = vbReiry Then

     Resume

        Else

        mnuFileExit _Click ‘Exit the program

       End If

Else

On Error GoTo 0 ‘Turn error trap off

End If

End Sub

Private Sub mnuFileExit Click()

 ‘End the program

Close #1

End

End Sub

Public Sub AddtoList(iIndex As Integer)

‘Add an employee in the list box

Dim stName As String

stName = Trim(gEmployee.stLastName) & “, “& gEmployee.stFirstName

IstEmployee.AddItem stName

IstEmployee.ItemData(lstEmployee.NewIndex) = iIndex

End Sub

Private Sub mnu ViewEmployee Click()

    ‘Display the employees file

    gstFileAction = “B”      ‘Browse

frmFile.Show vbModal

 End Sub

Data form Procedures

Option Explicit

Dim miIndex As Integer

Private Sub cmdCancel- Click()

    ‘Switch to the main form

frmFile.Hide

 End Sub

Private Sub DisplayRecords()

    ‘Display record fields in the form text controls

     txtLastName. Text = gEmployee.stLastName

      txtFirstName. Text = gEmployee.stFirstName

    txtAddress. Text = gEmployee.stAddress

    txtCity. Text = gEmployee.stCity

End Sub

Private Sub SaveRecords()

gEmployee.stLastName = txtLastName. Text

gEmployee.stFirstName = txtFirstName. Text

gEmployee.stAddress = txtAddress. Text

gEmployee.stCity = txtCity. Text

End Sub

Private Sub cmdFirst Click()

     ‘Display the first record

    frmMain!lstEmployee.ListIndex = 0

    Readrecords

End Sub

Private Sub cmdNext_Click()

    ‘Display the next record

    If frmMain! IstEmployee.ListIndex <

   frmMain!lstEmployee.ListCount -1 Then

   jrmMain!lstEmployee.Listlndex = jrmMain!lstEmployee.Listlndex + 1

   Readrecords

   Else

   cmdFirst Click

   End If

End Sub

Private Sub cmdLast Click()

     ‘Display the last record

   frmMainflstEmployee.Listlndex =

   frmMain!lstEmployee.ListCount -1

Readrecords

End sub

Private Sub cmdOK Click()

‘Select the action to perform then click OK

Dim stName As String

Select Case gstFileAction

Case “A”

         milndex = LOF(1) / Len (gEmployee) + 1

        gEmployee.stDeleted = “N”

        SaveRecords

        WriteRecords

        frmMain.AddtoList (milndex)

frmMain!lstEmployee.ListIndex = frmMain!lstEmployee.Newlndex

Case “D”

miIndex =frmMain!lstEmplayee.ItemData(frmMain!lstEmployeeListIndex)

gEmployee.stDeleted = “Y”

WriteRecords

frmMain!lstEmployee.RemoveltemfrmMain! IstEmployee.Listlndex

  Case “U”

       SaveRecords

milndex= frmMain!lstEmployee.ItemData(frmMain!lstEmplayeeListIndex)

WriteRecords

 frmMain!lstEmployee.Removeltem frmMain! IstEmployee.Listlndex

frmMain.AddtoList (miIndex)

Case “B”

End Select

frmFile.Hide ‘Return to the main form

End Sub

Private Sub ClearTextBoxes()

    txtLastName.Text = “”

    txtFirstName. Text = “”

    txtAddress. Text = “”

txtCity. Text = “”

End Sub

    Private Sub NavigationEnabled()

   cmdFirst.Enabled = True

   cmdNext.Enabled = True

    cmdPrevious.Enabled = True

cmdLast.Enabled = True End Sub

Private Sub NavigationDisabled()

cmdFirst.Enabled = False

cmdNext.Enabled = False

cmdPrevious.Enabled = False

cmdLast.Enabled = False

End Sub

Private Sub cmdPrevious Click()

If frmMain!lstEmployee.Listlndex < 1 Then

cmdLast Click

    Else

    frmMain!lstEmployee.ListIndex = .frmMain!lstEmployee.ListIndex – 1

    Readrecords

End If

End Sub

Private Sub Readrecords()

    ‘Read data from a random file

    miIndex= frmMain!lstEmployee.itemData(frmMain!lstEmployee.ListIndex}

   Get #1, miIndex, gEmployee

DisplayRecords

End Sub

 Private Sub WriteRecords()

   ‘Save data to a disk

Put #1, miIndex, gEmployee

End Sub

   Private Sub Form_Activate()

   ‘Activate the data form and set focus to the LastName field

   Select Case gstFileAction

Case ”A”

ClearTextBoxes

NavigationDisabled

txtLastName.SetFocus

Case “D”

Readrecords

NavigationDisabled

Case “U”

 Readrecords

NavigationEnabled

Case “B”

  NavigationEnabled

  cmdFirst Click

  End Select

End Sub

Explanation

  1. On running the program, the main form is loaded that shows a list of employees as shown in Figure 5.32.
  2. When the user clicks the Add New button, a blank data form is displayed with focus set on the LastName text box. (See Figure 5.33). If you add a new employee record and then click the OK button, the employee’s name is added into the list box and saved into random file.
  3. On clicking the Delete, Update or Browse buttons, the records are displayed on the form for the user to perform the appropriate action. Figure 5.34 (a) shows a record that is just about to be deleted while Figure 5.34 (b) shows the main form display after deleting the selected record.

Binary files

A binary file is used to store graphics, sound or compiled files. Applications that make use of binary files are complicated and beyond the scope of this book. However, to manipulate a binary file the keywords Put, Get, EOF, Len, LOF, Seek, Loc (pointer location) are used.

To open a binary file we use the statement; OpenfileName for Binary As #n. Below is a skeletal listing of a Visual Basic program that read and writes the same data into a binary file.

Private Sub mnuCopy Click()

Dim FileLength As Integer, Index As Integer

Dim FileName As String

Dim FileByteO As Byte

FileName =……… ‘find out the file name

Open FileName For Binary As #1

FileLength = LOF(1)

ReDim FileByte(Filelength)

For index = 1 To FileLength                    ‘read the file

 Get # 1 “FileByte(Index)                        ‘the second field has no value

Next index

For Index = 1 To FileLength

Put #1, Index, FileByte(Index)                ‘the second field has a value

 Next Index

Close #1

End Sub

Explanation

The Get #n statement start reading the first byte in the file and then reads each successive byte until the end of the file. The Put #n statement has a value hence it will overwrite the contents of the file it is writing to. To avoid this, leave index empty so that the write operation simply appends the records to the end of the file.

  1. What is an array subscript?
  2. Differentiate between a record and’ an array.
  3. Differentiate between a sequential file and a random access file.
  4. State the function of each of the following file manipulation commands.

(a) Input #1 (b) Get#n (c) Put #n (d) Qpen

  1. Differentiate between (a) EOF and LOF
  2. An employee file has the following fields: First name, Second name, Employment number, Date of employment and Date of birth. Using the type declaration, create a user defined data type that will store ail this data for one employee.
  3. Declare a variable that can store the user defined data type in question 6 above.
  4. Assuming the user wants to access the DateofEmployment field in a record variable’employeeDetails, write a statement that can do this.

Linking Visual Basic forms to a database

In Visual Basic, it is possible to access an existing database. This is done by adding data controls on a form. For example assuming a database called library exists and it has a table called students, to access this table in Visual Basic, proceed as follows:

  1. Open your Visual Basic project. Click the Project Explorer icon on the toolbar to display the explorer window. Double click Form1(Form1.frm) in the project explorer window to display the blank form as in Figure 5.35.
  2. If the properties window is not displayed, right click the form then select Properties from the shortcut menu. Change the properties as indicated below:
Property Value
Name Studentform
Caption Enter or View Students
  1. Double click the Data control tool on the toolbox. A data control is placed on the form automatically. Now move and resize it as you wish. Change the following properties of the data control:
Property Value
Name StudentFormData
Caption ViewStudents
Connect Access 98/2000/2003 (Depends on the database

type and version installed in your computer).

DatabaseN am Provide the full directory path to the database

by clicking the… icon then browse to the database.

RecordSourct STUDENTS (select this table from a drop down

menu)

The last two properties link your form to the database that has the data source records. For example, in our case, the data source is the students table found in the Library database.

  1. To view the fields of each record, add text boxes in the form that would accommodate all fields from each record. To link each text to the data source, double click the text box and then change the following properties for each text box.

Textbox 1

Property value
Name Studentregistrationtxt
Data source Studentformdata (remember this is the name you gave to the data control on the form)
Datafield Registration number (select from dropdown menu)
Text Reg no

 

Textbox 2

Property Value
Name Studentfirstnametxt
DataSource Studentformdata
Datafield First name

Repeat the above for all the available textboxes then save the project. Figure 5.36 (a) shows three textboxes linked to the STUDENT table.

  1. Run the project to display the content of the underlying table. Figure 5.36 (b) shows the sample record from the underlying table. Notice that the fields on the form do not have labels. It is the high time we add labels and command buttons.

To add labels proceed as follows:

(a) Double click the label control on the toolbox. A label is placed on the form.

(b) Drag the label and place it above the Registration number field            on the form.

(c) Change the label name and caption appropriately.

(d) Set the labels properties appropriately as shown in the table below.

Labels 1

Name Caption
Labelregno Registration no:
LabelFirstName First name:
LabelSecName Second name:

To add a command button proceed as follows:

(a) Double click the button from the toolbox.

(b) Change the name and caption of the command button.

Name Caption
EnterNewRecord New record
SaveNewRecord Save

I

(c) Change the buttons properties as indicated below

Your form should now look as shown in Figure 5.37.

 

Project 5.11

Create a new project called SchoolLibrary that can be used to access a database called Biblio.mdb that conies with Visual Basic.

To create the project, proceed as follows:

  1. Start Microsoft Access and locate for the Biblio database. The path to the database may be C:IProgram FileslMicrosoft Visual

 Studio\VB98\Biblio. mdb. Figure 5.39 shows the tables in the database.

  1. Click the queries tab and open All Titles in design view. Note that the query has four fields namely: Titles, ISBN, Author and Year Published.
  2. Create a project that contains one form, large enough to hold the four fields. Click on the Data Control tool and draw a data control at the bottom of the form as shown in Figure 5.40.
  3. Add labels and text boxes that will be used as bound controls for the fields from the query. Set Name, Caption and Text Properties for the labels and textboxes accordingly.
  4. Change the Data control properties as follows:

(a) Set the Name property to datBooks and Caption to Display a book.

(b) Make sure the connect property is set to Access.

(c) Click the DatabaseName settings button (…) to display database name dialog box. From the dialog box, locate the database called Biblio using the path C: IProgram Files \Microsoft Visual

Studio\VB98\Biblio.mdb

  1. Scroll to RecordSource property and click the down arrow. From the list of tables and queries displayed, select All Titles. Figure 5.41 shows a section of the Data control properties settings.
  2. Click each textbox and set the DataFie1d appropriately. For example, click the txtISBN, then from the DataFie1d property, select ISBN.
  3. Write the code listed below for the command Close button.

Private sub cmdClose click()

, Exit from the project

End

End Sub

  1. Save the form as books and the project as VBBiblio. Figure 5.42 shows the complete form in design view.
  2. Run the project. Notice that the form bound controls are populated with data from the All Titles query as shown in Figure 5.43. Click the navigation arrows of the data control to view other records.

Using the Recordset object to manipulate a database

When you set the record source property of a data control to the name of a table or query, you are defining a new object called a Recordset. The recordset has its own set of properties and methods which you can use to move from record to record. Below is a summary of some methods used with Recordset.

Method                                                       Description

AddNew               Clears the bound controls for a new record entry

Update              Beginning of file. Updates the underlying table or query by adding the new field.

Delete               End of file. Used for deleting the currently selected record.

BOF                 Used to check for the beginning of a file.

EOF                 Used to test the end of a file.

Move             Used to navigate through the database. Other Move methods includes MoveNext, MoveLast and MovePrevious

Project 5.12

Using the Recordset object, modify the VBBiblio project by adding three more command buttons namely Add New, Save and Delete on the Books form. Using the three buttons, the user should be able to add a new record, automatically update the underlying data source or delete a selected record.

To create the project, proceed as follows:

  1. Open VBBiblio project and add the three buttons as shown in Figure5.44.
  2. Write the code for each of the buttons. Below is a sample code for the modified VBBiblio project.

Private Sub cmdAdd Click()

‘Add a new record

If cmdAdd. Caption = “&Add New” Then

datBooks.Recordset.AddNew ‘Clear the fields for new entry

txtISBN.SetFocus

DisableNavigations

cmdSave.Enabled = True ‘Enable the save button

cmdAdd.Caption = “&Cancel” ‘Allow a cancel option

Else

datBooks.Recordset. Cancel Update

EnableNavigations

cmdSave.Enabled = False

cmdAdd.Caption = “&Add New”

End If

End Sub

Private Sub DisableNavigations()

 cmdFirst.Enabled = False

cmdNext.Enabled = False

cmdPrevious.Enabled = False

cmdLast.Enabled = False

cmdDelete.Enabled = False

End Sub

Private Sub EnableNavigations()

 cmdFirst.Enabled = True

cmdNext.Enabled = True

cmdPrevious.Enabled = True

cmdLast.Enabled = True

cmdDelete.Enabled = True

End Sub

Private Sub

cmdClose Click()       ‘Close the form

End

End Sub

Private Sub cmdDelete Click()          ‘Delete the selected record

  With datBooks.Recordset

  .Delete

  .MoveNext

If.EOF Then

      .MovePrevious

    If.BOF Then

    MsgBox The record set is empty”, vblnformation, “No

  Records”

      End If

    End If

End With End Sub Private Sub cmdFirst Click()

    ‘Move to the first record

    datBooks.Recordset.MoveFirst

End Sub

Private Sub cmdLast Click()

   ‘Move to the Last record

datBooks.Recordset

.MoveLast

End Sub

Private Sub cmdNext_Click()    ‘Move to the next record

With datBooks.Recordset

.MoveNext

    If.EOF Then

    .MoveFirst

End If

End With

End Sub

Private Sub cmdPrevious Click()   ‘Move to the previous record

With datBooks.Recordset

.MovePrevious

     If.BOF Then

        .MoveLast

    End If

  End With

End Sub

Private Sub cmdSave Click()

‘Save the current record

datBooks.Recordset.Update

EnableNavigations

cmdSave.Enabled = False

cmdAdd.Caption = “&Add New”

End Sub

Explanation

On running the program, the form is loaded that shows each record from All Titles query. The user can navigate to view other records using the navigation buttons. This project also allows the user to add, save and delete a record as shown in Figure 5.45.

 

Practical activity 5.3

Using an existing database called Hospital, write a project that access the employees Table that has at least five fields i.e. First Name, LastName, Dateofbirth, Department and Status. The project form should have Navigation, Add, save and Delete buttons

  1. Assuming you have a database containing the following fields:

(a) Names

(b) Contact numbers

(c) Town

Explain how you can access these fields in the database from Visual Basic environment.

  1. Explain the difference between a data control and a databound control.
  2. Explain how you would link up a form in Visual Basic to a database called Biblio that comes with VisualBasic located in a folder VB98. VB98 is accessed through the path C:/Program File/Microsoft Visual Studio VB98.

Creating a Visual Basic executable file

You can convert your project into an executable (.EXE) file that can be run on Microsoft Windows desktop. The EXE file contains the information for all your project files including the form files and modules. After you create the EXE file, the other files are not affected. However anytime you make changes to the source code, you must recreate the EXE file.

To create the EXE file Proceed as follows:

  1. From the:Filemenu, select Make xxxx.exewhere xxxx stands for the currently open project.
  2. In the make project dialog box, type the name of your executable file then click OK.
  3. You can then place your EXE file in the programs menu or on the desktop.

Conclusion

Therefore with knowledge in Visual Basic programming and system development discussed in Chapter 4, you can be able to create versatile information systems. This being an introduction there is a lot in Visual Basic programming. You can learn more on Visual Basic Programming from Microsoft Visual studio on-line help known as MSDN collection.

 

APPENDIX I

Introduction to database design

Most systems will involve storage of data in a database and then having different users accessing the data in their own unique way. Sometimes the data may be stored in a file that is created on the disk. This appendix demonstrates how to construct system files or tables, using Microsoft Access and finally automate your database to make it a fully-pledged application.

Remember that in system analysis, we said that for a library system, we will need to store data about books and students as entities of the system. These records have to be stored in a database. These entities have a relationship which needs to be defined during database design. For example, because a student can borrow many books, this can be represented in the database design as a “one-to-many relationship”. Figure App. 1.1 represents this relationship using a simple relationship diagram. The line that joins the two entities divides into three on the Books side to show that one student can borrow many books.

Other relationships that are possible between entities are “one-to-one” and “many-to-many”. In Figure App. 1.2. for example, one student can only have one registration number.

Student has a Registration

number

 

Fig. App. 1.2: One-to-one relationship

Similarly, in a school environment, one course unit can be done by many

students and one student can do many course units (Figure App. 1.3).

Course unit can be

\taken by /

Student
/               \  

Fig. App. 1.3: Many-to-many relationship

 

It is therefore possible to have a database design that has all the three entity relationships. However, when designing your database, best practice demands one to develop one-to-many relationships between entities. The diagram that shows the logical relationship between data entities is called the entity relationship diagram (ERD).

Defining attributes

Attributes need to be identified for each of the entities identified in the entity relationship diagram. The attributes will become the fields of the database table that will store data for each entity. A complete set of

attributes in a table will form a record. Each entity will have one attribute that will hold a unique value for each of the records entered in the database. This unique attribute is called the key attribute or the primary key (PK). To create a relationship between two tables, include the primary key of one table in the second table i.e. create a field in the second table that has the same data type as the primary key of the first table. This field created in the second table is called the foreign key (FK). Table App. 1.1 shows the attributes for two entities in a library management system.

Table App. 1.1

Entities and their attributes
Entity Attribute
Books Book number (PK)

ISBN number

Author

Publisher

Purchase price

Student Registration number

First name

Middle name.

Class

Stream

A careful study of the two tables will reveal that some of the attributes need to be separated and used to develop other entities. This is because they will encourage duplicate storage of data in the database. For example, one “Publisher” may have published many books. Hence, if you have one hundred different books in the library done by the same publisher, you will have to enter the same name a hundred times in the database!

 

Table App.I.2 shows this anomaly. This data duplication is not allowed and hence we can create an entity called “Publishers” that will have the name of a publisher entered once in the database then allow you to keep on referring to it when the need arises. The process of trying to eliminate storage of duplicate values in the database is called normalization. It is governed by some rules that are outside the scope of this book. However, the simple principle is that you try to separate off any attributes that may eventually carry repeating values in the database to form their own tables.

 

Table App. 1.2

ISBN Title Publisher Date

published

Date

issued

Return

date

09625063xx

08765432xx

GIS Data

Form 1 Geog.

Jets book

Jets book

2000

2001

1/3/2005

3/4/2005

8/3/2005

10/4/2005

To avoid repetition, Table App. 1.2 can be broken down into two, one for the books and another for publishers as shown in Table App. 1.3.

Table App. 1.3

Entities and their attributes
Entity Attribute
Book Book Number (PK)

ISBN

Title.

Date of publication.

Year published

Purchase price

Student number (FK)

Publisher ID (FK)

Student Registration number (PK).

First name.

Middle name.

Class

Stream

Publisher Publisher ID (PK).

Publisher name.

Address

City

Phone number

 

The entity relationship diagram of the system will now look as shown in Figure App. lA.

This entity relationship diagram shows that a student can borrow many books. Likewise a publisher can publish many books.

Creating the database

This section presumes that you have covered the Form 2 syllabus on databases. To create a database, proceed as follows:

  1. From the start menu, select Microsoft Access. The dialog box of Figure.App. 1.5 appears.

 

Fig.App. 1.5:

  1. Select BlankAccess Database option then click the OK button. The File New Database dialog box appears. In the File name box, type the name of the new database to be created as shown in Figure App. 1.6.

­

 

 

  1. In the Save in box select the folder where you want to save your database, then click the Create Database button.
  2. The database as shown in Figure App. 1.7 appears on the screen allowing you to create the various tables.

 

Defining a file/table structure

To define the file/table structure:

  1. Click the Tables tab in the database window and then double click Create table in Design view command.
  2. Create the three tables i.e. students, books and publisher using the attributes defined earlier in Table App. 1.3. Figure App. 1.8 shows a students table in design view.

 

Setting the primary key and foreign key

A primary key can be defined as a unique field that identifies each record in a database table. This means that the primary key in a database table holds unique values for each record and cannot accept duplicate, null or empty values. For example, if one student has the registration number 2000, no other student can be assigned the same number and a value must be entered into the field before proceeding to another record.

On the other hand, the foreign key is included as an attribute of an entity in order to create a relationship with another entity in the database. For example, the Student registration number field in the BOOKS entity creates a relationship between the STUDENT entity and the BOOKS entity. The entity with the foreign key is usually on the many side of a relationship. Values in a foreign key field of a table in a database are unique but are allowed to repeat as long as they appear in the primary key of the primary table.

To define table relationships:

  1. From the tools menu, click relationship. Show table dialog box appears as shown in Figure App. 1.9.
  2. Select the tables and click add so that they are displayed on the relationship window.
  3. To create a relationship, drag the primary key of the parent table to the foreign key of the “child” table. For example to create a relationship between Students table and Books table, drag the Fig. App. 1.10: Defining relationships registration number of the students table to the registration number of the books table. Eventually, you will get a relationship such as the one shown in Figure App. 1.10.

 

  1. Enforce referential integrity: Referential integrity governs the nature of records in a “one-to-many relationship”. This means that all foreign keys in the child table must have a matching record in the parent table. Therefore you cannot add a record in the child table if it does not have a related record in the parent table.

Check the ‘Cascade Update Related Fields’ if you want your database to update the child tables once the parent record is updated. This means that if the student’s registration number is changed, all the records in the related tables will automatically be updated. FigureApp. 1.11 shows an edit relationship for the two tables i.e. students and books.

 

Once you have created your database tables and related them accordingly, you can then enter data into the tables using forms which you create. Since database forms design was covered in Form 2 the rest of this appendix illustrates only data entry into the system.

 

Figure App. 1.15 shows a sample report generated from the database showing a summary report indicating which student has which book. The report has been generated from a query that is created using the three related tables.

 

Automating your database application

Once you finish creating the basic database objects i.e. tables, forms, reports and queries, you may wish to automate operations such as data entry, printing reports and making the user interface more user friendly.

In Microsoft Access, some of the tools used to automate a database are:

  1. Switchboard: This is a special purpose form used to automatically access to other database objects such as forms and reports.
  2. Macros: This is a set of one or more actions used to automate commonly performed tasks such as opening and closing forms and printing reports.
  3. Visual Basic for application (VBA) module: The module object in Microsoft Access is a program coding widow for a subset of Visual Basic programming language called Visual Basic for Application (VBA). VBA is similar to Visual Basic only that you cannot create a new program (project) within.

Creating a switchboard To create a switchboard;

  1. From the Tools menu, point to Database utilities then click Switchboard manager.
  2. If no switchboards are available, Microsoft Access will prompt you whether you want to create one. Click Yes.
  3. From the switchboard manager dialog box click Edit.
  4. From the Edit switchboard dialog box, click Edit. The Edit switchboard Item dialog box appears in which you can specify the menu items to be included on the switchboard. Figure App. 1.16 shows an illustration of switchboard editing dialog box for the library system.
  5. In the “Edit switchboard item” text box, enter the name of the menu. From the command list box, select the object to be accessed e.g.

“Open form in Edit mode”. In the Form list box, select the name of the object e.g. StudentsForm user click OK.

  1. Finally click Close buttons to close the switchboard dialog boxes. Figure App. 1.17 below shows a switchboard for the library management system.

Creating macros

To create a macro in Microsoft Access:

  1. Click the Macros tab then New. The macros design grid appears.
  2.  In the macros design window, Action column, click the down arrow to select an action that you want to be executed directly every time you run the macro. For example, scroll downwards and click OpenForm.
  3. In the lower part of the macro design window specify the action arguments. For example, for the action OpenForm select the name of the form e.g. switchboard, view mode.

Creating Visual Basic for application (VBA) module

Since in chapter 5 we introduced you to Visual Basic programming, you can transfer the same skills to coding using Visual Basic for Application. You will realise that the only difference between the two is that Microsoft Access modules are only limited to particular objects and that you can not create a new project using this. For more on Visual Basic for Application coding, you can get help that comes with Microsoft Access. However, it is important to note that Visual Basic for application is also available as an independent programming language which you can use just like Visual Basic.

There are two approaches for creating VBA codes:

  1. Adding a code to form and report using event procedure. To add a code in this way, open the form or report in design view and then double click the form icon located at the meeting point of the vertical and the horizontal ruler.
  2. From the objects properties list, click the events tab then click the build button from the resulting dialog box, choose Code Builder.

The coding window for the object you chose is displayed as shown in Figure App. 1.18.

Enter the VBA code between the private sub object name event and the end sub.

Securing your database from unauthorised access

There are a number of security options that can be used to set security. However the simplest methods is the use of a password.

To setup a database password in Microsoft Access,

  1. Open the database file in exclusive mode as shown in Figure App. 1.19.
  2. From Tools menu, point to Security then click Set password.
  3. Enter the password in the password text box and re-enter the same password in verify box then click: OK

When a user opens the database, he/she will be prompted to enter the password as show in Figure App. 1.20.

 

Setting up the startup options

You can finally customise your application workplace by specifying the startup options. Start up options lets you customise your database in order to make it more presentable to the users. Such a database will always be starting as an application instead of loading it from Microsoft Access application window.

To set up the start up options for your application, from Tools menu, click<start up then specify the following

  1. Applications title: The title that will appear on the title bar instead of the default Microsoft Access title.
  2. Application icon: You can choose an icon that goes together with your application title.
  3. Menu bar: You can specify the menu options that should appear when running the application.
  4. Display form: Choose the form you want automatically displayed once you start the application e.g. the switchboard.
  5. Uncheck “Display Database Window” to limit the users from viewing the objects created in your database. .

Conclusion

Although this Appendix has tried to open you to a lot of utilities, tools and commands you can use to come up with a fully fledged application, it is important to note that Microsoft Access has a lot of potential which would take hundreds of pages to explain. However, you can use this Appendix to help you explore further on skills and concepts that can help you develop information systems through customisation approach.

 

 

APPENDIX II

Coding schemes

Binary Coded Decimal (BCD)

Decimal number 0 1 2 3 4 5
Binary equivalent 0000 0001 0010 0011 0100 0101
Decimal number 6 7 8 9    
Binary equivalent 0110 0111 1000 1001    

Standard Binary Coded Decimal

Letter Binary Letter Binary Letter Binary Letter Binary
A 11 000 1 H 111 000 0 10011 0 V 010101
B 11 00 10 I 111001 P 100111 W 010110
C 11 00 11 J 100001 Q 10 1000 X 010111
D 110100 K 100010 R 10100 I Y 011000
E 110101 L 100011 S 010010 Z 011 00 1
F 110110 M 100100 T 010011    
G 110111 N 100101 U 010100    

ASCII and EBCDIC

Character 7 -bit ASCII 8-bit EBCDIC
0 0110000 1111 0000
1 0110001 1111 000 1
2 0110010 11110010
3 0110011 11110011
4 0110100 11110100
5 0110101 11110101
6 0110110 11110110
7 0110111 11110111
8 0111000 11111000
9 0111001 11111001
Character 7 -bit ASCII 8-bit EBCDIC  
A 1000001 11000001  
B 1000010 11000010  
C 1000011 11000011  
D 1000100 11000100  
E 1000101 11000101  
F 1000110 11000110  
G 1000111 11000111  
H 1001000 11001000  
I 1001001 11001001  
J 1001110 11010001  
K 1001011 11010010  
L 1001100 11010011  
M 1001101 11010100  
N 1001110 11010101  
0 1001111 11010110  
P 1010000 11010111  
Q 1010001 11011000  
R 1010010 11011001  
S 1010011 11100010  
T 1010100 11100011  
U 1010101 11100100  
V 1010110 11100101  
W 1010111 11100110  
X 1011000 11100111  
Y 1011001 11101000  
Z 1011010 11101001  
Character 7 -bit ASCII 8-bit EBCDIC  
blank 0100000 01000000  
  0101110 01001011  
, 0101100 01101011  
+ 0101011 01001110  
0101010 01100000  
/ 0101111 01011100  
= 0111101 01100001  
( 0101000 01111110  
$ 0100100 01011011  
) 0101001 01011101  

NB: Alphabetic lower case characters have their symbolic representation too but not included in this scheme

Loresho Secondary School CBE Subjects, Pathways, Contacts {Full Details}

Loresho Secondary School is a Day, Sub-County level Mixed Secondary school, located in Westlands Sub-County, Nairobi County, in Kenya. (+254)0722252849 is the current school phone contact.

LORESHO SECONDARY SCHOOL’S DETAILS.

Location: NAIROBI
Sex: MIXED
Category: REGULAR
Cluster: SubCounty School at Level C4

15

STEM

15

Social Sciences

10

Arts & Sports

CBE Subject Combinations Offered at Loresho Secondary School

View all available subject combinations at this school

SOCIAL SCIENCES

15
HUMANITIES & BUSINESS STUDIESCode: SS2019
Christian Religious Education,Geography,History & Citizenship
3 SubjectsSOCIAL SCIENCES
LANGUAGES & LITERATURECode: SS1037
Fasihi ya Kiswahili,General Science,Kenya Sign Language
3 SubjectsSOCIAL SCIENCES
HUMANITIES & BUSINESS STUDIESCode: SS2109
Business Studies,Christian Religious Education,Fasihi ya Kiswahili
3 SubjectsSOCIAL SCIENCES
HUMANITIES & BUSINESS STUDIESCode: SS2097
Business Studies,French,History & Citizenship
3 SubjectsSOCIAL SCIENCES
LANGUAGES & LITERATURECode: SS1020
Advanced Mathematics,Fasihi ya Kiswahili,Indigenous Language
3 SubjectsSOCIAL SCIENCES
HUMANITIES & BUSINESS STUDIESCode: SS2095
Business Studies,Computer Studies,History & Citizenship
3 SubjectsSOCIAL SCIENCES
LANGUAGES & LITERATURECode: SS1032
Fasihi ya Kiswahili,French,Indigenous Language
3 SubjectsSOCIAL SCIENCES
HUMANITIES & BUSINESS STUDIESCode: SS2034
Christian Religious Education,Computer Studies,Geography
3 SubjectsSOCIAL SCIENCES
HUMANITIES & BUSINESS STUDIESCode: SS2021
Advanced Mathematics,Business Studies,Christian Religious Education
3 SubjectsSOCIAL SCIENCES
LANGUAGES & LITERATURECode: SS1028
Computer Studies,Fasihi ya Kiswahili,Kenya Sign Language
3 SubjectsSOCIAL SCIENCES
LANGUAGES & LITERATURECode: SS1024
Fasihi ya Kiswahili,History & Citizenship,Indigenous Language
3 SubjectsSOCIAL SCIENCES
HUMANITIES & BUSINESS STUDIESCode: SS2040
Christian Religious Education,French,Geography
3 SubjectsSOCIAL SCIENCES
HUMANITIES & BUSINESS STUDIESCode: SS2016
French,Geography,History & Citizenship
3 SubjectsSOCIAL SCIENCES
LANGUAGES & LITERATURECode: SS1003
Christian Religious Education,Indigenous Language,Literature in English
3 SubjectsSOCIAL SCIENCES
HUMANITIES & BUSINESS STUDIESCode: SS2075
Christian Religious Education,French,History & Citizenship
3 SubjectsSOCIAL SCIENCES

STEM SUBJECTS

15
APPLIED SCIENCESCode: ST2019
Computer Studies,Home Science,Wood Work
3 SubjectsSTEM
APPLIED SCIENCESCode: ST2048
Agriculture,Business Studies,Electricity
3 SubjectsSTEM
TECHNICAL STUDIESCode: ST3008
Electricity,General Science,Home Science
3 SubjectsSTEM
TECHNICAL STUDIESCode: ST3068
Business Studies,Geography,Media Technology
3 SubjectsSTEM
TECHNICAL STUDIESCode: ST3011
General Science,Media Technology,Power Mechanics
3 SubjectsSTEM
APPLIED SCIENCESCode: ST2017
Computer Studies,Geography,Metal Work
3 SubjectsSTEM
APPLIED SCIENCESCode: ST2083
Agriculture,Building & Construction,Home Science
3 SubjectsSTEM
APPLIED SCIENCESCode: ST2095
Agriculture,Home Science,Wood Work
3 SubjectsSTEM
APPLIED SCIENCESCode: ST2009
Business Studies,Computer Studies,Wood Work
3 SubjectsSTEM
PURE SCIENCESCode: ST1015
Advanced Mathematics,Chemistry,Electricity
3 SubjectsSTEM
TECHNICAL STUDIESCode: ST3014
Biology,Electricity,Geography
3 SubjectsSTEM
APPLIED SCIENCESCode: ST2001
Business Studies,Computer Studies,Electricity
3 SubjectsSTEM
TECHNICAL STUDIESCode: ST3117
General Science,Home Science,Power Mechanics
3 SubjectsSTEM
TECHNICAL STUDIESCode: ST3116
Computer Studies,General Science,Power Mechanics
3 SubjectsSTEM
TECHNICAL STUDIESCode: ST3012
Electricity,General Science,Media Technology
3 SubjectsSTEM

ARTS & SPORTS SCIENCE CBE SUBJECTS

10
ARTSCode: AS1049
Literature in English,Music & Dance,Theatre & Film
3 SubjectsARTS & SPORTS SCIENCE
ARTSCode: AS1043
Fasihi ya Kiswahili,Music & Dance,Theatre & Film
3 SubjectsARTS & SPORTS SCIENCE
ARTSCode: AS1044
French,Music & Dance,Theatre & Film
3 SubjectsARTS & SPORTS SCIENCE
SPORTSCode: AS2030
General Science,Media Technology,Sports & Recreation
3 SubjectsARTS & SPORTS SCIENCE
SPORTSCode: AS2024
General Science,Geography,Sports & Recreation
3 SubjectsARTS & SPORTS SCIENCE
ARTSCode: AS1010
Fine Arts,General Science,Theatre & Film
3 SubjectsARTS & SPORTS SCIENCE
ARTSCode: AS1020
Business Studies,Fine Arts,Music & Dance
3 SubjectsARTS & SPORTS SCIENCE
SPORTSCode: AS2019
Christian Religious Education,General Science,Sports & Recreation
3 SubjectsARTS & SPORTS SCIENCE
ARTSCode: AS1004
Computer Studies,Fine Arts,Theatre & Film
3 SubjectsARTS & SPORTS SCIENCE
ARTSCode: AS1013
Fine Arts,History & Citizenship,Theatre & Film
3 SubjectsARTS & SPORTS SCIENCE

How to Select Grade 10 Subjects and schools

To select Grade 10 schools and subjects under the Competency-Based Curriculum (CBC) in Kenya, Grade 9 learners should first choose a career pathway (STEM, Social Sciences, or Arts & Sports Science). Then, they’ll select three subject combinations within that pathway and finally, choose four schools for each combination, totaling 12 schools. To select preferred Grade 10 Schools and Subject Combinations, use the Ministry of Education portal selection.education.go.ke.
  1. 1. How you can Choose a Career Pathway:

    • Identify your interests and potential career aspirations.
    • Select one of the three pathways: STEM, Social Sciences, or Arts & Sports Science.
    • Confirm your choice to proceed with the pathway.
  2. 2. Select Subject Combinations:

    • The portal will provide you with a list of subject combinations available within your chosen pathway.
    • Choose three subject combinations that align with your interests and strengths.
  3. 3. Select Preferred Senior Schools:

    • For each subject combination, select four schools from the available clusters.
    • This ensures a diverse range of options and equal representation from different categories of schools.
    • A total of 12 schools will be selected: 4 for the first subject combination, 4 for the second, and 4 for the third.

    LIST OF ALL SENIOR SCHOOLS PER COUNTY.

    West Pokot County Senior Schools.

    Wajir County Senior Schools

    Vihiga County Senior Schools

    Uasin Gishu County Senior Schools

    Turkana County Senior Schools

    Trans-Nzoia County Senior Schools

    Tharaka Nithi County Senior Schools

    Tana River County Senior Schools

    Taita Taveta County Senior Schools

    Siaya County Senior Schools

    Samburu County Senior Schools

    Nyeri County Senior Schools

    Nyandarua County Senior Schools

    Nyamira County Senior Schools

    Narok County Senior Schools

    Nandi County Senior Schools

    Nakuru County Senior Schools

    Nairobi County Senior Schools

    Murang’a County Senior Schools

    Mombasa County Senior Schools

    Migori County Senior Schools

    Meru County Senior Schools

    Marsabit County Senior Schools

    LMandera County Senior Schools

    Makueni County Senior Schools

    Machakos County Senior Schools

    Lamu County Senior Schools

    Laikipia County Senior Schools

    Kwale County Senior Schools

    Kitui County Senior Schools

    Kisumu County Senior Schools

    Kisii County Senior Schools

    Kirinyaga County Senior Schools

    Kilifi County Senior Schools

    Kiambu County Senior Schools

    Kericho County Senior Schools

    Kakamega County Senior Schools

    Kajiado County Senior Schools

    Isiolo County Senior Schools

    Homa Bay County Senior Schools

    Garissa County Senior Schools

    Embu County Senior Schools

    Elgeyo-Marakwet County Senior Schools

    Busia County Senior Schools

    Bungoma County  Senior Schools

    Baringo County Senior Schools

    List of all Senior Schools in Bomet County

    Nyamira County best, top secondary schools; Indepth analysis

Bachelor of Science (Environmental Health) Degree Course; Kuccps cut off points 2023/2024 per university, requirements, Course Code & Fees

Bachelor of Science (Environmental Health) Degree Course; Kuccps cut off points 2023/2024 per university, requirements, Course Code & Fees

BACHELOR OF SCIENCE (ENVIRONMENTAL HEALTH)


MINIMUM ENTRY REQUIREMENTS

CLUSTER SUBJECT 1 BIO
CLUSTER SUBJECT 2 CHE
CLUSTER SUBJECT 3 MAT A / PHY
CLUSTER SUBJECT 4 ENG / KIS / BIO / PHY / CHE / BIO / GSC / HAG / GEO / CRE / IRE / HRE / HSC / ARD / AGR / WW / MW / BC / PM / ECT / DRD / AVT / CMP / FRE / GER / ARB / KSL / MUC / BST
NOTE: A subject may only be considered ONCE in this section

MINIMUM SUBJECT REQUIREMENTS

SUBJECT 1 BIO C+
SUBJECT 2 CHE C+
SUBJECT 3 MAT A / PHY C+
SUBJECT 4 ENG / KIS C+

AVAILABLE PROGRAMMES

INSTITUTION INSTITUTION TYPE PROGRAMME CODE PROGRAMME NAME YEAR 1 – PROGRAMME COST 2023/2024 CUT-OFF 2020 CUT-OFF 202143722104065
CLUSTER WEIGHTS
+/- BASKET
BOMET UNIVERSITY COLLEGE 1700188 BACHELOR OF SCIENCE IN ENVIRONMENTAL HEALTH KSH 275,400 17.459 16.791  ADD
DAYSTAR UNIVERSITY 1162188 BACHELOR OF SCIENCE IN ENVIRONMENTAL HEALTH KSH 280,400 17.459 16.791  ADD
KENYA METHODIST UNIVERSITY 1077188 BACHELOR OF SCIENCE IN ENVIRONMENTAL HEALTH KSH 152,000 17.459 32.903  ADD
KENYATTA UNIVERSITY 1111188 BACHELOR OF SCIENCE (ENVIRONMENTAL HEALTH) KSH 275,400 29.409 29.269  ADD
MASINDE MULIRO UNIVERSITY OF SCIENCE & TECHNOLOGY 1082188 BACHELOR OF SCIENCE (ENVIRONMENTAL HEALTH) KSH 275,400 17.459 29.110  ADD
MOI UNIVERSITY 1253188 BACHELOR OF SCIENCE (ENVIRONMENTAL HEALTH) KSH 275,400 31.822 29.064  ADD
MURANGA UNIVERSITY OF TECHNOLOGY 1246188 BACHELOR OF SCIENCE IN ENVIRONMENTAL HEALTH KSH 275,400 17.459 16.791  ADD
PWANI UNIVERSITY 1117188 BACHELOR OF SCIENCE IN ENVIRONMENTAL HEALTH KSH 275,400 17.459 16.791  ADD
TECHNICAL UNIVERSITY OF MOMBASA 1063530 BACHELOR OF SCIENCE IN ENVIRONMENTAL HEALTH SCIENCES (PUBLIC HEALTH) KSH 247,860 17.459 28.731  ADD

Top 10 Best Performing Schools KCSE 2021 in Trans Nzoia County

KCSE 2021 Best and Top Ranking Secondary Schools in Trans Nzoia County- Here is the list of Best performing Secondary schools in Trans Nzoia County as ranked by Knec.

For complete information on all schools in the country, visit the Schools’ Portal. Here you will find contact details, location, KCSE performance analysis and fees details for all schools in Kenya.

Looking for 2021 KCSE and 2021 KCPE results plus top schools per county; Visit the KNEC Portal for all the results and lists.

KCSE 2021 BEST RANKING SECONDARY SCHOOLS IN TRANS NZOIA COUNTY

See also; List of all County secondary schools in Kenya

Here are the assorted KCSE results for the top performing secondary schools in Trans Nzoia County:

  • St.Brigids. 9.402
  • St.Antony. 8.01
  • St.Joseph’s Boys 7.9272
  • St.Patricks,M 6.876
  • Boma. 6.850
  • St.Joseph’s G 6.7
  • St.Monica. 6.6476
  • Bwake Boys. 6.4526
  • St. Columbans 6.2000
  • St Marks Girls 6.0
  • Goseta. 5.9
  • Sinoko. 5.71
  • St.Marks Boys 5.60
  • Andersen. 5.5
  • Kaplamai. 5.3339
  • Suwerwa Girls 5.105
  • Kesogon. 4.9
  • Sinyereri. 4.89
  • St. Christopher Boys 4.86
  • Wiyeta Secondary 4.8
  • IC Mukuyu Girls 4.38
  • Kipkeikei Boys 4.30

BEST KCSE OVERALL SCHOOLS 2021

KCSE TOP 100 CANDIDATES2021

2021 KCSE TOP 100 BOYS

KCSE TOP 100 GIRLS 2021

KCSE 2020 RESULTS ONLINE

KCSE TOP 100 SCHOOLS OVERALL

KCSE 2020 TOP 100 SCHOOLS

KCSE 2021 BEST 100 OVERALL

KCSE 2021 TOP 100 COUNTY SCHOOLS

KCSE 2021 TOP 100 EXTRACOUNTY SCHOOLS

KCSE 2021 TOP 100 SECONDARY SCHOOLS PER COUNTY

1. Mombasa County Top 100 schools in 2021 KCSE
2. Kwale County Top 100 schools in 2021 KCSE
3. Kilifi County Top 100 schools in 2021 KCSE
4. Tana River County Top 100 schools in 2021 KCSE
5. Lamu County Top 100 schools in 2021 KCSE
6. Taita/Taveta County Top 100 schools in 2021 KCSE
7. Garissa County Top 100 schools in 2021 KCSE
8. Wajir County Top 100 schools in 2021 KCSE
9. Mandera County Top 100 schools in 2021 KCSE
10. Marsabit County Top 100 schools in 2021 KCSE
11. Isiolo County Top 100 schools in 2021 KCSE
12. Meru County Top 100 schools in 2021 KCSE
13. Tharaka-Nithi County Top 100 schools in 2021 KCSE
14. Embu County Top 100 schools in 2021 KCSE
15. Kitui County Top 100 schools in 2021 KCSE
16. Machakos County Top 100 schools in 2021 KCSE
17. Makueni County Top 100 schools in 2021 KCSE
18. Nyandarua County Top 100 schools in 2021 KCSE
19. Nyeri County Top 100 schools in 2021 KCSE
20. Kirinyaga County Top 100 schools in 2021 KCSE
21. Murang’a County Top 100 schools in 2021 KCSE
22. Kiambu County Top 100 schools in 2021 KCSE
23. Turkana County Top 100 schools in 2021 KCSE
24. West Pokot County Top 100 schools in 2021 KCSE
25. Samburu County Top 100 schools in 2021 KCSE
26. Trans Nzoia County Top 100 schools in 2021 KCSE
27. Uasin Gishu County Top 100 schools in 2021 KCSE
28. Elgeyo/Marakwet County Top 100 schools in 2021 KCSE
29. Nandi County Top 100 schools in 2021 KCSE
30. Baringo County Top 100 schools in 2021 KCSE 
31. Laikipia County Top 100 schools in 2021 KCSE
32. Nakuru County Top 100 schools in 2021 KCSE
33. Narok County Top 100 schools in 2021 KCSE
34. Kajiado County Top 100 schools in 2021 KCSE
35. Kericho County Top 100 schools in 2021 KCSE
36. Bomet County Top 100 schools in 2021 KCSE
37. Kakamega County Top 100 schools in 2021 KCSE
38. Vihiga County Top 100 schools in 2021 KCSE
39. Bungoma County Top 100 schools in 2021 KCSE
40. Busia County Top 100 schools in 2021 KCSE
41. Siaya County Top 100 schools in 2021 KCSE
42. Kisumu County Top 100 schools in 2021 KCSE
43. Homa Bay County Top 100 schools in 2021 KCSE
44. Migori County Top 100 schools in 2021 KCSE
45. Kisii County Top 100 schools in 2021 KCSE
46. Nyamira County Top 100 schools in 2021 KCSE
47. Nairobi City County Top 100 schools in 2021 KCSE

Aquinas High School KCSE Results KNEC Code, Admissions, Location, Contacts, Fees, Students’ Uniform, History, Directions and KCSE Overall School Grade Count Summary

Aquinas High School is located in Makadara constituency, Ofafa Sub-location, Maringo Location in Makadara Division of Makadara Subcounty; Nairobi County. This is within the Nairobi region of Kenya. Get to know the school’s physical location, directions, contacts, history, Form one selection criteria and analysis of its performance in the Kenya Certificate of Secondary Education, KCSE, exams. Get to see a beautiful collation of images from the school’s scenery; including structures, signage, students, teachers and many more.

 For all details about other schools in Kenya, please visit the link below;

AQUINAS HIGH SCHOOL’S KCSE RESULTS

Individual candidates can check their KCSE results by sending an SMS with their full index number (11digits) followed by the word KCSE. The SMS can be sent from any subscriber’s line (Safaricom, Airtel or any other) to 20076. For example, send the SMS in the format 23467847002KCSE to 20076. There should be no space left between the index number and the word KCSE.

One can also download the whole school’s KCSE results by Visiting the Official KNEC exams portal; https://www.knec-portal.ac.ke/.  This one requires the school’s log in credentials.

Finally, candidates can visit the school for their results. This is usually a day after the results have been released. It is important that you check your result slip to ensure there are no errors on it. Be keen to see that details such as your name, index number and sex are accurate. In case of any discrepancy, please notify your principal or KNEC immediately for correction.

AQUINAS HIGH SCHOOL’S PHYSICAL LOCATION

Aquinas High School is located in Makadara constituency, Ofafa Sub-location, Maringo Location in Makadara Division of Makadara Subcounty; Nairobi County.

AQUINAS HIGH SCHOOL’S BASIC INFO & CONTACTS AT A GLANCE

In need of more information about the school? Worry not. Use any of the contacts below for inquiries and/ or clarifications. Here is a collation of the school’s basic details:

  • SCHOOL’S NAME: Aquinas High School
  • SCHOOL’S TYPE: Boys’ only school
  • SCHOOL’S CATEGORY: Extra County school.
  • SCHOOL’S LEVEL: Secondary
  • SCHOOL’S KNEC CODE: 20401001
  • SCHOOL’S OWNERSHIP STATUS: Public/ Government owned
  • SCHOOL’S PHONE CONTACT: 0750202915/ 559046
  • SCHOOL’S POSTAL ADDRESS: P.O Box 72000 – 00200  NAIROBI
  • SCHOOL’S EMAIL ADDRESS: aquinaskenya@gmail.com
  • SCHOOL’S WEBSITE: www.aquinashigh.sc.ke
AQUINAS HIGH SCHOOL’S BRIEF HISTORY

FOR A COMPLETE GUIDE TO ALL SCHOOLS IN KENYA CLICK ON THE LINK BELOW;

Here are links to the most important news portals:

AQUINAS HIGH SCHOOL’S VISION
AQUINAS HIGH SCHOOL’S MISSION
AQUINAS HIGH SCHOOL’S MOTTO
AQUINAS HIGH SCHOOL’S FORM ONE SELECTION CRITERIA & ADMISSIONS

Being a public school, form one admissions are done by the Ministry of Education. Vacancies are available on competitive basis. Those seeking admissions can though directly contact the school or pay a visit for further guidelines.

You have been selected to join form one at high school? Well. Congratulations. In case you need to see your admission letter, then click on this link to download it; Official Form one admission letter download portal.

AQUINAS HIGH SCHOOL’S KCSE PERFORMANCE ANALYSIS

The school has maintained a good run in performance at the Kenya National Examinations Council, KNEC, exams. In the 2019 Kenya Certificate of Secondary Education, KCSE, exams the school posted good results to rank among the best schools in the County.

Aquinas’ Shamalla M. Colins scored an A- (minus) to clinch position one in the list of the top 10 candidates with special needs.

Also read;

 For all details about other schools in Kenya, please visit the link below;

AQUINAS HIGH SCHOOL’S PHOTO GALLERY

Planning to pay the school a visit? Below are some of the lovely scenes you will experience.

Aquinas High School

Also read:

SPONSORED LINKS; YOUR GUIDE TO HIGHER EDUCATION

For a complete guide to all universities and Colleges in the country (including their courses, requirements, contacts, portals, fees, admission lists and letters) visit the following, sponsored link:

SPONSORED IMPORTANT LINKS:

List of all Private Universities in Kenya, Courses List and Fees

List of all Private Universities in Kenya, Courses List and Fees

Private Universities

  1. Africa International University
  2. African Leadership University
  3. Africa Nazarene University
  4. Amref International University
  5. Catholic University of Eastern Africa
  6. Daystar University
  7. Great Lakes University Of Kisumu
  8. Gretsa University
  9. Inoorero University
  10. International Leadership University
  11. Islamic University of Kenya
  12. Kabarak University
  13. KAG East University
  14. KCA University
  15. Kenya Highlands Evangelical University
  16. Kenya Methodist University
  17. Kiriri Women’s University of Science & Technology
  18. Lukenya University
  19. Marist International University College
  20. Mount Kenya University
  21. Pan Africa Christian University
  22. Pioneer International University
  23. Regina Pacis University College
  24. Riara University
  25. Scott Christian University
  26. St Paul’s University
  27. Tangaza University College
  28. The East Africa University
  29. The Management Univesity Of Africa
  30. The Presbyterian University Of East Africa
  31. United States International University
  32. University Of Eastern Africa, Baraton
  33. Uzima University College
  34. Umma University
  35. Zetech University

Sotik Technical Training Institute Courses, Contacts, Fees, Location

Sotik Technical Training Institute (SOTIK TTI) is a Government-Public Institution which is located in Sotik, Bomet County, Kenya, approximately 3 kilometers from Makutano Junction on the Sotik-Ndanai tarmac road. Specifically, it’s in Kapkelei, along the Sotik-Ndanai road, near Kapkelei shopping center. 

The institution is registered with the Technical and Vocational Education and Training (TVET) Authority and is listed on the KUCCPS website. 

Sotik Technical Training Institute Contacts

You can easily contact the Institute by using the official contacts below:
To contact Sotik Technical Training Institute (SOTIK TTI), you can call them at +254792518945 or email them at technicalsotik@gmail.com. You can also visit their website for more information. The institute is located 3 kilometers from Makutano Junction along the Sotik-Ndanai tarmac road and 0.5 kilometers from Kapkelei shopping center. Call 0723150680 for any inquires regarding admissions.

Sotik Technical and Vocational College student portal/ Website

You can access the instution’s Student Portal/ Website by using this link: https://www.sotiktti.ac.ke/

Sotik TTI Courses offered

The TTI offers the following Courses that are approved by the Kenya Universities and Colleges Central Placement Service (KUCCPS):

Courses

We offer the following courses;

SHORT COURSES

LEVEL 4 COURSES

LEVEL 5 COURSES

LEVEL 6 COURSES

CRAFT CERTIFICATE COURSES

DIPLOMA COURSES

  1. ADMISSION REQUIREMENTS
      KCPE RESULT SLIP
    • KCSE RESULTS SLIP/CERTIFICATE
    • NATIONAL ID CARD/BIRTH CRTIFICATE
  2. INTAKES IN JANUARY, MAY AND SEPTEMBER
      NB: GOVERNMENT CAPITATION AND HELB LOAN AVAILABLE FOR THOSE WHO APPLY.

Sotik Technical Training Institute Courses Duration.

The TTI Diploma, Certificate and Artisan Courses have different durations, But generally as shown below:

  • Diploma Programs:

    The duration for diploma programs can vary. Some may be completed in two to three years, while others may take longer depending on the specific course and institution. 

  • Certificate Programs:

    Unlike Diploma Courses, Certificate programs typically have a shorter duration, often ranging from one to two years. 

  • Artisan Programs:
    Artisan programs also have varying durations, but are generally shorter than certificate programs, with some being completed in less than a year. 

Sotik TVC fee structure

The TTI Fees is subsidised by the Government. Students admitted through Kuccps also get fees bursary and loans from the Higher Education Loans Board (Helb) through the Higher Education Funding Model. Below is the general fees requirements for TTI courses:
  • Diploma Courses Fees: Ksh.67,189 per year to Ksh.72,076 per year.
  • Certificate Courses Fees: between Ksh 56,000 to Ksh 67,189 per year
  • Artisan Courses Fees: between Ksh 56,000 to Ksh 67,189 per year

Check the specific Course fees details here:

Sotik Technical Training Institute online application

Applications and placement to the TVC are done through the Kenya Universities and Colleges Central Placement Service (KUCCPS) Portal. To apply for placement through KUCCPS, you need to access the student’s portal on the KUCCPS website and log in using your KCSE index number, year of examination, and password. Once logged in, you can explore available programs and institutions, and then submit your preferred choices. Start your application by clicking on this Kuccps Student Portal Link.
You can also apply directly to the institution for admission.
The Minimum requirements are: C- for diplomas, D+ for craft certificates and E for artisan courses. But, different Courses may have more specific requirements.

Sotik Technical and Vocational College Admission Letter.

You can get the admission letter to the TTI by visiting the Kuccps Student Portal, Instituion’s Website and by paying a physical visit to the Tertiary institution. But, the best, quickest and most convenient application method is via the Kuccps portal.

All Technical Training Institute Diploma, Certificate and Artisan Courses Fees 

Download the free pdf documents below that have complete details of all TTI Courses and their Fees per year:

APPROVED TVET FEE STRUCTURE PER YEAR FOR CONTINUING KNEC TRAINEES

Here is the approved TVET Fees For Continuing Students:

APPROVED TVET FEE STRUCTURE PER YEAR FOR CONTINUING KNEC TRAINEES

CDACC FEES STRUCTURE PER YEAR.

TVET Curriculum Development, Assessment and Certification Council (CDACC) fees per year is as follows:

TVET Curriculum Development, Assessment and Certification Council Fees

 

APPROVED TVET FEES STRUCTURE FOR THREE TERMS COURSE: NEW FUNDING MODEL FOR STUDENTS

APPROVED TVET FEES STRUCTURE FOR THREE TERMS COURSE: NEW FUNDING MODEL FOR STUDENTS

GOVERNMENT SCHOLARSHIP AND LOAN FOR TTI STUDENTS.

Following your placement, you are eligible for a Government scholarship, Loan and Bursary to assist with your educational expenses. If you need Government financial support, you MUST make an application for consideration through the official website www.hef.co.ke. In the case Government scholarship, Loan and bursary do not cover the entire cost of your program, the deficit will be met by your parent/guardian.

REQUIREMENTS FOR APPLICATION FOR TVET FUNDING

1. A valid email address
2. Valid telephone number (must be registered in your name to apply for a loan)
3. KCPE and KCSE index numbers and year of examination
4. Passport size photo
5. Copy of your National ID (for loan application)
6. College/University admission letter
7. Your parents’ registered telephone number
8. Your parents’ national ID number
9. Death certificate if any of your parents is deceased.
10. Your birth certificate.
11. Two guarantors’ (Can be your parents) ID numbers and registered telephone

DETAILS ON ALL TTI/ TVC INSTITUTIONS.

Godoma TTI TTI KUCCPS Courses, Requirements, Fees, Duration and Career Opportunities


Mathenge TTI Admissions: Download Kuccps Admission Letters


Karen TTI Kuccps Course List, Requirements, Fees, Duration and Job Opportunities


Emining TTI KUCCPS Courses, Requirements, Fees, Duration and Career Opportunities


Gitwebe TTI KUCCPS Courses, Requirements, Fees, Duration and Career Opportunities


kARUMO TTI Kuccps Course List, Requirements, Fees, Duration & Job Opportunities


Kaelo TTI Kuccps Courses, Fees, Duration, Requirements, Application Form & Job Opportunities


Bumbe TTI Latest Kuccps Course List, Requirements, Fees & Duration


Chepalungu TTI Latest Kuccps Course List, Requirements, Fees & Duration


Bushiangala TTI Latest Kuccps Course List, Requirements, Fees & Duration


Gitwebe TTI Latest Kuccps Course List, Requirements, Fees & Duration


Godoma TTI Latest Kuccps Course List, Requirements, Fees & Duration


Bureti TTI Latest Kuccps Course List, Requirements, Fees & Duration


Katine TTI Kuccps Course List, Requirements, Fees, Duration & Job Opportunities


Endebess TTI College Latest Kuccps Course List, Requirements, Fees & Duration


Emurua Dikirr TTI College Latest Kuccps Course List, Requirements, Fees & Duration


Ekerubo Gietai TTI College Latest Kuccps Course List, Requirements, Fees & Duration


Kuccps Final Course List for Ahmed Shahame Mwidani TTI; Course Codes, Fees, Requirements, Cluster Cut Off Points


Karumo Technical Training Institute Courses, Contacts, Fees, Location

TTI Karumo Technical Training Institute, TTI, is a registered Public Technical and Vocational College (TVC) that is located at Kuani Sub-Location, Athwana Location, of Tigania West, Meru County.

Karumo Technical Training Institute (Karumo TTI) is a tertiary public institution under the Ministry of Education, State Department for Vocational and Technical Training. It was established in 2015 under certificate of registration number RC/0006/2014 in recognition of the fact that Technology is a part of everyday life. The TTI  is located in Athwana Location, Tigania West Sub-county in Meru County. Karumo TTI is approximately 3 kilometers off Meru-Maua road along Kwa Amos Junction-Isiolo road at coordinates (0.21544, 37.751301). It occupies an area of approximately 16.5 acres. The area receives an annual rainfall of about 400 mm to 600 mm. The road transport infrastructure in the area is good; meaning that accessibility to the institute has been made easy by available trunk roads. Presently, Karumo TTI enjoys a vibrant and dedicated human resource, committed to offering quality services in fulfilling its core mandate.

Karumo TTI Courses offered

The TTI offers the following Courses that are approved by the Kenya Universities and Colleges Central Placement Service (KUCCPS):

Karumo Technical Training Institute Courses Duration.

The TTI Diploma, Certificate and Artisan Courses have different durations, But generally as shown below:

  • Diploma Programs:

    The duration for diploma programs can vary. Some may be completed in two to three years, while others may take longer depending on the specific course and institution. 

  • Certificate Programs:

    Unlike Diploma Courses, Certificate programs typically have a shorter duration, often ranging from one to two years. 

  • Artisan Programs:
    Artisan programs also have varying durations, but are generally shorter than certificate programs, with some being completed in less than a year. 

Karumo Technical Training Institute Contacts

You can easily contact the Institute by using the official contacts below:
The Karumo Technical Training Institute (TTI) contact information is: Phone: +254705636443, Email: info@karumotti.ac.ke, P.O. BOX 276-60602 KIANJAI, and website: karumotti.ac.ke 

Karumo Technical Training Institute student portal/ Website

You can access the instution’s Student Portal/ Website by using this link: https://www.karumotti.ac.ke/about

Karumo Technical Training Institute fee structure

The TTI Fees is subsidised by the Government. Students admitted through Kuccps also get fees bursary and loans from the Higher Education Loans Board (Helb) through the Higher Education Funding Model. Below is the general fees requirements for TTI courses:
  • Diploma Courses Fees: Ksh.67,189 per year to Ksh.72,076 per year.
  • Certificate Courses Fees: between Ksh 56,000 to Ksh 67,189 per year
  • Artisan Courses Fees: between Ksh 56,000 to Ksh 67,189 per year

Karumo Technical Training Institute online application

Applications and placement to the TVC are done through the Kenya Universities and Colleges Central Placement Service (KUCCPS) Portal. To apply for placement through KUCCPS, you need to access the student’s portal on the KUCCPS website and log in using your KCSE index number, year of examination, and passwordOnce logged in, you can explore available programs and institutions, and then submit your preferred choices. Start your application by clicking on this Kuccps Student Portal Link.
You can also apply directly to the institution for admission.
 
The Minimum requirements are: C- for diplomas, D+ for craft certificates and E for artisan courses. But, different Courses may have more specific requirements.

Karumo Technical Training Institute Admission Letter.

You can get the admission letter to the TTI by visiting the Kuccps Student Portal, Instituion’s Website and by paying a physical visit to the Tertiary institution. But, the best, quickest and most convenient application method is via the Kuccps portal.

All Technical Training Institute Diploma, Certificate and Artisan Courses Fees 

Download the free pdf documents below that have complete details of all TTI Courses and their Fees per year:

DETAILS ON ALL TTI INSTITUTIONS.

Godoma TTI TTI KUCCPS Courses, Requirements, Fees, Duration and Career Opportunities


Mathenge TTI Admissions: Download Kuccps Admission Letters


Karen TTI Kuccps Course List, Requirements, Fees, Duration and Job Opportunities


Emining TTI KUCCPS Courses, Requirements, Fees, Duration and Career Opportunities


Gitwebe TTI KUCCPS Courses, Requirements, Fees, Duration and Career Opportunities


kARUMO TTI Kuccps Course List, Requirements, Fees, Duration & Job Opportunities


Kaelo TTI Kuccps Courses, Fees, Duration, Requirements, Application Form & Job Opportunities


Bumbe TTI Latest Kuccps Course List, Requirements, Fees & Duration


Chepalungu TTI Latest Kuccps Course List, Requirements, Fees & Duration


Bushiangala TTI Latest Kuccps Course List, Requirements, Fees & Duration


Gitwebe TTI Latest Kuccps Course List, Requirements, Fees & Duration


Godoma TTI Latest Kuccps Course List, Requirements, Fees & Duration


Bureti TTI Latest Kuccps Course List, Requirements, Fees & Duration


Katine TTI Kuccps Course List, Requirements, Fees, Duration & Job Opportunities


Endebess TTI College Latest Kuccps Course List, Requirements, Fees & Duration


Emurua Dikirr TTI College Latest Kuccps Course List, Requirements, Fees & Duration


Ekerubo Gietai TTI College Latest Kuccps Course List, Requirements, Fees & Duration


Kuccps Final Course List for Ahmed Shahame Mwidani TTI; Course Codes, Fees, Requirements, Cluster Cut Off Points


TSC SERVICE CHARTER (UPDATED SERVICES LIST)

TEACHERS SERVICE COMMISSION – SERVICE DELIVERY CHARTER

In need of any TSC service? Well. Here is a guideline on how to get them plus charges.   

S/N SERVICE (S) RENDERED OBLIGATION(S)/

REQUIREMENT(S)

COST TIME FRAME
1. Service upon visit to TSC

offices

Make enquiry Free Will be attended to

within 10 minutes

2. Response to correspondence Submit written

enquiry

Free Within 14 days
3. Registration of Teachers Submit duly filled

online application

Kshs 1000 Within 30 days
4. Teacher Recruitment Submit application against Advertised Posts Free Acknowledgement within 14 days.

Interview results to be communicated

within 15 days

5. Transfer of teachers Submit duly filled application form Free Acknowledge application within 14 days and communicate

decision in 90 days

6. Assignment of teachers
i.   Posting after recruitment Fill employment form Free Posting letter to be

dispatched within 30 days

ii.  Posting after leave Submit application 30 days before

expiry of leave

Free Within 7 days
iii. Appointment to Administrative position Apply for advertised posts Free Acknowledge within 14 days and appoint successful candidate within 30 days
7. Promotions
i.   Competitive Promotion Submit application against

advertised posts

Free Within 3 months
ii.   Common Cadre Promotion Submit application 30 days before due

date

Free 30 days
8. Discipline Cases
  i.   Determination Submit defence statement within 21 days after

interdiction

Free Determine the case within 3 months after registration
  ii.   Review Submit application within 90 days from the date of the letter

communicating

Ksh.2000 Within 3 months
    decision    
9. Payment of salaries and

uploading of pay slips

Perform assigned

duty

Free By last day of the

month

10. Processing of                              benefits on exit from service

i.      Compulsory Retirement

ii.      Voluntary Early Retirement

iii.     Resignation on Marriage Grounds

iv.        Retirement on Medical Grounds

v.         Death Gratuity

Submit application on prescribed forms and attach specified documents at County/ Sub- County offices  

 

Free

 

 

Within 3 months

11. Complaint Handling and Resolution Written complaint Free Initiate resolution

process within 7 days

 

List of teachers who have not filled 2019 Wealth Declaration form- Homa Bay County

Close to 46,000 teachers are yet to declare their wealth online ahead of the deadline slated for 31/12/2019. All teachers in employment under TSC are required to declare their Income, Assets and Liabilities

The online portal has been open since 1st November 2019.

FOR A COMPLETE GUIDE TO ALL SCHOOLS IN KENYA CLICK ON THE LINK BELOW;

Here are links to the most important news portals:

The Kenyan law requires all public officers to declare their wealth; periodically. This declaration is made online and there are hefty penalties for officers who fail to declare their income, assets and liabilities within the stipulated time. According to the Public Ethics Act of 2003, It is mandatory for all public officers to declare their income, assets and liabilities once in every two years.

Any teacher in TSC employment who fails to submit a Declaration or gives false or misleading information is liable to a fine of Kshs. 1,000,000 or imprisonment for a term not exceeding (1) one year or both upon conviction.

Here is the list of non-compliant teachers in this county:

COUNTY SUB COUNTY SCHOOL NAME FIRST NAME MIDDLE NAME LAST NAME
HOMABAY HOMA BAY ACHEGO PRI SCH David Odoyo Anuro
HOMABAY HOMA BAY ACHEGO S S Anthony Rwenyo Singombe
HOMABAY HOMA BAY ACHEGO S S Eric Maragia Olango
HOMABAY HOMA BAY ACHEGO S S Mark Otieno Ogola
HOMABAY HOMA BAY ACHEGO S S Sylvester Obiero Ouma
HOMABAY HOMA BAY ADONGO PRI SCH Daniel Bernard Omondi
HOMABAY HOMA BAY ADONGO PRI SCH Kennedy Ochieng Opondo
HOMABAY HOMA BAY AIMO PRI SCH Antonine Achieng Ochieng
HOMABAY HOMA BAY AIMO PRI SCH Rose Akinyi Odira
HOMABAY HOMA BAY AKELE PRIMARY SCHOOL Jackson Auko Opondo
HOMABAY HOMA BAY AKELE PRIMARY SCHOOL Molly Anyango Otieno
HOMABAY HOMA BAY AMOSO PRI SCH George Bwana Onjwayo
HOMABAY HOMA BAY AMOSO PRI SCH Jacob Odoyo Okech
HOMABAY HOMA BAY ANGIRO PRI SCH Atieno Margaret Ongode
HOMABAY HOMA BAY ANGIRO PRI SCH Charles Apollos Oluoch
HOMABAY HOMA BAY ANGIRO PRI SCH Edinah Kemuma Bota
HOMABAY HOMA BAY AOCH MUGA PRI SCH Gerald Oluoch Onyango
HOMABAY HOMA BAY AOCH MUGA PRI SCH Maureen Akoth Oguma
HOMABAY HOMA BAY ARUJO Caroline “Atieno Dorah” Nyambok
HOMABAY HOMA BAY ARUJO Jacinter Auma Ogada
HOMABAY HOMA BAY ARUJO Marren Awuor Miyare
HOMABAY HOMA BAY ASEGO PRY SCHOOL Elsa Makogilo Anyango
HOMABAY HOMA BAY ASUMBI GIRLS  S.S. Dorothy “Night Odera” Apollo
HOMABAY HOMA BAY ASUMBI GIRLS  S.S. Eliud Nyongo Onyango
HOMABAY HOMA BAY ASUMBI GIRLS  S.S. John Odhiambo Gumbe
HOMABAY HOMA BAY ASUMBI GIRLS  S.S. Philip Odhiambo Omolo
HOMABAY HOMA BAY ASUMBI GIRLS PRI SCH Ronald Juma Ouma
HOMABAY HOMA BAY ASUMBI MIXED PRI SCH Peter Ouma Nyang’oro
HOMABAY HOMA BAY ASUMBI MIXED PRI SCH Wilfridah Apondi Odero
HOMABAY HOMA BAY Asumbi Ttc Andrew Nyabaro Otara
HOMABAY HOMA BAY Asumbi Ttc Bradox “Joseph Onditi” Ayogo
HOMABAY HOMA BAY Asumbi Ttc Christine Awour Odero
HOMABAY HOMA BAY Asumbi Ttc Dedan Ochieng Wakiaga
HOMABAY HOMA BAY Asumbi Ttc Gregory Jagero
HOMABAY HOMA BAY Asumbi Ttc Jennifer Atieno Ouma
HOMABAY HOMA BAY Asumbi Ttc Kennedy Kaunda Motuka
HOMABAY HOMA BAY Asumbi Ttc Laban Nyambane Bosire
HOMABAY HOMA BAY Asumbi Ttc Reuben Ombura Oloo
HOMABAY HOMA BAY ATILI PRI SCH Mary Kerongo Mohoni
HOMABAY HOMA BAY ATILI PRI SCH Nancy Achieng Omondi
HOMABAY HOMA BAY AYUYU PRI SCH Judith Akinyi Miruka
HOMABAY HOMA BAY Bishop Ochiel Otaro Mixed Sec School Mildred Awuor Opondo
HOMABAY HOMA BAY Bishop Ochiel Otaro Mixed Sec School Nicholas Odila
HOMABAY HOMA BAY Bondo Secondary School Deborah Kwamboka Moracha
HOMABAY HOMA BAY Bondo Secondary School Edward Otieno Nyamwaya
HOMABAY HOMA BAY CHIEPE PRI SCH Albert Ochieng Owuor
HOMABAY HOMA BAY CHIEPE PRI SCH Julius Okoth Mawan’g
HOMABAY HOMA BAY CHIEPE PRI SCH Margaret Abiero
HOMABAY HOMA BAY Chiga Mixed Secondary School Obed Ouko Osoro
HOMABAY HOMA BAY Chiga Mixed Secondary School Stephen Ouko Anyona
HOMABAY HOMA BAY DISI KOCHIA  PRI SCH Edward Oyier Oyier
HOMABAY HOMA BAY DISII SEC SCH Alfred Ouma Olonde
HOMABAY HOMA BAY DISII SEC SCH Augustine Neto Maigo
HOMABAY HOMA BAY DISII SEC SCH Calvin Okoth Odhiambo
HOMABAY HOMA BAY DISII SEC SCH Josephine Anyango Nyamuga
HOMABAY HOMA BAY Dr. Mbai Mixed Secondary School Joseph Mochobe Mwebi
HOMABAY HOMA BAY FR.SCHEFFER ASUMBI Jack Otieno Ochieng
HOMABAY HOMA BAY FR.SCHEFFER ASUMBI Phoebe Adoyo Obondo
HOMABAY HOMA BAY GOD- BONDO PRI SCH Caren Aoko
HOMABAY HOMA BAY GOD KADO PRI SCH Daniel Odhiambo Omanya
HOMABAY HOMA BAY GOD KADO PRI SCH Leah Leo Okoth
HOMABAY HOMA BAY GOD KADO PRI SCH Ruth Awino Odero
HOMABAY HOMA BAY God Marera Mixed Secondary School Dororty Alexia Ongere
HOMABAY HOMA BAY God Marera Mixed Secondary School Nicholas Oluoch Oyugi
HOMABAY HOMA BAY GOD NDIRU PRIMARY SCHOOL Bonface Onyango Adede
HOMABAY HOMA BAY GOD NDIRU PRIMARY SCHOOL Emily Obiero
HOMABAY HOMA BAY GOD PONGE Maurice Ogutu Othim
HOMABAY HOMA BAY GOD PURO PRI SCH Frankline Ochieng Apamo
HOMABAY HOMA BAY GOGO- KATUMA PRI SCH Philip Oduor Odhiambo
HOMABAY HOMA BAY Gogo Katuma Secondary School Eliazar Keya Ogol
HOMABAY HOMA BAY Gogo Katuma Secondary School Felix Otieno Gworo
HOMABAY HOMA BAY GOT – KABOK PRI SCH Elly Nyabondo Kisulu
HOMABAY HOMA BAY GOT – KABOK PRI SCH Lilian Awuonda Gor
HOMABAY HOMA BAY GOT – NYALGOSI PRI SCH Albert Onyango Abuka
HOMABAY HOMA BAY GOT – NYALGOSI PRI SCH Tobias Otieno Ojuondo
HOMABAY HOMA BAY GOT KOCHUNGO PRIMARY Hellen Juma Ataka
HOMABAY HOMA BAY GOT RABUOR PRI SCH Grace Achieng Oluoch
HOMABAY HOMA BAY GOT RABUOR PRI SCH Leonard Adika Ouma
HOMABAY HOMA BAY GOT RABUOR PRI SCH William Nyowino Dwalo
HOMABAY HOMA BAY Gul Kagembe Mixed Secondary School Tobias Ogweno Gor
HOMABAY HOMA BAY GUL KAGEMBE PRI SCH Hellen “Anyango Batila” Akech
HOMABAY HOMA BAY GUL KAGEMBE PRI SCH Peninah Achieng Owour
HOMABAY HOMA BAY HOMA  BAY  S.S. Agneta Atieno Okach
HOMABAY HOMA BAY HOMA  BAY  S.S. Christine “Apiyo Ochola” Ouma
HOMABAY HOMA BAY HOMA  BAY  S.S. Diana Akinyi Kanu
HOMABAY HOMA BAY HOMA  BAY  S.S. Elvis Karume Ayaga
HOMABAY HOMA BAY HOMA  BAY  S.S. Esther Atieno Saramba
HOMABAY HOMA BAY HOMA  BAY  S.S. Fred Odhiambo Onyango
HOMABAY HOMA BAY HOMA  BAY  S.S. Herine Anyango Opudo
HOMABAY HOMA BAY HOMA  BAY  S.S. Josephine Mabera Mogaka
HOMABAY HOMA BAY HOMA  BAY  S.S. Stanislaus Khaemba Maasai
HOMABAY HOMA BAY HOMA-BAY PRI SCH Andrew Mbeya Ngolo
HOMABAY HOMA BAY HOMA-BAY PRI SCH Caroline JumaOdero Ndinya
HOMABAY HOMA BAY HOMA-BAY PRI SCH Emmerencia Akinyi Okatch
HOMABAY HOMA BAY HOMA-BAY PRI SCH Erica Adhiambo Ogana
HOMABAY HOMA BAY HOMA-BAY PRI SCH Esther Adhiambo Odede
HOMABAY HOMA BAY HOMA-BAY PRI SCH Gaudence Obondo
HOMABAY HOMA BAY HOMA-BAY PRI SCH Gesare Valentain Okibo
HOMABAY HOMA BAY HOMA-BAY PRI SCH Rose Adhiambo Omondi
HOMABAY HOMA BAY HON KALUMA KOTEWA Erick Ojungu Omondi
HOMABAY HOMA BAY KACHAR PRI SCH Anthony Nyabuto Nyakundi
HOMABAY HOMA BAY KAWIYA PRI SCH Stella Akinyi Nyamiwa
HOMABAY HOMA BAY KIMANYI PRI SCH Dismas Akumu Akumu
HOMABAY HOMA BAY KIMANYI PRI SCH Elly Awino Gaga
HOMABAY HOMA BAY KIMANYI PRI SCH Geofrey Omondi Panyako
HOMABAY HOMA BAY KIMANYI PRI SCH Walter “Ouma Kako” Migwambo
HOMABAY HOMA BAY KOGA PRIMARY SCHOOL Irene Achieng Ondigo
HOMABAY HOMA BAY KOGELO KALANYA PRI SCH Angela Akello Nyamunga
HOMABAY HOMA BAY KOGELO KALANYA PRI SCH Lilian M. Sinzole
HOMABAY HOMA BAY KOPIYO  PRIMARY Lilian Atieno Ogutu
HOMABAY HOMA BAY KOPIYO  PRIMARY Richard Victor Nyanjong
HOMABAY HOMA BAY KOYOO SEC SCH Ishmael Odhiambo Oloo
HOMABAY HOMA BAY Kuja Mixed Secondary School Tabman Oti Ogalo
HOMABAY HOMA BAY KUJA PRI SCH Jacob Okech Okelloh
HOMABAY HOMA BAY KUOYO  KOCHIA  S.S. Jared Were Odhiambo
HOMABAY HOMA BAY KWOYO KAURA  PRI SCH Jared Ochieng Odhiambo
HOMABAY HOMA BAY KWOYO KOCHIA  PRI SCH Eunice Akinyi Amayo
HOMABAY HOMA BAY KWOYO KOCHIA  PRI SCH John Barack Ouko
HOMABAY HOMA BAY KWOYO KOCHIA  PRI SCH Thabita Mosoba Maroa
HOMABAY HOMA BAY LAKE PRI SCH Jane Mboya Akumu
HOMABAY HOMA BAY LAKE PRI SCH Joyce Adhiambo Ayieyo
HOMABAY HOMA BAY LALA MIXED S.S Hannington Otieno Opollo
HOMABAY HOMA BAY LALA PRI SCH Bernadatte Kerubo Nyambuti
HOMABAY HOMA BAY LANDA  PRIMARY SCHOOL James Erick Abon’go
HOMABAY HOMA BAY LANDA  PRIMARY SCHOOL Linet Adhiambo Oluoch
HOMABAY HOMA BAY LANDA  PRIMARY SCHOOL Nancy Amondi Aliet
HOMABAY HOMA BAY LANDA  PRIMARY SCHOOL William Otieno Okello
HOMABAY HOMA BAY LANG OROMO PRI SCH Anne Auma Ofuya
HOMABAY HOMA BAY LANG OROMO PRI SCH Kenneth Ouma Oyunge
HOMABAY HOMA BAY LANG OROMO PRI SCH Paul Olwal Otieno
HOMABAY HOMA BAY Langoromo Mixed Secondary School Elijah Ongow Otieno
HOMABAY HOMA BAY LIETA PRIMARY SCHOOL Beatrice Auma Odhiambo
HOMABAY HOMA BAY LIETA PRIMARY SCHOOL Sarah Chacha Mogore
HOMABAY HOMA BAY LIGISA PRI SCH Anne Monica Obuya
HOMABAY HOMA BAY LUDHE  DONGO  SEC Peter Bunde Saoke
HOMABAY HOMA BAY LUORA PRI SCH Aloyce Ochieng Oluoch
HOMABAY HOMA BAY LUORA PRI SCH Joan Adhiambo Odhiambo
HOMABAY HOMA BAY LUORA PRI SCH Lameck Odhiambo Awuor
HOMABAY HOMA BAY LUORA PRI SCH Samson Akuki Ondago
HOMABAY HOMA BAY Luora Secondary School Hezron “Otieno Richard” Ngicho
HOMABAY HOMA BAY Luora Secondary School Luke Odhiambo Odingo
HOMABAY HOMA BAY Luora Secondary School Victoria Akinyi Rabong’o
HOMABAY HOMA BAY Lwaho Mixed Secondary School Peter Sterling Ouma
HOMABAY HOMA BAY LWAHO PRI SCH Bob Adongo Ouma
HOMABAY HOMA BAY LWAHO PRI SCH Christine Anyango Bonyo
HOMABAY HOMA BAY LWAHO PRI SCH Esther Amondi Oduor
HOMABAY HOMA BAY MAGUJE  PRI  SCH Peter Wasonga Ochieng
HOMABAY HOMA BAY MAGUTI MIXED SEC John Olwero Nyadongo
HOMABAY HOMA BAY MAGWAR PRI SCH Erick Otieno Ochieng
HOMABAY HOMA BAY MAGWAR PRI SCH Everlyne Achieng Okoth
HOMABAY HOMA BAY MAJIWA PRI SCH Ruth Akinyi Ogutu
HOMABAY HOMA BAY MARIENGA PRI SCH Joseph Ochuoga Okelo
HOMABAY HOMA BAY MARIENGA PRI SCH Nancy Achieng Okeyo
HOMABAY HOMA BAY MARIENGA SECONDARY SCHOOL Elijah Nyasenye Mosioma
HOMABAY HOMA BAY MARINDI PRI SCH Jenipher Akeyo Oluoch
HOMABAY HOMA BAY MARINDI PRI SCH Lawrence Opondo Ondiek
HOMABAY HOMA BAY MASAKLA PRI SCH Jactone Osewe Ochieng
HOMABAY HOMA BAY MASAKLA PRI SCH Rose Achieng Olal
HOMABAY HOMA BAY MUCHE PRI SCH Collince Otieno Abuka
HOMABAY HOMA BAY MUCHE PRI SCH John Omondi Asiyo
HOMABAY HOMA BAY NDIRU PRI SCH Andretar Chana Oswerah
HOMABAY HOMA BAY NDIRU PRI SCH Benter Adhiambo Ondiwa
HOMABAY HOMA BAY NDIRU PRI SCH Maurice Onyango Okumu
HOMABAY HOMA BAY NDIRU PRI SCH Noreen Adhiambo Otieno
HOMABAY HOMA BAY NDIRU PRI SCH Rose Akomo Okeyo
HOMABAY HOMA BAY NDUTA PRI SCH Mary Grena Ogucha
HOMABAY HOMA BAY NGULU PRIMARY Alphone Oyaro Ochieng
HOMABAY HOMA BAY NGULU PRIMARY Samson Ochieng’ Ogana
HOMABAY HOMA BAY NGULU PRIMARY Tom Oluoch Omolo
HOMABAY HOMA BAY NYACHAR PRI SCH George Onyango
HOMABAY HOMA BAY NYACHAR PRI SCH Leonard Onyango Mbogo
HOMABAY HOMA BAY NYAGIDHA PRI SCH Abigael Anyango Omollo
HOMABAY HOMA BAY NYAJANJA  M  SEC SCH Erick Owaja Otieno
HOMABAY HOMA BAY NYAJANJA  M  SEC SCH Holyvance Odhiambo Otieno
HOMABAY HOMA BAY NYAJANJA  M  SEC SCH Queenter Amondi Manyala
HOMABAY HOMA BAY NYAJANJA PRI SCH Debora Akoko Amayo
HOMABAY HOMA BAY NYAKAHIA PRI SCH George Owano Aluoch
HOMABAY HOMA BAY NYAKUNE PRI SCH Mary Atieno Wasonga
HOMABAY HOMA BAY NYAKWADHA PRI SCH Alice Akoth Oindo
HOMABAY HOMA BAY NYAKWADHA PRI SCH Jacktone Opiyo Ouko
HOMABAY HOMA BAY NYALIENG’A Eunice Atieno Asugo
HOMABAY HOMA BAY NYALIENG’A Patricia Nelly Auma
HOMABAY HOMA BAY NYALIENG’A Peter Majiwa Onyango
HOMABAY HOMA BAY NYALKINYI  SEC SCH Charles Owino Ober
HOMABAY HOMA BAY NYALKINYI  SEC SCH John Oketch Rabongo
HOMABAY HOMA BAY NYALKINYI  SEC SCH Nicholus Okoth Ouma
HOMABAY HOMA BAY NYALKINYI PRI SCH Edwins Malachi Okech
HOMABAY HOMA BAY NYALKINYI PRI SCH Mercy Adoyo Oyier
HOMABAY HOMA BAY NYALUYA PRI SCH John Onyango Nyoware
HOMABAY HOMA BAY NYANDEMA PRI SCH Roda Adhiambo Ochola
HOMABAY HOMA BAY NYANDIERE  PRI SCH Onyango Bernard Odiko
HOMABAY HOMA BAY NYANDIWA   PRI  SCH Gabriel Okoth Owuor
HOMABAY HOMA BAY NYANDIWA   PRI  SCH Henry George Otieno
HOMABAY HOMA BAY nyandiwa mixed sec Jesca Auma Otieno
HOMABAY HOMA BAY NYANDO PRI SCH Boaz Ochola Onguka
HOMABAY HOMA BAY NYANGUU PRI SCH Ibrahim Peter Okech
HOMABAY HOMA BAY NYANGUU PRI SCH Maureen Akinyi Akiri
HOMABAY HOMA BAY NYANGUU PRI SCH Mereza “Adhiambo E.” Okoyo
HOMABAY HOMA BAY NYANGWESO  SCH FOR THE DEAF Atieno Caroline Omiti
HOMABAY HOMA BAY NYANGWESO  SCH FOR THE DEAF Joan Akumu Ondiwa
HOMABAY HOMA BAY NYANGWESO  SCH FOR THE DEAF Salome Juma Saka
HOMABAY HOMA BAY NYAUNDHO PRI SCH David Owayo Okoth
HOMABAY HOMA BAY NYAUNDHO PRI SCH Margaret Achieng Otieno
HOMABAY HOMA BAY NYAUU PRI SCH Francis George Okeyo
HOMABAY HOMA BAY NYAWAWA PRI SCH George Otieno Ogindi
HOMABAY HOMA BAY NYAWAWA PRI SCH Gladys Achieng Onyango
HOMABAY HOMA BAY NYAWAWA PRI SCH James Ochieng Adongo
HOMABAY HOMA BAY NYAWITA PRI SCH James Ochieng Sitera
HOMABAY HOMA BAY NYOPUNGE PRI SCH Maureen Auma Omollo
HOMABAY HOMA BAY NYOPUNGE PRI SCH Michael Odhiambo Odote
HOMABAY HOMA BAY NYOPUNGE PRI SCH Peter Odondi Kawah
HOMABAY HOMA BAY OBENGLE PRI SCH Anne Ombeng Okundi
HOMABAY HOMA BAY OBUNGA PRI SCH John Buong Ochiel
HOMABAY HOMA BAY OBUYA PRI SCH David Okech Okwany
HOMABAY HOMA BAY OBUYA PRI SCH Petronillah Khavetsa Musine
HOMABAY HOMA BAY OBWANDA Lavera Davoli Ayoo
HOMABAY HOMA BAY ODIENYA PRI SCH Benter Achieng Nyamori
HOMABAY HOMA BAY ODIENYA PRI SCH Charles Ogalo Odhiambo
HOMABAY HOMA BAY ODIENYA PRI SCH Dorice Nekesa Malaba
HOMABAY HOMA BAY ODIENYA PRI SCH Erick Ochieng Aoko
HOMABAY HOMA BAY ODIENYA PRI SCH Tom Auko Otieno
HOMABAY HOMA BAY OGANDE GIRLS S. S. Beatrice Akinyi Otina
HOMABAY HOMA BAY OGANDE GIRLS S. S. Betty “Jeruto Tollim” Biwott
HOMABAY HOMA BAY OGANDE GIRLS S. S. Caroline Achieng Okech
HOMABAY HOMA BAY OGANDE GIRLS S. S. Joseph Otieno Owiti
HOMABAY HOMA BAY OGANDE GIRLS S. S. Pamela Atieno Okul
HOMABAY HOMA BAY OGANDE GIRLS S. S. Queenter Akoth
HOMABAY HOMA BAY Ogande Sch For Mentall Handicapped Ruth Adhiambo Okoto
HOMABAY HOMA BAY OJUNGE PRI SCH Bernard Nyamuche Ngala
HOMABAY HOMA BAY OLARE   S.S. dancan ouma OCHUODHO
HOMABAY HOMA BAY OLARE   S.S. Isaiah Otieno Juma
HOMABAY HOMA BAY OLARE   S.S. Nancy Magutu Otachi
HOMABAY HOMA BAY OLODO PRI SCHOOL Samuel Doe Obwana
HOMABAY HOMA BAY Oluso Mixed Secondary School Anne Adhiambo Owino
HOMABAY HOMA BAY Oluso Mixed Secondary School Petronilla Auma Okwany
HOMABAY HOMA BAY OLUSO PRI SCH Josphine Akoth Otieno
HOMABAY HOMA BAY OLUSO PRI SCH Joyce Awiti Onditi
HOMABAY HOMA BAY OLUSO PRI SCH Rose Nyansiaboka Oirere
HOMABAY HOMA BAY OLUSO PRI SCH Tom Mboya Rabongo
HOMABAY HOMA BAY OMOCHE PRI SCH Jackline Akoth Owiti
HOMABAY HOMA BAY ONDICHE PRI SCH Dorcas Kemunto Kionga
HOMABAY HOMA BAY ONDICHE PRI SCH Tom Obor Ogwang
HOMABAY HOMA BAY ONGANGA PRY SCH Julius Ouma Adumbo
HOMABAY HOMA BAY ONGANGA PRY SCH Maryanne Achieng Ojijo
HOMABAY HOMA BAY ONGORO PRI SCH Samuel Ooko Oyugi
HOMABAY HOMA BAY ONGORO PRI SCH Wilson Mwai
HOMABAY HOMA BAY ONYEGE PRI SCH Bonfas Owino Nyambocha
HOMABAY HOMA BAY ONYEGE PRI SCH Chris Robert Shimba
HOMABAY HOMA BAY ONYEGE PRI SCH Isaiah Cheluget Ogwang
HOMABAY HOMA BAY Opinde Mixed Secondary School Brian Otieno Odhiambo
HOMABAY HOMA BAY Opinde Mixed Secondary School Nelson Yogo Oloo
HOMABAY HOMA BAY OPINDE PRI SCH Maurice Ogillo Odongo
HOMABAY HOMA BAY ORERO  S.S. Clifton Otieno Awiti
HOMABAY HOMA BAY ORERO  S.S. Enock Otieno Mbogo
HOMABAY HOMA BAY ORERO  S.S. Jabes Okal Omogi
HOMABAY HOMA BAY ORERO  S.S. Kennedy Ochieng Odoyo
HOMABAY HOMA BAY ORERO PRI SCH Ismael Odoyo Auka
HOMABAY HOMA BAY ORERO PRI SCH Joanes Phelix Otieno
HOMABAY HOMA BAY ORERO PRI SCH Rodgers Oburu Otieno
HOMABAY HOMA BAY OTARO PRI SCH Denis Odongo Opere
HOMABAY HOMA BAY OTHORO PRI SCH Rose “Nancy Akoth” Ouma
HOMABAY HOMA BAY OTOLO PRI SCH George Kibwage Ombongi
HOMABAY HOMA BAY OTOLO PRI SCH George Gisiora Gitaga
HOMABAY HOMA BAY OTOLO PRI SCH Nelly Aran Juma
HOMABAY HOMA BAY PALA MASANGO PRI SCH George Ouma Ojwang
HOMABAY HOMA BAY PALA MASANGO PRI SCH Nelly Akinyi Owaka
HOMABAY HOMA BAY Pala Masogo Mixed Secondary School Dalmas Omonyi Keuya
HOMABAY HOMA BAY Pala Masogo Mixed Secondary School Vincent Oguna Odhiambo
HOMABAY HOMA BAY PAP ALARA PRI SCH Caroline Akinyi Odongo
HOMABAY HOMA BAY PAP ALARA PRI SCH Francis Ogwang Ongaro
HOMABAY HOMA BAY PAP KAMATHAYO PRI SCH Hassan Nyangau Osero
HOMABAY HOMA BAY PEDO PRI SCH Amos Kiche Ongoto
HOMABAY HOMA BAY PEDO PRI SCH Evalyne Achieng Otieno
HOMABAY HOMA BAY PUNDO KALANYA PRI SCH Benson Oyoyo Awita
HOMABAY HOMA BAY PUNDO KALANYA PRI SCH Michael Anyango Okelo
HOMABAY HOMA BAY RABUOR KAURA PRIMAY SCHOOL Monica Atieno Owidi
HOMABAY HOMA BAY RABUOR MASAWA PRI SCH Herine Akinyi Owuor
HOMABAY HOMA BAY RABUOR MASAWA PRI SCH Joyce Achieng Aoko
HOMABAY HOMA BAY Rabuor Masawa sec sch Daniel Omondi Ongoro
HOMABAY HOMA BAY RADIRO PRI SCH Carolyne Kutteh Onyango
HOMABAY HOMA BAY RANDUNG primary Caren Akinyi Okong’o
HOMABAY HOMA BAY RANGII PRI SCH Doreen Aoko Auma
HOMABAY HOMA BAY RANGII PRI SCH Veronicah Nyaminsa Orang’i
HOMABAY HOMA BAY Rangwe Girls Secondary School Evans Oluoch Onyango
HOMABAY HOMA BAY RANGWE PRI SCH Rosyline Nanyama Wakoli
HOMABAY HOMA BAY Riwa Mixed Day Secondary School Mercy Akinyi Okeyo
HOMABAY HOMA BAY ROBA  PRI SCH Jacob Ochieng Omollo
HOMABAY HOMA BAY ROBA  PRI SCH Michael Osewe Nyabala
HOMABAY HOMA BAY RODI KOPANY PRI SCH Dorothy Awour Atanga
HOMABAY HOMA BAY RODI KOPANY PRI SCH Linet “Adhiambo Ochola” Ogwe
HOMABAY HOMA BAY RODI KOPANY PRI SCH Odhiambo Lucas Ndong
HOMABAY HOMA BAY RUGA PRI SCH Dancan Omondi Auma
HOMABAY HOMA BAY RUGA PRI SCH Rose Adoyo Odhiambo
HOMABAY HOMA BAY SANGO GEM PRI SCH Nancy Achieng Nyandega
HOMABAY HOMA BAY SERO MIXED DAY Huldah Atieno Otieno
HOMABAY HOMA BAY SHAURI YAKO PRI SCH Alice Ayoma Gai
HOMABAY HOMA BAY SHAURI YAKO PRI SCH Elizabeth Oywera Okoro
HOMABAY HOMA BAY SHAURI YAKO PRI SCH Eunice Adoyo Orawo
HOMABAY HOMA BAY SHAURI YAKO PRI SCH Turphenah Lenza Otieno
HOMABAY HOMA BAY SINOGO PRI SCH Bernadette Onditi Aloo
HOMABAY HOMA BAY SOTA KOCHIA PRI SCH James Onyango Aloo
HOMABAY HOMA BAY ST  DOMINIC RABANGO SEC Charles Mkei Onguka
HOMABAY HOMA BAY ST AMBROSE GOT RABUOR SEC Lenox Ratula Odhiambo
HOMABAY HOMA BAY ST DOMINIC WIGA SEC Godfrey Alele Onyuna
HOMABAY HOMA BAY ST DOMINIC WIGA SEC Julius Otieno Opole
HOMABAY HOMA BAY ST PAULS LIGISA SEC Anyuor Samantha Akoth
HOMABAY HOMA BAY ST PAULS LIGISA SEC John “Joseph O.” Ondiany
HOMABAY HOMA BAY ST PAULS LIGISA SEC Johnstone Isaac Khaemba
HOMABAY HOMA BAY ST PAULS LIGISA SEC Vincent Ochieng Odero
HOMABAY HOMA BAY St. Albert Chepe Mixed Secondary School Everlyne Akinyi Opiyo
HOMABAY HOMA BAY St. Albert Chepe Mixed Secondary School Martin Barasa Wanyonyi
HOMABAY HOMA BAY St. John’s Got Kabok Mixed Sec. School Verah Akinyi Auma
HOMABAY HOMA BAY St. Josephine Bakhita Girls Sec. School Bornface Owino Ogada
HOMABAY HOMA BAY St. Josephine Bakhita Girls Sec. School Evance Mzee Otieno
HOMABAY HOMA BAY St. Mary’s Kachar Girls Secondary School Joel Kevin
HOMABAY HOMA BAY St. Mary’s Kachar Girls Secondary School Salome Achieng Rariwi
HOMABAY HOMA BAY St. Mathew’s Godbondo Mixed Sec Sch Everlyne Mengo
HOMABAY HOMA BAY St. Pauls Oach Muga Mixed Sec. School Albert Akech Ocholi
HOMABAY HOMA BAY St. Pauls Oach Muga Mixed Sec. School Lilian Nakhumicha Makokha
HOMABAY HOMA BAY St. Pauls Oach Muga Mixed Sec. School Zachary Philips Otieno
HOMABAY HOMA BAY ST. THERESA’S NYAUU Willis Okoth Owidi
HOMABAY HOMA BAY TAR PRI SCH Beatrice Auma
HOMABAY HOMA BAY WAHAMBLA PRIMARY SCHOOL Sarah Awour Ojwang
HOMABAY HOMA BAY WANGAPALA  KOBUOLA Jacob Ogolla Oyango
HOMABAY HOMA BAY WANGAPALA  KOBUOLA Thomas Mboya Omune
HOMABAY HOMA BAY WIGA PRIMARY SCHOOL Anthony Odhiambo Okoth
HOMABAY HOMA BAY WIGA PRIMARY SCHOOL Susan Akoth Otieno
HOMABAY HOMA BAY wikoteng mixed sec Consolata Auma Abok
HOMABAY HOMA BAY wikoteng mixed sec John N Kimuto
HOMABAY HOMA BAY wikoteng mixed sec Yvonne Alouch Otieno
HOMABAY HOMA BAY WIOBIERO PRI SCH Josephine Akinyi Ochumba
HOMABAY HOMA BAY WIOBIERO PRI SCH Lydia Atieno Opiyo
HOMABAY HOMA BAY WIOBIERO PRI SCH Pilly Anyango Onditi
HOMABAY HOMA BAY WIOBIERO SEC Calvince Okoth Okombo
HOMABAY HOMA BAY YAWO PRI SCH Benta Akoth Ayoo
HOMABAY HOMA BAY YOGO PRI SCH Geoffrey Ojwang Omollo
HOMABAY MBITA Ambassador Pamela Mboya Secondary School Pamela Akinyi Otieno
HOMABAY MBITA ARINGO Dickson Ojiayo Omondi
HOMABAY MBITA ARINGO Moses Odhiambo Mambo
HOMABAY MBITA BEDIE Calleb Odhiambo Otoo
HOMABAY MBITA BEDIE Denish Ochieng Ochuodho
HOMABAY MBITA BONDO TOWNSHIP Samuel Ochieng Okal
HOMABAY MBITA CHAMAKOWA Felistus Moraa Makori
HOMABAY MBITA DR WILLIAMS PRI SCH Joram Owour Malombo
HOMABAY MBITA DR WILLIAMS PRI SCH Peter Oburu
HOMABAY MBITA EDDIE MEMORIAL Benter Akinyi Ajuma
HOMABAY MBITA Father Tillen Mixed Day Secondary Sch Edgar Kadieda Oluoch
HOMABAY MBITA Father Tillen Mixed Day Secondary Sch Samwel Odiwuor Otuoma
HOMABAY MBITA GENGE Samson Onyango Kalima
HOMABAY MBITA GOD-JOPE Marsela Atieno Oyoko
HOMABAY MBITA GOT- AWENDO Tiberius Odhiambo Okal
HOMABAY MBITA GOT NYASUMBI John Otieno Owino
HOMABAY MBITA Hope Special School For The M.H. Wando Benedict Odhiambo Opar
HOMABAY MBITA Hope Special School For The M.H. Wando Michael Oketch Keta
HOMABAY MBITA Hope Special School For The M.H. Wando Peter Onyango Okinyi
HOMABAY MBITA KAGUNGU PRI SCHOOL Isaiah Omondi Ogwel
HOMABAY MBITA KAGUNGU PRI SCHOOL Lucas Ochieng Rowa
HOMABAY MBITA KAKIIMBA Chardwick Akoko Maranda
HOMABAY MBITA KAKIIMBA Kennedy Oluoch Fungo
HOMABAY MBITA KAKIIMBA Raymond Otieno Aloise
HOMABAY MBITA KAKIIMBA  S.S. Josiah Angutsa Alusa
HOMABAY MBITA Kakrigu – Mfangano Primary School Wilson Okandah Okal
HOMABAY MBITA KAKRIGU PRI SCHOOL Jacktone Okach Karowa
HOMABAY MBITA KAKRIGU PRI SCHOOL Samuel Oking Okomo
HOMABAY MBITA KAMASENGRE SEC SCHOOL Jason Ombaki Omabene
HOMABAY MBITA KAMATO Elizabeth Andere Omugah
HOMABAY MBITA Kamato Secondary School Lorine Adhiambo Ouma
HOMABAY MBITA KAMGERE Julia Achieng Owuor
HOMABAY MBITA KAMSAMA Stephen Michieka Omenya
HOMABAY MBITA Kaswanga Girls Secondary School Susan Kisia
HOMABAY MBITA KIRINDO PRIMARY SCHOOL Beatrice Adhiambo Keta
HOMABAY MBITA KISAKA Oliver Okwayo Omondi
HOMABAY MBITA KISUI Nancy Akinyi Ochieng
HOMABAY MBITA KISUI Ruth Mwake Mwamboa
HOMABAY MBITA KITENYI Isaac Samwel Nyakwada
HOMABAY MBITA KIWARI PRI Ezekiel “W Ouma” Odhiambo
HOMABAY MBITA KIWARI PRI John Agar Okoth
HOMABAY MBITA KIWARI PRI Maurice Ochieng Oduk
HOMABAY MBITA KOMBE PRIMARY SCHOOL Maureen Aoko Odira
HOMABAY MBITA LAMBWE Eunice Onyango
HOMABAY MBITA LAMBWE Ruth Achieng Oloo
HOMABAY MBITA LAMBWE  S.S. Bertha Auma Odero
HOMABAY MBITA LAMBWE  S.S. Eunice Atieno Rayuoyi
HOMABAY MBITA LAMBWE  S.S. Judith Awuor Makogilo
HOMABAY MBITA M.P.I.S. Elga Akinyi Onyango
HOMABAY MBITA MASISI Eunice Adhiambo Anyango
HOMABAY MBITA MASISI Kennedy Daniel Ochola
HOMABAY MBITA MAUTA  SEC SCH George Oluoch Doosoh
HOMABAY MBITA Mauta Primary School Chris Patrick Omore
HOMABAY MBITA Mauta Primary School Robert Asan
HOMABAY MBITA MBITA PRIMARY Nicholas Ochieng Sila
HOMABAY MBITA MBITA PRIMARY Norah Shibia Nandi
HOMABAY MBITA MBITA S. S. Beatrice Ouma Akumu
HOMABAY MBITA MBITA S. S. caroline “Jecinter Dulo” Okatch
HOMABAY MBITA MBITA S. S. Dorcus Ayoo Ajuoga
HOMABAY MBITA MBITA S. S. Elkana On’gwena Mak’aol
HOMABAY MBITA MBITA S. S. Isaiah Orina Moseti
HOMABAY MBITA MBITA S. S. Ochanda Roy
HOMABAY MBITA MBITA S. S. Philip Onyango Omanya
HOMABAY MBITA MBITA S. S. Racham Otange Emmanuel
HOMABAY MBITA MBITA S. S. Samson Nyachiro Mogire
HOMABAY MBITA MISORI Julius Orony Owuor
HOMABAY MBITA NGODHE  SEC  SCH Seth _ Ooko
HOMABAY MBITA NGODHE D.S.C PRIMARY SCHOOL Nicholas Omudhe Ochieng
HOMABAY MBITA NGODHE D.S.C PRIMARY SCHOOL Willis Otieno Nyakoko
HOMABAY MBITA NGODHE SDA James Otieno Wadeya
HOMABAY MBITA NYAHERA Consolata Adhiambo Odanya
HOMABAY MBITA NYAHERA Domnick Otieno Okello
HOMABAY MBITA NYAHERA Kennedy Ondigo Olero
HOMABAY MBITA NYAKWERI Christopher Onyango Tembu
HOMABAY MBITA NYAKWERI Elgona Anyango Ongele
HOMABAY MBITA NYAKWERI George “Benson Oluoch” Dianga
HOMABAY MBITA NYAKWERI Joseph Obugo
HOMABAY MBITA NYAMANGA Norah Atieno Bango
HOMABAY MBITA NYAMASARE GIRLS SEC Beryl Achieng Ouko
HOMABAY MBITA NYAMASARE GIRLS SEC Caroline Atieno Makolwal
HOMABAY MBITA NYAMASARE GIRLS SEC Dennis Bwire Akhinda
HOMABAY MBITA NYAMASARE GIRLS SEC Ray Ouko Odipo
HOMABAY MBITA NYAMUGA Salmon Ojwang Tambo
HOMABAY MBITA Nyamuga Small Home For The P.H. Pri School Monica Atieno Okumu
HOMABAY MBITA Nyandeng’a Mixed Secondary School Christine Achieng Owade
HOMABAY MBITA Nyandeng’a Mixed Secondary School Gabriel “Ochillo Willy” Ngira
HOMABAY MBITA Nyandeng’a Mixed Secondary School Valeria Anyango Obando
HOMABAY MBITA NYASANJA Erick Omondi Amayo
HOMABAY MBITA NYASUMBI George Odhiambo Otieno
HOMABAY MBITA NYASUMBI Martha Moraa Ondieki
HOMABAY MBITA OBALWANDA PRIMARY Magogo Omare
HOMABAY MBITA OBAMBO Dorothy Akinyi Abuon
HOMABAY MBITA OBAMBO Michael Omboga Adiang
HOMABAY MBITA Ochieng Odiere Pri Nemwel Bikondo
HOMABAY MBITA OGANDO Isaak Obare Ogao
HOMABAY MBITA OGONGO MIXED  SCHOOL Norman Onyango Ondiek
HOMABAY MBITA OGUTA MBARE WARIGA Linet Night Oyawo
HOMABAY MBITA Oseno Primary School Akinyi Otieno Mbilia
HOMABAY MBITA Oseno Primary School Mildred Akinyi Ochieng
HOMABAY MBITA Oseno Primary School Samuel Ogutu Ochola
HOMABAY MBITA Otieno Kajwang Nyamaji Secondary School Mmbone Roselyne Vodohi
HOMABAY MBITA OWICH David Otieno Osewe
HOMABAY MBITA OWICH Joseph Ngare Kongere
HOMABAY MBITA Ponge Shem Odoyo Mwaya
HOMABAY MBITA POWO Mary Adhiambo Anindo
HOMABAY MBITA POWO Paul Mogendi
HOMABAY MBITA POWO Sospeter J Ombura
HOMABAY MBITA POWO Stellah Achieng Atieno
HOMABAY MBITA RAMBA PRIMARY SCHOOL Lameck Odiwuor Nyangori
HOMABAY MBITA RAMBA PRIMARY SCHOOL Morrison Njagi Njeru
HOMABAY MBITA RAMBA PRIMARY SCHOOL Paskal Ochieng Ongenyo
HOMABAY MBITA Rambim Primary School Lucas Ogolla Ajwang
HOMABAY MBITA REMBA PRI SCH Godfrey Omondi Rachuonyo
HOMABAY MBITA REMBA PRI SCH Jared Abeka Osingo
HOMABAY MBITA REMBA PRI SCH Kenneth Odhiambo Ochieng
HOMABAY MBITA REMBA PRI SCH Leonard Ogweno Kidera
HOMABAY MBITA RINYA PRIMARY SCH June Akoth Ondiek
HOMABAY MBITA SENA Jane Odira Ogada
HOMABAY MBITA Senetor Otieno Kajwang High School- Gera Clements Swean Magonya
HOMABAY MBITA Senetor Otieno Kajwang High School- Gera Cliff Sunday Okello
HOMABAY MBITA Senetor Otieno Kajwang High School- Gera Patrick Nyamanga Amollo
HOMABAY MBITA Senetor Otieno Kajwang High School- Gera Stephen Onyango Ochieng
HOMABAY MBITA SIKRI-JERUSALEMU Oscar Ojwando Nyambuga
HOMABAY MBITA SOKO ABALA Joan Achieng Onyino
HOMABAY MBITA St. Philips Ndhuru Mixed Sec. School Volgat Odhiambo Odiaga
HOMABAY MBITA ST. WILLIAMS OSODO SEC SCH Everlyne Atieno Owuor
HOMABAY MBITA SULWE Christine Auma Onyango
HOMABAY MBITA SULWE Moses Oyugi Otieno
HOMABAY MBITA Takawiri Primary School Gideon Okoth Oyuko
HOMABAY MBITA TOM  MBOYA  S.S. Christopher Henry Okulu
HOMABAY MBITA TOM  MBOYA  S.S. Jacob Otieno Oluck
HOMABAY MBITA TOM  MBOYA  S.S. Thomas Ongadi Otieno
HOMABAY MBITA UGINA Sarah Majani Nyaura
HOMABAY MBITA UOZI Gilack Ayot Ouma
HOMABAY MBITA UOZI Victor Oluoch Agwaro
HOMABAY MBITA UOZI MIXED DAY SEC Maurice Ogutu Nzugua
HOMABAY MBITA URINDA PRIMARY SCHOOL John Marongo Gwala
HOMABAY MBITA URINDA PRIMARY SCHOOL Mary Achieng Thomas
HOMABAY MBITA USAO PRIMARY George “Odongo Peter” Ondiek
HOMABAY MBITA USARE Iscah Aoko Okombo
HOMABAY MBITA USARE Simeon Wasonga Opiyo
HOMABAY MBITA UWI Bernard Opande Okumu
HOMABAY MBITA UWI Daniel Ochieng Juma
HOMABAY MBITA UWI Fredrick Monari Maisiba
HOMABAY MBITA UWI Lillian Akoth Ondiek
HOMABAY MBITA UYA Odhiambo Ochome Okongo
HOMABAY MBITA WAKIANGATA Josephine Jeremiah Opere
HOMABAY MBITA WAKIANGATA Saline Adhiambo Ogoma
HOMABAY MBITA WAKONDO Florence Ndunge Musyoka
HOMABAY MBITA WAKONDO Robert Okoth Kamau
HOMABAY MBITA WAKULA Israel Ochieng Okal
HOMABAY MBITA Wakula Mixed Secondary School Rebecca Atieno Okumu
HOMABAY MBITA Wakula Mixed Secondary School Thomas Mboya Onyango
HOMABAY MBITA WAMAI Monica “Chacha Maswi” Matunga
HOMABAY MBITA WAMWANGA Fredrick Odira Riako
HOMABAY MBITA WANDIJI Ben Muranga Evans
HOMABAY MBITA WANDIJI Rose Atieno Wagambo
HOMABAY MBITA Wanga Pri Alloys Obunga Ajwang
HOMABAY MBITA WANYAMA PRI Shem Omondi Odoyo
HOMABAY MBITA WAONDO S.S Elijah Wafula Matisi
HOMABAY MBITA WAONDO S.S Jafeth Odayo Ochieng
HOMABAY MBITA WAONDO S.S Sarah Achieng Otieno
HOMABAY MBITA WAONDO S.S William Obongo Odoyo
HOMABAY MBITA WAREGI Quinter Atieno Ouso
HOMABAY MBITA WARINGA Henry Langa Sako
HOMABAY MBITA WARINGA Joe Oduya Okuro
HOMABAY MBITA WARINGA Philip Odera Gadi
HOMABAY MBITA Wasamo Girls Secondary School Leah Adongo Otieno
HOMABAY MBITA WASARIA Charles “Johnson Uhuru” Oganda
HOMABAY MBITA WASARIA Gabriel Otunga Osodo
HOMABAY MBITA WASARIA Ogunda Joyce Aoko
HOMABAY MBITA WAWARE  SEC SCH James Agwanda Akello
HOMABAY MBITA WAWARE  SEC SCH Nickson Ongoya Odundo
HOMABAY NDHIWA ABURA PRIMARY Ruth Adoyo Ochola
HOMABAY NDHIWA AKALA PRI SCH Jeddy Awuor
HOMABAY NDHIWA ALUOR  PRI SCH Macborran M Ooga
HOMABAY NDHIWA ALUOR MIXED  SEC Dennis Odero Oguta
HOMABAY NDHIWA ALUOR MIXED  SEC Grace Auma Otieno
HOMABAY NDHIWA ALUOR MIXED  SEC Marceline Atieno
HOMABAY NDHIWA ANDINGO PALA PRI SCH Pius Gichere Thomas
HOMABAY NDHIWA ANDIWO MIXED SEC SCH Daniel Waga Osanya
HOMABAY NDHIWA ANGIYA  PRI SCH Dorothy Akoth Oloo
HOMABAY NDHIWA Apuoche Mixed Secondary School Juliet Adhiambo Otiku
HOMABAY NDHIWA AREMBE Elly Ocholla Odero
HOMABAY NDHIWA AREMBE Everlyne Achieng Mboga
HOMABAY NDHIWA ARINA PRI SCH Hazel Atieno Okoth
HOMABAY NDHIWA Bishop Ochiel Nyagidha Secondary School Emmanuel Crispo Oduol
HOMABAY NDHIWA BONGU PRI SCH Dorothy Akoth Akumu
HOMABAY NDHIWA BWANDA PRI SCH Jackline A+tieno Oywer
HOMABAY NDHIWA DUNGA PRI SCH Bolden Ochieng Abuto
HOMABAY NDHIWA DUNGA PRI SCH Joshua Amuka Ochieng
HOMABAY NDHIWA GINA MIXED SEC Fidelis Ondeng Omondi
HOMABAY NDHIWA GINA PRI SCH Alice Bitutu Bundi
HOMABAY NDHIWA GINA PRI SCH Henry Okeyo Abade
HOMABAY NDHIWA GOD POKO PRI SCH Polycarp Odhiambo Kitembe
HOMABAY NDHIWA GOT KOJOWI PRI SCH Vincent Okinyi Okelo
HOMABAY NDHIWA GOT KOJOWI SEC SCH Kenedy Ouma Misia
HOMABAY NDHIWA GOYO PRI SCH Boniface Kun’gu Okinyi
HOMABAY NDHIWA JABAGRE PRI SCH Walter Omondi Obonyo
HOMABAY NDHIWA Kaguria Mixed Secondary School Kennedy Otieno Ondiek
HOMABAY NDHIWA KAMASI PRI SCH Pamela Nanjala Omolo
HOMABAY NDHIWA KAMENYA PRI SCH Phautinus Aete Gor
HOMABAY NDHIWA KAUMO PRI SCH Gordon Opiyo Okello
HOMABAY NDHIWA KODUOGO PRI SCH Bilha Akinyi Orony
HOMABAY NDHIWA KODUOL PRI SCH Christine Anyango Oguta
HOMABAY NDHIWA KODUOL PRI SCH Richard Otieno Oguta
HOMABAY NDHIWA KOGA PRI SCH Martin Oduogi Gunga
HOMABAY NDHIWA KOGUTA PRI SCH Elizabeth Waciaya Okumu
HOMABAY NDHIWA KOGUTA PRI SCH Eucabeth Adhiambo Omeny
HOMABAY NDHIWA KOLWALO PRI SCH Monica Achieng Nyangor
HOMABAY NDHIWA Kome Mixed Sec Sch SETH ODIWUOR OGWENO
HOMABAY NDHIWA KOME PRI SCH Peter Aluoch Lumumba
HOMABAY NDHIWA KONGO  PRI  SCH Martha Awuor Midigo
HOMABAY NDHIWA KONGO  PRI  SCH Peter Onyango Osewe
HOMABAY NDHIWA LANGI  MIXED  SEC Peter Otieno Jaleny
HOMABAY NDHIWA LANGI  MIXED  SEC Thomas Opondo Oyamo
HOMABAY NDHIWA LIGEGA PRY SCH Joram Onditi Ganda
HOMABAY NDHIWA LWANDA KAWOUR MIXED SEC SCH Daniel Odoyo Obanda
HOMABAY NDHIWA LWANDA KAWOUR PRI SCH Moses Katito Ochola
HOMABAY NDHIWA LWANDA KAWOUR PRI SCH Quinter Adhiambo Owi
HOMABAY NDHIWA MAGINA PRI SCH Christine Achieng Omondi
HOMABAY NDHIWA MAGINA PRI SCH Lilian Onyango Akech
HOMABAY NDHIWA MAGINA SEC SCH Benard Kereu
HOMABAY NDHIWA MAGINA SEC SCH Benard Ochieng Onyango
HOMABAY NDHIWA MAGINA SEC SCH Cecilia Kemunto Isanda
HOMABAY NDHIWA MAGINA SEC SCH Wycliff Bosire Omanga
HOMABAY NDHIWA MALELA PRI SCH Owino Philip
HOMABAY NDHIWA MANERA PRI SCH Michael Odiwuor Opollo
HOMABAY NDHIWA MARANYONA PRI SCH David Omondi Oluoch
HOMABAY NDHIWA MARIRI PRI SCH James Odhiambo Okoth
HOMABAY NDHIWA MARIRI PRI SCH Thomas Aluoch Obondo
HOMABAY NDHIWA MARIWA PRI SCH Nicholas Otieno Omondi
HOMABAY NDHIWA MARIWA PRI SCH Shadrack Okongo Onganyi
HOMABAY NDHIWA MAROO PRI SCH Esther Achieng Omondi
HOMABAY NDHIWA MAROO PRI SCH Joseph Aloma Ndulu
HOMABAY NDHIWA MAWEGA PRIMARY George Awiti Odhiambo
HOMABAY NDHIWA Mbani Mixed Day Secondary School Isaiah Odhiambo Ogalo
HOMABAY NDHIWA Mbani Mixed Day Secondary School Maurice Otieno Munga
HOMABAY NDHIWA Mbani Mixed Day Secondary School Phiona Achieng Boi
HOMABAY NDHIWA MBANI PRI SCH Robert Ochieng Ojwaka
HOMABAY NDHIWA MINYA PRI SCH Ezra Oloo Ogwel
HOMABAY NDHIWA MIROGI  BOYS S.S. Calvince Otieno Odhiambo
HOMABAY NDHIWA MIROGI  BOYS S.S. Felix Oloo Ochieng
HOMABAY NDHIWA MIROGI  BOYS S.S. James Okuku Kadunga
HOMABAY NDHIWA MIROGI  BOYS S.S. Jared Otieno Audi
HOMABAY NDHIWA MIROGI  GIRLS  S.S. Akoth Dorcas Stephen
HOMABAY NDHIWA MIROGI  GIRLS  S.S. Bramwel Olando Wesonga
HOMABAY NDHIWA MIROGI  GIRLS  S.S. Samuel “A. Otieno” Onyango
HOMABAY NDHIWA MISANI PRI SCH Charles Odhiambo Ayodo
HOMABAY NDHIWA MISANI PRI SCH Julius “Ben Omollo” Disi
HOMABAY NDHIWA Misita Primary School Charles Orawo Nyamboga
HOMABAY NDHIWA Misita Primary School Monica Paulo Akelo
HOMABAY NDHIWA NDERE PRI SCH Charles Ojwang Onyango
HOMABAY NDHIWA Ndhiwa Hospital Primary School Abdul Nassir Sat
HOMABAY NDHIWA Ndhiwa Hospital Primary School Brenda Anyango Matete
HOMABAY NDHIWA NDHIWA PRI SCH Jedidah Wamalwa
HOMABAY NDHIWA NDHIWA PRI SCH Lindah Adhiambo Okello
HOMABAY NDHIWA NDIRA KOKOTH PRI SCH Saraphine Akinyi Okemba
HOMABAY NDHIWA NDISI PRI SCH Jackline Adoyo Anyoso
HOMABAY NDHIWA NDISI PRI SCH Ochupe Charles Onyango
HOMABAY NDHIWA NYAMANGA PRI SCH Argwings Watta Nyakiti
HOMABAY NDHIWA NYAMANGA PRI SCH Lameck Otieno Okeyo
HOMABAY NDHIWA NYAMANGA PRI SCH Margaret Bosibori Okinyi
HOMABAY NDHIWA NYAMOGO PRI SCH Lavender Anyango Otieno
HOMABAY NDHIWA NYAMOS PRI SCH George Ouma Odida
HOMABAY NDHIWA NYAMWARE PRI SCH William Agawo Aketch
HOMABAY NDHIWA NYANDOTO  PRI SCH Caroline Akinyi Oganga
HOMABAY NDHIWA NYANDOTO  PRI SCH Diana Atieno Owuor
HOMABAY NDHIWA NYARANDI PRI SCH Roberts Maiko Jackoyo
HOMABAY NDHIWA NYARANDI PRI SCH Ronard Ondiek Ragot
HOMABAY NDHIWA NYARATH PRI SCH Alfred Mumbo Okoth
HOMABAY NDHIWA NYARATH PRI SCH Dorothy Amolo Ombwa
HOMABAY NDHIWA Nyarongi Mixed Secondary School Benedict Reagan Lang’o
HOMABAY NDHIWA Nyarongi Mixed Secondary School Evernce Otieno Adero
HOMABAY NDHIWA NYARONGI PRI SCH Jacob Owuoyo Ochieng
HOMABAY NDHIWA NYARONGI PRI SCH Lilian Anyango Asewe
HOMABAY NDHIWA NYARONGI PRI SCH Maurine Akinyi Mboji
HOMABAY NDHIWA OBERA  S.S. Gudylean Atieno Achere
HOMABAY NDHIWA OBERA  S.S. Zachariah Makokhah
HOMABAY NDHIWA OCHOL PRI SCH John Kapoka Oloo
HOMABAY NDHIWA ODHIAMBO RAMBO PRI SCH Phoebe Toto Emaset
HOMABAY NDHIWA OGADA PRI SCH Anne Awuor Khagol
HOMABAY NDHIWA OGADI PRI SCH Alice Adhiambo Otieno
HOMABAY NDHIWA OGADI PRI SCH Walter Bando Odongo
HOMABAY NDHIWA Ojode Pala Mixed Day Secondary School Edwin Ouma Owino
HOMABAY NDHIWA Ojode Pala Mixed Day Secondary School Ernest Ambogah Otecko
HOMABAY NDHIWA Ojode Pala Mixed Day Secondary School Godwins Odhiambo Ayany
HOMABAY NDHIWA Ojode Pala Mixed Day Secondary School Hayo Vienna Daisy
HOMABAY NDHIWA Ojode Pala Mixed Day Secondary School Judith Anyango Omboto
HOMABAY NDHIWA OKOK MIXED SEC Janet Atieno Ang’ila
HOMABAY NDHIWA OKOK MIXED SEC Kennedy Odhiambo Akuku
HOMABAY NDHIWA OKOK PRI SCH Silas Otieno Okello
HOMABAY NDHIWA OKOK PRI SCH Sylvester Onyango Were
HOMABAY NDHIWA OKOTA PRI SCH Jane Muthoni Muriuki
HOMABAY NDHIWA Ondati Girls Secondary School Erick Okumu Otieno
HOMABAY NDHIWA Ondati Girls Secondary School Mary Atieno Awino
HOMABAY NDHIWA ONDATI PRI SCH Jacqueline “Atieno Lilian” Ochiel
HOMABAY NDHIWA ONDATI PRI SCH Washington Orada Ngutu
HOMABAY NDHIWA Ongako Mixed Secondary School Josephat Moreka Masenge
HOMABAY NDHIWA Ongako Mixed Secondary School Samwel Orima Onyango
HOMABAY NDHIWA ONGENG PRI SCH Lorna Akoth Ouma
HOMABAY NDHIWA OPANGA PRY SCH James Otieno Odingo
HOMABAY NDHIWA OPANGA PRY SCH Richard Ouko Ogolla
HOMABAY NDHIWA Oridi Girls Secondary School Lydia Muhonja Buresa
HOMABAY NDHIWA ORIDI PRI SCH Job Omango Okoth
HOMABAY NDHIWA OSANI PRI SCH Erick Otieno Gwoma
HOMABAY NDHIWA OSURE PRI SCH Wilson Otieno Otieno
HOMABAY NDHIWA OTANGRE PRIMARY SCHOOL Aquinous Onyango Ochieng
HOMABAY NDHIWA OTANGRE PRIMARY SCHOOL Japhet Bosire Onchonga
HOMABAY NDHIWA OTANGRE PRIMARY SCHOOL Patrick Keru Machuka
HOMABAY NDHIWA OTOTO (BISHOP OKOK)  MIXED SEC Cyphas Odhiambo Onyango
HOMABAY NDHIWA OTOTO PRI SCH Jackline Undisa Ochieng
HOMABAY NDHIWA PALA BOYA PRI SCH Ascah Akinyi Orwa
HOMABAY NDHIWA RAIRI PRI  SCH Malaki Otieno Odhiambo
HOMABAY NDHIWA RAKORO PRI SCH Lucy Adhiambo Ogallo
HOMABAY NDHIWA RAMOYA PRI SCH Charles Otieno Orwa
HOMABAY NDHIWA RAMOYA PRI SCH Hillary Willys Ochieng’
HOMABAY NDHIWA RANDHORE PRI SCH Ritah Nasimiyu Fwamba
HOMABAY NDHIWA RANEN MIKUMU  PRI SCH Samson Obuya Oer
HOMABAY NDHIWA RANGENYA PRI SCH Doreen Naa Onyuka
HOMABAY NDHIWA RANGENYA PRI SCH Simon Otieno Ong’udi
HOMABAY NDHIWA RANGENYA PRI SCH Tom Aggrey Oloo
HOMABAY NDHIWA RAPEDHI  MIXED SEC John Otieno Okumu
HOMABAY NDHIWA RAPEDHI PRI SCH Beldin Akinyi Nyariang
HOMABAY NDHIWA RAPEDHI PRI SCH Janet Night Wasonga
HOMABAY NDHIWA RARAGE SECONDARY James Nyaruhucha Mosabi
HOMABAY NDHIWA RATIL PRI SCH Evans Juma Obila
HOMABAY NDHIWA ROTA PRI SCH Wilson Okinyi Aroko
HOMABAY NDHIWA SASI PRI SCH Aloice Akama Odhiambo
HOMABAY NDHIWA SASI PRI SCH Mathew Ouyu Opiyo
HOMABAY NDHIWA Sigama Mixed Secondary School Kevin Ouma Aoko
HOMABAY NDHIWA Sigama Mixed Secondary School Stephen Omondi Nyangawa
HOMABAY NDHIWA SIGAMA PRI SCH Jane Adhiambo Otieno
HOMABAY NDHIWA SIGAMA PRI SCH Lonah Ajayo Nyunga
HOMABAY NDHIWA Singenge Primary School Esther Adongo Juma
HOMABAY NDHIWA ST JOHN’S NYANDIWA PRI Tecler Adhiambo Okumu
HOMABAY NDHIWA ST MARYS NYAMOGO  SEC Dorine Adhiambo Juma
HOMABAY NDHIWA ST NICANSIUS MARANYONA M SEC Andrew Kenedy Odera
HOMABAY NDHIWA St. Felix Nyarath Secondary School Wycliffe Nyandieka Moseti
HOMABAY NDHIWA St. Lucy Odhiambo Rambo Girls Sec.School Brian Sidandi Okoth
HOMABAY NDHIWA St. Patrick Ogango Secondary School Daniel Aluoch Achola
HOMABAY NDHIWA St. Patrick Ogango Secondary School Isaac Ombongi Morata
HOMABAY NDHIWA St. Peter’s Rambusi Secondary School Mark Okoth Ouko
HOMABAY NDHIWA St. Peter’s Rambusi Secondary School Queenter Atieno Onyango
HOMABAY NDHIWA UNGA PRI SCH Steven Osodo Oduwo
HOMABAY NDHIWA WACHARA KWABAI PRI SCH Dorothy Akinyi Mado
HOMABAY NDHIWA WAYAGA PRI SCH Jacob Ohuru Omolo
HOMABAY NDHIWA Wayara Mixed Secondary School Stephene Otieno Odhiambo
HOMABAY NDHIWA WI-KOONJE PRI SCH Erick Odhiambo Okeyo
HOMABAY NDHIWA WIRAKUOM PRI SCH Tobias Mboya Oliech
HOMABAY RACHUONYO NORTH ABUNDU PRI  SCH Justus Edward Keragia
HOMABAY RACHUONYO NORTH ABUNDU PRI  SCH Peterson Achola Odemba
HOMABAY RACHUONYO NORTH Achuth Primary School Rachuonyo Benjamin Gari
HOMABAY RACHUONYO NORTH Achuth Primary School Roselyne Achieng Okano
HOMABAY RACHUONYO NORTH ADHIRO PRI SCH Kennedy Odhiambo Ogaye
HOMABAY RACHUONYO NORTH Adiedo Mixed Secondary School Bernard Omondi Tilla
HOMABAY RACHUONYO NORTH Adiedo Mixed Secondary School Hellen Hildah Anguche
HOMABAY RACHUONYO NORTH Adiedo Mixed Secondary School Jacob Mboya Malit
HOMABAY RACHUONYO NORTH Adiedo Mixed Secondary School Moses Omware
HOMABAY RACHUONYO NORTH Adiedo Mixed Secondary School Wycliffe Bonyo Arum
HOMABAY RACHUONYO NORTH AJIGO PRI SCH Everline Auma Owuor
HOMABAY RACHUONYO NORTH AJIGO PRI SCH Molly Awuor Ouma
HOMABAY RACHUONYO NORTH ALARA PRI  SCH Joseph Ogawo Obisa
HOMABAY RACHUONYO NORTH Alaru Central Mixed Secondary School Austine _ Ochina
HOMABAY RACHUONYO NORTH Alego Primary Perez Awuor Owiti
HOMABAY RACHUONYO NORTH ANDUU PRI SCH Alfreda Akoth Odera
HOMABAY RACHUONYO NORTH ANDUU PRI SCH Joseph Oreta Awuonda
HOMABAY RACHUONYO NORTH Apuko Sda Sch Jack Okoth Akumu
HOMABAY RACHUONYO NORTH Apuko Sda Sch James Magata Ratemo
HOMABAY RACHUONYO NORTH Awach  Pri Sch Dorine Atieno Miganda
HOMABAY RACHUONYO NORTH Awach  Pri Sch Peter “Odongo Awuor” Odinda
HOMABAY RACHUONYO NORTH BALA PRI  SCH Teddy Ochieng Okal
HOMABAY RACHUONYO NORTH Burlum Pri Sch David Odhiambo Oore
HOMABAY RACHUONYO NORTH Bware Mixed Secondary School Naomy “Adhiambo Oyare” Ndiege
HOMABAY RACHUONYO NORTH BWARE PRYMARY Alfred Elisha Amolo
HOMABAY RACHUONYO NORTH BWARE PRYMARY Dona Mbayachi Agawo
HOMABAY RACHUONYO NORTH CHULA PRI SCH Elizabeth Akinyi Obonyo
HOMABAY RACHUONYO NORTH CHULA PRI SCH Fidel Castro Olweny
HOMABAY RACHUONYO NORTH Daraja Pri Sch Grace Auma Odak
HOMABAY RACHUONYO NORTH Daraja Pri Sch Joseph Odhiambo Opere
HOMABAY RACHUONYO NORTH DENGA PRI SCH Benard Ongachi Akama
HOMABAY RACHUONYO NORTH DENGA PRI SCH Jobidant Omondi Owino
HOMABAY RACHUONYO NORTH Gendia  Pri Sch Joram Okeng’o Nyandoro
HOMABAY RACHUONYO NORTH Gendia  Pri Sch Maureen Akinyi Ondiek
HOMABAY RACHUONYO NORTH GENDIA HIGH SCHOOL Jesse Masiga Kisaka
HOMABAY RACHUONYO NORTH GENDIA HIGH SCHOOL Owaga Laureen Atieno
HOMABAY RACHUONYO NORTH GENDIA HIGH SCHOOL Paul Abundu Omondi
HOMABAY RACHUONYO NORTH GENDIA HIGH SCHOOL Sharon Heri Kadhuwa
HOMABAY RACHUONYO NORTH GENDIA HIGH SCHOOL Yuanita Agola
HOMABAY RACHUONYO NORTH GEORGE AGOLA OWUOR SEC Thomas Otieno Adede
HOMABAY RACHUONYO NORTH GOGO MIXED Eliud Oure Oyoo
HOMABAY RACHUONYO NORTH GOGO MIXED Jack “Ombado Raduwa” Anyango
HOMABAY RACHUONYO NORTH GOGO MIXED Tom Ogalo Ajwang
HOMABAY RACHUONYO NORTH GOGO PRI SCH Jane Atieno Mcrege
HOMABAY RACHUONYO NORTH GOGO PRI SCH Moses Otolo Onyango
HOMABAY RACHUONYO NORTH GOT OKII PRIMARY Everlyne Adhiambo Ojuok
HOMABAY RACHUONYO NORTH GOT OKII PRIMARY Jackline Ayuma Agonda
HOMABAY RACHUONYO NORTH GOT OKII PRIMARY John Orinda Osumba
HOMABAY RACHUONYO NORTH HAGGAI KOYIER PRIMARY John Kennedy Awino
HOMABAY RACHUONYO NORTH HOMA HILLS PRI SCH Roy Okoth Wamoya
HOMABAY RACHUONYO NORTH HOMA LIME  PRI SCH Charles Ochieng Owino
HOMABAY RACHUONYO NORTH HOMA LIME  PRI SCH Grace Adoyo Nyabwa
HOMABAY RACHUONYO NORTH HOMA LIME  PRI SCH Janet Atieno Ogolla
HOMABAY RACHUONYO NORTH HOMA LIME  PRI SCH Polycarp Adoyo Omondi
HOMABAY RACHUONYO NORTH JONYO PRIMARY Evelyne Mahiri Otaigo
HOMABAY RACHUONYO NORTH JONYO PRIMARY William Oduor Owenda
HOMABAY RACHUONYO NORTH KAGAI PRI SCH Juliet Kwamboka Kombo
HOMABAY RACHUONYO NORTH Kajiei Dorna Atieno Akendo
HOMABAY RACHUONYO NORTH Kajiei Josinter Auma Nyunja
HOMABAY RACHUONYO NORTH KAJIEI  S.S. Maurice Ouma Ondijo
HOMABAY RACHUONYO NORTH KAJIEI  S.S. Rose Anyango Apondi
HOMABAY RACHUONYO NORTH KAJIEI  S.S. Victor Maziga Odhiambo
HOMABAY RACHUONYO NORTH Kambusi Primary School Mariner Akinyi Nyawallow
HOMABAY RACHUONYO NORTH Kambusi Primary School Moses Odongo Odhiambo
HOMABAY RACHUONYO NORTH Kamser   Pri Sch Francis Moko Njeje
HOMABAY RACHUONYO NORTH Kamser   Pri Sch George Odhiambo Olala
HOMABAY RACHUONYO NORTH Kamser   Pri Sch Wilfred Maragia Ochwoto
HOMABAY RACHUONYO NORTH Kamser Mixed Secondary School Naom Moraa Moturi
HOMABAY RACHUONYO NORTH Kamwala Secondary School Evans Omondi Arogo
HOMABAY RACHUONYO NORTH KANAM PRI SCH Samuel Alal Ngoje
HOMABAY RACHUONYO NORTH KANDIEGE MIXED DAY SEC Janet Awino Nyaoke
HOMABAY RACHUONYO NORTH KANDIEGE MIXED DAY SEC Michael Odiwuor Ayoo
HOMABAY RACHUONYO NORTH KANDIEGE PRI. school Caroline Akinyi Odhier
HOMABAY RACHUONYO NORTH KANDIEGE PRI. school Kennedy Ouma Owallah
HOMABAY RACHUONYO NORTH KANJIRA PRI SCH Benter Anyango Ayoro
HOMABAY RACHUONYO NORTH KANJIRA PRI SCH Hezekia Onyango Rachuonyo
HOMABAY RACHUONYO NORTH KANJIRA PRI SCH James Omondi Kabasa
HOMABAY RACHUONYO NORTH Kanyadhiang  Pri Sch Kenneth Kaunda Osewe
HOMABAY RACHUONYO NORTH Kanyadhiang  Pri Sch Peter Ochieng Awiti
HOMABAY RACHUONYO NORTH Kanyadhiang  Pri Sch Sharon Achieng Opwapo
HOMABAY RACHUONYO NORTH KANYAMFWA PRI SCH Nixon Oduor Opiyo
HOMABAY RACHUONYO NORTH Kanyangwena Pri Sch Lilian Akinyi Oyuko
HOMABAY RACHUONYO NORTH Kanyangwena Pri Sch Titus Ndege Pala
HOMABAY RACHUONYO NORTH Kanyangwena Pri Sch Violet Anyango Atieno
HOMABAY RACHUONYO NORTH KARABONDI BIDII MIXED SEC George Odhiambo Ojwang’
HOMABAY RACHUONYO NORTH KARABONDI BIDII MIXED SEC Mercy Aoko Ogada
HOMABAY RACHUONYO NORTH KARABONDI GIRLS  SEC  SCH Rose Aloo Ochola
HOMABAY RACHUONYO NORTH Karabondi Pri Sch Maxwell Kolingo Odhiambo
HOMABAY RACHUONYO NORTH Karabondi Pri Sch Shelamiah Onditi Ochuma
HOMABAY RACHUONYO NORTH KASIBOS PRI SCH Judith Atieno Omuga
HOMABAY RACHUONYO NORTH KASIBOS PRI SCH Onyango Patrick Apindi
HOMABAY RACHUONYO NORTH KAWITI PRI SCH Ben Ochieng Owenga
HOMABAY RACHUONYO NORTH Kendu Muslim Primary School Ramadhan Ochien’g Ogada
HOMABAY RACHUONYO NORTH KENDU-MUSLIM Hassan Mazoud Mohammed
HOMABAY RACHUONYO NORTH KENDU-MUSLIM Moses Ochieng Amuom
HOMABAY RACHUONYO NORTH Kibaga Pri  Sch Darius Nyangwara Mogoi
HOMABAY RACHUONYO NORTH Kibaga Pri  Sch Godfrey Binaisha Oloo
HOMABAY RACHUONYO NORTH Kibugu Primary George Ochieng Onduto
HOMABAY RACHUONYO NORTH Kibugu Primary Mark Oyoo Kopiyo
HOMABAY RACHUONYO NORTH Kimira Primary School Patroba Bala Odewa
HOMABAY RACHUONYO NORTH KISINDI PRI SCH Alfred Opade Odidi
HOMABAY RACHUONYO NORTH KITAL PRIMARY Francis Omollo Oballah
HOMABAY RACHUONYO NORTH KITAL PRIMARY Solomon “Gogo Owango” Wadira
HOMABAY RACHUONYO NORTH KOBALA MIXED SEC Beatrice Achieng Ochieng
HOMABAY RACHUONYO NORTH KOBALA MIXED SEC Kevin Omondi Oyieke
HOMABAY RACHUONYO NORTH Kobala Primary School Goffrey Odwar Okoth
HOMABAY RACHUONYO NORTH Kobala Primary School Jones M Weira
HOMABAY RACHUONYO NORTH KOBILA PRIMARY Maurice Ocham Adero
HOMABAY RACHUONYO NORTH KOBOO PRI SCH Maurice “Edward Ouma” Ochola
HOMABAY RACHUONYO NORTH Kodhoch Mixed Secondary School Stephen Otieno Owino
HOMABAY RACHUONYO NORTH KODHOCH PRI SCH Evans Ogembo Ochieng
HOMABAY RACHUONYO NORTH Kogana Pri Sch Asha Julie Ochillo
HOMABAY RACHUONYO NORTH Kogana Pri Sch Grace Auma Osano
HOMABAY RACHUONYO NORTH Kogana Pri Sch Rosemary Lugano Lime
HOMABAY RACHUONYO NORTH Konyach Pri Sch Jecinter Atieno Auma
HOMABAY RACHUONYO NORTH Koredo Mixed Secondary School Timothy Nyamongo Kobe
HOMABAY RACHUONYO NORTH Kotonje Mixed Day Secondary School Harriet Akoth Ongete
HOMABAY RACHUONYO NORTH Kotonje Mixed Day Secondary School John Okumu Okwanyo
HOMABAY RACHUONYO NORTH KOWUOR PRI SCH Kepha Chianda Mbuga
HOMABAY RACHUONYO NORTH KOWUOR PRI SCH Maurine Atieno Olima
HOMABAY RACHUONYO NORTH Liera Primary Beatrice “Alice Atieno” Mwaga
HOMABAY RACHUONYO NORTH LIETA MIXED SCH Leah Akinyi Anyango
HOMABAY RACHUONYO NORTH LO-RATENG’  PRI SCH Leah Achieng Obuya
HOMABAY RACHUONYO NORTH Lower Kamuga Primary School Roselyne Akinyi Osano
HOMABAY RACHUONYO NORTH LWANDA PRI SCH Aphine Awino Onditi
HOMABAY RACHUONYO NORTH LWANDA PRI SCH Maurice Odhiambo Obisa
HOMABAY RACHUONYO NORTH Mango Primary Mary Auma Mollo
HOMABAY RACHUONYO NORTH Mariwa Pri Christine Atieno Ouma
HOMABAY RACHUONYO NORTH Masogo Mixed Secondary School Daniel Hardon Arego
HOMABAY RACHUONYO NORTH MASOGO PRI SCH Emmanuel Tindi Ochieng
HOMABAY RACHUONYO NORTH Mawego Girls Primary School Everline Adhiambo Abudho
HOMABAY RACHUONYO NORTH Mawego Girls Primary School John Were Deya
HOMABAY RACHUONYO NORTH Mawego Girls Primary School Michael Nabutola
HOMABAY RACHUONYO NORTH Mawego Girls Secondary School Margaret Kabach
HOMABAY RACHUONYO NORTH Mawego Girls Secondary School Noel Chelangat Kesembe
HOMABAY RACHUONYO NORTH Mawego Girls Secondary School Roseline Akinyi Otieno
HOMABAY RACHUONYO NORTH Mawego Mixed Primary School Sakwa Masika
HOMABAY RACHUONYO NORTH Mawego Technical Institute Bernard Tinga Ogweno
HOMABAY RACHUONYO NORTH Mawego Technical Institute Charles Ooko Odero
HOMABAY RACHUONYO NORTH Mawego Technical Institute Charles “Jonathan Odongo” Obongo
HOMABAY RACHUONYO NORTH Mawego Technical Institute Michael Ndege Odongo
HOMABAY RACHUONYO NORTH Mawego Technical Institute samuel Otieno ayugi
HOMABAY RACHUONYO NORTH Mawego Technical Institute Vitalis Agutu Akongo
HOMABAY RACHUONYO NORTH Migingo Agnes “Cynthia Achieng” Nyang’
HOMABAY RACHUONYO NORTH Migingo Alfred Onyango Onguru
HOMABAY RACHUONYO NORTH MIGUNDE PRI SCH Philip Ochieng Otieno
HOMABAY RACHUONYO NORTH Mirembe Pri  Sch Daniel Olang Obuya
HOMABAY RACHUONYO NORTH Mirembe Pri  Sch Martha Bonareri Atandi
HOMABAY RACHUONYO NORTH Miyuga Mixed Secondary School Anyango Kennedy Otieno
HOMABAY RACHUONYO NORTH Miyuga Mixed Secondary School Yvonne Apondi Okeyo
HOMABAY RACHUONYO NORTH NDERE PRI SCH David Ouma Osumba
HOMABAY RACHUONYO NORTH NDERE PRI SCH Klaus Opino Ogutu
HOMABAY RACHUONYO NORTH NDERE PRI SCH Octave “Tobias  Omolo” Ayieko
HOMABAY RACHUONYO NORTH NDHOLE PRI SCH Kiseloh Nyerere Kawene
HOMABAY RACHUONYO NORTH NDHOLE PRI SCH Maeri Benard
HOMABAY RACHUONYO NORTH NDHOLE PRI SCH Samwel Ogembo Ojwang
HOMABAY RACHUONYO NORTH NGETA John Ochieng Adede
HOMABAY RACHUONYO NORTH NG’OU PRIMARY SCHOOL Dan Otieno Bala
HOMABAY RACHUONYO NORTH NG’OU PRIMARY SCHOOL Florence Akoth Otieno
HOMABAY RACHUONYO NORTH NG’OU PRIMARY SCHOOL Peter Gumbo Oluoch
HOMABAY RACHUONYO NORTH N’GURA PRI SCH Pamela Akinyi Ogola
HOMABAY RACHUONYO NORTH NYAKANGO PRIMARY SCHOOL Tom Oluoch
HOMABAY RACHUONYO NORTH Nyakech David Oluoch Midamba
HOMABAY RACHUONYO NORTH Nyakech Hillary Ocholla Ochieng
HOMABAY RACHUONYO NORTH Nyakech Margaret Wachia Ochola
HOMABAY RACHUONYO NORTH NYAMWALA  PRI SCH Gire Otieno Elisha
HOMABAY RACHUONYO NORTH Nyangajo Pri Sch Eunice Ochieng Odoyo
HOMABAY RACHUONYO NORTH Nyangajo Pri Sch Samuel Omondi Auka
HOMABAY RACHUONYO NORTH NYANGAO  PRI SCH Benard Otieno Oginga
HOMABAY RACHUONYO NORTH Nyanja Rateng Primary School Eunice Akeyo Gor
HOMABAY RACHUONYO NORTH Nyanja Rateng Primary School Samson Onyango Odhiambo
HOMABAY RACHUONYO NORTH NYAOLA PRI SCH Grace Kwamboka Amenya
HOMABAY RACHUONYO NORTH NYASANJA  PRI SCH Mildred Akoth Adika
HOMABAY RACHUONYO NORTH NYATIR PRI SCH Judith Akoth Ochieng
HOMABAY RACHUONYO NORTH NYATIR PRI SCH Naaman Ligawa
HOMABAY RACHUONYO NORTH NYATIR PRI SCH Rose Ouko
HOMABAY RACHUONYO NORTH NYAWINO PRIMARY SCHOOL Amos Wako Odhiambo
HOMABAY RACHUONYO NORTH Obangla Primary School Richard Ouma Maragwa
HOMABAY RACHUONYO NORTH OBILO PRI SCH Lucy Kemunto Omwenga
HOMABAY RACHUONYO NORTH Ochuoga Primary School Emmanuel Rabago Member
HOMABAY RACHUONYO NORTH OINDO PRI SCH Erasto Omullo Ouma
HOMABAY RACHUONYO NORTH Ojijo Oteko Secondary School Karim “Oloo Abdul” Opiyo
HOMABAY RACHUONYO NORTH OMBOGA SECONDARY Zablon Okoth Onyango
HOMABAY RACHUONYO NORTH OMBUJO PRI  SCH Andrew Oluoch Odongo
HOMABAY RACHUONYO NORTH OMBUJO PRI  SCH Perscilah Awuor Gor
HOMABAY RACHUONYO NORTH OMOLO AGAR  PRI SCH Beatrice Anita Nyabwanda
HOMABAY RACHUONYO NORTH OMUGA PRIMARY Collins Onyango Odero
HOMABAY RACHUONYO NORTH OMUGA PRIMARY Ishmael Were Odeny
HOMABAY RACHUONYO NORTH Onenonam Pri Sch Josephine Atieno Otieno
HOMABAY RACHUONYO NORTH Ongalo Thomas Odongo Okombo
HOMABAY RACHUONYO NORTH Ongalo Secondary School Elvis Otieno Mwango
HOMABAY RACHUONYO NORTH Ongalo Secondary School Leonard Okoth Apaka
HOMABAY RACHUONYO NORTH Ongalo Secondary School Titus Opon Gedah
HOMABAY RACHUONYO NORTH ONG’ANG PRIMARY SCHOOL Lorna Nyonje Adoyo
HOMABAY RACHUONYO NORTH ONGANG SEC SCHOOL Winnie Owino Akinyi
HOMABAY RACHUONYO NORTH ONYANDO PRI SCH Alice Adhiambo Atorey
HOMABAY RACHUONYO NORTH ONYANDO PRI SCH Joseph Nyanswi Nkonya
HOMABAY RACHUONYO NORTH ORIRE PRIMARY SCHOOL Beth “Catherine  O” Atieno
HOMABAY RACHUONYO NORTH ORIWO BOYS HIGH SCHOOL Clifford Kasera Ajwang
HOMABAY RACHUONYO NORTH ORIWO BOYS HIGH SCHOOL Cliford Raila Atito
HOMABAY RACHUONYO NORTH ORIWO BOYS HIGH SCHOOL Dancan Ochieng Onguru
HOMABAY RACHUONYO NORTH ORIWO BOYS HIGH SCHOOL Dickens Obura Agunga
HOMABAY RACHUONYO NORTH ORIWO BOYS HIGH SCHOOL Gideon Onyango Oloo
HOMABAY RACHUONYO NORTH ORIWO BOYS HIGH SCHOOL John Odhiambo Onywera
HOMABAY RACHUONYO NORTH ORIWO BOYS HIGH SCHOOL Martins Ouma Kopiyo
HOMABAY RACHUONYO NORTH ORIWO BOYS HIGH SCHOOL Mathews Odera Mutula
HOMABAY RACHUONYO NORTH ORIWO BOYS HIGH SCHOOL Wycliff Omondi Awino
HOMABAY RACHUONYO NORTH ORIWO PRI SCH Erick Owino Pire
HOMABAY RACHUONYO NORTH ORIWO PRI SCH Erick Odhiambo Ayieta
HOMABAY RACHUONYO NORTH ORIWO PRI SCH Joseph Otunnue Ougo
HOMABAY RACHUONYO NORTH ORIWO PRI SCH Julian Ochieng Ogola
HOMABAY RACHUONYO NORTH OSAKWE PRI  SCH Debra Benta Odero
HOMABAY RACHUONYO NORTH OSAKWE PRI  SCH Kennedy Omondi Osing
HOMABAY RACHUONYO NORTH Osika Stephen Wanga Mboya
HOMABAY RACHUONYO NORTH OTOK SECONDARY Evans Omondi Owino
HOMABAY RACHUONYO NORTH OTOK SECONDARY Maureen Auma Olango
HOMABAY RACHUONYO NORTH OTOK SECONDARY Seth Oluoch Adede
HOMABAY RACHUONYO NORTH OTOK SECONDARY Silas Owiti Adoyo
HOMABAY RACHUONYO NORTH OYOMBE PRIMARY SCHOOL Faith Atieno Nyanginja
HOMABAY RACHUONYO NORTH OYOMBE PRIMARY SCHOOL Sylvia Luseno Vuhya
HOMABAY RACHUONYO NORTH RABUOR PRI  SCH David Juma Owade
HOMABAY RACHUONYO NORTH RABWARE PRIMARY SCHOOL Jacob Odiwuor Magicho
HOMABAY RACHUONYO NORTH Rakwaro Kamwala Pry Sch Daniel Modi Odhiambo
HOMABAY RACHUONYO NORTH Rakwaro Kamwala Pry Sch Josephine Naliaka Wanjala
HOMABAY RACHUONYO NORTH RAONGO PRIMARY SCHOOL Rhodah Anyango Ojwang
HOMABAY RACHUONYO NORTH SAMANGA  PRI /SPECIAL UNIT Clement Roberts Lando
HOMABAY RACHUONYO NORTH SAMANGA LUTHERAN MIXED Maureen Aluoch Okello
HOMABAY RACHUONYO NORTH SAMBA PRIMARY SCHOOL Jared Onyango Osano
HOMABAY RACHUONYO NORTH SANDA PRI SCH Dancun Daniel Ombat
HOMABAY RACHUONYO NORTH SANDA PRI SCH Francis Otieno Njira
HOMABAY RACHUONYO NORTH SANDA PRI SCH Ruth Auma Opiyo
HOMABAY RACHUONYO NORTH SANGLA PRI  SCH John Odhiambo Abiero
HOMABAY RACHUONYO NORTH Siburi Mixed Secondary School Job Charles Otieno
HOMABAY RACHUONYO NORTH Simbi Mixed Secondary School Moses Owili Abila
HOMABAY RACHUONYO NORTH Simbi Primary Enosh Onyango Ang’iro
HOMABAY RACHUONYO NORTH Simbi Primary Eudiah Kibuye Wandiga
HOMABAY RACHUONYO NORTH Simbi Primary Joyce Akeyo Osika
HOMABAY RACHUONYO NORTH Simbi Primary Washington Akuno Chora
HOMABAY RACHUONYO NORTH SOKO KOGIRA Elijah Obango Yoya
HOMABAY RACHUONYO NORTH SOKO KOGIRA Fredrick Ombongi Makori
HOMABAY RACHUONYO NORTH SOKO KOGIRA Joab Ogaga Oguta
HOMABAY RACHUONYO NORTH SOKO KOGIRA Nicholas Matiko Mwita
HOMABAY RACHUONYO NORTH SOMBRO PRI SCH Carolyne Agoi
HOMABAY RACHUONYO NORTH SOMBRO PRI SCH Dancan Ooko Oriche
HOMABAY RACHUONYO NORTH SOMBRO PRI SCH Selestine Akinyi Kwelllo
HOMABAY RACHUONYO NORTH ST  JOSEPH KOBUYA  SEC James Oduor Ogutah
HOMABAY RACHUONYO NORTH ST BERNARD’S OTARO MIXED SECONDARY Cosnissen Okungu Ombim
HOMABAY RACHUONYO NORTH ST BERNARD’S OTARO MIXED SECONDARY Erick Okoth Amuti
HOMABAY RACHUONYO NORTH ST BERNARD’S OTARO MIXED SECONDARY Geoffrey Obongo Oyoo
HOMABAY RACHUONYO NORTH ST BERNARD’S OTARO MIXED SECONDARY Robert Ogolla Owino
HOMABAY RACHUONYO NORTH ST DOUGLAS WETA Everlyne Atieno Kwama
HOMABAY RACHUONYO NORTH ST INNOCENT JONYO SEC Calisto Ochieng Odindo
HOMABAY RACHUONYO NORTH ST INNOCENT JONYO SEC James Odhiambo Omwono
HOMABAY RACHUONYO NORTH ST INNOCENT JONYO SEC Timothy Okumu Oloo
HOMABAY RACHUONYO NORTH St. Alfred Alara Lydia Akoth Opondo
HOMABAY RACHUONYO NORTH St. Alfred Alara Paul Otieno Benjamin
HOMABAY RACHUONYO NORTH St. John Seka Mixed Secondary School Agnes Achieng Ogwenya
HOMABAY RACHUONYO NORTH St. John Seka Mixed Secondary School Jacob Akuno Atieno
HOMABAY RACHUONYO NORTH St. Joseph Miranga Secondary School Oketch Daniel Odhiambo
HOMABAY RACHUONYO NORTH Wagwe Mixed Secondary School Maurice Otieno Okello
HOMABAY RACHUONYO NORTH Wagwe Mixed Secondary School Sarah Anduru Adhiambo
HOMABAY RACHUONYO NORTH WAGWE PRI SCH Everlyne Atieno Onyango
HOMABAY RACHUONYO NORTH WAGWE PRI SCH Ismael Obiero
HOMABAY RACHUONYO NORTH WANG’ GOT Dinah Kerubo Twara
HOMABAY RACHUONYO NORTH Warao Pri Antony Ochieng Karogu
HOMABAY RACHUONYO NORTH Warao Pri Faith Bitonga Manyange
HOMABAY RACHUONYO NORTH Warao Pri Felix Ronald Odondi
HOMABAY RACHUONYO NORTH WIKONDIEK SECONDARY SCHOOL Eunice Moraa Oganga
HOMABAY RACHUONYO NORTH WIKONDIEK SECONDARY SCHOOL Festus Meja Ogot
HOMABAY RACHUONYO NORTH YAWOKOMOLO Erick Odhiambo Ogallo
HOMABAY RACHUONYO NORTH YAWOKOMOLO Okumu Yoga
HOMABAY RACHUONYO SOUTH ABUOYE PRI SCH Caroline Atieno Ndiege
HOMABAY RACHUONYO SOUTH ABUOYE PRI SCH Samson Onyango Rapemo
HOMABAY RACHUONYO SOUTH ADEGA  PRI SCH Cyprian Kerubo Omwoyo
HOMABAY RACHUONYO SOUTH ADEGA  PRI SCH James Juma Masoro
HOMABAY RACHUONYO SOUTH ADEGA MIXED HIGH Carringtone Omiti Oyoo
HOMABAY RACHUONYO SOUTH ADEGA MIXED HIGH Erick Okoth Obuya
HOMABAY RACHUONYO SOUTH ADEGA MIXED HIGH Gladys Ngesa Malla
HOMABAY RACHUONYO SOUTH ADEGA MIXED HIGH Perez Akumu Inda
HOMABAY RACHUONYO SOUTH AGAWO PRI SCH Calvin Omondi Oluoch
HOMABAY RACHUONYO SOUTH AGORO SARE  PRI SCH Beatrice Atieno Juma
HOMABAY RACHUONYO SOUTH AGORO SARE  PRI SCH David Otieno Oketch
HOMABAY RACHUONYO SOUTH AGORO SARE  PRI SCH Everlyne Atieno
HOMABAY RACHUONYO SOUTH AGORO SARE  PRI SCH Fridah Nyanchera Orare
HOMABAY RACHUONYO SOUTH Agoro Sare Mixed Secondary School Florence Atieno Ochola
HOMABAY RACHUONYO SOUTH Agoro Sare Mixed Secondary School Fredrick Odhiambo Aboma
HOMABAY RACHUONYO SOUTH Agoro Sare Mixed Secondary School Maurine Awuor Otieno
HOMABAY RACHUONYO SOUTH Agoro Sare Mixed Secondary School Tobias Otieno Ouma
HOMABAY RACHUONYO SOUTH AGORO SARE SEC Charles Ochieng Odongo
HOMABAY RACHUONYO SOUTH AGORO SARE SEC Elizabeth Kageha
HOMABAY RACHUONYO SOUTH AGORO SARE SEC Fred Ouma Otieno
HOMABAY RACHUONYO SOUTH AGORO SARE SEC Fredrick Odhiambo Achida
HOMABAY RACHUONYO SOUTH AGORO SARE SEC Fredrick Juma Anyange
HOMABAY RACHUONYO SOUTH AGORO SARE SEC James Maronda Momanyi
HOMABAY RACHUONYO SOUTH AGORO SARE SEC Kistus Sakayo Onditi
HOMABAY RACHUONYO SOUTH AGORO SARE SEC Mary Awino Lumumba
HOMABAY RACHUONYO SOUTH AGORO SARE SEC Moses Akuno Opana
HOMABAY RACHUONYO SOUTH AGORO SARE SEC Polycap Okoth Adicka
HOMABAY RACHUONYO SOUTH AGORO SARE SEC Wycleff Olang’ Odhiambo
HOMABAY RACHUONYO SOUTH ALARO PRI SCH Edwin Omondi Otieno
HOMABAY RACHUONYO SOUTH ALARO PRI SCH Josiah Ochieng Seda
HOMABAY RACHUONYO SOUTH ALARO PRI SCH Judith Atieno Kung’a
HOMABAY RACHUONYO SOUTH ALERO NANGA  PRI SCH Paul Ounda Kongeche
HOMABAY RACHUONYO SOUTH ALERO NANGA  PRI SCH Stephen Odhiambo Ogolla
HOMABAY RACHUONYO SOUTH ANDIN’GO PRI SCH Charles Ogweno Gigo
HOMABAY RACHUONYO SOUTH ANDIN’GO PRI SCH James Koi Omolo
HOMABAY RACHUONYO SOUTH ANDIN’GO PRI SCH Teresa Adhiambo Akech
HOMABAY RACHUONYO SOUTH ANGENO PRI SCH Boaz Ochieng’ Odhiambo
HOMABAY RACHUONYO SOUTH ANGINO  MIXED  S.S. Judith Akinyi
HOMABAY RACHUONYO SOUTH ANYONA PRI SCH Benard Odero Adera
HOMABAY RACHUONYO SOUTH AOLO  PRI SCH Molly Achieng Okello
HOMABAY RACHUONYO SOUTH Aolo Girls Secondary School Harrison Nyagowa Odhiambo
HOMABAY RACHUONYO SOUTH APONDO PRI SCH Boaz Ouma Oyoo
HOMABAY RACHUONYO SOUTH APONDO PRI SCH Patrick Ouma Ondiwa
HOMABAY RACHUONYO SOUTH APONDO PRI SCH Theopista Nyabiage Makori
HOMABAY RACHUONYO SOUTH APONDO SECONDARY Victor Kegicha Mboga
HOMABAY RACHUONYO SOUTH ATEMO MIXED SS Nimrod Otieno Oloo
HOMABAY RACHUONYO SOUTH ATEMO MIXED SS Victor Barongo Makori
HOMABAY RACHUONYO SOUTH AWOUR  PRI SCH Jacob Ondiala Olwa
HOMABAY RACHUONYO SOUTH AWOUR  PRI SCH Kennedy Ouma Octaph
HOMABAY RACHUONYO SOUTH AWUORO PRI SCH Benta Adhiambo Okati
HOMABAY RACHUONYO SOUTH BISHOP LINUS OKOK Alphonce Baraka Abayo
HOMABAY RACHUONYO SOUTH BISHOP LINUS OKOK Edwin Omondi
HOMABAY RACHUONYO SOUTH BISHOP LINUS OKOK Gordon Stanley Onyango
HOMABAY RACHUONYO SOUTH BISHOP LINUS OKOK Peter Ogweno Ogolla
HOMABAY RACHUONYO SOUTH BISHOP LINUS OKOK Tom Ouma Amollo
HOMABAY RACHUONYO SOUTH CHAGERE PRI SCH Jacob Ochieng Juma
HOMABAY RACHUONYO SOUTH CHAGERE PRI SCH Lois Nyarangi Olruria
HOMABAY RACHUONYO SOUTH Danis Obara Secondary school Duncan Odhiambo Otieno
HOMABAY RACHUONYO SOUTH Dol Kodera Primary School Harrison Machayo Jumba
HOMABAY RACHUONYO SOUTH Dol Kodera Primary School Kennedy Otieno Nyando
HOMABAY RACHUONYO SOUTH Dol Kodera Primary School Nicholas Ochieng Odieny
HOMABAY RACHUONYO SOUTH Dol Kodera Primary School Otieno Edwine Ouma
HOMABAY RACHUONYO SOUTH Dol Mixed Secondary School Helida Auma Nyakeno
HOMABAY RACHUONYO SOUTH DUDI  PRI SCH Jack Ogweno Kolweny
HOMABAY RACHUONYO SOUTH DUDI GIRLS SEC Daniel Oburu
HOMABAY RACHUONYO SOUTH DUDI GIRLS SEC Debora Auma Maklago
HOMABAY RACHUONYO SOUTH DUDI GIRLS SEC Stephen Okech Kwaro
HOMABAY RACHUONYO SOUTH DUDU  PRI SCH Everlyne Achieng Owiyo
HOMABAY RACHUONYO SOUTH GANGRE  PRI SCH David Otieno Ouma
HOMABAY RACHUONYO SOUTH GANGRE  PRI SCH Harrison “Charles Onyango” Ojijo
HOMABAY RACHUONYO SOUTH GANGRE  PRI SCH Isaac Owino Ochola
HOMABAY RACHUONYO SOUTH GANGRE  PRI SCH Judith Awour Ombogo
HOMABAY RACHUONYO SOUTH GANGRE  PRI SCH Stephen Ochieng’ Othuro
HOMABAY RACHUONYO SOUTH GOD AGAK PRI SCH John Achok Koindo
HOMABAY RACHUONYO SOUTH GOD AGAK PRI SCH Lilian Makokha
HOMABAY RACHUONYO SOUTH GOD AGULU PRI SCH Alfred Kidura Idalia
HOMABAY RACHUONYO SOUTH GOD AGULU PRI SCH Faith Awuor Owiso
HOMABAY RACHUONYO SOUTH GOD AGULU SEC Elizabeth Adongo Ogutu
HOMABAY RACHUONYO SOUTH GOD BER  PRI SCH Alice Kemunto Tori
HOMABAY RACHUONYO SOUTH God Ber Secondary School Emmaculate Akinyi Aluoch
HOMABAY RACHUONYO SOUTH God Ber Secondary School Irene Auma Juma
HOMABAY RACHUONYO SOUTH God Ber Secondary School Joseph Okok Osir
HOMABAY RACHUONYO SOUTH God Ber Secondary School Phenny Akinyi Otieno
HOMABAY RACHUONYO SOUTH God Ber Secondary School Stephen Ouno Omondi
HOMABAY RACHUONYO SOUTH God Ber Secondary School Victor Ngwijo Kibwana
HOMABAY RACHUONYO SOUTH GOD KWACH PRI SCH Michael Onyango Abongo
HOMABAY RACHUONYO SOUTH GOD KWACH PRI SCH Mildred Akoth Otieno
HOMABAY RACHUONYO SOUTH GOD KWACH PRI SCH Wilfred Kebaki Miruka
HOMABAY RACHUONYO SOUTH GOD MIAHA  PRI SCH Judith Awuor Ngoko
HOMABAY RACHUONYO SOUTH GOD MIAHA  PRI SCH Kenrick Nyagowa Ochieng
HOMABAY RACHUONYO SOUTH GOD MIAHA  PRI SCH Moses Okech Kembo
HOMABAY RACHUONYO SOUTH GOD NYANGO PRI SCH Derick Omondi Onyango
HOMABAY RACHUONYO SOUTH GOD NYANGO PRI SCH Richard Ogembo Onwong’a
HOMABAY RACHUONYO SOUTH GOT  RATENG  S.S. Barnaba Okoth Okindo
HOMABAY RACHUONYO SOUTH GOT  RATENG  S.S. Jared Otieno Ogolla
HOMABAY RACHUONYO SOUTH GOT  RATENG  S.S. Joel Odidi
HOMABAY RACHUONYO SOUTH GOT  RATENG  S.S. John Titus Obonyo
HOMABAY RACHUONYO SOUTH GOT  RATENG  S.S. Maxwell Omondi Ochola
HOMABAY RACHUONYO SOUTH GOT  RATENG  S.S. Tabither Sheunda Katiko
HOMABAY RACHUONYO SOUTH GOT KAGUMBO PRI SCH Anjeline Pamba
HOMABAY RACHUONYO SOUTH GOT KAGUMBO PRI SCH Cosmas Oruji Otieno
HOMABAY RACHUONYO SOUTH GOT KAGUMBO PRI SCH Dickson Okoth Adoo
HOMABAY RACHUONYO SOUTH GOT KAGUMBO PRI SCH Shem Njuguna Keari
HOMABAY RACHUONYO SOUTH GOT RATENG Ojijo Agnes Juma
HOMABAY RACHUONYO SOUTH HARAMBEE PRI SCH Caroline Adhiambo Madongo
HOMABAY RACHUONYO SOUTH HARAMBEE PRI SCH Lawrence Otieno Omiti
HOMABAY RACHUONYO SOUTH Jwelu Primary School Benson Otieno Obonyo
HOMABAY RACHUONYO SOUTH Jwelu Primary School Hezbon Ojwang Ademba
HOMABAY RACHUONYO SOUTH Jwelu Primary School Tobias Okoth Okongo
HOMABAY RACHUONYO SOUTH KABONGO  PRI SCH Naban Osoro Nyabaro
HOMABAY RACHUONYO SOUTH KACHIENG  MIXED  SEC SCH Kenneth Oliver Onuonga
HOMABAY RACHUONYO SOUTH KADIJU PRI SCH George Ochieng Airo
HOMABAY RACHUONYO SOUTH KADIJU PRI SCH George Oloto Owidi
HOMABAY RACHUONYO SOUTH KADIJU PRI SCH Jared Omondi Ooko
HOMABAY RACHUONYO SOUTH KADIJU PRI SCH Mary Atieno Nyakomita
HOMABAY RACHUONYO SOUTH KADITON’GE  PRI CH Elijah Omondi Asiso
HOMABAY RACHUONYO SOUTH KADITON’GE  PRI CH Rose Nyamoita Kengere
HOMABAY RACHUONYO SOUTH KAKELO MIXED SEC SCHOOL George Sitati Rapongo
HOMABAY RACHUONYO SOUTH KAKELO MIXED SEC SCHOOL George Okeyo Otieno
HOMABAY RACHUONYO SOUTH KALANDING  PRI SCH Duncan Ochieng Aketch
HOMABAY RACHUONYO SOUTH KALANDING  PRI SCH Martha Auma Nyakoe
HOMABAY RACHUONYO SOUTH Kalanding Girls Secondary School Antony _ Ogudi
HOMABAY RACHUONYO SOUTH Kalanding Girls Secondary School Moses Otieno Ogollah
HOMABAY RACHUONYO SOUTH Kalanding Girls Secondary School Naomy Akinyi Otieno
HOMABAY RACHUONYO SOUTH KALANDO MIXED SECONDARY SCHOOL Melvin Awino Otieno
HOMABAY RACHUONYO SOUTH KALANDO PRI SCH George Onyango Magak
HOMABAY RACHUONYO SOUTH KALANDO PRI SCH Josephat Otieno Nashon
HOMABAY RACHUONYO SOUTH KALANDO PRI SCH Lilian Odhiambo Ambonya
HOMABAY RACHUONYO SOUTH KALANDO PRI SCH Millicent Awour Odera
HOMABAY RACHUONYO SOUTH KALANDO PRI SCH Philisters Oketch Anyango
HOMABAY RACHUONYO SOUTH KALANDO PRI SCH Remgius Odhiambo Okech
HOMABAY RACHUONYO SOUTH KALELO  PRI SCH Janet Ayoo Lusi
HOMABAY RACHUONYO SOUTH KAMUGA PRIMARY AND SPECIAL UNIT FOR THE MENTALLY HANDICAPPED  SCH Kephas Otieno Manyala
HOMABAY RACHUONYO SOUTH Kanga Omuga  PRI SCH Erastus Otieno Oruro
HOMABAY RACHUONYO SOUTH Kanga Omuga  PRI SCH Frederick Ochiel Okidi
HOMABAY RACHUONYO SOUTH KANGO PRI SCH Harrison Aseno Omia
HOMABAY RACHUONYO SOUTH KANGO PRI SCH Kaiser Ohuru Mwita
HOMABAY RACHUONYO SOUTH KANYANGWARA PRI SCH Quinter Atieno Ochuka
HOMABAY RACHUONYO SOUTH KARABOK SEC SCH Jared Okinyi Oongo
HOMABAY RACHUONYO SOUTH KARABOK SEC SCH Judith Akoth Nyaji
HOMABAY RACHUONYO SOUTH KAROKO PRI SCH William Odiwuor Agoro
HOMABAY RACHUONYO SOUTH KASIMBA PRI SCH David Ochieng Otieno
HOMABAY RACHUONYO SOUTH KASIMBA PRI SCH Hellen Ngeso Aura
HOMABAY RACHUONYO SOUTH KATANGA PRI SCH Henry Ochieng Kobe
HOMABAY RACHUONYO SOUTH KATANGA PRI SCH James Ouko Oyoo
HOMABAY RACHUONYO SOUTH KAUMA PRI SCH Maurice Otieno Aluoch
HOMABAY RACHUONYO SOUTH Kisuri  Primary School Rael Adhiambo Ochieng
HOMABAY RACHUONYO SOUTH KITARE  PRI SCH Isaac Mogaka Okindo
HOMABAY RACHUONYO SOUTH KITARE  PRI SCH Raymond Odhiambo Ogweno
HOMABAY RACHUONYO SOUTH KOGALO PRI SCH Jael Apondi Oketch
HOMABAY RACHUONYO SOUTH KOGOLA RPI SCH Leonard Otieno Kisege
HOMABAY RACHUONYO SOUTH KOGOLA RPI SCH Rebecca Bisieri Ongaki
HOMABAY RACHUONYO SOUTH Kogwang Primary School Philip Owino Omboche
HOMABAY RACHUONYO SOUTH Kogwang Primary School Rose Auma Okuma
HOMABAY RACHUONYO SOUTH kokwanyo mixed sec Bernard Oluoch Ogembo
HOMABAY RACHUONYO SOUTH kokwanyo mixed sec Innocent Abongo Muga
HOMABAY RACHUONYO SOUTH kokwanyo mixed sec Lucy Awuor Olang
HOMABAY RACHUONYO SOUTH KOKWANYO PRI SCH Daniel Dans Orinda
HOMABAY RACHUONYO SOUTH KOKWANYO PRI SCH Dorcas Akinyi Achiando
HOMABAY RACHUONYO SOUTH KOKWANYO PRI SCH Dorine Aoko Omondi
HOMABAY RACHUONYO SOUTH KOKWANYO PRI SCH Gordon Okoth Awino
HOMABAY RACHUONYO SOUTH Kolwa Pri. Sch. Charles Onyango Apunda
HOMABAY RACHUONYO SOUTH KOMBAKA  PRI SCH Nixon Omondi Lusi
HOMABAY RACHUONYO SOUTH KOMOLO  PRI SCH Caroline “Akoth Chelangat” Jaoko
HOMABAY RACHUONYO SOUTH KOMOLO  PRI SCH Enock Ochieng Oketch
HOMABAY RACHUONYO SOUTH KOSELE  PRI CH Duncan Odhiambo Ombuor
HOMABAY RACHUONYO SOUTH KOSELE  PRI CH Moline Omollo
HOMABAY RACHUONYO SOUTH KOSIRA  PRI SCH Beatrice Anyango Ketch
HOMABAY RACHUONYO SOUTH KOSIRA  PRI SCH Consalata Akinyi Asoma
HOMABAY RACHUONYO SOUTH KOTIENDITI MIXED S.S. Daniel Opiyo Ondiek
HOMABAY RACHUONYO SOUTH KOTIENDITI MIXED S.S. Eunice Kemuma Onyoni
HOMABAY RACHUONYO SOUTH KOTIENDITI PRI SCH Lorene Apondi Nyagah
HOMABAY RACHUONYO SOUTH KOTIENDITI PRI SCH Stephen Okeyo Othira
HOMABAY RACHUONYO SOUTH KOTIENO PRI SCH Elizabeth Ombogo
HOMABAY RACHUONYO SOUTH KOWIDI MIXED SEC Paul Otieno Okombo
HOMABAY RACHUONYO SOUTH KWOYO OYUGIS  SEC Dancun Peter Otieno
HOMABAY RACHUONYO SOUTH KWOYO OYUGIS  SEC Daniel Odhiambo Rapada
HOMABAY RACHUONYO SOUTH KWOYO OYUGIS  SEC Steve _ Omondi
HOMABAY RACHUONYO SOUTH LWANDA LUTHERAN  SEC Amos “Otieno Abonyo” Okongo
HOMABAY RACHUONYO SOUTH LWANDA LUTHERAN  SEC Hermmerson Omiti Owuor
HOMABAY RACHUONYO SOUTH LWANDA LUTHERAN  SEC James Ponti Otwere
HOMABAY RACHUONYO SOUTH LWANDA RPI SCH Dannish Otieno Ojwang
HOMABAY RACHUONYO SOUTH LWANDA RPI SCH Denis Okumu Obunde
HOMABAY RACHUONYO SOUTH MANGA Monicah Akinyi Ojwang
HOMABAY RACHUONYO SOUTH MANG’ANGA  RPI SCH Monica Atieno Okoth
HOMABAY RACHUONYO SOUTH MASANGA PRI SCH Erick Odhiambo Oswago
HOMABAY RACHUONYO SOUTH MASOGO  PRI SCH Gideon Oddhiambo Ongidi
HOMABAY RACHUONYO SOUTH MAWIRA PRI SCH Arthur Oluoch Odero
HOMABAY RACHUONYO SOUTH Migwa Primary School Daniel Otieno Odhiambo
HOMABAY RACHUONYO SOUTH mithui mixed  sec sch Justus Ngala Maganga
HOMABAY RACHUONYO SOUTH MITHUI PRI SCH Okeo “Godfrey Edward” Obonyo
HOMABAY RACHUONYO SOUTH MITITI  SEC  SCH. Jeremiah Ojala Olumo
HOMABAY RACHUONYO SOUTH MUMBO  PRI SCH Dorothy Omollo
HOMABAY RACHUONYO SOUTH Mwamba Primary School Benter Adhiambo Ondigo
HOMABAY RACHUONYO SOUTH Nandi Primary School Jackson Osodo Odhiambo
HOMABAY RACHUONYO SOUTH NJURA  PRI SCH Monica Akinyi Ochilo
HOMABAY RACHUONYO SOUTH NJURA  PRI SCH Naomi Nthenya Koi
HOMABAY RACHUONYO SOUTH NYABOLA Isaiah Odiwuor Ongiyo
HOMABAY RACHUONYO SOUTH Nyabondo Milimani Primary School Hesborn Onyango Aroko
HOMABAY RACHUONYO SOUTH Nyabondo Milimani Primary School Thabita Koroboi Gitura
HOMABAY RACHUONYO SOUTH NYAGOWA  LUTHERAN  MIXED Calvine Otieno Ambwara
HOMABAY RACHUONYO SOUTH NYAGOWA  LUTHERAN  MIXED Celestine Damar Ogollah
HOMABAY RACHUONYO SOUTH NYAGOWA  LUTHERAN  MIXED Charles Ochieng Asugo
HOMABAY RACHUONYO SOUTH NYAGOWA  LUTHERAN  MIXED Isaac Jelick Owuor
HOMABAY RACHUONYO SOUTH NYAGOWA PRIMARY SCHOOL Eunice Atieno Nashon
HOMABAY RACHUONYO SOUTH NYAHERA GIRLS David Odima Odhiambo
HOMABAY RACHUONYO SOUTH NYAHERA GIRLS James Opere Ochieng
HOMABAY RACHUONYO SOUTH NYAHERA GIRLS Joaness Obunga Oyieno
HOMABAY RACHUONYO SOUTH NYAHERA PRI SCH Jane Akinyi Obiero
HOMABAY RACHUONYO SOUTH NYAKIYA MODEL SECONDARY Sylvia Moraa Momanyi
HOMABAY RACHUONYO SOUTH NYAKIYA PRI SCH Charles Odongo Omwaga
HOMABAY RACHUONYO SOUTH NYAKIYA PRI SCH Nahashon Julu Aguk
HOMABAY RACHUONYO SOUTH Nyakwaka Primary School Carlyle “Juma Thomas” Ochieng
HOMABAY RACHUONYO SOUTH NYALENDA  PRI SCH Lameck “Ouma Omollo” Agiro
HOMABAY RACHUONYO SOUTH NYALENDA MIXED SEC Enock Amollo
HOMABAY RACHUONYO SOUTH NYALENDA MIXED SEC Winfred Akoth Ayanga
HOMABAY RACHUONYO SOUTH Nyambare Mixed Secondary School Alex Omondi Arocho
HOMABAY RACHUONYO SOUTH Nyambori Primary School Hilda Apiyo Apolo
HOMABAY RACHUONYO SOUTH Nyamwaga ELCK Econdary School Johanes Kenyatta Ochiewo
HOMABAY RACHUONYO SOUTH NYAMWAGA PRI SCH Charles Juma Sengre
HOMABAY RACHUONYO SOUTH NYAMWAGA PRI SCH Jacinta Awino Juma
HOMABAY RACHUONYO SOUTH NYAMWAGA PRI SCH Reuben Apaka Abutoh
HOMABAY RACHUONYO SOUTH NYANDIWA  PRI SCH Thomas Otina Ogal
HOMABAY RACHUONYO SOUTH NYANDIWA MIXED SEC SCH CATHERINE REBAH WANYAMA
HOMABAY RACHUONYO SOUTH NYANDOLO PRI SCH Shem Ochieng Ota
HOMABAY RACHUONYO SOUTH NYANDUMA PRI  SCH Jane Achieng Okidi
HOMABAY RACHUONYO SOUTH NYANGIELA Elly Omondi Lusi
HOMABAY RACHUONYO SOUTH NYANGIELA George Nyongesa Obonyo
HOMABAY RACHUONYO SOUTH NYANGIELA Mary “C Boaz” Obonyo
HOMABAY RACHUONYO SOUTH NYANGIELA Shadrack David Osodo
HOMABAY RACHUONYO SOUTH NYANGIELA Sipora Atieno Odhiambo
HOMABAY RACHUONYO SOUTH NYARABI Robina “N. Ouima” Nafungo
HOMABAY RACHUONYO SOUTH NYASORE MIXED DAY Godfrey Ochieng Ouma
HOMABAY RACHUONYO SOUTH NYASORE MIXED DAY Peter Otieno Oketch
HOMABAY RACHUONYO SOUTH NYASORE PRI SCH Carren Atieno Okuku
HOMABAY RACHUONYO SOUTH NYATINDO MIXED SEC Lameck Ochieng Omollo
HOMABAY RACHUONYO SOUTH NYATINDO MIXED SEC Wenslaus Oduor Ojiambo
HOMABAY RACHUONYO SOUTH NYATINDO PRI SCH David Opiyo Achola
HOMABAY RACHUONYO SOUTH NYATINDO PRI SCH Pamela Atieno Oluoch
HOMABAY RACHUONYO SOUTH NYAWANGO PRI SCH James Odiwuor Otieno
HOMABAY RACHUONYO SOUTH NYAWANGO PRI SCH Robert Mboya
HOMABAY RACHUONYO SOUTH OBER BOYS PRI SCH Dorothy Achieng Ouma
HOMABAY RACHUONYO SOUTH OBER BOYS PRI SCH Noah Otieno Okoth
HOMABAY RACHUONYO SOUTH OBER MIXED PRI SCH Job Otieno Ondiek
HOMABAY RACHUONYO SOUTH OBER MIXED PRI SCH Sophy Achieng Opiyo
HOMABAY RACHUONYO SOUTH OBER MIXED PRI SCH Stanley Okoth Odera
HOMABAY RACHUONYO SOUTH OBER SECONDARY SCHOOL Effie “Awino Njoga” Odede
HOMABAY RACHUONYO SOUTH OBER SECONDARY SCHOOL Judith Aoko Okong’o
HOMABAY RACHUONYO SOUTH OBER SECONDARY SCHOOL Nancy Sasati Mwendi
HOMABAY RACHUONYO SOUTH OBER SECONDARY SCHOOL Verah Anyango Koloo
HOMABAY RACHUONYO SOUTH Odirno Pri Mecheo Abuga Jared
HOMABAY RACHUONYO SOUTH OGENGA  PRI SCH Josephine Mokeira Mwencha
HOMABAY RACHUONYO SOUTH OGERA  PRI CH Joyce Adhiambo Oude
HOMABAY RACHUONYO SOUTH OGILO MIXED DAY SECONDARY SCHOOL Maurine N Simiyu
HOMABAY RACHUONYO SOUTH OGILO MIXED DAY SECONDARY SCHOOL Nancy Akoth Ogallo
HOMABAY RACHUONYO SOUTH OJWANDO PRI SCH Jenipher Atieno Masanga
HOMABAY RACHUONYO SOUTH OMBEK  PRI SCH Fredrick Eliazar Odhimbo
HOMABAY RACHUONYO SOUTH OMBEK  PRI SCH George Ogira Okech
HOMABAY RACHUONYO SOUTH OMBEK  PRI SCH John Odhiambo Ojunga
HOMABAY RACHUONYO SOUTH Ombek Lutheran Secondary School Walter Ochieng Ooga
HOMABAY RACHUONYO SOUTH OMIRO S S Jacqeen Vider Koyo
HOMABAY RACHUONYO SOUTH Omolo Mado Primary School David Okello Arogo
HOMABAY RACHUONYO SOUTH Omolo Mado Primary School Kenneth Odhiambo Deya
HOMABAY RACHUONYO SOUTH OMUGA PRI SCH Joshua Onyango Ogika
HOMABAY RACHUONYO SOUTH ONDIKO  PRI SCH Dorothy Achieng Opiyo
HOMABAY RACHUONYO SOUTH ONDIWA GAMBA PRI  SCH Mark Nyabengi Ongera
HOMABAY RACHUONYO SOUTH Ongoro Mixed Secondary School Aggrey Ilavonga Magwaga
HOMABAY RACHUONYO SOUTH OOGO  PRI SCH Lovingtone Adongo
HOMABAY RACHUONYO SOUTH ORERA  PRI SCH Vincent Sule Olweny
HOMABAY RACHUONYO SOUTH ORERA MIXED SEC Judith Adhiambo Aron
HOMABAY RACHUONYO SOUTH ORIANG PRI SCH Christine Akinyi Ouko
HOMABAY RACHUONYO SOUTH ORIRI  PRIMARY SCHOOL George Owuor Kitondo
HOMABAY RACHUONYO SOUTH ORIRI  PRIMARY SCHOOL Jacob Onyango Owuor
HOMABAY RACHUONYO SOUTH ORIRI  PRIMARY SCHOOL Mary Adhiambo Nyambok
HOMABAY RACHUONYO SOUTH ORIRI  PRIMARY SCHOOL Milton Otieno Oduor
HOMABAY RACHUONYO SOUTH OSURI PRI SCH Collins Ouma Onyango
HOMABAY RACHUONYO SOUTH OTEL  PRI SCH Jane Nechesa Werimo
HOMABAY RACHUONYO SOUTH Otel Mixed Secondary School Erick Otieno Mwalo
HOMABAY RACHUONYO SOUTH OTHORO PRI SCH Allan Okeyo
HOMABAY RACHUONYO SOUTH OTHORO PRI SCH Douglas Ongeri Mwamba
HOMABAY RACHUONYO SOUTH OTHORO PRI SCH Grace Akinyi Ogola
HOMABAY RACHUONYO SOUTH Otondo Mixed Secondary School Esther Awuor Odhiala
HOMABAY RACHUONYO SOUTH OTULA PRI SCH Norah Achieng Erick
HOMABAY RACHUONYO SOUTH OWIRO PRI SCH Samuel Otieno Odera
HOMABAY RACHUONYO SOUTH OYUGIS PRI SCH Edith Modi Ndiege
HOMABAY RACHUONYO SOUTH PALA MIXED SCH Julius Napali Imbenzi
HOMABAY RACHUONYO SOUTH PALA PRI  SCH Elly Odhiambo Odhiambo
HOMABAY RACHUONYO SOUTH Pany Komolo Primary School Reuben Isaiah Kambuni
HOMABAY RACHUONYO SOUTH Pany Komolo Primary School Tom Mboya Okwanyo
HOMABAY RACHUONYO SOUTH RADIENYA PRI SCH Josphine Adhiambo Oliech
HOMABAY RACHUONYO SOUTH RAGOGO PRIMARY SCHOOL Jackline Chepkemei
HOMABAY RACHUONYO SOUTH RAGOGO PRIMARY SCHOOL Kennedy Owour
HOMABAY RACHUONYO SOUTH RAGOGO PRIMARY SCHOOL Thomas Juma Oguok
HOMABAY RACHUONYO SOUTH RAWINJI PRI SCH Ben Obonyo Owade
HOMABAY RACHUONYO SOUTH RAWINJI PRI SCH Linet Adhiambo Agele
HOMABAY RACHUONYO SOUTH RINGA  RPI SCH Moses Ochola Ouma
HOMABAY RACHUONYO SOUTH RINGA  RPI SCH Rose Anyango Okeyo
HOMABAY RACHUONYO SOUTH RINGA  RPI SCH Theophilus Ogola Nyaoke
HOMABAY RACHUONYO SOUTH RINGA SEC SCHOOL Austine Muma Okello
HOMABAY RACHUONYO SOUTH RINGA SEC SCHOOL Benard Omondi Andedo
HOMABAY RACHUONYO SOUTH RINGA SEC SCHOOL Divinah Morangi Omwenga
HOMABAY RACHUONYO SOUTH RINGA SEC SCHOOL Evans Ndhiwa Ogongo
HOMABAY RACHUONYO SOUTH RINGA SEC SCHOOL Lazarus Ombayi Rimba
HOMABAY RACHUONYO SOUTH RINGA SEC SCHOOL Michael Olual Onyango
HOMABAY RACHUONYO SOUTH RINGA SEC SCHOOL Tolbart Forssels Osiare
HOMABAY RACHUONYO SOUTH Rongo Primary School Jackline Barongo Okworo
HOMABAY RACHUONYO SOUTH RUNGU PRI SCH Roseline Akumu Odipo
HOMABAY RACHUONYO SOUTH SARAMBA PRI SCH Caleb Otieno Okul
HOMABAY RACHUONYO SOUTH SARAMBA PRI SCH Collins Onyango Arogo
HOMABAY RACHUONYO SOUTH SARAMBA PRI SCH Dorothy Adhiambo Odongo
HOMABAY RACHUONYO SOUTH SARAMBA PRI SCH Rose Atieno Akongo
HOMABAY RACHUONYO SOUTH SAYE   MIXED SEC Barnard Otieno Opiyo
HOMABAY RACHUONYO SOUTH SAYE   MIXED SEC Cythia Akinyi Odongo
HOMABAY RACHUONYO SOUTH SAYE   MIXED SEC Jacob Ochieng Ogony
HOMABAY RACHUONYO SOUTH Siany Lutheran Mixed Secondary School Alice Akoth Odhiambo
HOMABAY RACHUONYO SOUTH SIANY PRI SCH Alloyce O Olale
HOMABAY RACHUONYO SOUTH Sikri Vocational Tr. Ctre Philip Onyango Were
HOMABAY RACHUONYO SOUTH SIMBIRI PRI SCH Asenath Awour Kung’a
HOMABAY RACHUONYO SOUTH SIMBIRI PRI SCH Edinah Obisi Getuno
HOMABAY RACHUONYO SOUTH SIMBIRI PRI SCH Jane “N. Bichang’a” Nyaata
HOMABAY RACHUONYO SOUTH SIMBIRI PRI SCH William Otieno Auma
HOMABAY RACHUONYO SOUTH SINO D.O.H PRI SCH Eunice Soona Juma
HOMABAY RACHUONYO SOUTH SINO D.O.H PRI SCH George Odede Ochieng
HOMABAY RACHUONYO SOUTH SINO S.D.A PRI SCH Edwin Odhiambo Akello
HOMABAY RACHUONYO SOUTH SINO SDA MIXED SECONDARY SCHOOL Mabel Minayo Aludira
HOMABAY RACHUONYO SOUTH ST PAUL ORIANG SEC Syoma Reuben Odhiambo
HOMABAY RACHUONYO SOUTH ST, TERESA’S OPANGA SECONDARY Cherine Lando Yugi
HOMABAY RACHUONYO SOUTH ST, TERESA’S OPANGA SECONDARY Cyprian A Songa
HOMABAY RACHUONYO SOUTH ST, TERESA’S OPANGA SECONDARY Fredrick Ochieng Okeyo
HOMABAY RACHUONYO SOUTH ST, TERESA’S OPANGA SECONDARY Joseph Odhiambo Ombai
HOMABAY RACHUONYO SOUTH ST, TERESA’S OPANGA SECONDARY Kevin Onyango Odero
HOMABAY RACHUONYO SOUTH St. Anne’s Ojwando Girls Seco School Snighter Akinyi Onyango
HOMABAY RACHUONYO SOUTH ST. PETER KEGONGA Beryl Akinyi Nyaoke
HOMABAY RACHUONYO SOUTH ST. PETER KEGONGA Danice Otieno Awinda
HOMABAY RACHUONYO SOUTH ST. PETER KEGONGA John Onyango Odoro
HOMABAY RACHUONYO SOUTH ST. PETER KEGONGA Peter Olaaba Owuori
HOMABAY RACHUONYO SOUTH St. Peters God Agak Mixed Sec. School Odundo Odhiambo Tobias
HOMABAY RACHUONYO SOUTH ST. PETERS KOTIENO MIXED George Ouma Ong’wen
HOMABAY RACHUONYO SOUTH ST. PETERS KOTIENO MIXED Lucy Ochieng Ngwena
HOMABAY RACHUONYO SOUTH St. Philips Nyabondo Secondary School Beatrice Akoth Ambonya
HOMABAY RACHUONYO SOUTH St. Philips Nyabondo Secondary School Nicholas Ogada Owang’
HOMABAY RACHUONYO SOUTH St. Philips Nyabondo Secondary School Peter Ouma Obuor
HOMABAY RACHUONYO SOUTH UMAI PRI SCH Cyprine Mboya
HOMABAY RACHUONYO SOUTH UMAI PRI SCH George Otieno Bande
HOMABAY RACHUONYO SOUTH UMAI PRI SCH Margaret Nyamboche Atieno
HOMABAY RACHUONYO SOUTH WIRE MIXED Kenneth Ouko Ndede
HOMABAY RACHUONYO SOUTH WIRE PRI SCH Kennedy Okoth Oindo
HOMABAY RACHUONYO SOUTH WIRE PRI SCH Scholastica Moraa Mose
HOMABAY RACHUONYO SOUTH wire special sch Ezekiel Kobe Kobe
HOMABAY RACHUONYO SOUTH YALA KOTIENO SEC Churchil Omondi Otieno
HOMABAY RACHUONYO SOUTH YALA KOTIENO SEC Jorim Omondi Okeyo
HOMABAY SUBA GENDO Halmad Odhiambo Ming’awo
HOMABAY SUBA GINGO  SEC SCH Clarice _ Awuor
HOMABAY SUBA God Bura Primary School Pheobe Akoth Gor
HOMABAY SUBA God Oloo Mixed Secondary School Enock Omondi Ooko
HOMABAY SUBA God Oloo Primary School John Kogembo Okoth
HOMABAY SUBA God Oloo Primary School Maurice Oyugi Onyango
HOMABAY SUBA Got Adundo Primary School Barrack Okoth Odundo
HOMABAY SUBA Got Adundo Primary School John Kamala Odoyo
HOMABAY SUBA Got Adundo Primary School Maurice Ogalo Ng’ongo
HOMABAY SUBA Got Adundo Primary School Willice Vincent Ongang’a
HOMABAY SUBA Governor Awiti Kisenye pri sch Cecilia Apiyo Okumu
HOMABAY SUBA John Mbadi Oma Mixed Secodary School Sara Naswa Khamala
HOMABAY SUBA KIANYUMBA Steve Omondi Ogejo
HOMABAY SUBA KIBUOGI PRIMARY SCHOOL Nehemiah Onyango
HOMABAY SUBA KIBUOGI PRIMARY SCHOOL Vincent Okomo Otieno
HOMABAY SUBA Kichare Primary School Jacktone Otieno Oyier
HOMABAY SUBA Kiembe Mixed Day Secondary School David Ouma Ochola
HOMABAY SUBA Kiembe Mixed Day Secondary School Gift Ochieng OLOO
HOMABAY SUBA Kimange Primary School Loisa Osure Akeyo
HOMABAY SUBA Kimoro Primary School Ambaso Benta Adhiambo
HOMABAY SUBA Kimoro Primary School Jacqueline Achieng’ Abuto
HOMABAY SUBA Kinchororio Primary School Kennedy Matiku Odero
HOMABAY SUBA Kirambo Primary School Dorothy Akumu Magware
HOMABAY SUBA Kisaku Mixed Secondary School Thadeus Odoyo Osewe
HOMABAY SUBA Kisegi Primary School Johnson Omwity Wasyongoh
HOMABAY SUBA Kitawa Primary School Brendah Anyango Ochieng
HOMABAY SUBA Kithereka Primary School Isaac Tinega Ombwori
HOMABAY SUBA KIWA Fredrick Seko Kinyagah
HOMABAY SUBA KOYOMBE Fredrick Oyuga Opiyo
HOMABAY SUBA KUMUINDA  PR.SCH. Fellix Mahaya Madiva
HOMABAY SUBA Lwanda Primary School Amos Magembe Machogu
HOMABAY SUBA Lwanda Primary School Jane Ochieng Achola
HOMABAY SUBA Magunga Primary School Irene Akoth Molo
HOMABAY SUBA MANYALA Lillianne Muyogah Nyando
HOMABAY SUBA Mark Matunga Secondary School DAVID OKELLO ONGORO
HOMABAY SUBA Mark Matunga Secondary School Samuel Owino Achar
HOMABAY SUBA Matunga Primary School Julius Kabinga Nyakeriga
HOMABAY SUBA Miramba Primary School Gladys Akoth Oyier
HOMABAY SUBA Miriya Primary School Tom Oduor Owili
HOMABAY SUBA MOI GIRLS SECONDARY – SINDO William Outa Ogola
HOMABAY SUBA MSARE  primary Pamela Achieng Orao
HOMABAY SUBA MSARE SEC SCH Austine Odhiambo Ojwang
HOMABAY SUBA MSARE SEC SCH Phelix Otieno Odenyo
HOMABAY SUBA MSARE SEC SCH Winstone Churchil Otieno
HOMABAY SUBA MUKUYU PRIMARY SCHOOL Iscah Akinyi Ochieng
HOMABAY SUBA MUKUYU PRIMARY SCHOOL Jac Angira Okomboh
HOMABAY SUBA MWIREGWA Amos Okwiri
HOMABAY SUBA MWIRENDIA PRI Jamhuri Ouma Kotieno
HOMABAY SUBA MWIYOYO Emmanuel Mahegere Otaigo
HOMABAY SUBA MWIYOYO Simon Sagini Matikou
HOMABAY SUBA NGERI Melky Mbogo K’odwar
HOMABAY SUBA NYABERA Beatrice Akech Ooro
HOMABAY SUBA Nyabera Girls Secondary School George Oluoch Ogaolla
HOMABAY SUBA Nyaburu Primary School Everlyne Kerubo Seme
HOMABAY SUBA Nyaburu Primary School Fredrick Akunga Ongera
HOMABAY SUBA NYAGWETHE  SEC SCH Elisha Omondi Miyawa
HOMABAY SUBA NYAGWETHE  SEC SCH Joel Oduk Okuku
HOMABAY SUBA NYAGWETHE  SEC SCH Kevince Owino Magolloh
HOMABAY SUBA NYAGWETHE  SEC SCH Peter Owaga Owino
HOMABAY SUBA NYAKASERA PRIMARY Daniel Ochieng Oragi
HOMABAY SUBA NYAMADEDE Phelix Odhiambo Magoma
HOMABAY SUBA Nyandiwa Primary School Jared Ochola Magaro
HOMABAY SUBA Nyandiwa Primary School Peter Okeyo Ngure
HOMABAY SUBA Nyandiwa Primary School Romanus Odero Odoyo
HOMABAY SUBA Nyandiwa Primary School Wilfred Jumbe Owiso
HOMABAY SUBA Nyandiwa Primary School William Ouke Ayiera
HOMABAY SUBA Nyatambe Primary School Evance Omondi Sila
HOMABAY SUBA NYATAMBE SEC John Ochieng Odingo
HOMABAY SUBA NYATOTO MIXED SEC Belinda Auma Ongoro
HOMABAY SUBA Nyenga Primary School William Odhiambo Obeto
HOMABAY SUBA OBANGA MIXED SEC Joel Ochieng Omullo
HOMABAY SUBA Obanga Primary School Harrison Okoth Akech
HOMABAY SUBA Ogaka Primary School Meshack Ogutu Opiyo
HOMABAY SUBA Ogaka Primary School Thomas John Wamoh
HOMABAY SUBA OLANDO PRIMARY SCHOOL Faith Akinyi Otieno
HOMABAY SUBA Ongalo Primary School George Okello Odhiambo
HOMABAY SUBA Ongalo Primary School Jared Otieno Akoth
HOMABAY SUBA ONGAYO Rebecca Phares Ojanga
HOMABAY SUBA ONGAYO Susan Akinyi Otunga
HOMABAY SUBA ONGONGO PRIMARY SCHOOL Tobias Nyango’r Kobondi
HOMABAY SUBA ONYWERA Joshua Ogoya Okanya
HOMABAY SUBA ONYWERA Maurice Saka Otieno
HOMABAY SUBA ONYWERA SEC SCHOOL Shadrack Oula Awino
HOMABAY SUBA Osiri Primary School George Okelo Ng’ongo
HOMABAY SUBA Osiri Primary School Raphael Ongonga Mwasi
HOMABAY SUBA Osiri Primary School Samuel Omolo Owiti
HOMABAY SUBA RAGWE Bernard Odekah Nyamory
HOMABAY SUBA RAGWE VINCENT MAGWARO ONSARE
HOMABAY SUBA RAMULA PRIMARY SCHOOL Eunice Kwamboka Okinyi
HOMABAY SUBA SANJWERU Elisha Otieno Ong’ado
HOMABAY SUBA Seka Mixed Secondary School Vincent Okeyo Magwal
HOMABAY SUBA SINDO Richard Ngongo Obilo
HOMABAY SUBA Sokoni Primary School George “Justus Onuko” Olumo
HOMABAY SUBA ST. GABRIEL’S GWASSI SEC Patrick Odero Aura
HOMABAY SUBA St. Joseph Olando Secondary School Dennis Moseti Bogonko
HOMABAY SUBA ST. JOSEPH’S MUKIUNDU PRI Christine Akinyi Otieno
HOMABAY SUBA St. Marcellin Kigoto Secondary School Phelix Ochieng Owiti
HOMABAY SUBA St. Marcellin Kigoto Secondary School Victor Achuodho Omondi
HOMABAY SUBA St. Peter Kibura Primary School Phinehas Otieno Kirina
HOMABAY SUBA ST.CHARLES WIGA SEC SCHOOL Aloice Obunga Oyuga
HOMABAY SUBA TONGA  S.S. Christopher Gabby Oyundi
HOMABAY SUBA TONGA  S.S. Paul Junior Obiero
HOMABAY SUBA VICTOR MUSOGA Jared Magara Matoke
HOMABAY SUBA WIGA Fredrick Omutto Obunga
HOMABAY SUBA YONGO PRI SCHOOL Abel Moranga Matundura
HOMABAY Tsc County Office-Homabay Tsc County Office-Homabay Amos Otieno Nyakwaka
HOMABAY Tsc County Office-Homabay Tsc County Office-Homabay Faith Chepngeno Mutai
HOMABAY Tsc County Office-Homabay Joseph Ombati Mageto
HOMABAY TSC Unit – Rachuonyo South Paul Were

Your Prime Online News Magazine.

Exit mobile version