Skip to content Search
Search our website:

Principles of Programming II

Short name: POP2
SITS code: BUCI064H7
Credits: 15
Level: 7
Module leader: Keith Mannock
Lecturer(s): Keith Mannock, Hubert Chen
Online material: http://moodle.bbk.ac.uk

Module outline

This module further develops the techniques described in the “Principles of Programming I” module. This module discusses issues specifically related to developing programs for large programming projects and for modern computer hardware architectures.

Aims

This module covers object-oriented programming, including the use of subclasses, modules, and library classes to create well-organised programs. A further aim is to enhance student’s understanding of making appropriate choices on the selection of algorithms, their implementation together with the required data structures (e.g. arrays, lists, trees, graphs, depth- and breadth-first search algorithms). To enable students to develop programs for modern multi-core architectures utilising functional programming constructs.

Learning Outcomes

On successful completion of this module a student will be expected to be able to:

  • Explain and exploit subclasses, inheritance and interfaces to produce modular, well-organised code.
  • To utilise the relevant features of a programming language.
  • Implement simple algorithms and data structures, both in sequential and parallel environments.
  • Show knowledge of basic concepts and principles of object-orientation such as objects and classes, encapsulation, object state, coupling, cohesion and modularity.
  • Provide evidence of the understanding of functional programming constructs.
  • Write code that exploits the networking facilities of a modern programming language.

Syllabus

  • Transition to Object-Oriented, including types, inheritance, etc.
  • Static typing and reference types
  • Further recursion, memorisation, etc.
  • Local I/O
  • Networking
  • Functional programming constructs
    • Filter, map, reduce, etc.
  • Style rules
  • Further test driven development
  • Avoid “boilerplate”
  • Programming in teams

Prerequisites

Principles of Programming I module

Timetable

All dates and timetables are listed in the programme handbooks of individual programmes.

Coursework

There are programming assignments and graded exercises for this module.

Assessment

This module is assessed by

  • Two-hour unseen examination – online or paper (80%)
  • Programming assignments and group work (20%)

Recommended reading

A set of notes are provided for this course but the following text covers similar topics:

  • Core Java for the Impatient by Cay Horstmann. Addison-Wesley. 2014. ISBN 978-0321996329