Ideas

There are more projects to be explored than there is time available. Any and all of these ideas may serve as starting points for project ideas of your own. Any of these projects can serve as starting points for an independent study, summer research project, or Senior Comp.

Each blurb is cut off at 140 characters. (Perfect for Tweeting to all your friends! *cough*) Click through to see a bit more, and stop by to discuss these ideas in greater depth.

Sensing with the Arduino

Environmental sensing is often carried out with costly embedded platforms. Can we use of the Arduino in a real-world sensing experiment?   …

Mining Novice Compilation Behavior

We have begun exploring the connections between the behavior of novice programmers and their affective (emotional) state. Early work…

Parallel LEGO NXT

The LEGO Mindstorms NXT is a popular reconfigurable robotics platform. We need someone to  port occam-pi to this robotics platform.        …

Connecting Scratch

Scratch is a visual programming environment for children and novice programmers alike. We need to extend it to talk to the Arduino.        …

Simplifying Parallelism

Programming is hard. Can we develop linguistic tools for programming the Arduino that make it easier for beginners to do complex things?   …

Tock and Filet-O-Fish

The only good compiler is a correct compiler. Can we combine Filet-O-Fish and Tock to write a provably correct occam-pi compiler?          …

Printing in Parallel

The RepRap open-source printer has a confusing OS. Lets demonstrate the utility of parallelism by rewriting their runtime in occam-pi.     …

Generic Concurrency in Java

The Java CSP library takes advantage of neither the new concurrency primitives in the language nor generics. Both are valuable additions.  …

Standardizing LWP Testing

There are no standard benchmarks for lightweight concurrency. What are typical workloads, and how do we stress and evaluate these runtimes?…

Profiling Parallelism

We'd like to know what happens when our programs execute. How can we profile concurrent programs running on small machines like the…