You have found me. Well, if you were looking for me anyway. I am a Senior Lecturer in the Department of Computer Science and Director of the Johns Hopkins Gaming Lab. I am also the faculty advisor for the Amnesty International and eSports Association student groups.
Yes, that is indeed an umlaut in my name: I was born and raised in ./Earth/Europe/Germany/Bavaria/Munich/ as it were. I have been in the US for close to 20 years now and I am celebrating my eleventh year at Johns Hopkins in 2016. Back in 2015, I won the William H. Huggins Excellence in Teaching Award, so apparently at least some people think I know what I am doing.
Aside from the courses I teach this semester (see the big colored boxes above), I have taught all of the following in the past:
- 600.102: Foundations of Computer Science
- 600.107: Introduction to Programming (in Java)
- 600.111: Python Scripting
- 600.112: Introduction to Programming for Scientists and Engineers
- 600.120: Intermediate Programming
- 600.211: Unix Systems Programming
- 600.226: Data Structures
- 600.233: Computer Systems Fundamentals
- 600.250: User Interfaces and Mobile Applications
- 600.255: Introduction to Video Game Design
- 600.318/418: Operating Systems
- 600.328/428: Compilers and Interpreters
- 600.355: Video Game Design Project
- 600.392: Senior Design Project
I have some universal course policies that apply to all courses I teach. Note that these change every now and then, so you probably want to read them every time you take a course with me.
I have pretty diverse interests in computer science but I am probably best thought of as a "systems guy" as it were. Here's where I like to play:
- systems software (mostly compilers and runtimes, operating systems)
- programming languages (mostly imperative, some functional)
- video game design (mostly 2d engines, some shaders/SFX stuff)
- software engineering (mostly agile methods, software components)
- web development (mostly small web frameworks and server side)
- computer archeology (hardware, software, emulators, retro-computing)
- computers and society (engineering ethics, anonymity and privacy)
If you want to do a project with me it should probably be in one of those areas. Some of the stuff I play with is available publicly if you're curious:
Note that I try to keep the number of independent studies I advise to a minimum because that allows me to pay attention to each project. Please don't feel bad if I turn you down because of prior commitments.