Non-Programming Resources for an Introduction to CS

A Workshop for ITiCSE 2000
Helsinki, Finland

Joseph Bergin
Pace University
berginf@pace.edu

Myles McNally
Alma College
mcnally@alma.edu

Abstract

The workshop leaders believe that the Object-Oriented paradigm should be introduced to students before the Procedural paradigm. OO is not a simple extension to procedural programming, but requires different thought processes. Program design is and should be an important topic in the curriculum, and as such is required by major accrediting bodies. The activities of this working group will be to gather resources which aid educators in teaching object oriented program design at the beginning and throughout the first courses in computer science. It will specifically focus on non-programming resources that may be used independently of the language used as the course vehicle. This is based on the observation that students require an introduction to "Object Think" and the decomposition of problems appropriate for object orientation. It is hoped that these resources will be useful in helping educators teach in ways more appropriate to object orientation and somewhat less bottom-up than has been the case when teaching procedural programming first.

Resources to be Gathered

Members of this working group will gather, create, and foster the development of resources in at least the following areas Workshop participants are sought who have some background in at least one or two areas relevant to this project. Prior to the workshop, participants will be asked to contribute one course module that might be used in an introductory course.

A Brief Example

A design exercise that is commonly used in class in a team environment is to design a Coffee Machine [1]. This exercise follows a discussion of a day or so on objects, CRC cards, and UML style class diagrams. The format of the exercise follows the pedagogical pattern Student Design Sprint [2], in which the design exercises goes through several phases with changing requirements in each phase and a merging of small teams into increasingly larger teams in each phase. The initial statement of the problem is as follows:
Design a controller for a simple coffee machine. The front of the machine has four buttons, a coin slot, a coin return lever, and a dispensing window. The four buttons dispense the four products: black coffee, coffee with cream, coffee with sugar, coffee with cream and sugar. Coffee costs $.35 US. These requirements may change.
Teams are initially two students. After about 30 minutes of effort, CRC cards and a class diagram are required. At this time pairs of teams are merged to give teams of four and and an additional requirement is added. This can continue for as long as necessary with merging of teams and changing of requirements. The CRC cards of one or more of the iterations may be used for walk-throughs of use cases to determine if requirements are met and if communication paths are clean and clear. The class diagrams may be used by the instructor to comment on the designs. One feature of this exercise is that the students see several designs and are required to merge their own ideas with those of classmates. Good designs require five or six classes and may involve specialization (inheritance) or not.

Web Site and Paper

The primary output of this working group will be a web-based repository collecting and disseminating the resources gathered. This web site will also provide a focus for future work by the participants and others in gathering such resources. A preliminary site is established at http://csis.pace.edu/~bergin/iticse2000. The working group paper will capture the state of that repository at the time of the conference, detailing a number of the resources developed by the working group participants before the conference.

Possible Participants

Stephen Hartley is the one responsible for suggesting this group and will participate, though he may not be able to attend ITiCSE 2000. It is expected that a number of participants in last year's Java working group will also be interested this year. Dung Nguyen of Rice, John Lewis of Villanova, and Michael Goldweber of Xavier have also expressed interest.

References

[1] Coffee Machine, Alistair Cockburn, http://www.cuj.com/archive/1605/feature.html and http://www.cuj.com/archive/1606/feature.html

[2] Student Design Sprint, Joseph Bergin, http://csis.pace.edu/~bergin/fivepedpat.html

Summary of Experience of Dr. Joseph Bergin

Joseph Bergin received the Ph.D. in 1972 from Michigan State University, working in mathematics. He has been involved in teaching computing since 1973 and has authored three computer science textbooks now in print. These have all been intended for students in the early part of the curriculum and have focused on object-orientation and generic programming. Dr. Bergin has been using object-oriented programming since 1985 when he first learned of the concepts while a visiting professor at Dartmouth College. His formal training in computer science was at the IFRICS institute sponsored by Clarkson College and led by Ed Dubinsky. He was also a participant in Dr. Naps Visualization workshop and in the Visualization and WWW workgroups at ITiCSE 1996 and 1997 respectively and jointly (with Naps) led a group in 1998 and (with Viera Proulx) in 1999. He has also been a participant each year in the annual Educator's Symposium held in conjunction with OOPSLA. As a consequence of this he has been an important contributor to the Pedagogical Patterns project. (http://www-lifia.info.unlp.edu.ar/ppp ). Dr. Bergin's main interests are in languages generally, but especially object-oriented languages. A related interest is in the suitability of languages for the instruction of novices. In addition to papers at various conferences and in journals, he has published extensively on-line, with many tutorials and demonstrations available. Some of this work is directed at beginning programmers and some is intended for more advanced users. Recent work has focused on Java and internet programming. This work is available on the net starting at http://csis.pace.edu/~bergin. There are links there to the Java server (sol.pace.edu/java) that he also maintains. Much of the recent work of Dr. Bergin has been in the development of class libraries intended for instruction. Much of this is published on-line in both C++ and Java. In the early part of his career, at a very small and somewhat insulated college, he was often frustrated by the fact that quite a lot of educational materials were available, but could not be used because of the requirements for special hardware or specific operating systems. His work since has always taken this into account by attempting to develop materials that can be used by the widest audience possible.

Summary of Experience of Dr. Myles McNally

Myles McNally received the Ph.D. in 1982 from Temple University in Philosophy with a dissertation in Epistemic Logics. He has been teaching computer science since 1983, first at Drexel University in Philadelphia and for the last 8 years at Alma College. Dr. McNally primary interests are in Artificial Intelligence, Graphics and Visualization, Programming Languages, and Computer Science Education. He has been working with the object-oriented paradigm since he attended an NSF sponsored curriculum workshop on Object-Orientation Across Undergraduate CS/IS Curricula in the summer of 1994. Dr. McNally has given a number of presentations and authored papers on the use of visualization in the undergraduate CS curriculum, with a particular focus on data structures and algorithms. He has been a participant in ITiCSE working groups throughout the history of the conference, working on topics in visualization, object-orientation, and introductory computer science. He is currently involved in moving the CS curriculum at Alma College to an object-oriented base, employing Java as the language of instruction.