Module Catalogues, Xi'an Jiaotong-Liverpool University   
Module Code: EEE101
Module Title: C Programming and Software Engineering I
Module Level: Level 1
Module Credits: 5.00
Academic Year: 2017/18
Semester: SEM1
Originating Department: Electrical and Electronic Engineering
Pre-requisites: N/A
Despite the popularity of newer languages such as C++ and Java the C language remains a core skill in the software business ranking in the top ten desired skills.

C is one of the most popular languages for programming embedded systems that are found in automobiles, cameras, DVD players and many other modern appliances.

This module aims to enable students to:

Learn and use the C programming language

Use the C language to solve real engineering problems

Acquire fundamental software development skills covering program design, coding and testing
Learning outcomes 
Knowledge and Understanding On successful completion of the module, a student is expected to demonstrate:

A. Knowledge of the C programming language

B. Knowledge of the role and functions of the hardware and software components of a computer

C. Understanding of the software development process D. Intellectual Abilities.

E. On successful completion of the module, the students should demonstrate ability in applying the knowledge accumulated during lectures and laboratory classes to: Design, code, test and document computer programs that meet the requirements supplied in a specification.

F. Analyse and understand existing code written in C.

G. Modify and enhance existing programs written in C.

H. Determine and correct the sources of errors that occur during compilation, run-time errors and logical (design) errors.

I. Practical Skills On successful completion of the module, the students are expected to: Be able to use the C++ complier on the University computer networks to code, compile and run programs written in C Be able to design modular programs following the top-down function-oriented approach. Be able to code an algorithm using the (ANSI) C language.

J. General Transferable Skills On successful completion of the module, students should be able to demonstrate enhancement of the following key transferable skills: Independent learning Problem solving and design skills.
Method of teaching and learning 
This module is delivered as one hour lecture and three hours practical programming in the computer laboratory, each week.

The concepts introduced during the lecture are illustrated using step-by-step analysis of example code, complete case studies and live programming tutorials.

Each week the students have to solve a set of exercises during the laboratory classes and submit the completed work electronically.

The students are assisted during the practical laboratory classes by demonstrators.
Lecture 1 Overview of the course Introduction to the basic elements of a computer: hardware and software Overview of programming languages. The six steps of the software development method: Problem Specification, Analysis, Algorithm Design, Algorithm Implementation, Testing, Maintenance and Update. Introduction to the C language and the C compiler.

Lecture 2 Anatomy of a C program. Program layout and syntax rules. Fundamental data types. Basic operators and expressions. Operator precedence. Sources and types of programming errors: syntax errors, run-time errors and logic errors.

Lecture 3 Binary numbers. Character arrays and strings. Basic I/O functions. Prefix and postfix operators. Automatic and explicit type conversions; type casting.

Lecture 4 Functions. Function declaration and definition. Function arguments and return values. Introducing pointer variables. Declaring pointers. The indirection and the 'address of' operator. Using pointer variables as function arguments.

Lecture 5 Relational and logic operators. Flow control statements. Conditional branching. Multiple choice statements. Live programming tutorial.

Lecture 6 Loops. Entry-condition vs. exit-condition loops. Indefinite vs. counting loops. Nested loops. Using loops to process arrays.

Lecture 7-8 Pointers and arrays. Pointer operations. Pointer compatibility. Multidimensional arrays. Writing array processing functions.

Lecture 9-10 Functions and multidimensional arrays. Dynamic memory allocation. Using dynamic memory allocation to create dynamically-sized arrays.

Lecture 11 File I/O operations. Files in C. Binary vs. text views. Opening files. Testing for successful opening. Reading and writing from/to a file. Using functions to access files sequentially and randomly. Closing a file.

Lecture 12 Data structures. Creating structure templates and variables. Initialising structures. Accessing st
Delivery Hours  
Lectures Seminars Tutorials Lab/Prcaticals Fieldwork / Placement Other(Private study) Total
Hours/Semester 26      26    98  150 


Sequence Method % of Final Mark
1 Assignment 1 15.00
2 Assignment 2 15.00
3 Assignment 3 35.00
4 Assignment 4 35.00

Module Catalogue generated from SITS CUT-OFF: 10/22/2017 9:28:23 PM