Computing for Graphics and Animation


This Unit aims to introduce students to Object Oriented Programming (OOP) and functional concepts that are commonly used in computer graphics and animation. The various techniques and concepts are introduced in a way that demonstrates their relevance and application to computer graphics and animation.


Having completed this unit the student is expected to:

  1. Understand and apply Object Oriented and Functional programming concepts and techniques to the design and implementation of CGI systems;

  2. Analyse and select suitable data structures for program development;

  3. Understand and implement computer animation related algorithms using OP;

  4. Develop GUI based systems using a suitable API for animation.

Learning and teaching methods

This unit will be taught as a combination of lectures and workshops. The workshop sessions are designed to follow the lectures step by step. The workshops both complement and mirror the corresponding lectures with practical programming examples and exercises. Students are exposed to various strategies for designing, implementing, testing and documenting programs. Students are also encouraged to develop a personal approach to solving computer graphics and animation related problems based upon recognised practices of software engineering

Indicative unit content

  • Introduction to Object Oriented Programming Objects and classes
  • Data structures for CGI.
  • Real-time / Offline algorithms for CGI
  • GUI design and programming.
  • Inheritance and Runtime Polymorphism
  • Generic Programming with Templates STL Containers
  • Functional Techniques
  • Shading Models, OpenGL Lights, Materials
  • Software Engineering principles, lifecycle of software projects


Each student will have access to a workstation with an appropriate development environment. Budd, T. 2001. Introduction to Object-Oriented Programming Addison Wesley. Eckel, B. 2000.

Thinking in C++ volume 1 Prentice Hal Inc, 2000. Available online

Foley, J.D., vanDam, A., Feiner, S.K. & Hughes, J.F. 1996. Computer Graphics: Principles and Practice, Addison-Wesley, 2nd Edition in C

Hill F.S. 2005. Computer Graphics using OpenGL. 3 rd Edition Addison-Wesley

Parsons, D., 1997. Object Oriented Programming with C++. 2nd edition. Letts Educational

Shreiner, D., Sellers, G., Kessenich, J. M., Licea-Kane, B. M., 2016, OpenGL Programming Guide: The Official Guide to Learning OpenGL , Version 4.5 with SPIR-V, Addison-Wesley

Stroustrup, B., 1997. The C++ Programming Language, 3rd edition, Addison-Wesley

Watt, A., Watt, M., 1992. Advanced Animation and Rendering Techniques. Addison-Wesley

Woo, M., et al. 1999. OpenGL Programming Guide The official Guide to Learning OpenGL, Version 1.2 (3rd Edition) Addison-Wesley

Woo, M., et al., 1997. OpenGL Programming Guide. Version 1.1, Addison-Wesley


‘Communications of the ACM’ monthly publication of Association of Computing Machinery

Websites (the OpenGL official site) (books on OpenGL) (Bjarne Stroustrup C++)