Check out my projects blow:
Image Credit: Cheng Soon Ong As a researcher in Computing Education and AI in Education, I’ve run dozens of experiments to evaluate the interventions I’ve built (read some of them here).
Sep 28, 2023
Debugging is a critical skill for programmers, and one that’s difficult to teach and support. Students also struggle to understand how example code works, or even their own code when it isn’t behaving.
Sep 28, 2023
In my introductory Machine Learning (ML) course for undergraduate and graduate students, students complete a course project, where they have to design an ML pipeline to solve a realistic problem from start to finish.
Sep 28, 2023
Code tracing is the ability to read code, understand how the program flows and variable values change, and predict program output. It is a critical skill that supports students’ ability to write code.
Sep 28, 2023
Students learn core programming concepts while making a game with, with scaffolding to support learning.
Aug 15, 2023
Snap! is a block-based programming language that lets students create expressive apps and simulations easily. This is especially powerful for non-Computer-Science majors, like those in my introductory course, who may want to apply programming to solve problems in their own domains.
Aug 15, 2023
Instructional videos are an important part of online learning that can support asynchronous courses, distance education, and – in my case – a flipped classroom, where students learn at home and then do hands-on labs in class when I can support them.
Aug 15, 2023
An important step in developing programming expertise is learning programming patterns. These patterns represent reusable partial solutions to common programming challenges, such as the accumulator pattern for summing values (and other sequential variable updates), or the filter pattern for operating only on values that match a condition.
Aug 15, 2023
iSnap supports students automatically with hints, feedback and self-explanations.
Jan 1, 2021