DROOL: Undergrads involved in Computer Science Research

DROOL Positions for Undergrads for Summer 1997

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

Positions include
Tools for Automata Theory, Data Structures,
Course Development, OOP
Computer Architecture, Scientific Computing, and Graphics

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

Deadline for application: February 25
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

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 (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.


Data Structures (CPS 100): An Applied Apprenticeship Approach

We will be developing materials to support courses similar to CPS 100, but the materials will be used at a variety of institutions. This is a collaborative project with NC Central and Appalachian State.

Materials consist of programs, supporting classes and assignments, and guidelines for using the tools and assignments. Graphical components for these materials are essential. All material will be based on using real applications to study data structures, similar to the Huffman coding example we have used in CPS 100. The actual applications developed will be determined in the summer or during the semester.

These materials will be used by at least three institutions: North Carolina Central University, Appalachian State University, and (or course) Duke. We hope that other universities and colleges will use the materials as well. Program support will be in C++ and Java, although we may try to port some code to C. Information about last summer's efforts can be found at http://www.cs.duke.edu/~ola/apprentice.html

CURIOUS - Developing resources for several CS courses

Several positions for developing software for the architecture course, scientific computing course, and new graphics course for Fall 1997 are available. This is part of a large grant to make research accessible and useful in undergraduate classes. The work will entail developing tools (mostly Java) 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. We're planning on developing tools for cache profiling, for circuit-simulation and general scientific computing, and for graphics and compression visualizations.

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

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.

To Apply

Submit a resume by February 25 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: Mon Feb 10 16:58:29 EST