Intro to Programming with C
Computer Science and Electronic Engineering (School of)
Undergraduate: Level 4
Thursday 06 October 2022
Friday 16 December 2022
31 March 2021
Requisites for this module
BENGG420 Computer Networks,
BENGG421 Computer Networks (Including Year Abroad),
BENGG520 Computer Networks (Including Foundation Year),
BENGI120 Computer Networks (Including Placement Year),
BENGH650 Computer Systems Engineering,
BENGH651 Computer Systems Engineering (Including Year Abroad),
BENGH750 Computer Systems Engineering (Including Foundation Year),
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),
BENGH641 Communications Engineering,
BENGHP41 Communications Engineering (Including Foundation Year),
BENGHPK1 Communications Engineering (Including Placement Year),
BENGHQ41 Communications Engineering (Including Year Abroad),
MENGH642 Communications Engineering,
BENGH615 Robotic Engineering,
BENGH616 Robotic Engineering (Including Year Abroad),
BENGH617 Robotic Engineering (Including Placement Year),
BENGH618 Robotic Engineering (Including Foundation Year),
BSC GH01 Computing and Electronics,
BSC GH02 Computing and Electronics (Including Year Abroad),
BSC GH03 Computing and Electronics (Including Placement Year),
BSC GH3P Computing and Electronics (Including Foundation Year),
BSC H631 Electronics,
BSC H632 Electronics (Including Year Abroad),
BSC H633 Electronics (Including Placement Year),
BENGH730 Mechatronic Systems,
BENGH731 Mechatronic Systems (Including Year Abroad),
BENGH732 Mechatronic Systems (Including Placement Year),
BENGH733 Mechatronic Systems (Including Foundation Year),
BSC H737 Mechatronics,
BSC H738 Mechatronics (including Placement Year),
BSC H739 Mechatronics (including Year Abroad),
BSC H717 Robotics,
BSC H718 Robotics (including Placement Year),
BSC H719 Robotics (including Year Abroad)
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.
The aim of this module is to provide an introduction to the fundamental concepts of computer programming in the C language, which is particularly relevant to programming embedded systems.
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
20 hours of lectures, 20 hours of laboratory, 2 hours revision lectures
- King, K. N. (2008) C programming: a modern approach, London: W. W. Norton.
The above list is indicative of the essential reading for the course. The library makes provision for all reading list items, with digital provision where possible, and these resources are shared between students. Further reading can be obtained from this module's reading list.
Assessment items, weightings and deadlines
|Coursework / exam
Module supervisor and teaching staff
No external examiner information available for this module.
Available via Moodle
Of 67 hours, 20 (29.9%) hours available to students:
47 hours not recorded due to service coverage or fault;
0 hours not recorded due to opt-out by lecturer(s).
* Please note: due to differing publication schedules, items marked with an asterisk (*) base their information upon the previous academic year.
Disclaimer: The University makes every effort to ensure that this information on its Module Directory is accurate and up-to-date. Exceptionally it can
be necessary to make changes, for example to programmes, modules, facilities or fees. Examples of such reasons might include a change of law or regulatory requirements,
industrial action, lack of demand, departure of key personnel, change in government policy, or withdrawal/reduction of funding. Changes to modules may for example consist
of variations to the content and method of delivery or assessment of modules and other services, to discontinue modules and other services and to merge or combine modules.
The University will endeavour to keep such changes to a minimum, and will also keep students informed appropriately by updating our programme specifications and module directory.
The full Procedures, Rules and Regulations of the University governing how it operates are set out in the Charter, Statutes and Ordinances and in the University Regulations, Policy and Procedures.