KCSE/KICD Computer Studies Course Outline: ELEMENTARY PROGRAMMING PRINCIPLES
8.0.0 ELEMENTARY PROGRAMMING PRINCIPLES (38 LESSONS)
This section of the KCSE/KICD Computer Studies course focuses on elementary programming principles and consists of 38 lessons. It covers the fundamental concepts and principles of programming, providing students with a strong foundation in this area.
8.1.0 Specific Objectives
In this section, students are expected to achieve the following specific objectives:
a. Define programming: Students should be able to provide a clear definition of programming and understand its significance in the field of computer science.
b. Describe the various levels of programming languages: Students should be able to explain the different levels of programming languages, including low-level and high-level languages.
c. State the advantages and disadvantages of each level of the programming language: Students should understand the benefits and drawbacks of using low-level and high-level programming languages.
d. Define the terms assembler, compiler, interpreter, source program, and object program: Students should be able to define and explain these key terms related to programming.
e. Describe the stages of program development: Students should be familiar with the different stages involved in developing a program, including problem recognition, problem definition, program design, program coding, program testing, and implementation.
f. Describe the program control structures: Students should understand the basic program control structures, such as sequence, selection, and iteration (looping).
g. Define and develop algorithm, pseudo-code, and flowchart: Students should be able to define an algorithm and develop it using pseudo-code and flowcharts.
The content covered in the Elementary Programming Principles section includes the following:
8.2.1 Definition of Programming
This subsection provides a clear definition of programming and highlights its importance in the field of computer science. Students will understand the concept of programming and its role in solving problems and creating computer applications.
8.2.2 Levels of Programming Languages
This subsection introduces students to the different levels of programming languages. It covers low-level languages, such as machine language and assembly language, as well as high-level languages like third-generation languages (3GLs), fourth-generation languages (4GLs), object-oriented programming (OOPs) languages, and internet (scripting) programming languages. Students will gain an understanding of the characteristics and uses of each level of programming language.
8.3.3 Advantages and Disadvantages of Low and High-Level Languages
This subsection discusses the advantages and disadvantages of using low-level and high-level programming languages. Students will explore the benefits and drawbacks of each level of programming language and understand the trade-offs involved in choosing between them.
8.4.4 Description of Terms
This subsection provides definitions and explanations of key terms related to programming. Students will learn about the following terms:
- Assembler: The role of an assembler, which is a program that translates assembly language code into machine code, will be explained.
- Compiler: The function of a compiler, which translates high-level language code into machine code before execution, will be discussed.
- Interpreter: The purpose of an interpreter, which directly executes high-level language code without prior translation, will be described.
- Source Program: The definition of a source program, which refers to the program written in a high-level language before any translation or compilation, will be provided.
- Object Program: The concept of an object program, which is the machine code produced after the compilation or interpretation of the source program, will be explained.
8.4.5 Program Development
This subsection covers the stages involved in program development. Students will learn about the following stages:
- Problem Recognition: Identifying the problem or task that needs to be solved through programming.
- Problem Definition: Clearly defining the problem and understanding its requirements and constraints.
- Program Design: Developing a plan or structure for the program, including algorithms and data structures.
- Program Coding: Writing the actual program code based on the design.
- Program Testing: Testing the program for correctness, efficiency, and robustness.
- Implementation: Deploying the program for actual use.
8.4.6 Program Control Structures
This subsection focuses on program control structures, which determine the flow of execution in a program. Students will learn about the following control structures:
- Sequence: Executing statements in a sequential order.
- Selection: Making decisions based on certain conditions, such as if-else statements.
- Iteration (Looping): Repeating a set of statements multiple times using loops.
8.4.7 Definition and Development of Algorithm
In this subsection, students will learn about algorithms and how they are developed. They will explore the concept of pseudo-code, which is a way to represent algorithms using a mixture of natural language and programming language constructs. Additionally, students will learn about flowcharts, which are graphical representations of algorithms using symbols and arrows.