Information Communication Technology  ·  Level 6
Computer Programming Principles
Chapter 1: Apply Computer programming skills
📚 5 Topics
⚑ What you will be able to do

By the end of this chapter, you will be able to:

  • Identify the right types of programming languages based on what users need.
  • Apply different programming paradigms correctly to solve user problems.
  • Follow the program development life cycle accurately from start to finish.
  • Use program design tools effectively to create solutions that meet user requirements.
  • Choose the appropriate program writing tools based on system needs.

Mastering these skills will help you create efficient and reliable software that truly meets real-world demands in the tech industry.

Computer programming skills are foundational for ICT technicians who develop, maintain, and troubleshoot software systems across Kenya's diverse sectors. Mastery of programming languages and paradigms enables technicians to select suitable tools that meet user requirements efficiently. This chapter equips ICT technicians with the ability to identify programming languages, understand their categories, and apply appropriate programming paradigms tailored to specific project needs, enhancing software quality and maintainability.

1.1 Identification of Programming Languages

Identifying programming languages involves understanding their characteristics, classification, and suitability for given tasks. In Kenya's ICT sector, ranging from county government systems to banking software, choosing the right language affects development speed, performance, and support. This topic explores programming language categories and selection criteria based on user requirements.

1.1.1 Overview of programming language categories (e.g., procedural, object-oriented, functional)

Programming languages are classified into categories based on their paradigms and operational models. Familiarity with these categories helps ICT technicians choose languages aligned with project objectives and system constraints.

Procedural Programming Languages

Procedural languages focus on a sequence of instructions or procedures to perform tasks. They emphasize step-by-step execution, making them suitable for linear and straightforward problem-solving. For instance, C is widely used in developing embedded systems for Kenyan manufacturing plants due to its control over hardware and efficiency.

Object-Oriented Programming Languages

Object-oriented languages organize code around objects representing real-world entities, encapsulating data and behavior. This paradigm supports code reuse and modularity, essential for large-scale Kenyan banking applications like those at Equity Bank, where maintainable and scalable software is critical.

Functional Programming Languages

Functional languages treat computation as the evaluation of mathematical functions, avoiding changing state and mutable data. They are preferred in scenarios requiring high reliability and concurrency, such as data processing in Nairobi's financial analytics firms. Languages like Haskell and F# exemplify this category.

Scripting Languages

Scripting languages automate tasks and manipulate other software components, often used for web development and system administration. Python and JavaScript are popular in Kenyan educational platforms for their simplicity and extensive libraries.

Logic Programming Languages

Logic programming languages are based on formal logic, where program statements express facts and rules about problems within a system of formal logic. These languages are especially useful for tasks involving knowledge representation and reasoning, such as expert systems for fraud detection in Kenyan insurance companies. Prolog is a well-known logic programming language, and while less common in mainstream Kenyan ICT projects, it is occasionally used in academic research and specialized government systems requiring automated inference.

Markup and Query Languages

Markup and query languages, such as SQL and HTML, are essential for data manipulation and web development. SQL is widely used in Kenyan financial institutions like Cooperative Bank for managing and querying large databases, while HTML forms the backbone of web interfaces for government service portals. These languages are not general-purpose programming languages but are critical for specific tasks in ICT projects.

1.1.2 Criteria for Selecting Programming Languages Based on User Requirements

Selecting a programming language requires aligning language features with user needs, project constraints, and long-term maintenance considerations prevalent in Kenyan ICT projects.

Project Complexity and Scale

Complex projects with numerous functionalities, such as county government ERP systems, benefit from object-oriented languages that facilitate modular design and team collaboration, unlike procedural languages which suit smaller, linear tasks.

Performance Requirements

High-performance needs, like real-time data processing in hospital management systems, may favor languages like C or C++ due to their low-level memory management and speed, whereas scripting languages might introduce latency.

Development Speed and Resources

For rapid prototyping or educational software development, languages with simple syntax and rich libraries, such as Python, reduce development time and training costs, important for startups and SMEs in Nairobi's tech ecosystem.

Platform Compatibility

A language's ability to run on target platforms affects deployment; Java's portability across devices makes it suitable for mobile applications used by agricultural cooperatives across Kenya's rural areas.

Community Support and Maintenance

Languages with active communities provide better support, libraries, and tools essential for long-term maintenance. For example, JavaScript's widespread use in Kenyan web development ensures abundant resources and developer availability.

Practice Questions

  1. Explain the differences between procedural and object-oriented programming languages, providing examples relevant to Kenyan ICT projects. (10 marks)
  2. Discuss five criteria an ICT technician should consider when selecting a programming language for a county government software project. (10 marks)
  3. Describe how scripting languages can be advantageous in educational software development in Kenya. (5 marks)
The rest of this chapter
🔒

Create a free account to open more of this chapter.

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒1.2 Application Programming Paradigms

Programming paradigms dictate the approach to solving problems and structuring code. Selecting an appropriate paradigm based on project needs is crucial for ICT technicians developing robust, maintainable software in varied professional environments. A paradig…

🔒1.3 Program Development Life Cycle

The program development life cycle (PDLC) is a structured framework that guides ICT technicians through the systematic process of creating software applications. In Kenya’s dynamic ICT sector, especially within institutions such as county government offices an…

🔒1.4 Application of Program Design Tools

Program design tools are essential for visualizing, planning, and documenting software projects. They help ICT technicians clarify requirements, design system architecture, and communicate effectively with stakeholders, especially in complex projects such as i…

🔒1.5 Identification of Program Writing Tools

Program writing tools are the software a programmer uses to type, translate, test and correct source code. Choosing them well saves time and reduces errors, because each tool does a different job: an editor to write the code, a compiler and linker to build it,…

Chapter Summary

This chapter explored the identification of programming languages by examining various categories such as procedural, object-oriented, and functional programming, alongside criteria for selecting languages based on specific user requirements. It then delved into application programming paradigms, explaining common approaches including functional, procedural, object-oriented, imperative, and declarative paradigms, with guidance on choosing suitable paradigms aligned with project needs. The program development life cycle was outlined, highlighting its stages and best practices for adapting these stages to meet work requirements effectively. The chapter also covered the use of program design tools, providing an overview of flow charts, decision tables, decision trees, pseudocode, and algorithms, and how to select these tools depending on project complexity and user demands. Finally, it identified essential program writing tools such as text editors, compilers, linkers, debuggers, and integrated development environments, emphasizing their roles in facilitating efficient coding and debugging processes. Together, these topics provide a comprehensive foundation for applying computer programming skills in diverse development contexts.

Self-Assessment

🔒 PDFDownload this self-assessment, with answers

A. Written Assessment

  1. Define a procedural programming language and give an example commonly used in Kenyan ICT projects. (3 marks)
  2. List four criteria that should be considered when selecting a programming language for a banking application. (4 marks)
🔒20 more in this section.

Chapter Examination Questions

🔒 PDFDownload these examination questions, with worked answers

SECTION A (40 Marks) - Answer ALL Questions

  1. Explain the key differences between procedural and object-oriented programming languages, citing how a county government IT department in Kenya might choose between them for managing citizen records. (4 marks)
  2. Identify and describe three criteria an ICT technician should consider when selecting a programming language for developing a mobile banking application for a Kenyan SACCO. (4 marks)
🔒18 more in this section.

Chapter Practical Activities

Practical 1: Identify and Classify Programming Languages by Category

Information Communication Technology · Level 6
Computer Programming Principles
PRACTICAL ASSESSMENT
TIME: 4 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Identify at least six programming languages and classify each according to its programming category (procedural, object-oriented, functional, scripting, logic, or markup).
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer with installed programming IDEs (e.g., Visual Studio Code, Eclipse, NetBeans)Foolscap paper
Internet access for research
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer with installed programming IDEs (e.g., Visual Studio Code, Eclipse, NetBeans)1 Pc per Candidate
2Internet access for research1 connection per Candidate
3Foolscap paper10 sheets per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Identification of Programming Languages
Candidate sets up the computer and opens required IDEs and research tools
(Award 1 mark or 0)
1
Candidate identifies at least six different programming languages
(Award 0.5 marks per correct language identified, max 3 marks)
3
Candidate records the identified programming languages clearly on foolscap paper
(Award 1 mark or 0)
1
Sub-Total5
TASK 2: Classification of Programming Languages
Candidate correctly classifies each identified language into its programming category
(Award 0.5 marks per correct classification, max 3 marks; Award 1 mark for clear presentation)
4
Candidate explains briefly the characteristics of each programming category
(Award 0.5 marks per correct explanation, max 2 marks)
2
Sub-Total6
PRODUCT CHECKLIST
Complete list of six programming languages identified and correctly classified with neat presentation
(Award 4 marks or 0)
4
Sub-Total4
GRAND TOTAL15
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)

Practical 2: Select appropriate programming languages based on user requirements

Information Communication Technology · Level 6
Computer Programming Principles
PRACTICAL ASSESSMENT
TIME: 4 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Analyze given user requirements and select three appropriate programming languages with justification on foolscap paper.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer with C compiler and Java IDE installedFoolscap paper
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer with C compiler and Java IDE installed1 Pc per Candidate
2Foolscap paper5 sheets per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Analyze user requirements
Read and understand the given user requirements
(Award 2 marks or zero)
2
Identify key criteria for programming language selection based on user needs
(Award 3 marks or zero)
3
Sub-Total5
TASK 2: Select programming languages
Select three programming languages suitable for the requirements
(Award 1 mark for each appropriate language selected, max 3 marks)
3
Provide clear justification for each selected language based on criteria
(Award 1-2 marks per justification, max 4 marks)
4
Sub-Total7
TASK 3: Document findings
Write findings neatly and clearly on foolscap paper
(Award 2 marks or zero)
2
Use appropriate terminology and formatting
(Award 2 marks or zero)
2
Sub-Total4
PRODUCT CHECKLIST
Completed document showing three selected programming languages with justified reasons aligned to user requirements
(Award 4 marks or zero)
4
Sub-Total4
GRAND TOTAL20
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)
🔒

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒Explain and Implement Functional Programming ParadigmPractical 3
🔒Explain and Implement a Procedural Programming ParadigmPractical 4
🔒Explain and Implement Object-Oriented Programming ParadigmPractical 5
🔒Explain and Select Programming Paradigms for Project ScenariosPractical 6
🔒Outline and apply stages of program development life cycle for a student grading systemPractical 7
🔒Adapt the Program Development Life Cycle for a Mobile Banking ApplicationPractical 8
🔒Design a Flowchart for Calculating Student GradePractical 9
🔒Develop Decision Tables and Decision Trees for Loan EligibilityPractical 10
🔒Write pseudocode and algorithms for given programming problemsPractical 11
🔒Select appropriate program design tools for varied project complexitiesPractical 12
🔒Write and edit a Java program using an IDE to calculate employee net salaryPractical 13
🔒Compile and link a C program to calculate employee net salaryPractical 14
🔒Debug a Java program to calculate employee net salaryPractical 15
Flashcards 20 cards Study deck ▾
Question
1

↻ Tap card to reveal answer
🔒

18 more in this section.

Create a free account
Test Yourself 18 questions Start quiz ▾
0%
0 / 2
🔒

16 more in this section.

Create a free account
Am I competent?

At the start of this chapter we promised you would be able to:

  • Identify the right types of programming languages based on what users need.
  • Apply different programming paradigms correctly to solve user problems.
  • Follow the program development life cycle accurately from start to finish.
  • Use program design tools effectively to create solutions that meet user requirements.
  • Choose the appropriate program writing tools based on system needs.

Tick each one you can genuinely do.

So, are you there yet?

You're competent when you can confidently do 50% or more of what this chapter promised.

Sign in to record how you're doing.