The aim and the purposes of this course to enable students to develop practical approach in following topics:
09 Algorithm Design and Problem Solving: Computational Thinking Skills and Algorithms
10 Data Types and Structures: Data Types and Records, Arrays, Files and Introduction to Abstract data types
11 Programming: Programming Basics, Constructs and Structured Programming
12 Software Development: Program Development Life cycle, Program design and Program Testing and maintenance
Explain the purpose of and need for abstraction
Create an abstract model of a system
Explain the purpose of and need for decomposition
Decompose a problem into its sub-problems
Select appropriate identifier names
Write programs in pseudocode using input, process and output
Write pseudocode using assignment, sequence, selection and repetition (including logic statements)
Write pseudocode from a structured English description and from flowchart
Explain how stepwise refinement can be used to express an algorithm to a level of detail from which the task may be programming
Select and use appropriate data types for a problem solution
Use a record structure to hold a set of different data types under one identifier
Use the technical terms associated with arrays
Select a suitable data structure (1D or 2D array) to use for a given task
Write pseudocode for 1D and 2D arrays
Write pseudocode to process array data
Explain why files are needed
Write pseudocode to handle text files that consist of one or more lines
Explain that an ADT is a collection of data and a set of operations on those data
Explain how a stack, queue and linked list are examples of ADTs
Use a stack, queue and linked list to store data
Describe how a queue, stack and linked list can be implemented using arrays
Write pseudocode from a given design presented as either a program flowchart or structured English
Write pseudocode statements for:
• the declaration of variables and constants
• the assignment of values to variables and constants
• expressions involving any of the arithmetic or logical operators input from the keyboard and output to the console
Use pseudocode to write:
• an IF structure including ELSE and nested IF statements
• a CASE statement
• a count-controlled loop
• a post-condition loop
• a pre-condition loop
Justify why one loop structure may be better suited to solve a problem than the others
Define and use a procedure and a function
Explain where in the constructor of an algorithm it would be appropriate to use a procedure or a function
Use parameters in a procedure and a function
Use the terminology associated with procedures and functions
Write efficient pseudocode
Explain the purpose of a development life cycle
Explain the need for different development life cycles depending on the program being developed
Describe the principles, benefits and drawbacks of each type of life cycle
Describe the analysis, design, coding, testing and maintenance stages in the program development life cycle
Use a structure chart to decompose a problem into sub-tasks and express the parameters passed between the various modules/procedures/functions which are part of the algorithm design.
Create and use a state-transition diagram to document an algorithm
Explain how faults in programs can be exposed and avoided
Locate and identify the different types of errors
Correct identified errors
Use different methods of testing and select appropriate data for each method
Explain the need for a test strategy and test plan, and their likely contents
Choose appropriate data for a test plan
Explain the need for continuing maintenance of a system and the differences between each type of maintenance
Analyse an existing program and make amendments to enhance functionality