Even as Bureau of Labor Statistics predictions indicate unprecedented demand for software engineers in the next five years, nationwide retention rates of incoming majors are alarmingly low and interest in computer science remains stagnant. Many educators are reevaluating how we teach computer science in the critical first year of study and are questioning the emphasis of programming and tool mastery over more abstract computational thinking. While specialized development tools and integrated development environments intend to simplify programming tasks they typically do little to support pedagogical development and evaluation of a broad range of problems at varying levels of computational abstraction. Worse yet, the languages and tools used in introductory courses often create barriers in the form of boiler plate code, complex build tools, and unintuitive interfaces that discourage students from engaging in directed and focused practice. In this paper we review existing introductory computer science tools, enumerate barriers to student learning we have identified in our own classes, and introduce a new web-based pedagogical platform for teaching computer science that emphasizes problem solving and core computer science concepts while deemphasizing the role of specialized development tools. This is accomplished with JavaGrinder, a task specific web 2.0 environment where students can work either individually or as teams on bite-sized problems that focus on solid software engineering practices and concept mastery. Concepts are presented within real-world contexts that advocate computer science as an exciting multidisciplinary field, rather than as an abstract world of syntax and arcane codes. JavaGrinder is designed to facilitate problem-solving skills by exposing the salient aspects of a problem, providing guided practice, and immediate feedback. JavaGrinder teaches true Java programming, while shielding students from language and platform-specific minutiae. In this way, JavaGrinder addresses the critical gap between successful introductory programming environments and realistic functional programming and software engineering.
|Original language||English (US)|
|Journal||ASEE Annual Conference and Exposition, Conference Proceedings|
|State||Published - Jan 1 2011|
ASJC Scopus subject areas