Programming in C

AUTUMN semester dates: Every Wednesday from 20/2/08 to 23/4/08
SPRING semester dates: run on demand
Times: 6.00pm - 9.00pm
Duration: 30 hours (3 hours x 10 weeks)
Fees: $1000
Venue: City campus - Building 10

Expressions and Enrolment

If you are interested in this course, please submit an Expression of Interest form to register your interest. Please note if you wish to enroll into this short course, you must also submit an Application Form [PDF 114k] to pay for and secure a place. Submission of an application form is confirmation of your intent to enroll and terms and conditions will apply.

Who Should Attend?

Programmers who have some background in a language other than C and who wish to develop skills in the C language.

Read the following information about the importance of C Programming Language. C is:

  • a minimalistic programming language;
  • suitable for many systems-programming applications;
  • suitable for machine-independent programming.

Indeed a C program (standards-compliant and portably written) may be compiled for huge number of different computer platforms and operating systems with minimal change to its source code. Its versatility is demonstrated by its availablility on a very wide range of platforms, from embedded microcontrollers to supercomputers.

Professional Recognition

Those who successfully complete the course will gain a credit of 30 PCP points from the Australian Computer Society (ACS).

Course Objectives

The intention of the course is to give a thorough grounding in programming in C. All major features of ISO standard C will be covered. On completion of the course, attendees should be able to write well-structured and clearly understandable programs of moderate complexity. The use of ISO standard C will allow programs to be compiled and executed on any platform for which a conformant C compiler is available.

Course Description

The course comprises twelve 3-hour sessions held weekly (apart from public holidays). Each session will consist of a 60 to 90 minute lecture, followed by a laboratory workshop where exercises to reinforce the lecture material will be practise. Teaching staff will supervise the practical sessions and assist attendees where necessary. For the practical sessions, each attendee will have sole use of a modern Unix workstation, operating either as a networked computer or X-terminal into a central computer.

Course notes and a textbook are included in the price of the course. For more information, see the Course Outline.

Assessment

Assessment for this course is optional. Students who wish to undertake an assessment task will be given a programming assignment. Students who satisfactorily complete this assignment will receive a certificate. Other students will receive a letter certifying the attendance at the course.

Course Outline

Topics Covered

Compiling, simple programs, arithmetic and relational operators, and if statements

Keywords, types, expressions, operators, precedence & associativity and looping constructs

Input/Output (keyboard & screen), switch statements, transfers of control, functions, parameter passing, recursion and storage classes

Declaring & initialising arrays, strings, arrays & parameter passing, const qualifier and multi-dimensional arrays

Pointers, address & indirection operators, pointers as function parameters, const qualifiers & pointers, pointer arithmetic, ragged arrays, pointers to functions and reading complex declarations

Character and string functions, formatted input and output

Declaring & initialising structures, accessing structure members, typedef, unions, bit manipulations and enumeration constants

File I/O, text & binary files, sequential & random access files and command line arguments

Data structures, self-referential structures, linked lists, stacks, queues, binary trees, dynamic storage allocation, insertion and deletion from linked lists, and sorting using binary tree

The C preprocessor, conditional compilation, predefined symbolic constants, large projects & separate compilation, external and internal linkage and the make utility under Unix

Text

C - How to Program (5th ed.), H.M. Deitel and P.J. Deitel, Prentice Hall 2006. The textbook and course notes will be provided.