Contents
As an educator, my primary goal is to equip students with a robust foundation in both the theoretical principles of computer science and the realities of practical software development. Whether I am teaching foundational programming concepts, core software engineering methodologies, or advanced graduate seminars, I focus on cultivating critical thinking and rigorous problem-solving skills. I strive to create a dynamic and engaging learning environment where students not only master the syntax and theory of computing, but also learn how to architect, build, and maintain complex systems in the real world.
My dedication to student development has been a long-standing priority, recognized early in my career with the Eleanor Quinlan Memorial Award for Excellence in Teaching during my graduate studies at Ohio State University.
Research Mentorship & Student Development
Beyond formal coursework, I am dedicated to guiding the next generation of computing professionals and researchers. I lead the PONDER Lab @ CUNY (flyer), where I provide tailored mentorship across all academic levels—from high school students first discovering their passion for technology to doctoral candidates driving new innovations. By fostering a collaborative and supportive environment, I help emerging scholars develop the technical expertise and research acumen needed to tackle the field’s most pressing challenges.
My commitment to mentorship extends beyond my own institution through programs like NYU GSTEM, where I introduce emerging scholars to foundational computer science research and help them develop essential technical skills.
Current and Past Courses
Below is a list of courses I am teaching or have taught in the past. Students of these courses may find more information on CUNY’s Brightspace.
Graduate
Spring 2026
Spring 2025
Fall 2024
- CSCI 77100: Software Engineering (combined with CSCI 40500)
Summer 2023
- CSCI 77100: Software Engineering (combined with CSCI 40500)
Fall 2022
- CSc 71010: Programming Languages (cross-listed with CSCI 77100)
- CSCI 77100: Software Engineering (cross-listed with CSc 71010)
Fall 2021
Spring 2021
- CSCI 77100: Software Engineering (combined with CSCI 40500)
Fall 2020
- CSCI 79526: Reactive Programming (combined with CSCI 49380)
Spring 2020
- CSCI 77100: Contemporary Application Development (combined with CSCI 40500)
Spring 2019
- CSCI 79521: Advanced Programming Languages (combined with CSCI 46000)
Fall 2018
- CSCI 77100: Contemporary Application Development (combined with CSCI 40500)
Spring 2018
Undergraduate
Summer 2026
Fall 2025
Summer 2025
Fall 2024
- CSCI 40500: Software Engineering (combined with CSCI 77100)
Summer 2023
- CSCI 40500: Software Engineering (combined with CSCI 77100)
Spring 2022
Spring 2021
- CSCI 40500: Software Engineering (combined with CSCI 77100)
Fall 2020
- CSCI 49380: Reactive Programming (combined with CSCI 79526)
- CSCI 49900: Advanced Applications: A Capstone for Majors
Spring 2020
- CSCI 40500: Software Engineering (combined with CSCI 77100)
Spring 2019
- CSCI 49900: Advanced Applications: A Capstone for Majors
- CSCI 46000: Advanced Programming Languages (combined with CSCI 79521)
Fall 2018
- CSCI 40500: Software Engineering (combined with CSCI 77100)
- CSCI 49900: Advanced Applications, a Capstone for Majors
Fall 2017
Spring 2017
Fall 2016
- CSCI 49900: Advanced Applications, a Capstone for Majors
- CSCI 23300: Programming Projects Seminar for Minors


