This country's dependency on correct, robust software drives the significance and importance of this work. Vital aspects of national security depend on the US government's ability to withstand daily cyber intrusions. Likewise, the national infrastructure depends on the smart grid and thousands of other software-driven control systems that regulate water supplies, run factories, and operate cars. Yet, teaching students how to write efficient, error-free software continues to be a challenge. This project investigates a new programming pedagogy that will significantly improve training for the programmers we rely on, by advancing ideas on three fronts. First, the project investigates the integration of literate programming ideas into technology supporting learning and into classroom environments, i.e., marrying informal writing and programming. Second, the project contributes to the writing-to-learn (WTL) literature by incorporating WTL principles into a new domain of programming. Third, the project contributes to computer science education literature by investigating the learning processes associated with learning to program in order to improve programming pedagogy.
The goals and scope of this project include advancing the understanding of learning in technology-rich environments by examining how WTL strategies can support novice programmer development. This project employs a case study design that emphasizes concurrent qualitative and quantitative data collection and analysis with mixing occurring during the final interpretation stage. Through a combination of interviews, writing samples, programming metrics, and writing metrics, this project will 1) capture understanding of how writing helps students connect big-picture concepts to specific implementations of programming solutions; 2) identify roles that intermingled writing takes in promoting programming mastery; and 3) identify types of learners (e.g., computing majors, non-computing majors) that most benefit from intermingled writing while learning to program.