School of Computer Science The University of Adelaide Australia
Computer Science Home
About the School
Staff Only
text zoom: S | M | L

School of Computer Science
Innova21 Building
SA 5005

Telephone: +61 8 8313 5586
Facsimile: +61 8 8313 4366

You are here: Computer Science > users > brad

Brad Alexander

School of Computer Science
University of Adelaide
Adelaide, South Australia, 5005


Research Interests

I am a member of the Optimisation and Logistics Group at the University of Adelaide.

My research interests include program optimisation, rewriting, genetic-programming (GP) - especially the discovery of recurrences and search-based-software-engineering. I have also supervised successful projects in the evolution of control algorithms for robots, the evolution of three-dimensional geological models, and the synthesis of artificial water distribution networks, and using background optimisation to improve the performance of instruction set simulators (ISS)'s. I've also worked on improving algorithms for the analysis of water distribution networks.

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 found here.

I am one of the creators of a new second year course Problem Solving and Software Development where students solve realistic and fun algorithmic problems. The course will also have a focus building the meta-cognitive skills needed to practice effectively.

Current Research Projects

The following lists some of research projects I'm currently working on.
Synthesis of Artificial Water Distribution Networks (with Qi Chen, Sylvan Elhay and Angus Simpson)
This project develops a tool using map data to create realistic pipe networks for benchmarking analysis algorithms.
Evolving a Function for Peripheral Extrapolation of Corneas (with Jake Brown, Anh Nguyen, Frank Neumann, and Lachlan Scott-Hoy)
This project aims to use genetic programming to evolve a function mapping the inner surface of the cornea to the outer part of the cornea.
From Pictures to Programs - Evolving Recursive Equations from Partial Call-Trees (with Brad Zacher)
This project aims to boost genetic programming search using information gathered from a partial call tree. The premise of this research is that drawing a call tree is a common first step in the development of recurrences so it makes sense to use this information if it's available.
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 graduate research.
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 point-free 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.
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 project with 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.

Recent Publications

  • Boosting Search for Recursive Functions using Partial Call-Trees, B Alexander and B Zacher, PPSN, 2014, (Accepted for Publication).
  • A Reformulated Co-tree Flows Method competitive with the global Gradient Algorithm for solving the water distribution system equations, S Elhay, AR Simpson, J Deuerlein, B Alexander, WHA Schilders ,Journal of Water Resources Planning and Management, 2013
  • Evolving decision-making functions in an autonomous robotic exploration strategy using grammatical evolution, MF Ibrahim, BJ Alexander, Intelligent Robots and Systems (IROS), 2013
  • A Forest-Core Partitioning Algorithm for Speeding up the Analysis of Water Distribution Systems, A. R. Simpson, S. Elhay, B. Alexander, Journal of Water Resources Planning and Management, 2012.
  • Designing a Navigational Control System of an Autonomous Robot for Multi-Requirements Planetary Navigation using an Evolutionary Approach, M F Ibrahim, B. Alexander, National Space Science Conference, Australia.
  • 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

Honours/Masters projects

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.


2014 Courses

  • Grand Challenges in Computer Science
  • Problem Solving and Software Development

Past Courses

  • Introduction to Programming
  • Algorithm and Data Structure Analysis
  • 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)
I have also presented short Ada and Java courses for industry.

Teaching interests

My primary teaching interests are:
  • Introductory programming
  • Problem Solving
  • Functional programming
  • Parallelism - High Performance Computing
  • Optimisation and Performance

Teaching Development

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 Computer Science.

Administration and Service

Current administrative roles

  • Director of Teaching
  • 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

  • Coach ACM Programming Contest
  • School Assessment Coordinator
  • Records and Marks System coordinator
  • School NAAEC Coordinator
  • Software Infrastructure and Web Support
  • Schools Liason
  • Member of School Computing Committee
  • Member of School Learning and Teaching Committee
  • Course Advisor
  • First-Year Coordinator
  • Member of IT Subject Advisory Committee Senior Secondary Assessment Board of South Australia (SAABSA)
Brad Alexander, June, 2014.