Period: Spring, 1998
Proposers:
Lewis Barnett, Associate Professor of Computer Science
Joseph Kent, Professor of Computer Science
University of Richmond
Description: In early 1997 we received a one-year NSF grant for our project "Interactive Tutorial Experiences for Introductory Computer Science." The funding was used during the summer of 1997 to create a collection of electronic tutorials implemented in the Java programming language under the name "A Digital Tapestry." The project is not quite ready for effective student use and the $2,500 fellowship would be used to support the part-time work of two undergraduate students, each working approximately 8 hours per week for 15 weeks. These are experienced programmers who participated in the NSF-sponsored work last summer. We anticipate giving them each a stipend of $1,000. The remaining $500 would be used to purchase hardware and software to create CDROM versions of the tutorials for distribution to other institutions (including ACS member schools) and to students without access to the Internet.
"A Digital Tapestry" is a set of interactive tutorials that can be used on any platform that supports the Java 1.1 virtual machine. Simply put, this means PC's running Windows 95 or NT, Macintoshes, and most Unix computers can run the tutorials. They are designed to support a formal course of study with lectures or a laboratory, but they may be used for independent study.
Topics fall into three basic categories: Computer Concepts, Programming Concepts, Data Structures. Computer Concepts has three tutorials that introduce binary representation and how computers store information, the basic hardware components of typical computers, and the model of computation, i.e., how programs execute on a typical computer. Programming Concepts has tutorials on fundamental components of a typical program, proper uses of selection and looping constructs, algorithms for searching and sorting, functions and parameter passing, arrays, and classes and object-oriented programming. The student may select either Java or C++ as the language for examples.The Data Structures category is still in the planning stages and will include tutorials on linear data structures and their uses in implementing stacks and queues, trees and associated uses, hashing and hash tables, plus a tutorial on complexity issues and space-time trade-offs in selecting the appropriate algorithm and data structure.
To date the project has successfully developed a software architecture of Java classes that fully supports user interaction, hypertext linking, animation, audio, and logging of user data to a network database to track user progress. Five tutorials are completed and fully implemented, while two others have been completely designed.
The spring will be devoted to implementing the two tutorials that have been designed but not yet implemented, to adding C++ versions of programming tutorials (currently only Java versions have been implemented,) and to converting the entire project from a stand-alone Java application to an `applet.' This would allow the use of the tutorials with a Web browser like Netscape. The initial project was not done as an applet because the changes to Java that occurred in May of 1997 would not be supported by Netscape and other browsers until mid-1998. Furthermore, the audio files were too large for Web use without streaming audio support. Only with the recently released (September, 1997) Java Media Framework classes can we deliver audio support over the Web without significant delays.
In addition to the support last summer, the NSF grant provided funds for the evaluation and assessment of the materials. Evaluation of the content of the tutorials is being done during the current semester by Dr. Ken Abernethy, Professor of Computer Science at Furman University. Assessment of the educational impact will be done during the spring semester by Dr. Patricia Stohr-Hunt, Assistant Professor of Education at the University of Richmond, based on trial uses of the initial five tutorials. We will be making changes to the tutorials based on the feedback we receive.
This is not a request for a personal stipend for the proposers. We simply want to move the project along to a fully useful stage as quickly as possible. We do not have released-time to do the implementation coding ourselves during the semester. Our two students have the time and are actually more skilled than we are at implementing multimedia materials in Java.
Next summer we want to extend the tutorials to cover topics on data structures. This would make them useful for the entire first year of computer science course work. We are currently seeking external funding for that stage of the project. If we don't get ACS support this spring, we will have to use the summer to finish the current stage of the project ourselves and will be unable to extend the tutorials to include data structures until the following summer.
If you would like additional information, please contact us.
Lewis Barnett, Joe Kent
lbarnett@richmond.edu
jkent@richmond.edu