This module will provide an introduction to fundamental concepts of computer programming in the C language, which is particularly relevant to programming embedded systems and for electronic engineers.
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
20 hours of lectures, 20 hours of laboratory, 2 hours revision lectures
- Module Supervisor: Alexandros Voudouris