University of Surrey - Guildford

Registry > Module Catalogue
View Module List by A.O.U. and Level  Alphabetical Module Code List  Alphabetical Module Title List  Alphabetical Old Short Name List  View Menu 
2010/1 Module Catalogue
 Module Code: EEE1020 Module Title: PROGRAMMING
Module Provider: Electronic Engineering Short Name: EEE1.PRO
Level: HE1 Module Co-ordinator: BOWDEN R Dr (Elec Eng)
Number of credits: 10 Number of ECTS credits: 5
Module Availability
Autumn and Spring Semesters
Assessment Pattern

Unit(s) of Assessment


Weighting Towards Module Mark(%)


Assessment during laboratories Autumn wk 2-11


Three programming assignments during Spring wk 1-3,4-6,7-9


One programming assignment in MATLAB during Spring wk 10 -11





Module Overview

The module will provide the students with the fundamentals of programming in the C programming language and MATLAB. During the first 10 weeks of the course the fundamentals of the C language will be covered within lectures. These will be supported with a concurrent programme of laboratories (2 hours per week) where each aspect of the language covered in lectures is explored in a practical setting.


Assessment of performance/understanding in these laboratories will form 20% of the module assessment. Following this, during a 9-week session, the students will undertake 3 independent programming assignments. These assignments will form 60% of the module assessment and will be supported by timetabled laboratories of 2 hours per week.


Once completed, 2 lectures on MATLAB will prepare the students for the remaining 2 weeks of laboratories where a MATLAB programming assignment will provide the remaining 20% of the assessment. Despite being supported throughout with weekly 2 hour laboratory sessions, the programming assignments are designed to require additional work by the students to complete.
Module Aims

To familiarise students with the fundamentals of Computer Architecture and the relationship between the underlying computer and the C language.  It will develop these concepts and show how the language can be used as a true high level language demonstrating the concepts of both procedural programming and data abstraction.


The module will further build upon this understanding introducing MATLAB.


It will also provide each student with 2 supervised hours per week in a terminal or workstation room.
Learning Outcomes
Upon successful completion of the module students should be able to:
·         Interact with a modern networked computing facility (the UNIX operating system, X windows and the world wide web)
·         Describe the relationship between computer architecture and programming
·         Demonstrate the principles behind procedural and data abstraction
·         Apply abstraction to tackle large scale programming problems
Independently design and code relatively complex programs in C and MATLAB
Module Content

LECTURES: 2 hrs per week Autumn 1-9 & 1 hr per week Spring 8-9 total 20 Hrs


LABORATORIES: 2 hrs per week Autumn 2-11 & Spring 1-11 total 44 Hrs








The C Language Autum wk 1-9 Two hrs per week (RB)



[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.



[17-18]    Review of Pointers.



MATLAB Spring wk 8 & 9 one hr per week (TB)



[19-20]             Introduction to MATLAB, comparisons of MATLAB with C, matrix algebra, simple operators for matrices, MATLAB desktop interface.

Methods of Teaching/Learning
Lectures: 20 hours (2 per week - Autumn Semester)

Laboratories: Attendance time: 48 hours (2 per week, Autumn and Spring Semesters)

Selected Texts/Journals
Aitken, P. Jones, B., Sams Teach Yourself C in 21 Days, 0672324482, Sams.
Gookin, D. C For Dummies, 2nd Edition, 978-0-7645-7068-1, Wiley.
McGregor, J., McGregor, R., Watt, A., Simple C, 0201403854, Addison Wesley Longman
Jackson, K., C Programming for Electronic Engineers, 0333637801, Macmillan Press
Kernighan, B.W & Ritchie, D.M., The C Programming Language, 2nd Ed., 0131103628, Prentice Hall

Knight, A. J. “Basics of MATLAB and beyond”, 1999, 0849320399

Last Updated

12 August 2010