Current Projects

Understanding the Impact of Low Prerequisite Proficiency on Student Success in Computer Science (2019-)

Partially Funded by NSF IUSE 2121592

Students in computer science programs often work through an establish path of required courses on their way to graduate. In later courses in the sequence, instructors often rely on students’ completion of prior courses as evidence that students have mastered the knowledge and skills from those prior courses. However, our work has shown that students’ mastery of that content may vary more widely than one might expect. This project seeks to understand the causes, extent, and impact of poor prerequisite mastery.

Determining the Effectiveness of Live Coding on Student Learning in Introductory Programming (2020-)

Partially Funded by NSF IUSE 2044473

Instructors often use Live Coding to teach programming and publications in computing education speak call Live Coding a “Best Practice”. However, our review of the literaure has found that there is little empirical evidence supporting the value of Live Coding. As such, this project seeks to understand the value of Live Coding both in terms of traditional measures of student learning and in terms of learning effective Software Engineering practices.

Identifying and Aiding At-Risk Students in Computing (2014-)

Partially Funded by NSF IUSE 1712508

In Peer Instruction courses where clickers are used, data is gathered about student performance automatically throughout the term. We’ve found that student performance on these questions is correlated with final exam performance and have used machine learning to predict students at-risk across different terms of the same course. Ongoing work seeks to improve our prediction accuracy and to explore possible interventions for at-risk students.

A New Computer Science Faculty Teaching Workshop (2015-)

Partially Funded by NSF IUSE 1641214

In other STEM disciplines, new faculty often attend a workshop in their first few years of their career to learn about effective pedagogical practices. Beth Simon (UCSD), Mark Guzdial (Georgia Tech), Cynthia Lee (Stanford), and I have created such a workshop for new faculty in computing. The workshop has grown from a small-scale pilot to hosting as many as 80 participants.

Peer Instruction in Computer Science (2011-)

Partially Funded by NSF TUES 1641214

We are exploring the impact of Peer Instruction (an active learning pedagogical technique) in Computer Science. We’ve found Peer Instruction reduces failure rates, improves student performance on exams, improves retention (particularly when combined with Media Computation and Pair Programming), scales better for large classes, and is desired over lecture by a vast majority of students throughout the computing curriculum.

Prior Projects

Developing a Concept Inventory for the Second Programming Course (2014-2021)

Partially Funded by NSF IUSE 1505001

A Concept Inventory (CI) is a validated assessment designed to measure student learning in a topic and/or course. By providing a common measure of student learning, CIs facilitate pedagogical research, curriculum revision, and multi-institutional comparisons. We developed a validated CI for Basic Data Structures called the BDSI. Instructors and Researchers can obtain a copy by joining our google group.

Micro-classes: Improving the Community in Large Classes (2015-2018)

Partially Funded by NSF EAGER 1451521

As a former small-college professor, I know the close community possible in small classes. We are exploring whether it is possible to create such a community in large classes using “Micro-classes”, essentially small groups led by Teaching Assistants within the larger class.