The University of Adelaide Australia

Brad Alexander

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

Email: brad@cs.adelaide.edu.au

Research Interests

I am a member of the Distributed High Performance Computing group in the School of Computer Science at Adelaide.

My research interests include program optimisation, rewriting, genetic-programming (GP) - specifically as it relates building program optimisers. 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. 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.

Current Research Projects

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 has, thus far, yielded very promising results. We currently have a summer scholarship available for a student in Computer Science or related engineering discipline who will be undertaking honours or other research project in 2010. Further details can be found at the end of this link.
Control for Teams of Autonomous Ground Surviellance Vehicles
This project contributes to the building of a team of autonomous vehicles to map and patrol urban areas as part of the MAGIC 2010 challenge. We urgently need students who are good programmers interested the development of novel control strategies for teams of robots. The work will be in collaboration with industry partners and staff from across the faculty of Engineering Maths and Computer Science. This work can form the foundation for ongoing undergraduate or graduate research.
South Australian Ambulance Service, Optimisation of Resource Placement and Provision
The South Australian Ambulance Service (SAAS) has a number of exciting projects for prospective honours and other postgraduate students involving the optimisation of resource deployment to provide the best outcomes for patients. Further details of the project can be found at the end of this link.
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

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.

Teaching

2009 Courses

Past Courses

  • 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

ACM Programming Contest

I am the Coach of the Adelaide teams competing in ACM International Collegiate Programming Contest. The contest has enjoyed phenomenal growth in recent years, attracting very large numbers of competitors and strong corporate interest and sponsorship.

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.

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

  • 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)
Brad Alexander, November 2009.