- Computer Systems:A Programmer's Perspective, 2. Auflage (Prentice Hall, 2016).
- Programmiersprachen im Kontext:Ein Überblick über die wichtigsten Programmierparadigmen (Springer, 2013).
– Die Praxis des Programmierens (Prentice Hall, 2010).
- Objektorientiertes Design und Implementierung (Prentice Hall, 1999).
Artikel
- „Die Bedeutung von Programmiersprachen im Informatiklehrplan“ (Mitteilungen der ACM, Juli 2016).
- „Die Zukunft der Informatikausbildung in einer sich schnell verändernden Welt“ (Mitteilungen der ACM, August 2015).
- „Die Rolle der Theorie im Informatikunterricht“ (Mitteilungen der ACM, Juni 2014).
- „Warum Programmieren lehren?“ (Mitteilungen der ACM, Mai 2012).
Andere
- Mitherausgeber der Springer International Publishing-Reihe „Foundations and Trends® in Programming Languages“.
- Mitglied der Redaktion des ACM Journal on Educational Resources in Computing (JERIC).
- Vorsitzender des Programmkomitees des ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE) in den Jahren 2016 und 2017.
- Mitglied des Lenkungsausschusses des SIGCSE Technical Symposium on Computer Science Education (SIGCSE) seit 2014.
- Faculty Fellow der Computing Research Association (CRA) seit 2012.
- Fellow der Association for Computing Machinery (ACM) seit 2009.