The objectdraw Library
Sample Chapters
Programming Examples
Sample Lab Exercises
Instructor's Resources
Visit Prentice-Hall

 JAVA: An Eventful Approach

The following materials are intended primarily for instructors using our text in their courses. In particular, to limit access to sensitive materials (like the solutions manual for the text), many of the links below will require the user to enter and account id and password. If you are an instructor using or considering the use of our text, contact us to request such a password.

Solution Manual for the text

We provide the solutions manual in several forms so that instructors who would like to provide their students with some but not all of the solutions have the flexibility to do so. We request, however, that those who do provide parts or all of our solution manual to their students take care to ensure that copies will not be distributed more widely. The best way to do this would be to distribute printed copies of the manual to your students rather than making the pdf files available on the web. If you do make pdf files available, at least make sure that access to these files is restricted to users attached to your school's network.

Sample Laboratory Exercises

We have assembled a collection of about 20 programming exercises that can be used for laboratory assignments when teaching using our text. We expect to add a few more of our own exercises over time, and we would be happy to add any contributions other instructors would like to make to this collection. Access to the solutions to these exercises is limited to those with an instructor's password for our site.

Lecture Slides

We have developed a set of Powerpoint slides designed to be used in conjunction with our text.

A Guide for Instructors

Discussion Group

We maintain a discussion group for instructors using our text. You may use this group to post suggestions or ask questions about our materials. In additions, by selecting the "Edit Profile" link on any of the discussion group web pages, you can change your account password and enable or disable email notification of items posted to the group.

Sample Syllabi

Instructors may find it useful to visit one of the following pages which provide examples of complete syllabi that have been used when teaching with our text. As a start, we have included links to our own courses, but we encourage other instructors who would like to share their material to send us links to their course web sites so that we can add them to the list below.
Course Syllabi Used at the Authors' Institutions
Additional Examples of Syllabi for Courses Using Java: An Eventful Approach
Papers We have written four papers on our approach to the introductory CS course. All are available on-line.
  1. A library to support a graphics based object-first approach to CS 1
    by Kim B. Bruce, Andrea Danyluk, and Thomas Murtagh.
    SIGCSE 2001 Proceedings, pp. 6-10.
    SIGCSE2001Lib.dvi.gz, SIGCSE2001Lib.ps.gz, SIGCSE2001Lib.pdf,

    In this paper we describe a library we have developed that supports an ``OO-from-the-beginning'' approach to CS 1. The design of interactive graphical programs helps students to both use objects and write methods early while designing and implementing interesting programs. The use of real graphics ``objects'' and event-driven programming are important components of this approach.

  2. Event-driven programming can be simple enough for CS 1 by Kim B. Bruce, Andrea Danyluk, and Thomas Murtagh.
    ITiCSE 2001 proceedings, pp. 1-4.

    We have recently designed a CS 1 course that integrates event-driven programming from the very start. Our experience teaching this course runs counter to the prevailing sense that these techniques would add complexity to the content of CS 1. Instead, we found that they were simple to present and that they also simplified the presentation of other material in the course. In this paper, we explain the approach we used to introduce event-driven methods and discuss the factors underlying our success.

  3. Event-driven programming facilitates learning standard programming concepts by Kim B. Bruce, Andrea Danyluk, and Thomas Murtagh.
    OOPSLA Educator's Symposium, 2004. Last revised 8/3/2004.

    We have designed a CS 1 course that integrates event-driven programming from the very start. In earlier papers we argued that event-driven programming is simple enough for CS 1 when introduced with the aid of a library that we have developed. In this paper we argue that early use of event-driven programming makes many of the standard topics of CS 1 much easier for students to learn by breaking them into smaller, more understandable concepts.

  4. Why Structural Recursion Should Be Taught Before Arrays in CS 1 by Kim B. Bruce, Andrea Danyluk, and Thomas Murtagh.
    SIGCSE 2005. Last revised 11/30/2004.
    An earlier version was presented at the Eighth Workshop on Pedagogies and Tools for the Teaching and Learning of Object Oriented Concepts at ECOOP 2004.

    The approach to teaching recursion in introductory programming courses has changed little during the transition from procedural to object-oriented languages. It is still common to present recursion late in the course and to focus on traditional, procedural examples such as calculating factorials or solving the Towers of Hanoi puzzle. In this paper, we propose that the shift to object-oriented programming techniques calls for a significant shift in our approach to teaching recursion. First, we argue that in the context of object-oriented programming students should be introduced to examples of simple recursive structures such as linked lists and methods that process them, before being introduced to traditional procedural examples. Second, we believe that this material should be presented before students are introduced to structures such as arrays. In our experience, the early presentation of recursive structures provides the opportunity to reinforce the fundamentals of defining and using classes and better prepares students to appreciate the reasons to use classes to encapsulate access to other data structures when they are presented.