BSC G610 Computer Games,
BSC G612 Computer Games (Including Year Abroad),
BSC G620 Computer Games (Including Foundation Year),
BSC I610 Computer Games (Including Placement Year),
BSC G400 Computer Science,
BSC G401 Computer Science (Including Year Abroad),
BSC G403 Computer Science (Including Foundation Year),
BSC I101 Computer Science (Including Placement Year),
MSCIG402 Computer Science,
MSCII100 Computer Science (Integrated Masters, Including Placement Year),
BSC G1G4 Mathematics with Computing (Including Year Abroad),
BSC G1G8 Mathematics with Computing (Including Foundation Year),
BSC G1GK Mathematics with Computing,
BSC G1IK Mathematics with Computing (Including Placement Year),
BSC I1G3 Data Science and Analytics,
BSC I1GB Data Science and Analytics (Including Placement Year),
BSC I1GC Data Science and Analytics (Including Year Abroad),
BSC I1GF Data Science and Analytics (Including Foundation Year),
BSC G111 Computing,
BSC G112 Computing (Including Year Abroad),
BSC G113 Computing (Including Placement Year),
BSC LG01 Economics with Data Science,
BSC LG02 Economics with Data Science (Including Year Abroad),
BSC LG03 Economics with Data Science (Including Placement Year),
BSC LG04 Economics with Data Science (Including Foundation Year),
BSC L310 Sociology with Data Science,
BSC L311 Sociology with Data Science (including Year Abroad),
BSC L312 Sociology with Data Science (including Placement Year),
BSC L313 Sociology with Data Science (including foundation Year),
BENGH169 Neural Engineering with Psychology,
BENGH170 Neural Engineering with Psychology (including Placement Year),
BENGH171 Neural Engineering with Psychology (including Year Abroad),
BENGH172 Neural Engineering with Psychology (including Foundation Year),
BSC H167 Neural Technology with Psychology,
BSC H168 Neural Technology with Psychology (including Year Abroad),
BSC H176 Neural Technology with Psychology (including Placement Year),
BSC LL20 Politics with Data Science,
BSC LL21 Politics with Data Science,
BSC LL22 Politics with Data Science,
BSC I400 Artificial Intelligence,
BSC I401 Artificial Intelligence (including Foundation Year),
BSC I402 Artificial Intelligence (including Placement Year),
BSC I403 Artificial Intelligence (including Year Abroad)
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.
Outline Syllabus
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