Teaching
I teach Ph.D., Masters, and undergraduate courses in the Computer Science Department at the University of Texas at Dallas, where I have been a faculty member since 2006.
Most of my courses emphasize formal, mathematical approaches to program analysis, computer security, and computer science in general. My goal is to arm the next generation of computer scientists with the skills necessary to design and assess mission-critical software systems, and to cultivate a science of computer security that offers rigorous, mathematically provable guarantees to users rather than mere ad hoc defenses. I frequently try to integrate current research into my course curricula in an effort to introduce students to cutting-edge, state-of-the-art advances in the field.
In 2013 I received the Erik Jonsson School of Engineering and Computer Science Outstanding Teaching Award. In general, my teaching style has a reputation among UTD students for combining high challenge (median 9/10 difficulty rating) with high interest and value (median 4.75/5.00 overall student satisfaction).
UTD Courses
- CS 6335: Language-based Security (Fall 2024)
- CS 6371: Advanced Programming Languages (Spring 2024) [evaluation 5.00/5]
- CS 4301-001: Programming Language Design and Analysis (Spring 2024) [evaluation 5.00/5]
- CS 6335: Language-based Security (Fall 2023) [evaluation 5.00/5]
- CS 6371: Advanced Programming Languages (Spring 2023) [evaluation 4.50/5]
- CS 6301-005: Language-based Security (Fall 2022) [evaluation 4.93/5]
- CS 6371: Advanced Programming Languages (Spring 2022) [evaluation: 4.79/5]
- CS 6301-001: Language-based Security (Fall 2021) [evaluation: 4.50/5]
- CS 6301-002: Language-based Security (Fall 2019) [evaluation: 4.79/5]
- CS 6371: Advanced Programming Languages (Spring 2019) [evaluation: 4.88/5]
- CS 6301-004: Language-based Security (Fall 2018) [evaluation: 5.00/5]
- CS 6371: Advanced Programming Languages (Spring 2018) [evaluation: 5.00/5]
- CS 6301-002: Language-based Security (Fall 2017) [evaluation: 5.00/5]
- CS 6371: Advanced Programming Languages (Spring 2017) [evaluation: 5.00/5]
- CS 6301-002: Language-based Security (Fall 2016) [evaluation: 4.81/5]
- CS 6371: Advanced Programming Languages (Spring 2016) [evaluation: 5.00/5]
- CS 6301-002: Language-based Security (Fall 2015) [evaluation: 5.00/5]
- CS 6371: Advanced Programming Languages (Spring 2015) [evaluation: 4.89/5]
- CS 6301-005: Language-based Security (Fall 2014) [evaluation: 4.75/5]
- CS 6371: Advanced Programming Languages (Spring 2014) [evaluation: 4.92/5]
- CS 6301-006: Language-based Security (Fall 2013) [evaluation: 4.69/5]
- CS 6371: Advanced Programming Languages (Spring 2013) [evaluation: 4.92/5]
- CS 6V81-003: Language-based Security (Fall 2012) [evaluation: 4.83/5]
- CS 4384: Automata Theory (Fall 2012) [evaluation: 4.80/5]
- CS 6371: Advanced Programming Languages (Spring 2012) [evaluation: 4.81/5]
- CS 4384: Automata Theory (Fall 2011) [evaluation: 4.50/5]
- CS 6371: Advanced Programming Languages (Spring 2011) [evaluation: 4.19/5]
- CS 7301-002: Language-based Security (Spring 2011) [evaluation: 4.75/5]
- CS 4384: Automata Theory (Fall 2010) [evaluation: 4.33/5]
- CS 6371: Advanced Programming Languages (Spring 2010) [evaluation: 4.58/5]
- CS 4485: Computer Science Project (Fall 2009) [evaluation: 4.50/5]
- CS 6371: Advanced Programming Languages (Fall 2009) [evaluation: 4.81/5]
- CS 4485: Computer Science Project (Spring 2009) [evaluation: 4.83/5]
- CS 6371: Advanced Programming Languages (Spring 2009) [evaluation: 3.22/5]
- CS 6371: Advanced Programming Languages (Fall 2008) [evaluation: 4.25/5]
- CS 6V81: Language-based Security (Spring 2008) [evaluation: 4.92/5]
- CS 6371: Advanced Programming Languages (Fall 2007) [evaluation: 4.08/5]
- CS 7301: Seminar on Language-based Security (Spring 2007) [evaluation: 4.75/5]