David Arnow's CS Research Page



David M. Arnow
Department of Computer and Information Science
Brooklyn College
2900 Bedford Avenue
Brooklyn, NY 11210
e-mail: arnow@sci.brooklyn.cuny.edu
voice: (718) 951-4145
fax: (718) 951-4406


Papers, etc.:

      Click here for a list of all papers, grouped by category


Links To Projects



Research Statement

Since the 1980s, the primary theme in my computer science research has been applying contemporary network technologies and distributed computing to problems in high performance computing, scientific computing, and education, particularly computer science education. I have also sought to integrate the exciting developments in this field into the CS curriculum. This interest-- in distributed computing and network technology-- is reflected in the funded projects I have been working in recent years:

These grants have supported and continue to support most of the work described below.

LANs. In the 1980s and early 1990s, local area networks with large numbers of relatively inexpensive workstations opened new doors in parallel computing. The idea was to harness unused cycles of the loosely coupled heterogeneous set of computers on a net. The LAN was seen, correctly, as the the one truly ubiquitous parallel computer system. Along with many others at the time, I developed a portable programming system, DP, to facilitate the use of the LAN of workstations as a parallel platform. DP, like many of these systems (P4, PVM, MPI) was a relatively low-level message-passing programming environments that supported remote process creation and coordination. Four papers involving DP were published along with a presentation:

(Strictly speaking, DP and similar systems were not limited to LANs. They were, in principle, capable of utilizing hosts anywhere on the Internet. However, utilizing a host requires initiating a process remotely. Most machines on the Internet do not support remote process spawning Those that do require accounts. Hence, these tools were essentially for LAN-based parallelism.)

Exploiting LAN technology was also part of my work in CS education. In that regard, I developed a distributed automated homework program checking system along with a network environment to facilitate its use and promote information interchange between students and instructor. This work led to these publications:

The Internet. What the LAN was in the 1980s, the Internet is in the 1990s: a vast pool of untapped computational resources. Along with my colleagues, Paula Whitlock, Dayton Clark, Gerald Weiss, Jim Cox and Chuck Schnabolk, my graduate student, Kevin Ying, and my high school student, Mitchell Berger, I am currently exploring a particularly appealing approach that I like to call WebComputing, though it is usually referred to as web-based parallel computing. There are some groups that have already made impressive progress in this area, notably the Javelin folks at Santa Barbara and the Charlotte/Knitting Factory folks at NYU.

WebComputing differs from traditional "internet-wide" computations in that it requires no knowledge on the part of the participant, no special compilers or other software and a generally lower commitment of computing resources. The key to WebComputing, besides the existence of the Internet itself, is Java. The essential idea is that a server, or collection thereof, in league with collection of web servers coordinates the execution of tasks by Java applets executing in parallel in an ever-changing set of unreliable, heterogeneous client machines. One of the most appealing promises of WebComputing is the potential for achieving an unheard-of degree of parallelism-- in principle, a computation could harness every computer that is connected to the Internet. Promising as WebComputing is, the platform is peculiar. The number of computing elements (hosts) is variable and in fact may be zero in the absence of a means for attracting "volunteers" on the web. The hosts themselves are unreliable and possibly untrustworthy, and disparate in their power. They execute Java applets, which are typically interpreted generally and therefore slower than an equivalent C code. Communication latency and bandwidth are quite variable but generally bad. In addition, the platform has a tendency bottleneck on a central server.

Our investigations here focus on the following issues in WebComputing:

My interest in the Internet does not end with WebComputing. Another important ongoing project is WebToTeach. WebToTeach is an internet-oriented outgrowth of my earlier work in LAN-based automatic homework checking and teaching environments. WebToTeach is a convenient, flexible, web-based, multi-lingual automatic programming homework checking system. mechanism that supports a new CS education pedagogy. Some recent paper and other submissions related to WebToTeach are:

The web is not the only element of the Internet that has a potential impact on education. Email can play a big role as well. Barbara Weiserbs, of Kingsborough Community College, and I have looked at the impact of cooperative larning via email communication between a class of children with hearing disabilities and a class of children without such disabilites. Our focus as on attitude change and on the appropriate level and kind of teacher intervention in the email exchanges. This work is, in part, presented in: Whether it's WebToTeach, WebComputing or children in different classes collaborating in social studies projects by email, distributed and network computing is at the core. For this reason, I am very eager to see this subject become a greater part of CS undergraduate education. Our efforts in this area have led to these publications:

Our original interest in bringing distributed computing to the CS undergraduate curriculum predated Java. Java, however, is a great vehicle for making distributed computing concepts concrete at all levels of the CS curriculum. To that end, we developed a CS 1 course that uses Java, described in the last paper listed above. When we found out that there is no CS 1 Java book that takes a truly object-oriented approach (in the sense of writing class definitions early) and none that integrates network computing into the course, we decided to write our own: An Introduction To Programming Using Java: An Object-Oriented Approach

Interest in Java has led to interest in object-oriented programming issues in their own right. Weiss and I noticed that very often the advice given to beginners by experienced OOPers is not always meant to be taken literally. We discuss that in Reexamining an Object-Oriented Design Heuristic.


tc