Teaching Computer Science Through Self-Reference

Speaker:        Professor Christoph Kirsch
                Department of Computer Sciences
                University of Salzburg

Title:          "Teaching Computer Science Through Self-Reference"

Date:           Thursday, 12 January 2017

Time:           2:00pm - 3:00pm

Venue:          Room 3501 (via lifts 25/26), HKUST


Imagine a world in which virtually everyone at least intuitively
understands the fundamental principles of information and computation,
just like, say, Boolean and elementary algebra. Computing in such a world
would be as natural to people as using a calculator app or making plans
for the weekend. Computer science, however, is still a young field
compared to others and lacks maturity, despite the enormous demand created
by information technology. We present our experience in trying to address
the problem by identifying self-referentiality in programming languages
and runtime systems as key ingredient in teaching basic computer science
principles. We argue that self-referentiality is essential for developing
a well-founded understanding of computer science and coding in particular.
We have developed a tiny C compiler as well as a MIPS emulator and
hypervisor called selfie that can compile, execute, and host itself.
Selfie serves as fully self-contained tool for teaching how semantics of
realistic programming formalisms and concurrent systems is created on a
digital computer.


Selfie is joint work with Martin Aigner, Christian Barthel, Michael
Lippautz, and Simone Oblasser.


Christoph Kirsch is Professor at the Department of Computer Sciences of
the University of Salzburg, Austria. He received his Dr.Ing. degree from
Saarland University, Saarbrucken, Germany, in 1999 while at the Max Planck
Institute for Computer Science. From 1999 to 2004 he worked as
Postdoctoral Researcher at the Department of Electrical Engineering and
Computer Sciences of the University of California, Berkeley. He later
returned to Berkeley as Visiting Scholar (2008-2013) and Visiting
Professor (2014) at the Department of Civil and Environmental Engineering
as part of a collaborative research effort in Cyber-Physical Systems. His
most recent research interests are in concurrent data structures, memory
management, and so-called spatial programming. Dr. Kirsch co-invented
embedded programming languages and systems such as Giotto, HTL, and the
Embedded Machine, and more recently co-designed high-performance,
multicore-scalable concurrent data structures and memory management
systems. He co-founded the International Conference on Embedded Software
(EMSOFT) and served as ACM SIGBED chair from 2011 until 2013 and ACM
TODAES associate editor from 2011 until 2014. He is currently associate
editor of IEEE TCAD.