- Компютърни системи:перспектива на програмиста, 2-ро издание (Prentice Hall, 2016).
- Езици за програмиране в контекст:Преглед на основните парадигми за програмиране (Springer, 2013).
- Практиката на програмирането (Prentice Hall, 2010).
- Обектно-ориентирано проектиране и внедряване (Prentice Hall, 1999).
Статии
- „Значението на езиците за програмиране в учебната програма по компютърни науки“ (Съобщения на ACM, юли 2016 г.).
- „Бъдещето на компютърното образование в един бързо променящ се свят“ (Съобщения на ACM, август 2015 г.).
- „Ролята на теорията в обучението по компютърни науки“ (Съобщения на ACM, юни 2014 г.).
- "Защо да преподавам програмиране?" (Съобщения на ACM, май 2012 г.).
Друго
- Съредактор на поредицата на Springer International Publishing "Основи и тенденции® в езиците за програмиране".
- Член на редакционния съвет на ACM Journal on Educational Resources in Computing (JERIC).
- Председател на програмния комитет на Техническия симпозиум на ACM SIGCSE за обучение по компютърни науки (SIGCSE) през 2016 и 2017 г.
- Член на Управителния комитет на Техническия симпозиум за обучение по компютърни науки на SIGCSE (SIGCSE) от 2014 г.
- Научен сътрудник на Асоциацията за компютърни изследвания (CRA) от 2012 г.
- Член на Асоциацията за компютърни машини (ACM) от 2009 г.