![]() |
| Home | People | Curriculum | Projects | Resources | Media |
The goals of our work are to better prepare students who wish to continue in computer science, provide a better appreciation of the intellectual processes involved in CS for students who do not continue, and emphasize the fun of problem solving over the tedium of learning the arcane details of a programming language. After exploring the use of mathematical techniques (as used in formal verification), we have more recently (post-2005) been working on a balance between informal and formal approaches, and between test suites and specifications.
For more details, see the the 3-2-1 web site, or our paper at SIGCSE '05 (for our work before 2005) or the current course notes at lulu.com. (We have been quite happy with the quality and price of lulu.com materials: the "lab copy" of the materials that we put in the lab in September 2007 was still in good condition when the academic year ended in May 2008).
The goal of this work is to help students appreciate the connections among these upper-level applied computer science courses by constructing a single multi-course project that involves all the steps from a high-level programming language to the basic AND/OR/NOT logic of computer hardware. The first students to complete this entire sequence using HERA graduated in the spring of 2005.
I presented this work in a poster session (not reviewed) at SIGCSE '05. A (reviewed) paper describing this work and another describing my use of attribute grammars in teaching Compiler Design appeared at CCSCE '06. The specification for the HERA architecture is available in printed form through lulu.com.
I have recently begun to investigate techniques to help visualize the execution of algorithms -- if my own ideas prove to be sufficiently different from prior work on algorithm animation, I'll add more here.
I have worked with the Vivo project at the Rutgers University Department of Computer Science to develop tools to instrument code to measure and improve coverage of fault recovery code in Java web services (see our papers at DSN '03, ISSTA '04, and The April 2005 issue of IEEE Transactions on Software Engineering).
Vince Gabor (HC '99) and Rob Seater (HC '02) participated in this work.
This began as a join investigation with John McCalpin, and involved numerous undergraduates, including Jaime Spacco (HC '98), Tina Shen (Bryn Mawr '98), Vince Gabor (HC '99), and Frank Rusch (HC 2000). Recently, Ian Harrison (HC '03) and I have gotten some very nice empirical results for the multiprocessor time skewing optimization on an 8-workstation linux cluster.
This is an extension of Ben Flynn's (HC '99) senior thesis, which appeared at MASPLAS '99.
The above research has been funded by grants from the Zimmer Corporation and
grant
CCR-9808694 from the National
Science Foundation. "Any opinions, findings, and conclusions or recommendations
expressed in this material are those of the author(s) and do not necessarily
reflect the views of the National Science Foundation."
Here's a list of Researchers in Programming Languages and Compilers.
I use Gnu Privacy Guard here's my public key.
I also use a Dvorak keyboard layout, and have written a csh script to simplify the process of using xmodmap to set up a new mapping under X (this has now been made obsolete by the XKB extensions to X).
|
|