This module will provide an introduction to the basic principles and concepts that underpin procedural programming. It will make use of a high level programming language (i.e. Python) supporting control, data and procedural abstraction. Students will also learn to analyse simple programs, incorporate standard control structures, write functions, arrays structures and I/O, as well as debugging simple programmes.
After completing this module, students will be expected to be able to:
1. demonstrate an understanding of the basic principles and concepts that underlie the procedural programming model.
2. explain and make use of high-level programming language features that support control, data and procedural abstraction.
3. analyse and explain the behaviour of simple programs that incorporate standard control structures, parameterised functions, arrays, structures and I/O.
4. implement, test and debug simple programs that use the features listed above.
- Underlying principles of procedural programming
- The imperative programming model; state, sequentiality and destructive assignment.
- Abstraction: separating internal and external views; control, data and procedural abstraction.
- A model of memory: variables; static and dynamic memory; the execution stack
- Programming in a high-level procedural language
- Identifiers and keywords
- Expressions and types: well-typed expressions; operator precedence and expression evaluation
- Statements and control flow: simple, compound and control statements; the assignment statement; selection and repetition
- Functions: definition, and call; local variables, scope and existence; parameters, formal and actual parameters, parameter passing
- Lists and dictionaries: declaration and initialisation; accessing elements
- Input and output: console and file I/O
Learning & Teaching Methods
Lecturers & Laboratories
This course is 50% Exam and 50% Coursework