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
- Andrew Jeffery,Using the LLVM Compiler Infrastructure for Optimised, Asynchronous Dynamic
Translation in Qemu, Honours Thesis (2009)
- Lee Wang Hao, ARM Instruction Set Simulation on Multi-Core x86
Hardware, 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.
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.
|