My Philosphy on Teaching

In teaching and mentoring I aim to engage students through personal attention, group work, and competition. Students can only learn by small leaps of brilliance, and so identifying the next step and explaining it successfully is the the best way to help students absorb course material. Students benefit from explaining concepts to their peers and working through problems together. To enable such collaboration, I try to give assignments to groups of students to work out together, which tends to minimize the time students spend banging their head against the wall trying to work out difficult problems individually. In fact I have observed that group work allows students to approach and solve substantially more difficult problems. Finally, I try to promote competition among students, be it in the class room by challenging groups of students to answer a question first, or in lab sections by pitting groups against each other. Competition promotes engagement with the material, as well as leadership, communication, and reasoning skills, all parts of good engineering education.

Courses

CMPSC 24: Problem Solving with Computers II - Summer '10

Intermediate building blocks for solving problems using computers. Topics include data structures, object-oriented design and development, algorithms for manipulating these data structures and their runtime analyses. Data structures introduced include stacks, queues, lists, trees, and sets.

To evaluate a longer-term impact of my teaching I asked my students to fill out an anonymous follow up survey. Here are some key results showing improvement in course assessment over time and better student preparation for subsequent coursework.

Survey after CMPSC 24 Survey after CMPSC 32 CMPSC Mean
Please rate the overall quality of the instructor's teaching. (low is 'better') 2.0/5 1.77/5 1.8/5
Please rate the overall quality of the course, including its material or content, independent of the instructor's teaching. (low is 'better') 2.3/5 1.92/5 2.1/5
Please rate the overall difficulty of the course as compared to other CMPSC courses you have taken. (low is 'better', 3 is 'same') NA 4.23/5 NA
Please rate your preparation to learn new Computer Science concepts with respect to your peers, who did not take CMPSC 24 with me this Summer. (low is 'better', 3 is 'same') NA 1.77/5 NA
Please rate your preparation to complete new programming assignments with respect to your peers, who did not take CMPSC 24 with me this Summer.(low is 'better', 3 is 'same') NA 2.0/5 NA

CMPSC 10: Computer Programming - Winter '05

Fundamental building blocks for solving problems using computers. Topics include basic computer organization and programming constructs: memory CPU, binary arithmetic, variables, expressions, statements, conditionals, iteration, functions, parameters, recursion, primitive and composite data types, and basic operating system and debugging tools.

CMPSC 5: Introduction to Computer Programming - Fall '05

Introduction to computer program development for students with little to no programming experience. Basic programming concepts, variables and expressions, data and control structures, algorithms, debugging, program design, and documentation.