Materials used in educational settings

Because teaching makes our research better.

Materials

We've produced materials for a number of educational sessions, some related to CO631: Concurrency Design and Practice, some for visits elsewhere (eg. DIKU), and some for working with students in more informal contexts (CSCS). These materials are *not* meant to stand on their own---that is, they are materials that we use as handouts or support for exploration in a laboratory setting where we can work with students one-on-one, or with students working in small groups.

You may find these useful if you want to do some exploration on your own, however. Feel free to join our discussion list and ask questions if you dive into these materials. We recommend using RoboDeb, and starting at the top of the list.

DIKU

The materials we put together for our workshop at DIKU really represent the way we think concurrency should be introduced to students. This represents the first step down a long road, but we want to develop materials that are compelling, most likely based in behavioral robotics, and really nicely demonstrate the power of concurrent languages for robotic control. These exercises follow largely from Braitenburg's first few vehicles---you'll need RoboDeb to explore these, but everything you need should be there.

CO631: Concurrency Design and Practice (2005-2006)

These materials came from our explorations with students in CO631 during the 2005-2006 academic year. They're intended to give you exercises that will lead you through various aspects of the occam-pi programming language... but they are not language tutorials unto themselves.

CO631: Concurrency Design and Practice (2006-2007)

This year's assignments are very much in the vein of *experimental computing* or *scientific computing*. By "scientific computing" we do not mean "high performance computing"; we instead mean "computing grounded in the real world that is informed by the collection and analysis of data." This is something that most CS students never encounter---but it is the kind of reflection that is necessary if one aspires to develop robust and usable software in the real world.