By the end of this chapter, you will be able to:
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.
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.
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 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 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 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 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 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, 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.
Selecting a programming language requires aligning language features with user needs, project constraints, and long-term maintenance considerations prevalent in Kenyan ICT projects.
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.
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.
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.
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.
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.
Create a free account to open more of this chapter.
Free: practical guides, quick cards, workplace scenarios and more.
Create a free accountThis 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.
Type: Individual
| Tools & Equipment | Materials |
|---|---|
| Computer with installed programming IDEs (e.g., Visual Studio Code, Eclipse, NetBeans) | Foolscap paper |
| Internet access for research |
| S/N | Item | Quantity |
|---|---|---|
| 1 | Computer with installed programming IDEs (e.g., Visual Studio Code, Eclipse, NetBeans) | 1 Pc per Candidate |
| 2 | Internet access for research | 1 connection per Candidate |
| 3 | Foolscap paper | 10 sheets per Candidate |
| Items to be Evaluated | Marks Available | Marks Obtained | Comments |
|---|---|---|---|
| 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-Total | 5 | ||
| 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-Total | 6 | ||
| PRODUCT CHECKLIST | |||
| Complete list of six programming languages identified and correctly classified with neat presentation (Award 4 marks or 0) | 4 | ||
| Sub-Total | 4 | ||
| GRAND TOTAL | 15 | ||
Type: Individual
| Tools & Equipment | Materials |
|---|---|
| Computer with C compiler and Java IDE installed | Foolscap paper |
| S/N | Item | Quantity |
|---|---|---|
| 1 | Computer with C compiler and Java IDE installed | 1 Pc per Candidate |
| 2 | Foolscap paper | 5 sheets per Candidate |
| Items to be Evaluated | Marks Available | Marks Obtained | Comments |
|---|---|---|---|
| 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-Total | 5 | ||
| 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-Total | 7 | ||
| 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-Total | 4 | ||
| PRODUCT CHECKLIST | |||
| Completed document showing three selected programming languages with justified reasons aligned to user requirements (Award 4 marks or zero) | 4 | ||
| Sub-Total | 4 | ||
| GRAND TOTAL | 20 | ||
At the start of this chapter we promised you would be able to:
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.