Skip to main content

Publications

Do Values Grow on Trees?: Expression Integrity in Functional Programming

Guillaume Marceau, Kathi Fisler, Shriram Krishnamurthi

SIGCSE International Computing Education Research Workshop

We posit that functional programmers employ a notion called expression integrity to understand programs. We attempt to study the extent to which both novices and experts use this notion as they program, discuss the difficulties that arise in measuring this, and offer some observational findings.…

Mind Your Language: On Novices' Interactions with Error Messages

Guillaume Marceau, Kathi Fisler, Shriram Krishnamurthi

SPLASH/Onward!

Error messages are one of the most important tools that a language offers its programmers. For novices, this feedback is especially critical. Error messages typically contain both a textual description of the problem and an indication of where in the code the error occurred. This paper reports on a…

Measuring the Effectiveness of Error Messages Designed for Novice Programmers

Guillaume Marceau, Kathi Fisler, Shriram Krishnamurthi

Technical Symposium on Computer Science Education (SIGCSE)

Good error messages are critical for novice programmers. Recognizing this, the DrRacket programming environment provides a series of pedagogically-inspired language subsets with error messages customized to each subset. We apply human-factors research methods to explore the effectiveness of these…

The HAL Project -- Discovering local artists through Zeroconf

Pascal Charest, Michael Lenczner, Guillaume Marceau

Linux Journal

HAL boxes are small NSLU network storage devices that we install locally at certain of our Wi-Fi hotspots and then remotely fill with music and movies by local creators. Because the box is directly on the local area network, the content can be streamed at HDTV resolution without stalls or buffering…

The Design and Implementation of a Dataflow Language for Scriptable Debugging

G. Marceau, G. H. Cooper, J. P. Spiro, S. Krishnamurthi, S. P. Reiss

Automated Software Engineering Journal (ASE) (by invitation)

Debugging is a laborious, manual activity that often involves the repetition of common operations. Ideally, users should be able to describe these repetitious operations as little programs. Debuggers should therefore be programmable, or scriptable. The operating environment of these scripts,…

The Case for Analysis Preserving Language Transformation

X. Zhang, L. Koved, M. Pistoia, S. Weber, T. Jaeger, G. Marceau

International Symposium on Software Testing and Analysis

Static analysis has gained much attention over the past few years in applications such as bug finding and program verification. As software becomes more complex and componentized, it is common for software systems and applications to be implemented in multiple languages. There is thus a strong need…

Using Wireless Ethernet for Localization

A. Ladd, K. E. Bekris, G. Marceau, A. Rudys, L. E. Kavraki, D. S. Wallach

IEEE/RJS International Conference on Intelligent Robots and Systems

IEEE 802.11b wireless Ethernet is rapidly becoming the standard for in-building and short-range wireless communication. Many mobile devices such as mobile robots, laptops and PDAs already use this protocol for wireless communication. Many wireless Ethernet cards measure the signal strength of…

Robotics-Based Location Sensing For Wireless Ethernet

A.M. Ladd, K.E. Bekris, G. Marceau, A. Rudys, D.S. Wallach, L.E. Kavraki

International Conference on Mobile Computing and Networking

A key subproblem in the construction of location-aware systems is the determination of the position of a mobile device. This paper describes the design, implementation and analysis of a system for determining position inside a building from measured RF signal strengths of packets on an IEEE 802.11b…

Efficient Inference Of Static Types For Java Bytecode

Etienne M. Gagnon, Laurie J. Hendren, Guillaume Marceau

Static Analysis Symposium

In this paper, we present an efficient and practical algorithm for inferring static types for local variables in a 3-address, stackless, representation of Java bytecode. By decoupling the type inference problem from the low level bytecode representation, and abstracting it into a constraint system,…