School of Computer Science
University of Adelaide
Adelaide, South Australia, 5005
I am a member of the Evolutionary Computation Group at the University of Adelaide.
My research interests include program optimisation, rewriting,
genetic-programming (GP) - specifically as it relates building program
optimisers and search-based-software-engineering
I have also supervised successful projects in the evolution
of control algorithms for teams of autonomous agents
and using background optimisation to improve the performance of
instruction set simulators (ISS)'s.
I also have a strong interest the teaching of problem-solving skills
in Computer Science curricula. In particular the learning
of problem-solving skills through deliberate practice.
I am a member of the Education Research
Group of Adelaide (ERGA). I am one of the holders of a Google Research
Award to introduce a problem-solving curriculum into Computer Science.
A little more informaton on my interests in education research can be
Current Research Projects
Other research activities include the development of infrastructure
for the more efficient support of deliberate practice in teaching
computing and the development of genetic grouping algorithms for
cooperative learning. A prototype genetic grouping application
(GGACL, developed as part of student summer research
Brendon Henessy and Yip Chong) that works
very well on large classes can be
downloaded from this link. I am happy
to sponsor a small student project to build a Java GUI for this
application to enhance its usability.
- Enhancing a Fast Instruction Set Simulator
- This project, carried out in collaboration with an industry partner, the Australian Semiconductor Technology Company (ASTC) uses background
compilation on a multicore machine to further enhance the peformance of an,
already fast, instruction set simulator. The project is relatively new
and has, thus far, yielded
very promising results and work is ongoing. In future we hope to progress
this work into a modular and integrated framework for
fast cross-platform simulation. If you have an interest in virtual machines,
low-level programming and compiler technology please feel free to contact
me regarding potential projects.
Control for Teams of Autonomous Ground Surveillance Vehicles
This project contributes to the building of a team of autonomous vehicles to
map and patrol urban areas. The project is ongoing.
We need students who are
good programmers interested the development of novel control strategies
for teams of robots. The work staff from across the faculty of Engineering Maths and Computer Science. Development of prototypes is ongoing and early results are encouraging.
This work can form the foundation for ongoing undergraduate or
Cloud Computing for Geoscience Modelling
Part of the new C3L group at Adelaide, this work uses the cloud resources
to get much faster results computationally intensive geoscience applications.
Our initial application domain will be magneto-tellurics, a cost-effective
but computationally intensive ways to map large areas to great depth. This is
of strong relevance to minerals exploration in Australia where resources can
be obscured by deep layers of regolith which expensive to probe by other means.
- Using Genetic Programming (GP) to evolve Optimisation Phases
for a Compiler
- Optimisers work in a complex design space and are very difficult
to construct manually, not least because it is difficult to predict
the optimiser design choices that will work best for each application
domain. This work extends previous successful work in automatically
evolving the strategies used to drive a detailed optimisation
phase in the Adl compiler - eventually targetting FPGA's. The slides
for a very non-technical introduction to this project I delivered in
Singapore earlier this year can be found here[pdf 4.6MB]. The talk is based on work published in our CEC 2009 paper below.
- Tracable Compilation from a Functional Language
using Strategic Rewriting
This work is part of the Adl Project to take a small
functional language, through
intermediate form, to an FPGA. This work
contrasts with most work mapping high-level-languages to FPGA by avoiding
the need for the programmer to "wire-up" the transfer of values through
their code or to use restricted idioms or heavy use of pragmas.
Communication is implicit in the source code. Leaving the compiler
with the unenviable task of making this communication explicit and
then reducing the quantity of this communication (data-movement optimisation).
Because the compiler is based on rewriting (using the excellent rewriting
language Stratego) it is extremely
robust and also traceable. Current information about the project including
a tracable prototype - complete with traces can be accessed here. This prototype forms the basis of later experiments in evolving an
optimiser using GP. The approach is highly robust with every one of the
hundreds of indivdual optimisers tested not breaking any benchmark code.
- Relating Blob Model Complexity to Model Error (Abstract/Poster), Brad Alexander, Stephan Thiel, Jared Peacock, 21emiw, Darwin Australia, July 2012 (accepted).
- Application of Evolutionary Methods to 3D Geoscience Modelling, Brad Alexander, Jared Peacock, Stephan Theil, GECCO 2012, corrected version (fixed typo in background resistivity).
- Boosting Instruction Set Simulator Performance with Parallel
Block Optimisation and Replacement, Brad Alexander, Sean Donnellan, Andrew Jeffries, Travis Olds, Nicholas Sizer, Australasian Computer Science Conference (ACSC), 2012.
- Evolving Path Planner for A Multi- Robot Exploration System Using Grammatical Evolution, Faisal Ibrahim, Brad Alexander, ISSNIP 2011.
- Evolving Patches for Software Repair, Thomas Ackling, Brad Alexander and Ian Grunert, GECCO 2011 - Smallworld example from the publication can be accessed here.
- Engaging Weaker Programmers in Problem Solving, Brad Alexander and Cruz Izu, IEEE International Conferernce on Engineering Education, EDUCON 2010.
- Constructing an Optimisation Phase Using Grammatical Evolution, Brad Alexander and Michael Gratton, 2009 IEEE Congress on Evolutionary Computation, CEC 2009. talk slides[pdf]
- Data Movement Optimisation in Point-Free Form [pdf], Presented at The 11th International Conference on
Algebraic Methodology and Software Technology, AMAST '06.
- A Simple Programming Model
for New-Generation Hardware[pdf], Presented at
The Second International Workshop on Object Systems
and Software Architectures (2006)
- Abstract of Thesis [pdf]
- Final Draft Thesis [pdf]
- Automated Transformation of
BMF Programs[pdf], Presented at
The First International Workshop on Object Systems
and Software Architectures (2004)
Some Honours/Masters Theses
- Andrew Jeffery,Using the LLVM Compiler Infrastructure for Optimised, Asynchronous Dynamic
Translation in Qemu[pdf], Honours Thesis (2009)
- Lee Wang Hao, ARM Instruction Set Simulation on Multi-Core x86
Hardware[pdf], Honours Thesis (2009)
- Ryan Craig, Evolution of Teams of Maze Solving Agents Using Grammatical Evolution, Honours Thesis (2008)
- Nisarg Patel, Visualising Optimiser [pdf] Masters thesis (2008)
- Sean Pettge, A Fast Code Generator for
Point-Free Form [pdf] Honours thesis (2005)
- Joe Windows, Automated Parallelisation
of code written in the Bird-Meertens
Formalism [pdf] Honours Thesis (2003)
University of Adelaide.
- Dean Philps,
Mapping Parallel BMF Constructs to a Parallel Machine [pdf]
Masters Thesis (2003)
University of Adelaide.
- Paul Martinaitis, Simulation and
Visualisation of Parallel BMF code [pdf] Honours Thesis (1998)
University of Adelaide.
My current Honours project proposals can be found
in the school's honours proposal list. Likewise, my current Masters
project proposals can be found in the school's masters proposal list.
- Introduction to Programming(First Semester)
- Topics in Computer Graphics (First Semester)
- Advanced Topics in Computer Graphics (First Semester)
- Algorithm and Data Structure Analysis (Second Semester)
- Operating Systems (Second Semester)
- Computer Science Concepts (NAAEC Term 3)
I have also presented short Ada and Java courses for industry.
- Computer Science I (A/B)
- Parallel Functional Programming (Honours/Masters).
- Systems Programmin in C and C++
- Programming Paradigms.
- Programming Techniques
- Data Structures and Algorithms
- Operating Systems
- Introduction to Software Engineering (old incarnation)
My primary teaching interests are:
- Introductory programming
- Problem Solving
- Functional programming
- Parallelism - High Performance Computing
- Optimisation and Performance
ACM Programming Contest
I am one of the of the Adelaide teams competing in
Collegiate Programming Contest. The contest has enjoyed
phenomenal growth in recent years, attracting very large
numbers of competitors and strong corporate interest and
The regional round of the contest is held each year
around mid-september. The South Australian Site this year
was Flinder's University. Adelaide teams did very well
again, claiming first and second places at the local site
and 11th overall
in the South Pacific Region. An Adelaide team qualified for the world
final the previous two years running.
Adelaide teams have a good record in this contest. If you a
University of Adelaide student and you are interested in entering
the contest in future email me.
We also have a forum set up each year for the contest with
information and resources for local teams.
I am strongly involved in the development of core first
year curricula and course material and, in particular, new practical
exercises. I have also made major changes to the course content
for Advanced Programming Paradigms, Parallel Functional Programming and
in the development of the new Systems Programming course. I
am a co-developer a new masters course, Specialised Programming,
as part of the future development of a problem-solving curriculum in
Administration and Service
Brad Alexander, September 2011.
Current administrative roles
- School Assessment Coordinator
- Records and Marks System coordinator
- School NAAEC Coordinator
- Software Infrastructure and Web Support
- Schools Liason (Semester 1)
- Member of School Computing Committee
- Member of School Learning and Teaching Committee
Past Administrative roles
- Course Advisor
- First-Year Coordinator
- Occupational Health and Safety Officer
- Level A teaching coordinator
- Representative to the Faculty of Science
- Member of IT Subject Advisory Committee Senior Secondary Assessment
Board of South Australia (SAABSA)