School of Computer Science

Module 06-26266 (2018)


Level 2/I

Sujoy Sinha Roy Semester 2 10 credits
Co-ordinator: Andrew Howes
Reviewer: Ian Batten

The Module Description is a strict subset of this Syllabus Page.


The module introduces the C/C++ family of programming languages, including programming language design issues arising from the various extensions of C that have been developed. The module assumes some familiarity with programming in Java, and it will emphasise the differences between C-style languages and Java, such as garbage collection vs memory management and pointers.


The aims of this module are to:

  • To present the main features of the C/C++ family of programming languages
  • To introduce students to programming styles appropriate for C and/or C++

Learning Outcomes

On successful completion of this module, the student should be able to:

  1. Program in C, with due care of memory management issues. 2 . Describe a number of different extensions (such as Objective C), and the ways in which they differ.
  2. Demonstrate knowledge of the programming language design issues arising from these variants (e.g. garbage collection vs memory management, dynamic vs static typing).
  3. Students will be able to write programs using the main features of C++.



Teaching methods

Two hourly lectures per week plus eleven two-hour demonstrator-supervised laboratory sessions.

Contact Hours:



Sessional: 1.5 hr examination (80%), continuous assessment (20%).

Supplementary (where allowed): By examination only (100%).

Detailed Syllabus

  1. Strings, arrays and pointers; string operations and buffer overflow
  2. Pointers and linked lists
  3. Trees in C: struct and union, enum and switch
  4. Memory management; stack vs heap allocation
  5. Polymorphism, structures and function pointers
  6. C++ classes and objects
  7. C++ templates

Programmes containing this module