Computer Science Education

Explore Computer Science Education research areas at Duke Computer Science.

CS1/CS2 Learning, Pedagogy, and Curricula

The first two courses taken by students in higher education are called CS1 and CS2 from early curricular standards. How should these courses be structured and delivered so that every student is engaged, able to succeed, and prepared for future study? At Duke, we work to understand how learning occurs, how to effectively teach and engage all students in medium to large classes, and how to develop curricular resources that can succeed at many different institutions.

Owen Astrachan
Owen Astrachan
Professor

Susan H. Rodger
Susan H. Rodger
Professor

Kristin Stephens-Martinez
Kristin Stephens-Martinez
Assistant Professor

Nicki Washington
Nicki Washington
Professor

Broadening Participation in Computing

In the past decade, there has been a widespread interest in ensuring that access to computer science for all is accessible and equitable from K-12 through higher education: equitable across race, gender, and socio-economic for all students. At Duke, we have worked extensively to develop tools, courses, and approaches at a national level from middle school through high school that have had significant success and impact. We use similar approaches to ensure equitable courses and class experiences in Duke Computer Science courses.

Owen Astrachan
Owen Astrachan
Professor

Pardis Emami-Naeini
Pardis Emami-Naeini
Assistant Professor

Susan H. Rodger
Susan H. Rodger
Professor

Michael Reiter
Michael Reiter
Professor

Nicki Washington
Nicki Washington
Professor

Practical and Ethical Approaches to Software and Computing

Software development and engineering practices in industry do not always scale down to be accessible and successful in an academic setting. At Duke, we develop assignments and approaches that leverage the experiences of alumni to help ensure that those graduates who continue in software can succeed immediately when they leave Duke. These approaches are based on design considerations that include efficiency, user experience, portability, scale, and ethics.

Owen Astrachan
Owen Astrachan
Professor

Robert C. Duvall
Robert C. Duvall
Senior Lecturer

Education Technology

Software tools can aid in learning computer science concepts by offering different ways to make the abstract more concrete and providing immediate feedback to improve learning outcomes. At Duke, we develop software tools at all levels of the curriculum that are integrated into the classroom experience. JFLAP allows students to visualize and experiment with theoretical concepts including proofs, automata, grammars, parsing, and L-systems. APTs are small algorithmic problem-solving exercises, with included test cases, that allow students to practice coding with immediate feedback about the correctness of their solution. Checklist combines analyses from a variety of open source static analysis tools to provide immediate feedback on software design, showing students what things are being done well and what things can be improved.

Robert C. Duvall
Robert C. Duvall
Senior Lecturer

Susan H. Rodger
Susan H. Rodger
Professor

Kristin Stephens-Martinez
Kristin Stephens-Martinez
Assistant Professor