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: 2018/19
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 
A. demonstrate knowledge and understanding of the basic principles of the C programming language;

B. demonstrate knowledge and understanding of the basic role and function of hardware and software components of a computer;

C. demonstrate knowledge and understanding of the software development process;

D. design, code, debug, test and document computer programs written in the ANSI C language to meet requirements supplied in a specification;

E. design modular programs following the top-down function-oriented approach.

F. analyse understand and modify existing code written in C;

Method of teaching and learning 
This module is delivered as a two hour lecture and two hour practical session 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 structures.

Lecture 13 Problem Solving and Review.

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: 5/22/2018 9:41:42 PM