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
):
- JFLAP (Java version of Formal Languages and Automata Theory) - a
tool to develop programs as pictures (labeled directed graphs) for
finite automata, pushdown automata and Turing machines, and to simulate
the execution of these programs on input.
- LLparse and LRparse - tools to create LL and LR parse tables, and
to animate the parsing of strings.
- Pate - Parsing and Transforming Engine
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