DROOL: Undergrads involved in Computer Science Research

DROOL Positions for Undergrads for Summer 1998

Sponsored by the National Science Foundation
the
Duke Computer Science Department
and Duke University

Positions include
Operating Systems, Robotics, Computer Architecture,
Tools for Automata Theory, Patterns, Web design/support

Programming in C++ and/or Java
(experience in Java is not necessary)
(must have taken CPS 100 or equivalent by summer, 108 preferred)

Deadline for application: March 2
Salary: around $10+ per hour (plus a few free pizzas)
10-12 weeks, flexible hours
Hiring 7+ undergrads!

Several different projects are supported by DROOL this summer

CURIOUS - Developing resources for several CS courses

Several positions to support the integration of research into our 100-level courses are offered. This is part of a large grant to make research accessible and useful in undergraduate classes. The work will entail developing tools (mostly in Java, some in C++) to visualize and use the research in an undergraduate setting. This will involve understanding the material, determining how to use it appropriately in undergraduate courses, and developing the tools that enable the research to be used.

The materials developed as part of this grant will be used at Duke and several collaborating institutions.

CURIOUS projects

Projects on tap for this summer include some or all of the following:

Operating Systems In the ARI cluster lab (third floor LSRC) we have modified our Unix kernels to log information about selected internal events to the network. A log server listens on the network and writes the log records into a large disk array. This produces a large database of detailed raw information about the internal behavior of the system. We can do this because the Myrinet network is so fast that logging consumes a relatively small share of network bandwidth. This allows us to collect information about the behavior of distributed systems as well, since they can function without the logging getting in the way. We place a logical timestamp in each log record so that we can impose an ordering on events occurring on different nodes. Anyway, the logs can be used as input to animation or visualization programs. The possibilities are endless.

Distributed Systems There is an opportunity to assist in producing a "Nachos" for the distributed systems class. The idea would be to build some Java programs that exercise various distributed systems principles, and use them as the basis for programming assignments in the class. There's lots of code lying around here and there that could be useful. For the initial assignments, it is not necessary to understand everything about distributed systems in order to prepare something worthwhile.

JOIE Graduate student Geoff Cohen has a system called JOIE that can be used to automatically instrument compiled Java code. It should be possible to use this tool to automatically instrument Java programs with code to do some basic animation (e.g., watch calls to selected methods, or operations on selected objects).

Reinforcement Learning Simulator/AI In this project, a student will create a graphic environment for demonstrating and experimenting with simple concepts from the field of reinforcement learning. This area, which has its foundations in dynamic programming, has been producing a series of highly promising results. An example result is the world's best backgrammon playing program, which was created by a program trained by reinforcement learning. The simulator I am imagining will use simple robot navigation using the robot lab in D215, LSRC.

Using Patterns

Patterns are meta-level idioms designed to facilitate programming, especially object-oriented programming in a language independent way. Patterns represent a solution to a problem in a context. Examples include Iterators, Observable/Observers, and several others. Students applying for this position must have completed CPS 108. This project concentrates on developing materials that will enable patterns to be used as opposed to more typical research in how to find patterns.

Tools for Automata Theory (CPS 140)

Animation is a powerful device for explaining abstract concepts. We are developing a package of tools that present and communicate abstract computer science concepts in a more efficient, visual and interactive manner. Our tools allow students to design, visualize and experiment with formal languages, formal models of machines, and formal grammars. Specifically, the tools provide an environment for students to draw possible solutions pictorially, automatic animation of their designs, instantaneous verification checks, easy retrieval and storage of designs, and multiple windows for comparing related concepts.

Tools already developed include JFLAP, jeLLRap, and Pate (see http://www.cs.duke.edu/~rodger/tools/tools.html ). These tools are currently in use in teaching CPS 140. The positions for this summer include polishing existing tools, creating new tools for experimenting with proofs, and converting existing parsing tools over to Java.

Web Development and Support

The University will support one student to work on developing web pages, scripts, and general web support for pilot faculty projects. This might involve some database programming, perhaps developing CGI/Perl/Java scripts, and in general helping to develop a web presence for courses and faculty who are looking to move forward in integrating technology into their courses.

To Apply

Submit a resume by March 2 to Owen Astrachan in LSRC D241. Include a transcript, written description of a large programming project (either from a course or a job), and programming experience. You should also include information about how many and which weeks you'll be available to work on DROOL-related materials at Duke. If you have a preference as to what areas you'd like to work in, please let us know.

For more information see send email to rodger@cs.duke.edu, or ola@cs.duke.edu or drop by.

DROOL = Duke-developed Resources for Object Oriented Learning
(not everything is object-oriented, but the acronym still holds)


Owen L. Astrachan
Last modified: Tue Feb 17 12:04:44 EST 1998