C Programming and Embedded Systems

The details
Computer Science and Electronic Engineering (School of)
Colchester Campus
Undergraduate: Level 5
Thursday 03 October 2019
Saturday 14 December 2019
15 May 2019


Requisites for this module



Key module for

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),
BENGH641 Communications Engineering,
BENGHP41 Communications Engineering (Including Foundation Year),
BENGHPK1 Communications Engineering (Including Placement Year),
BENGHQ41 Communications Engineering (Including Year Abroad),
MENGH642 Communications Engineering,
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),
BENGH730 Mechatronic Systems,
BENGH731 Mechatronic Systems (Including Year Abroad),
BENGH732 Mechatronic Systems (Including Placement Year)

Module description

The aims of this module are to solve engineering problems in C, programme embedded systems, control I/O and design embedded systems for real-world problems.

Module aims

This module aims to provide the practical and theoretical skills needed to use C language to program embedded microprocessors and systems.

Module learning outcomes

After completing this module, students will be expected to be able to:

1. Write programs in C to solve engineering problems
2. Program embedded microprocessors or microcontrollers in C
3. Define input and output modules for an embedded system
4. Design embedded systems as solutions to real-world problems

Module information

Outline Syllabus

*Introduction to the course: review of basic features of C programming language and embedded computer architectures.

*Embedded system characteristics: slow processing speed; small memory; A/D and D/A converters; digital input-output devices and communication links.

*Application domain characteristics: the complex, unpredictable and dynamic natures of engineering problems; sensor noise, timeliness, and error recovery.

*Implementation issues: modular development of embedded software and hardware; flexible configuration; multi/distributed processing; a variety of I/O devices.

Learning and teaching methods

A combination of lectures and practical labs


  • Blum, Jeremy. (2013) Exploring Arduino: tools and techniques for engineering wizardry, Indianapolis, IN: Wiley.
  • Kernighan, Brian W.; Ritchie, Dennis M. (c1988) The C programming language, Englewood Cliffs, N.J.: Prentice Hall.
  • Dan Gookin. (2019-07-10) C Essential Training.
  • Hanly, Jeri R.; Koffman, Elliot B. (2016) Problem solving and program design in C., Upper Saddle River, NJ: Pearson.

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 Description Deadline Weighting
Coursework Assignment 1 C Programming 05/11/2019 50%
Coursework Assignment 2 Embedded System Programming 10/12/2019 50.00%
Exam 120 minutes during Summer (Main Period) (Main)
Exam 120 minutes during Autumn Special (Main)

Overall assessment

Coursework Exam
40% 60%


Coursework Exam
40% 60%
Module supervisor and teaching staff
Dr Xiaojun Zhai
School Office, email: csee-schooloffice (non-Essex users should add @essex.ac.uk to create full e-mail address), Telephone 01206 872770



External examiner

Dr Robert John Watson
University of Bath
Senior Lecturer
Dr Robert John Watson
University of Bath
Senior Lecturer
Dr Xu Wang
Heriot-Watt University
Associate Professor
Available via Moodle
Of 62 hours, 22 (35.5%) hours available to students:
40 hours not recorded due to service coverage or fault;
0 hours not recorded due to opt-out by lecturer(s).


Further information

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.