Innovation in teaching software development skills

William Pugh, Univ. of Maryland

Speaking Dec 2nd, 2011, at SUNY Stony Brook.


Educators have been looking at various ways to improve the classroom experience, incorporating ideas such as active learning, on-line lectures, and various communications technologies. However, the way in which programming and software development is taught has not changed much at many schools.

I'll be talking about various approaches being developed at Maryland to improve the way we teach programming and software development. Much of this has evolved through the Marmoset project, which is a web based framework for handling student project submission and evaluation. Marmoset, also known as the submit server, accepts student project submissions and provides students with limited access to test results before the project deadline. It provides various incentives for students to start work on projects early and practice test driven development. It also provides students with access to tools such as static analysis and code coverage data, and supports web-based code reviews. Code reviews include instructional code reviews (where TA's or faculty review student code), peer code reviews (where each student reviews code by two other students), and canonical code reviews (where all students are asked to review one specific code example, perhaps something from a standard library). Marmoset is open source, and used in most CS programming courses at UMD and by several other universities.

Slides, including feedback from people at talk: (KeyNote) (PDF) (PPT)