Coronavirus (COVID-19) update

Module ICP-2036:
Computer Graphics 2 Algorithms

Module Facts

Run by School of Computer Science and Electronic Engineering

10 Credits or 5 ECTS Credits

Semester 1

Organiser: Prof Jonathan Roberts

Overall aims and purpose

To teach fundamental computer graphics algorithms and techniques for modelling computer graphics, and enable students to gain skills to code graphics programs, and understand fundamental algorithmic concepts that can be applied across computer science. For example, rasterisation, and coherence are all algorithmic principles that have wide application throughout computer science.

Course content

  • The graphics process; reference model for computer graphics systems; raster display systems;
  • Graphics libraries; state-machine model; transformations; primitives and attributes
  • Application areas; entertainment, games, films, research questions.
  • Drawing shapes; points, lines, circles and ellipses;
  • Rasterisation and filling; line styles; Bresenham’s algorithm; filling algorithms; coherence.
  • Transformations and projections; translation, rotation, scaling, shearing, 3d viewing, clipping
  • Rendering, 3D visible surface determination, z-buffer, lights/surfaces, illumination models, materials, colour, shading, textures, antialiasing, double-buffering.

Learning outcomes mapped to assessment criteria







Have a knowledge and understanding of the structure of computer graphics system, from modelling to rendering and understand the main features of a graphics library, including transformations, primitives and attributes.

Have a good understanding of the concepts for modelling and generation of computer graphics. Excellent knowledge of modelling and generation of computer graphics. Understand the concepts for modelling and generation of computer graphics.

Able to demonstrate understanding of the composition of a typical graphics library, and discuss how computer graphics is currently used, and what its use may be in the future.

Can explain basic graphics library operations and discuss how computer graphics is used today. Can explain the basic operations of a graphics library (such as OpenGL). Can discuss different opportunities for libraries, graphics and challenges thereof in the future.

Identify and illustrate the key parts of graphics rendering (especially z-buffer and ray tracing), and explain the fundamental aspects of the illumination model and lighting techniques for rendering, and identify challenges of rendering and compare different solutions.

Good understanding of rendering and identify various challenges with different algorithms. Can illustrate the main principles of rendering. Excellent and comprehensive understanding of rendering, and able to understand main differences between z-buffer and ray tracer.

Understand and demonstrate fundamental principles of rasterisation, and illustrate rasterisation principles of key algorithms such as line-drawing and geometry filling algorithms. Able to apply these concepts to computer graphics.

Can describe the basic concepts of rasterisation. Can write computer programs that generate two-dimensional graphics and describe some limitations. Can write appropriate software that demonstrates excellent knowledge of these concepts and know the limitations of the algorithms.

Assessment Methods

Type Name Description Weight
Examination 60
Assignment 1 10
Assignment 2 30

Teaching and Learning Strategy

Private study 56

20 hours over 12 weeks


24 hours over 12 weeks


Transferable skills

  • Literacy - Proficiency in reading and writing through a variety of media
  • Numeracy - Proficiency in using numbers at appropriate levels of accuracy
  • Computer Literacy - Proficiency in using a varied range of computer software
  • Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
  • Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.

Subject specific skills

  • Knowledge and understanding of facts, concepts, principles & theories
  • Problem solving strategies
  • Deploy theory in design, implementation and evaluation of systems
  • Evaluate systems in terms of quality and trade-offs
  • Development of general transferable skills
  • Knowledge and/or understanding of appropriate scientific and engineering principles
  • Knowledge and understanding of mathematical principles
  • Knowledge and understanding of computational modelling

Pre- and Co-requisite Modules

Courses including this module