My Teaching Philosophy#
CSE Graduate Teaching Award, 2025
I received the CSE Graduate Teaching Award at the University at Buffalo for CSE 4/573: Computer Vision and Image Processing (Summer 2025, 71 students): the first course at UB to include a semester-long module on diffusion models.
I teach from intuition and curiosity rather than memorization. Abstract ideas should be made tangible: seen, manipulated, and run. Every lecture I build follows the same arc: concept, then derivation, then implementation. Students never meet an equation without also meeting the code that makes it behave.
Core Principles#
Build intuition first, then formalise. A student who can picture the mechanism will remember the derivation; the reverse is rarely true.
Connect equations to behaviour through code. Every major algorithm in my course is implemented from first principles, in the browser, during the lecture.
Remove friction. No environment setup, no installs, no dependency errors. If experimenting is hard, students will not experiment.
Teach frontier models. Students deserve early exposure to what the field is actually doing now, with the mathematics intact.
Design for retention. Spaced-repetition flashcards and low-stakes quizzes are built into the material, not bolted on.
The Course Platform I Built#
I built the CSE 4/573 course website as a complete interactive learning environment, not a slide repository. Everything below runs in a browser with no local setup.
Executable cells powered by Thebe, so algorithms are implemented and modified live during class. Students edit and re-run the same cells afterwards.
Every deck written from scratch in Reveal.JS and self-hosted, so animations carry the derivation step by step instead of revealing a finished equation.
Interactive Plotly figures for stereo geometry, epipolar constraints and depth: the topics where a static diagram fails hardest.
Spaced-repetition flashcards via JupyterCards and auto-graded practice quizzes, embedded in the same pages as the material.
The site is built with Jupyter Book and TeachBooks, with lecture recordings and a capstone project track alongside the notes.
What the Course Covers#
Classical foundations: image formation and the pinhole camera, camera calibration, pixel-domain and Fourier-domain processing, feature detection.
Geometry: stereo vision, depth estimation and epipolar geometry.
Learning-based vision: convolutional networks for classification, segmentation and detection.
Generative vision: a full module on VAEs, GANs and diffusion models, with intuitive derivations paired with from-scratch Python implementations, ending in a capstone project on controllable synthesis or multimodal vision-language systems.
Tools throughout: OpenCV, PyTorch and TensorFlow.
Course Design#
Designing the generative module meant building it from the ground up: UB had no existing diffusion-models material. Assignments scaffold from foundational generative modelling to more open-ended exploration, and the capstone asks students to integrate generative methods into an application of their choosing. The intent is that students finish with portfolio-ready work, not just a grade.
I was fortunate to have Dr. Ifeoma Nwogu and Dr. Vishnu Lokhande as mentors on course design and content, and Dr. Shruti Agarwal of Adobe Research as a guest lecturer.
Student Feedback#
"Professor Devulapally is fantastic. He took a really complex and difficult topic and made it incredibly understandable, as long as you put in the effort. He's also very approachable and makes it clear that you can reach out to him for help with anything. Highly recommend his class!"
"Professor Naresh's teaching style is outstanding. His course website with live coding makes complex concepts much easier to understand. His deep knowledge of Deep Learning and GenAI is remarkable, and you get to learn a lot from his classes."
"Professor Devulapally explains complex concepts in computer vision with great clarity and connects theory to real-world use cases. Assignments are challenging but well-structured and rewarding. Very approachable, supportive, and encourages questions. Highly recommend!"
"If you're a visual learner you'll be very satisfied with this course, since almost all lectures have 3D visuals for explaining concepts, which was very helpful to me."
"Great Course designed by professor and also well tought. Assignements were bit complex but there was given more than time to take care of it. grading was fair and professor also introduced many newer things like live code feature in his course webpage, so he took lot of efforts."
"It was one of the best courses I have took and the professor was really helpful throughout the course.”
"I took Computer Vision under the professor and it was quite good. He focused on state-of-the-art technology and was always ready with examples. Things were to the point and easy to understand, and he made tough concepts seem so simple it was just amazing. I was not expecting him to teach such tough concepts, but he did, and taught them quite well."
"Awesome professor with clear and well-structured lecture delivery. Highly knowledgeable in the subject."
Courses#
CSE 4/573: Computer Vision and Image Processing, Summer 2025
CSE 4/573: Computer Vision and Image Processing, Summer 2026
Guest lectures on diffusion models in CSE 555 (Prof. Ifeoma Nwogu) and CSE 573 (Prof. Junsong Yuan)