DrJava: a lightweight pedagogic environment for Java
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Identifying and correcting Java programming errors for introductory computer science students
SIGCSE '03 Proceedings of the 34th SIGCSE technical symposium on Computer science education
ProfessorJ: a gradual introduction to Java through language levels
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Hi-index | 0.00 |
Many CS1 curricula introduce Java topics without giving a strong rationale of why they are needed at that exact point. For example, most all Java texts introduce the keywords public and private long before the students write or see any program involving more than a single class; those keywords can have no demonstrable effect on their program. Such an approach subtly but firmly sends the message "programming is not about problem-solving, but rather about putting certain keywords in the right place." We present a nonstandard arrangement of CS1 topics, guided by the following strategies: (a) simplify the mental model initially needed to understand Java syntax, (b) leverage parallels between programming and high school algebra and (c) demonstrate any new language construct via a program which could not be (easily) written without it. The resulting ordering helps students appreciate why they are learning language constructs, which in turn helps them distinguish syntax from programming principles.