Boolean functions (Data structures and algorithms for Boolean functions)
Fixed point theory (Lattices; Order; Algorithms)
Program transformation (Compilation; Partial evaluation)
Programming languages (Programming language semantics; Declarative programming)
Static analysis of software (Abstract interpretation)
Harald Søndergaard is an Associate Professor in the Department of Computing and Information Systems at the University of Melbourne. His primary research areas are software reliability and security, program analysis, software verification, and declarative programming languages.
Harald received an MSc in Computer Science in 1987 and a PhD in 1989, both from the University of Copenhagen. He has been a member of academic staff at the University of Melbourne since 1990, serving as Deputy Head of Department in 2002-2003, as Associate Dean (Learning) in the Engineering Faculty from November 2001 to June 2006, and as Assistant Dean (Teaching Quality) in the Melbourne School of Engineering from July 2007 to June 2009. He currently serves as Graduate Research Coordinator in Computing and Information Systems, with administrative responsibility for more than 160 PhD students.
Harald has received national awards for teaching excellence (the inaugural CORE Teaching Award 2007 and a citation from the Australian Learning and Teaching Council in the same year) in addition to many local university awards. He has been a member of the University's Teaching and Learning Development Committee for more than a decade and he publishes regularly on engineering and computer science education.
The Department of Computing and Information Systems at Melbourne has a long and proud tradition of research into all aspects of programming languages and programming language technologies. I am available as a supervisor or co-supervisor of research projects in areas such as software verification, static and dynamic analysis of programs, program transformation and compilation. My interests range from programming language theory (formal semantics, abstract interpretation, type theory) to the implementation of practical programming environments and tools. While my research has focused on (constraint) logic and functional programming languages, I am interested in all programming language paradigms, including concurrent programming. I am also interested in logic, generally, as a tool for computer science, and in various technologies that can support reasoning about programs, such as theorem provers and SMT/SAT solvers.