About Us | [Public iPhone iPad Courses] | [Public Android Courses] | [Public Arduino Courses] | [Contact Us]

Course CL101
Introduction to C Programming

Duration: 5 Days

Intended Audience

Attendees are expected to have some programming experience in a procedural language such as Basic, Fortran or Pascal. The course is also suitable for recent engineering and computer science graduates who need to "cure" any bad (programming) habits they might have picked up at University.

Drive and determination are important pre-requisites as the course aims to produce competent working programmers, as is a good sense of humour (vital when working under pressure). Good programmers think hard, but also have a strong obsessive streak .... a need to get a program fully debugged and working at all costs.

Course Overview

This is an intensive introduction to ANSI C programming using the GNU C compiler. At the end of the course attendees should be reasonably confident in reading and writing C programs and have a good practical understanding of advanced topics such as the use of C pointers , the relationship between pointers and arrays, as well as dynamic memory allocation and memory management. In addition, they will be able to understand makefiles and version control using SVN and CVS.

Throughout, the course will emphasise a disciplined and structured approach to C programming. Debugging and code testing techniques will also be covered extensively, including the use of the GNU debugging tools. The course is not based on any particular Integrated Development Environment (IDE), and adopts a more traditional approach where files are created using a suitable editor (such as EMACS) and programs are compiled either by issuing commands at the commandline, or by invoking make on an appropriate makefile.

Key Skills

Practical Work

In addition to the major exercises listed below, the course includes numerous mini-challenges and code examples for private study, and to build on the skills acquired during the course.


Course Contents

First steps

Data types, operators and expressions (the basics)

Program flow control

Functions

Pointers and arrays

Structures

An introduction to data structures and algorithms

Input-output

Further topics

Makefiles, Libraries, SVN and CVS