BSC G610 Computer Games,
BSC G612 Computer Games (Including Year Abroad),
BSC I610 Computer Games (Including Placement Year),
BENGG420 Computer Networks,
BENGG421 Computer Networks (Including Year Abroad),
BENGI120 Computer Networks (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),
BENGH650 Computer Systems Engineering,
BENGH651 Computer Systems Engineering (Including Year Abroad),
BENGHP50 Computer Systems Engineering (Including Placement Year),
BENGGH46 Computers with Electronics (Including Foundation Year),
BENGGH4P Computers with Electronics,
BENGGH4Q Computers with Electronics (Including Year Abroad),
BENGI1H6 Computers with Electronics (Including Placement Year),
BENGH610 Electronic Engineering,
BENGH611 Electronic Engineering (Including Year Abroad),
BENGH61P Electronic Engineering (Including Foundation Year),
BENGHP10 Electronic Engineering (Including Placement Year),
MENGH613 Electronic Engineering,
MENGH614 Electronic Engineering (Integrated Masters, Including Placement Year),
BSC G1G4 Mathematics with Computing (Including Year Abroad),
BSC G1GK Mathematics with Computing,
BSC G1IK Mathematics with Computing (Including Placement Year),
BENGH641 Communications Engineering,
BENGHP41 Communications Engineering (Including Foundation Year),
BENGHPK1 Communications Engineering (Including Placement Year),
BENGHQ41 Communications Engineering (Including Year Abroad),
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 GH01 Computing and Electronics,
BSC GH02 Computing and Electronics (Including Year Abroad),
BSC GH03 Computing and Electronics (Including Placement Year),
BSC H631 Electronics,
BSC H632 Electronics (Including Year Abroad),
BSC H633 Electronics (Including Placement Year)
The aim of this module is to provide an introduction to the fundamental concepts of computer programming.
Learning Outcomes
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