Tomas Petricek — Teaching Statement
In the last 5 years, I have taught courses on subjects ranging from programming languages and algorithms to human-computer interaction at University of Kent and Charles University. I have taught both compulsory courses for 200+ undergraduate students and optional courses for 15-25 students.
I see teaching as closely intertwined with research and strongly believe that excellent teaching is best shaped by current research interests. For example, when redesigning the Software Engineering (CO886) module at University of Kent, the lectures most appreciated by students were inspired by my ongoing research on history of programming, which will be published as a monograph Cultures of Programming by Cambridge University Press.
At Charles University, I leveraged the greater teaching freedom to develop two new courses focused on programming languages and systems, which is my main research interest. In the Design of Programming Languages (NPRG075) course, I cover different research methodologies that can be used to rigorously study the subject, combining my interest in programming langauge theory with broader perspectives offered, for example, by human-computer interaction (HCI) research. The course was highly rated, but it also allowed me to better organize my own research thoughts on the subject.
In Write Your Own Tiny Programming Systems (NPRG077), I experimented with the flipped classroom teaching model, which is emerging as an interesting alternative to conventional lecturing in the wake of the Covid-19 pandemic. Students watched pre-recorded 1 hour lectures and classwork was focused on collaboratively solving practical programming problems. This proved attractive to the students and motivated me to explore possible uses of this model in my future teaching.
I intend to use the experience gained with teaching at Charles University over the last 2 years to develop a consolidated programming languages stream as part of the Systems Programming Bachelor's study programme and Software Systems Master's study programme. I intend to develop an undergraduate course focused on Concepts and Theories of Programming Languages, as well as to keep the above optional courses. I will also continue to collaborate with colleagues teaching related courses to create a coordinated curriculum covering programming languages and systems. The curriculum will equip students with conceptual background necessary for understanding the rapidly evolving programming language landscape, as well as with theoretical background necessary for pursuing research in the area.
Last but not least, I believe that the Faculty of Mathematics and Physics is unique in its open and collegial relationship with students. I want to contribute to this environment and offer a range of opportunities for interested students. I will continue to host an informal reading group focused on programming langauge and systems research, but also invite students to participate in other activities of my group at the Department of Distributed and Dependable Systems.