Skip to main navigationSkip to main content
The University of Southampton

COMP6209 Automated Code Generation

Module Overview

This module aims to cover the topic of production of code via automated means. This topic incorporates the different approaches to metaprogramming that are available in mainstream languages and also touches on issues such as automated generation of testing code and software product lines. The course is practical in nature and reasonable programming skills in Java and possibly also C++ are required. The module is optional but at least one out of this module and Automated Software Verification must be taken by MSc Software Engineering students.

Aims and Objectives

Learning Outcomes

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • High-level concepts in code generation
  • Basic aspect-oriented programming concepts
  • Software Engineering practices for Software Product Lines
Subject Specific Intellectual and Research Skills

Having successfully completed this module you will be able to:

  • Apply aspect-oriented programming techniques to your code base
Subject Specific Practical Skills

Having successfully completed this module you will be able to:

  • Use a range of generative programming techniques in your software development
  • Use code generation techniques to facilitate automated testing


- Automated code generation concepts - Software product Lines - Programs as data structures - Template based metaprogramming - Quote based metaprogramming - Rewrite based code generation - Aspect oriented programming - Automated generation of testing code

Learning and Teaching

Wider reading or practice39.5
Follow-up work18
Completion of assessment task16.5
Preparation for scheduled sessions18
Total study time150



MethodPercentage contribution
Continuous Assessment 40%
Final Assessment  60%


MethodPercentage contribution
Set Task 100%


MethodPercentage contribution
Set Task 100%

Repeat Information

Repeat type: Internal & External

Share this module Share this on Facebook Share this on Twitter Share this on Weibo
Privacy Settings