Bradley T. Vander Zanden
See my teaching link for courses that I am
teaching currently and that I have taught in the past.
My research focuses on designing instructional technology that improves
learning outcomes for students in introductory computer programming and
data structure courses. The current project I am involved with
is focused on the development of an assessment tool called CodeAssessor that allows
instructors to create a program template for students that interweaves
instructor code with code to be provided by the student. In addition to
the template, the instructor
provides scoring rubrics, test cases, and the solution code.
The student then fills in the code blocks one at a time, tests the
code block, and submits it for grading. The code is run against the
instructor's test cases and the student is given feedback about which
cases worked and which cases did not work. Ultimately if the student
exceeds a number of attempts specified by the instructor, the student
is shown the answer. We are also developing a "sandbox" version of
CodeAssessor that will let instructors scaffold parts of a problem for
in-class activities and have students experiment with variations of
Some of the research projects I have previously been involved in include:
- Algorithm Simulation.
Techniques for making students in data structure courses manually
simulate the execution of algorithms on concrete examples of data
- Spreadsheet Programming:
Techniques and algorithms that allow spreadsheet-style
constraints to specify graphical interfaces.
- Visual Debugging of Spreadsheet-style Constraints: Visualization techniques that make it easier to find and
correct errors in spreadsheet-style formulas.
- Optimizing Storage Use in Graphical Toolkits:
Adaptive, profile-based compilation techniques for reducing the amount
of storage required by applications created using rapid prototyping,
- 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.
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.
If you are preparing a presentation, whether it be a conference talk,
a lecture, or a non-technical talk, consider the following