Module code: EEE1035

Module provider

Electrical and Electronic Engineering

Module Leader

BOWDEN R Prof (Elec Elec En)

Number of Credits


ECT Credits



FHEQ Level 4

JACs code

Module cap (Maximum number of students)


Module Availability

Semester 2

Overall student workload

Assessment pattern

Assessment type Unit of assessment Weighting

Alternative Assessment

Not applicable: students failing a unit of assessment resit the assessment in its original format.

Prerequisites / Co-requisites


Module overview

Module purpose: Programming is a key part of electronic engineering and the C programming language is at the heart of many embedded software systems. This module will provide the students with a solid practical knowledge of the C programming language, its relationship to the underlying hardware and aspects of both high level programming and low level manipulation of memory.

Module aims

Learning outcomes

Attributes Developed

Attributes Developed

C - Cognitive/analytical

K - Subject knowledge

T - Transferable skills

P - Professional/Practical skills

Module content

LECTURES: 19 hrs: 4 hrs per week Spring 1-4 inclusive and 1 hrs lectures in weeks 6,8 & 10

LABORATORIES: 44 hrs: 4 hrs per week Spring 1-11

Programming in C Spring wk 1-4, four hrs per week

[1]           Introduction, origins of C, Advantages and Disadvantages of C, general course overview, introduction to labs etc.


[2]           Binary Representation, decimal, binary, octal and hexadecimal number system. Boolean operations, Binary arithmetic.


[3]           Hardware and Software, Computer Hardware, Operating Systems, Memory Structures, Machine Code, High-low level languages, Compilers and linkers, Program Layout, Pre-processor, ANSI standard.


[4]           Simple Data Types, Variables, Variable Definitions, Identifiers (data types), Constants, Characters and String Constants, Using  #define.


[5]           Standard IO, Data Types, printf and formatting, format sequences, scanf, problems with scanf, Reading Characters - getchar,  Detecting Keystrokes, Keyboard Buffering, Detecting Invalid Input.


[6]           Operators, Expressions and Statements, Integer Expressions, Floating Point Expressions, Assignment Statements, Arithmetic Operators, unary Operators, Precedence, Math Functions, Overflow and Underflow, Mixed Type Expressions, Type Casting, Increment and Decrement Operators.


[7]           Making Decisions, Conditional statements, if…else, case statements.


[8]           Looping, the for statement, while loops, do…while loops.


[9]           Arrays, Array Concepts, Array Definitions, Array Subscripts, Passing Arrays.


[10,11]     Basics of Pointers, Pointer concepts, Defining Pointers, The  Operator, Assigning Pointers, Pointer Indirection, null  Pointers, Pointers as Parameters, Arrays as Parameters, Pointers as Return Values, Absolute Addressing.


[12]          Strings, String variables, I/O of Strings, String Assignments, String Comparison, Case Conversion, Library Functions, Value Conversions.


[13]          Basics of Functions, Simple Procedural Functions, Parameterised Function, Function with Return Values, Local & Global Variables, the   main function, Scope.


[14]          More functions, pass by reference vs pass by value


[15]          Files, File Structure, Opening and Closing Files, Writing to Files, Reading Files,W User Specified Files.


[16]          Data Structures, Concept of Structure, Declaring New Data Types, Declaring a Structure, Defining Structured Variables, Accessing Structured Variables, Array of Structures, Passing Records to Functions, Returning Structures.

Assignment lectures, wks 6, 8 & 10, 1hr per week

[17]       Introduction to programming Assignment 1


[18]       Introduction to programming Assignment 2


[19]       Introduction to programming Assignment 3


Methods of Teaching / Learning

The learning and teaching strategy is designed to achieve the following aims.

The course consists of lectures and 4 supervised hours per week in a terminal or workstation room.

Over the course of the first 4 weeks, the fundamentals of the C programming language will be covered within lectures. These will be supported with a concurrent programme of laboratories (4 hours per week) where each aspect of the language covered in lectures is explored in a practical setting.

During weeks 6-11, 3 programming assignments will be performed by the students each of these assignments will be presented to the students in lectures in weeks 6, 8 and 10 allowing design guidance to be provided and any questions answered. For each assignment, 2 weeks of supported labs will be provided per assignment (4 hours per week).


Learning and teaching methods include the following.

Lectures: 19 hrs

Labs: 44 hrs


Week Number




4 hrs

4 hrs


4 hrs

4 hrs


4 hrs

4 hrs


4 hrs

4 hrs



4 Hrs


1hr before labs

4 Hrs



4 Hrs


1hr before labs

4 Hrs



4 Hrs


1hr before labs

4 Hrs



4 Hrs


Assessment Strategy

The assessment strategy for this module is designed to provide students with the opportunity to demonstrate the following.

Assessment of performance/understanding of laboratories during weeks 1-5  will form 40% of the module assessment. This assesses the students general understanding of the material as the course progresses. During weeks 6-11, 3 programming assignments will be performed by the students which will constitute the remaining 60% of the assessment, 20% per assignment. Each of these assignments will be presented to the students in lectures in weeks 6, 8 and 10 allowing design guidance to be provided and any questions answered. Assessment allows the students to demonstrate being able to break down and tackle more complex programming problems.


Thus, the summative assessment for this module consists of the following.

Four assessments during laboratories in weeks 1-5(10% each)

Three programming assignments set in weeks 6, 8 and 10, and due to be submitted by Tuesday 4pm in weeks 8, 10 and 12(20% each).

Any deadlines given here are indicative. For confirmation of exact date and time, please check the Departmental assessment calendar issued to you.


Formative assessment and feedback

For the module, students will receive formative assessment/feedback in the following ways.

During lectures, by question and answer sessions

During tutorials/tutorial classes

By means of unassessed tutorial problem sheets (with answers/model solutions)

During supervised computer laboratory sessions

Via assessed coursework

Reading list

Reading list for PROGRAMMING IN C :

Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2017/8 academic year.