Unit information: Object Orientated and Functional Programming in 2008/09

Please note: you are viewing unit and programme information for a past academic year. Please see the current academic year for up to date information.

Unit name Object Orientated and Functional Programming
Unit code COMS12400
Credit points 10
Level of study C/4
Teaching block(s) Teaching Block 2 (weeks 13 - 24)
Unit director Dr. Holyer
Open unit status Not open
Pre-requisites

COMS11600 Procedural Programming Or COMS11800 Programming Project

Co-requisites

None

School/department Department of Computer Science
Faculty Faculty of Engineering

Description including Unit Aims

This unit aims to build on previous procedural programming skills by introducing object orientated programming and functional programming. It also covers basic theoretical and software engineering principles involved in programme design and development.

Aims:

The main aim of the unit is to ensure that students are confident and competent programmers. Principles of robust software development are introduced in a practical way by good example. Topics include:

  • Programming in Java, methods, debugging, unit testing
  • Java classes, object-oriented analysis, design and programming
  • Java standard libraries, evaluating and using standard data structures and algorithms
  • Programming in Haskell, functions, pattern matching, lists, recursion
  • Algebraic and generic types, modules, standard libraries
  • Specifications and proof of correctness of recursive algorithms, primitive and general recursion, structural induction

Intended Learning Outcomes

Successful completion of this unit will enable a student to:

  • Program competently and confidently in Java and Haskell
  • Analyse, design and program in an object-oriented manner
  • Apply sound software development practice
  • Evaluate and use standard library software
  • Design, analyse and prove the correctness of recursive algorithms

Teaching Information

2 hours of lectures per week, 3 hours per week of supervised lab work, plus further personal study to complete programming exercises.

Assessment Information

All coursework

Reading and References

  • Any introductory book on Java programming
  • Haskell: The Craft of Functional Programming, by Simon Thompson

plus a large collection of materials available via the unit web-page.