Programme And Module Handbook
 
Course Details in 2023/24 Session


If you find any data displayed on this website that should be amended, please contact the Curriculum Management Team.

Module Title LC Introduction to Computing for Engineers
SchoolSchool of Engineering
Department Elec, Elec & Sys Engineering
Module Code 04 38091
Module Lead Dr S Pammu
Level Certificate Level
Credits 10
Semester Semester 1
Pre-requisites
Co-requisites
Restrictions None
Contact Hours Lecture-10 hours
Practical Classes and workshops-16 hours
Guided independent study-74 hours
Total: 100 hours
Exclusions
Description The aim of this module is to introduce engineers to computers and computer programming using an important modern programming language which has applications from small embedded systems to supercomputers.

Syllabus: Lecture material

1. Introduction to Computer Programming

a. Key definitions - components of a computer, operating system, embedded computers.

b. High-level programming languages - overview and examples

c. C programming language - history, current importance and applications

d. Compiling and Linking

2. Introduction to C programming

a. Variables & Data types

b. Assignment and initialisation

c. Operators & Input

d. Introduction to using the Math library

3. Program control (Iteration & Selection)

a. Loops - importance in programming

b. Iteration - \"for\" loops, The \"while\" loop, The \"do - while\" loop, and Comparison of for, while and do-while loops

c. Conditional statements - the \"if\" and \"if else\" statements

d. The switch statement

e. Logical and relational operators

4. Arrays

a. Introduction to arrays - rationale for using arrays in C

b. Declaring arrays, Initializing arrays, Multi-dimensional arrays, and Character arrays – strings.

5. Functions and procedural programming

a. Basic ideas about functions

b. Local, global and static variables

c. Function arguments and \"call-by-value\"

d. Function prototypes

6. Introduction to numerical methods and algorithms

a. Developing mathematical / numerical applications

b. Internal representation of data types and Variable precision - roundoff errors

c. Algorithm expression and design

7. Files

a. Files - the basics, Using files - the FILE data structure

b. String file i/o - fgets() and fputs() and Formatted file i/o - fprintf() and fscanf()

8. Pointers

a. Concept of pointers as memory addresses

b. Pointer and indirection operators, pointer arithmetic

c. Pointers and arrays, Pointers and functions - call by reference

d. Dynamic allocation of one-dimensional arrays

9. Real-world applications

a. Introduction to program design

b. Header files and libraries

c. Developing new data types - \"structs\" and \"typedefs\"

d. Programming on Embedded systems.
Learning Outcomes By the end of the module students should be able to:
  • Demonstrate the knowledge and understanding to write programmes in C in order to help them solve problems in engineering.
  • Demonstrate the ability to interpret and enhance programmes developed by other engineers.
  • Demonstrate the ability to extract and reformulate real world scenarios into C programing code.
Assessment
Assessment Methods & Exceptions Assessment:

Main assessment:
50%, scheduled for the first examination period. Provisionally a 24-hour open-book multiple-choice Canvas exam for both on-campus and off-campus students.
Assessed Labs
12% - Assessed Lab 1 provisionally week 5 of Semester 1
12% - Assessed Lab 2 provisionally week 10 of Semester 1
12% - Assessed Lab 3 provisionally week 11 of Semester 1
Each is proposed to be a 24-hour open-book programming assessment, for on-campus and off-campus students.
Vivas
As all the assessments are open-book and unsupervised, vivas will therefore be used where needed to calibrate and verify student performances.
Lab engagement
7 x 2% - 1 mark each week for uploading a lab summary and 1 mark for uploading any one exercise from each lab (even if unfinished).
Other
Reading List