Teaching
Teaching, for me, is an act of storytelling. Stories are powerful.
Teaching Experience
In reverse chronological order:
CS3211 Parallel and Concurrent Programming (Spring 2024)
This course explores various concurrent programming paradigms through hands-on experience with programming languages such as C++, Go, and Rust.CS3210 Parallel Computing (Fall 2023)
This course provides an introduction to the field of parallel computing with hands-on parallel programming experience on real parallel machines.CS2040C Data Structures and Algorithms (Fall 2023)
This course introduces students to the design and implementation of fundamental data structures and algorithms.CS2040C Data Structures and Algorithms (Spring 2023)
This course introduces students to the design and implementation of fundamental data structures and algorithms.TIC2001 Data Structures and Algorithms (Fall 2022)
This course is aimed at “lifelong” learners, with ages ranging from 24 to over 70. It introduces students to the design and implementation of fundamental data structures and algorithms.CS2113 Software Engineering & Object-Oriented Programming (Fall 2022)
This course introduces the necessary skills for systematic and rigorous development of software systems.CS2113 Software Engineering & Object-Oriented Programming (Spring 2022)
This course introduces the necessary skills for systematic and rigorous development of software systems.TIC2001 Data Structures and Algorithms (Fall 2021)
This course is aimed at “lifelong” learners, with ages ranging from 24 to over 70. It introduces students to the design and implementation of fundamental data structures and algorithms.
Gratitude
To my students who have tolerated my teaching over the years, I would like to sincerely express my heartfelt gratitude to you. Your enthusiasm and engagement in the class inspire me every day, and I'm deeply thankful for the opportunity to support and guide you in your academic journey. I hope our exchanges have been as valuable to you as they have been to me.
Teaching Feedback
In no particular order:
“Richard's class is the only class I find worth traveling to school for. Every Wednesday, I travel 2 hours to school and 2 hours back home just to attend his class, but it's worth it. After every class, I always find myself gaining a deeper understanding of the concepts taught. Richard is an extremely knowledgeable and fun TA.”
— A student from CS3210
“Richard makes tutorials extremely engaging; quite frankly, it's one of the best tutorial experiences I've had.”
— A student from CS3211
“Richard is good at explaining concepts. He always prompt students to answer questions and guides them to think, rather than simply providing answers. He is also very competent in his mastery of the topics and has proven to be a good mentor in terms of learning.”
— A student from CS2040C
“Richard has helped deepen my understanding of this course and, at the same time, made the learning interactive and fun. He is very responsive and open to feedback, making the course even more enjoyable.”
— A student from CS3210
“Richard's passion for computer science, especially in algorithms and data structures, made me passionate about it as well.”
— A student from CS2040C
“Richard is highly knowledgeable, patient, and genuinely cares about student learning outcomes!”
— A student from CS3211
“Richard cares about students and is always willing to offer help.”
— A student from CS2113
“Richard is very clear when teaching and goes at a good pace. He puts a lot of effort into his slides and keeps the sessions engaging.”
— A student from CS3211