DrJava PapersThe JavaPLT group has published several papers on DrJava, which are listed below. DrJava: A lightweight pedagogic environment for JavaEric Allen, Robert Cartwright, and Brian Stoler
Abstract: DrJava is a pedagogic programming environment for Java that enables students to focus on designing programs, rather than learning how to use the environment. The environment provides a simple interface based on a "read-eval-print loop" that enables a programmer to develop, test, and debug Java programs in an interactive, incremental fashion. This paper gives an overview of DrJava including its pedagogic rationale, functionality, and implementation. View full paper as: (.html) (.ps) (.pdf) A Framework for Building Pedagogic Java Programming EnvironmentsBrian Stoler
Abstract:
Java has become the dominant language for teaching introductory computer
science at both the high school and college levels. Yet Java's
development tools and syntax often distract beginning students from the
programming concepts being taught. To combat this problem, we have
implemented DrJava, a pedagogic programming environment, and devised a
sequence of language levels for Java, which partition the
language into pieces that can be more easily taught at one time. View full paper as: (.pdf) Production Programming in the ClassroomEric Allen, Robert Cartwright, and Charles Reis
Abstract:
Students in programming courses generally write "toy"
programs, even when the size of the assigned projects is large.
Programming assignments are written, superficially tested, graded, and
then discarded. This approach to programming pedagogy leaves students
unprepared for production programming in the workplace because the gap
between writing toy programs and developing reliable software projects
is enormous. View full paper as: (.pdf) A Pedagogic Programming Environment for Java that Scales to Production ProgrammingCharles Reis
Abstract: This thesis describes extensions to the DrJava development environment that make it suitable for production programming. DrJava is an effective tool for teaching introductory programming skills in Java, and its simplicity is a desirable characteristic for projects of any size. To better support the development of large projects in DrJava, a carefully selected suite of features has been added to the environment. To facilitate interoperation with professional development environments, a plug-in supporting the DrJava interface has been written for the Eclipse environment. As a result of this work, DrJava has become an appropriate tool for teaching production programming skills in an academic environment, without sacrificing its original goals. View full paper as: (.pdf) Taming a Professional IDE for the ClassroomCharles Reis and Robert Cartwright
Abstract:
An important question that must be addressed in a coherent
computing curriculum is which programming environments
to use across the curriculum. For Java, currently
the most widely used language in computing education, a
wide variety of professional integrated development environments
(IDEs) are available--including the increasingly popular,
open-source Eclipse environment. Professional IDEs
for Java work well in advanced courses, but they are poorly
matched to introductory courses because they deluge beginning
students with a complex array of features. In addition,
professional IDEs fail to shield students from distracting
complications like the Java command line interface and
Java console I/O. For this reason, many educators favor using
a "pedagogic" IDE such as BlueJ or DrJava to provide a
gentle introduction to the mechanics of Java programming. View full paper as: (.pdf) Design Patterns For Marine Biology SimulationDung "Zung" Nguyen, Mathias Ricken, and Stephen Wong
Abstract:
We specify and implement a GUI application that simulates marine biological systems by
making extensive use of object-oriented design patterns. View full paper as: (.pdf) Taming Java for the ClassroomJames I. Hsia, Elspeth Simpson, Daniel Smith, and Robert Cartwright
Abstract: Java is the canonical language for teaching introductory programming, but its complex syntax and abundance of constructs are difficult for beginners to learn. This paper shows how object-oriented programming in Java can be made more accessible to beginners through the use of "language levels", a hierarchy of progressively richer subsets of Java. This hierarchy is implemented as an extension of the DrJava pedagogic programming environment. View full paper as: (.pdf) Design Patterns for ParsingDung "Zung" Nguyen, Mathias Ricken, and Stephen Wong
Abstract: We provide a systematic transformation of an LL(1) grammar to an object model that consists of
We present a variant form of the visitor pattern and apply it to the above union of token classes to model a predictive recursive descent parser on the given grammar. Parsing a non-terminal is represented by a visitor to the tokens. For non-terminals that have more than one production rule, the corresponding visitors are chained together according to the chain of responsibility pattern in order to be processed correctly by a valid token. The abstract factory pattern, where each concrete factory corresponds to a nonterminal symbol, is used to manufacture appropriate parsing visitors. Our object-oriented formulation for predictive recursive descent parsing eliminates the traditional construction of the predictive parsing table and yields a parser that is declarative and has minimal conditionals. It not only serves to teach standard techniques in parsing but also as a non-trivial exercise of object modeling for objects-first introductory courses. View full paper as: (.pdf) |