4.1 Fundamentals of programming
Programming
Data types
Content |
Additional information |
---|---|
Understand the concept of a data type. |
|
Understand and use the following appropriately:
|
Variables declared as a pointer or reference data type are used as stores for memory addresses of objects created at runtime, ie dynamically. Not all languages support explicit pointer types, but students should have an opportunity to understand this data type. |
Define and use user-defined data types based on language-defined (built-in) data types. |
Programming concepts
Content |
Additional information |
---|---|
Use, understand and know how the following statement types can be combined in programs:
|
The three combining principles (sequence, iteration/repetition and selection/choice) are basic to all imperative programming languages. |
Use definite and indefinite iteration, including indefinite iteration with the condition(s) at the start or the end of the iterative structure. A theoretical understanding of condition(s) at either end of an iterative structure is required, regardless of whether they are supported by the language being used. |
|
Use nested selection and nested iteration structures. |
|
Use meaningful identifier names and know why it is important to use them. |
Arithmetic operations in a programming language
Content |
Additional information |
---|---|
Be familiar with and be able to use:
|
Relational operations in a programming language
Content |
Additional information |
---|---|
Be familiar with and be able to use:
|
Boolean operations in a programming language
Content |
Additional information |
---|---|
Be familiar with and be able to use:
|
Constants and variables in a programming language
Content |
Additional information |
---|---|
Be able to explain the differences between a variable and a constant. |
|
Be able to explain the advantages of using named constants. |
String-handling operations in a programming language
Content |
Additional information |
---|---|
Be familiar with and be able to use:
|
Expected string conversion operations:
|
Random number generation in a programming language
Content |
Additional information |
---|---|
Be familiar with, and be able to use, random number generation. |
Exception handling
Content |
Additional information |
---|---|
Be familiar with the concept of exception handling. |
|
Know how to use exception handling in a programming language with which students are familiar. |
Subroutines (procedures/functions)
Content |
Additional information |
---|---|
Be familiar with subroutines and their uses. |
|
Know that a subroutine is a named ‘out of line’ block of code that may be executed (called) by simply writing its name in a program statement. |
|
Be able to explain the advantages of using subroutines in programs. |
Parameters of subroutines
Content |
Additional information |
---|---|
Be able to describe the use of parameters to pass data within programs. |
|
Be able to use subroutines with interfaces. |
Returning a value/values from a subroutine
Content |
Additional information |
---|---|
Be able to use subroutines that return values to the calling routine. |
Local variables in subroutines
Content |
Additional information |
---|---|
Know that subroutines may declare their own variables, called local variables, and that local variables:
|
|
Be able to use local variables and explain why it is good practice to do so. |
Global variables in a programming language
Content |
Additional information |
---|---|
Be able to contrast local variables with global variables. |
Role of stack frames in subroutine calls
Content |
Additional information |
---|---|
Be able to explain how a stack frame is used with subroutine calls to store:
|
Recursive techniques
Content |
Additional information |
---|---|
Be familiar with the use of recursive techniques in programming languages (general and base cases and the mechanism for implementation). |
|
Be able to solve simple problems using recursion. |
Programming paradigms
Programming paradigms
Content |
Additional information |
---|---|
Understand the characteristics of the procedural- and object-oriented programming paradigms, and have experience of programming in each. |
Procedural-oriented programming
Content |
Additional information |
---|---|
Understand the structured approach to program design and construction. |
|
Be able to construct and use hierarchy charts when designing programs. |
|
Be able to explain the advantages of the structured approach. |
Object-oriented programming
Content |
Additional information |
---|---|
Be familiar with the concepts of:
|
Students should know that:
|
Know why the object-oriented paradigm is used. |
|
Be aware of the following object-oriented design principles:
|
Students would benefit from practical experience of programming to an interface, but will not be explicitly tested on programming to interfaces or be required to program to interfaces in any practical exam. |
Be able to write object-oriented programs. |
Practical experience of coding for user-defined classes involving:
|
Be able to draw and interpret class diagrams. |
Class diagrams involving single inheritance, composition (black diamond line), aggregation (white diamond line), public (+), private (-) and protected (#) specifiers. |