See my teaching link for courses that I
have taught in the past.
My Research
Some of the research projects I was involved in include:
Instructional Technology: My research in this area involved
designing instructional technology that improves
learning outcomes for students in introductory computer programming and
data structure courses.
Mobile Devices: My research in this area involved the development of
software techniques to reduce the power consumption of
mobile devices.
Algorithm Simulation.
Techniques for making students in data structure courses manually
simulate the execution of algorithms on concrete examples of data
structures.
Spreadsheet Programming:
Techniques and algorithms that allow spreadsheet-style
constraints to specify graphical interfaces.
Optimizing Storage Use in Graphical Toolkits:
Adaptive, profile-based compilation techniques for reducing the amount
of storage required by applications created using rapid prototyping,
graphical toolkits.
Pam Interface Toolkit:
Interactive, interpreted front-end to the Amulet graphical
interface development environment that allows a programmer to
rapidly prototype applications by creating graphical objects and
callback procedures in Python. Pam is an outgrowth of the
adaptive, profile-based compilation project and is used to
help us prototype our optimization ideas.
Whiteboard Environment:
Visual programming environment for creating programs that
manipulate arrays, lists, graphs, and trees.
Lapidary:
Interface design tool that allows the graphics and run-time
behaviors that go inside an application window to be
specified pictorially. Lapidary is part of the
Garnet toolkit developed at Carnegie Mellon University.
Effective Presentations
If you are preparing a presentation, whether it be a conference talk,
a lecture, or a non-technical talk, consider the following
tips.