ICT Technician  ·  Level 5
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 clear and functional designs.
  • Choose the appropriate program writing tools based on system requirements.

Mastering these skills will help you create software that truly meets user needs and works reliably in the real world.

Computer programming skills are essential for ICT Technicians in Kenya to develop, maintain, and troubleshoot software applications that support business processes across various sectors. Mastery of programming languages and paradigms enables technicians to select appropriate tools and approaches tailored to specific project requirements. This chapter builds foundational understanding of programming languages and the paradigms that guide software development, equipping ICT professionals with the knowledge to make informed decisions in real-world settings such as county government systems or banking software.

1.1 Identification of Programming Languages

Programming languages serve as the medium through which ICT Technicians create instructions that computers execute. Understanding the categories of programming languages and criteria for selecting the right language is vital for producing efficient, maintainable, and scalable software solutions. This knowledge is critical when working on projects ranging from hospital management systems to retail inventory platforms in Kenya.

1.1.1 Overview of Programming Language Categories

Programming languages are grouped into categories based on their design philosophy and methodology. Each category addresses different problem-solving approaches, impacting how software is structured and developed. Kenyan ICT Technicians often encounter multiple language categories when working on diverse projects, such as automating payroll systems in SACCOs or developing educational software for universities.

Procedural Programming Languages

Procedural programming focuses on a sequence of instructions or procedures that operate on data. Languages like C and Pascal exemplify this category, emphasizing a step-by-step approach where the program's flow is controlled by function calls and loops. This method suits applications with clear, linear workflows, such as data processing in financial institutions like KCB Bank.

Object-Oriented Programming Languages

Object-oriented programming (OOP) organizes software design around objects that encapsulate data and behavior. Languages such as Java, C++, and Python support concepts like inheritance, encapsulation, and polymorphism. OOP facilitates code reuse and modularity, making it ideal for complex systems such as hospital information systems at Kenyatta National Hospital where multiple entities interact.

Functional Programming Languages

Functional programming treats computation as the evaluation of mathematical functions and avoids changing state or mutable data. Languages like Haskell and Scala embody this paradigm, promoting immutability and higher-order functions. Functional programming can improve reliability and predictability, useful in concurrent processing tasks such as data analytics in county government offices.

Scripting Languages

Scripting languages like JavaScript, PHP, and Python automate tasks and glue software components together. They are often interpreted rather than compiled, enabling rapid development and testing cycles. Web development projects for online retail platforms in Nairobi frequently utilize scripting languages for frontend and backend integration.

1.1.2 Criteria for Selecting Programming Languages Based on User Requirements

Selecting the appropriate programming language depends on various factors that align with user needs and project constraints. ICT Technicians must evaluate these criteria to ensure the software meets functionality, performance, and maintainability expectations in Kenyan organizational contexts such as insurance firms or educational institutions.

Project Scope and Complexity

The scale and complexity of the project influence language choice. Large-scale enterprise systems with complex business logic, like those used by county governments, benefit from robust OOP languages that support modularity and scalability. Simpler automation tasks might be better served by scripting languages for faster delivery.

Performance Requirements

Applications demanding high performance and low latency, for instance, financial transaction systems in banks, may require languages like C or C++ that compile to efficient machine code. Conversely, less performance-critical applications can leverage higher-level languages that prioritize developer productivity.

Development Speed and Resource Availability

Time constraints and availability of skilled developers impact language choice. Languages with extensive libraries and frameworks, such as Python, enable rapid prototyping and development, useful for startups or SMEs in Nairobi’s tech hubs. Conversely, legacy systems may necessitate languages familiar to existing staff.

Platform Compatibility

The target platform, whether web, mobile, desktop, or embedded systems, dictates language suitability. For example, Android mobile applications require Java or Kotlin, whereas web applications often utilize JavaScript and PHP. County government digital services might need cross-platform compatibility influencing language selection.

Maintenance and Community Support

Long-term support, availability of documentation, and community engagement are critical for maintainability. Languages with active communities, such as Python and Java, provide abundant resources and tools, facilitating troubleshooting and continuous improvement for software used in healthcare facilities or educational management systems.

Practice Questions

  1. Explain the key differences between procedural and object-oriented programming languages and provide an example scenario where each would be preferred. (10 marks)
  2. List and explain five criteria that influence the selection of a programming language for a project in a Kenyan county government office. (10 marks)
  3. Describe how scripting languages support rapid development in web-based applications for retail businesses. (5 marks)
  4. Discuss why performance requirements might lead an ICT Technician to choose C++ over Python for a banking application. (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 define the style and methodology programmers use to write software. For ICT Technicians in Kenya, understanding these paradigms is essential to align development approaches with project needs, ensuring efficient and maintainable code in s…

🔒1.3 Program Development Life Cycle

The Program Development Life Cycle (PDLC) is a structured approach used by ICT technicians and programmers in Kenya to ensure systematic software creation and maintenance. It guides professionals from understanding user requirements to delivering a functional…

🔒1.4 Application of Program Design Tools

Program design tools are essential assets for ICT technicians in Kenya, enabling clear visualization, planning, and communication of software solutions. These tools help convert abstract requirements into concrete designs, reducing development errors and enhan…

🔒1.5 Identification of Program Writing Tools

In the Kenyan ICT industry, especially among ICT Technicians working in organizations such as county government offices, banks, and universities, selecting the appropriate program writing tools is essential for efficient software development and maintenance. T…

Chapter Summary

This chapter explored the identification of programming languages by examining various categories such as procedural, object-oriented, and functional, alongside criteria used to select languages that best match user requirements. It then detailed common programming paradigms, including functional, procedural, object-oriented, imperative, and declarative, emphasizing how to choose the appropriate paradigm based on the specific needs of a project. The program development life cycle was outlined, highlighting its stages and best practices for tailoring the cycle to suit work demands. Various program design tools were presented, such as flow charts, decision tables, decision trees, pseudocode, and algorithms, with guidance on selecting these tools according to project complexity and user needs. The chapter concluded with an overview of program writing tools and integrated development environments, covering text editors, compilers, linkers, debuggers, and special IDEs that facilitate efficient coding and debugging processes. Together, these topics provide a comprehensive foundation for applying computer programming skills effectively in diverse development scenarios.

Self-Assessment

🔒 PDFDownload this self-assessment, with answers

A. Written Assessment

  1. Define the term programming paradigm and list three common paradigms used in software development. (4 marks)
  2. Differentiate between procedural and object-oriented programming languages with examples. (4 marks)
🔒20 more in this section.

Chapter Examination Questions

🔒 PDFDownload these examination questions, with model answers

SECTION A (40 Marks) - Answer ALL Questions

  1. Explain the difference between procedural and object-oriented programming languages, giving an example of each used in Kenyan ICT projects. (4 marks)
  2. Identify five criteria an ICT technician should consider when selecting a programming language for a county government payroll system. (4 marks)
🔒18 more in this section.

Chapter Practical Activities

Practical 1: Classify Programming Languages by Category and Characteristics

ICT Technician · Level 5
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.  Classify the provided programming languages into their respective categories (procedural, object-oriented, functional) with a brief explanation for each classification in a written report of at least 500 words.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer with programming language reference materialsPrinted list of programming languages
Printed list of programming languagesWriting paper
Writing paper
Pen
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer with programming language reference materials1 Pc per Candidate
2Printed list of programming languages1 Set per Candidate
3Writing paper5 Sheets per Candidate
4Pen1 Pc per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Identification and Classification of Programming Languages
Used reference materials to identify programming languages correctly
(Award 5 marks for correctly identifying all languages, 0 if not)
5
Classified programming languages correctly into procedural, object-oriented, and functional categories
(Award 2 marks for each correct classification, 0 for incorrect)
10
Provided clear and accurate explanations for each classification
(Award 1 mark for each well-explained classification, 0 if missing or incorrect)
5
Presented the classification report clearly and legibly
(Award 3 marks for clarity and neatness, 0 if illegible or incomplete)
3
Sub-Total23
PRODUCT CHECKLIST
Report contains all programming languages listed with correct categories and explanations
(Award 3 marks for completeness, 3 marks for correct categories, 3 marks for correct explanations, 3 marks for correct formatting)
12
Sub-Total12
GRAND TOTAL35
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)

Practical 2: Select appropriate programming language based on user requirements

ICT Technician · Level 5
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 the provided user requirements and prepare a report recommending the most suitable programming language with justification.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer with internet accessProject requirement specification document
PenProgramming language comparison chart
Notebook
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer with internet access1 Pc per Candidate
2Project requirement specification document1 Pc per Candidate
3Programming language comparison chart1 Pc per Candidate
4Pen and notebook1 Pc per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Analyze user requirements
Read and understood the user requirements document
(Award 3 marks for clear understanding and identification of key requirements)
3
Identified critical criteria for language selection (e.g. performance, platform, scalability)
(Award 1 mark for each relevant criterion identified, max 4)
4
Used programming language comparison chart effectively
(Award 3 marks for correct usage and referencing of chart)
3
Justified the suitability of selected programming language based on requirements
(Award up to 5 marks for clear, relevant justification)
5
Prepared a clear, well-structured recommendation report
(Award 5 marks for report clarity, structure, and completeness)
5
Sub-Total20
PRODUCT CHECKLIST
Recommendation report includes language name, key features, and justification aligned with user requirements
(Award 5 marks for language selection, 5 marks for features described, 5 marks for alignment with requirements)
15
Report is well formatted, free of spelling or grammatical errors
(Award 5 marks for professional presentation and language accuracy)
5
Sub-Total20
GRAND TOTAL40
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)
🔒

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

Create a free account
🔒Develop and Explain a Functional Programming ProgramPractical 3
🔒Develop a Procedural C Program Demonstrating Sequence, Selection, and IterationPractical 4
🔒Develop an OOP program demonstrating inheritance and polymorphismPractical 5
🔒Develop and Explain an Imperative Programming Solution in CPractical 6
🔒Develop and explain a simple declarative programPractical 7
🔒Select appropriate programming paradigm for a given software projectPractical 8
🔒Outline stages of the program development life cyclePractical 9
🔒Adapt program development life cycle for a library management systemPractical 10
🔒Draw a flowchart for calculating the sum of two numbersPractical 11
🔒Develop Decision Table and Decision Tree for Loan EligibilityPractical 12
🔒Write pseudocode and algorithm for a student grading systemPractical 13
🔒Select suitable program design tools for a student grading systemPractical 14
🔒Develop, Compile and Debug a C Program Using IDE and Programming ToolsPractical 15
Flashcards 20 cards Study deck ▾
Question
1

↻ Tap card to reveal answer
🔒

18 more in this section.

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

17 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 clear and functional designs.
  • Choose the appropriate program writing tools based on system requirements.

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.