Design First With Java

Can we help you teach Java and object-oriented design?
We have developed a novel curriculum and that has been "road-tested" at a local high school.
We describe our preliminary results in an article published in SIGCSE Bulletin (inroads).

Our philosophy: what first semester programming (CS1) students need to learn, first and foremost, is how to understand a customer’s problem, then design a solution, using modern software engineering methods and tools. Programming language syntax, coding, compiling, are means to an end. Students learn OO design by identifying and gathering requirements as use cases, and then representing these requirements as class diagrams. Once the students have a working design of the solution, they can start coding it, in Java.

Project-oriented learning: the instructor guides students through the process of modeling a real world problem, such as a movie ticket machine (at right). Then the students develop their own solution for a similar problem, such as an ATM.

Our software support: we have also developed an intelligent tutoring system (ITS) that is embedded in an Eclipse plug-in. Eclipse is an open-source (and free) integrated development environment, now the most widely used in industry. Our LehighUML plug-in (see a screen capture) lets students design class diagrams that conform to the Unified Modeling Language (UML) standard. It also reports on the student’s progress to our ITS, which analyzes their work on in-class and homework assignments and provides real-time guidance when they make mistakes. The plug-in also automatically generates Java code from their class diagrams. Thus they are able to concentrate on designing a solution in terms of classes, attributes and methods without worrying so much about syntactic details. A stand-alone version of LehighUML is now also available, if you'd rather not work in the Eclipse environment (i.e., work with DrJava, NetBeans, etc.).

Freely available for your school!
We will make it freely available to other educators and students. We are also willing to provide in-service training to help you learn how to use it in your school (especially if you are within traveling distance of the Lehigh Valley, Pennsylvania).

Resources available online:

If you are interested in using our materials or have questions, please contact:
     Email: glenn.blank@lehigh.edu or call Dr. Glenn D. Blank (610-758-4867).