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 
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 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: 1/24/2018 7:51:39 PM