We propose a cooperative methodology for multithreaded software, where threads use traditional synchronization idioms such as locks, but additionally document each point of potent...
Dynamic memory management and the use of pointers are critical topics in teaching the C++ language. They are also some of the most difficult for students to grasp properly. The re...
We present lessons learned from developing Alice, a 3D graphics programming environment designed for undergraduates with no 3D graphics or programming experience. Alice is a Windo...
Matthew Conway, Steve Audia, Tommy Burnette, Denni...
Implementations of computer systems comprise many layers and employ a variety of programming languages. Building such systems requires support of an often complex, accompanying too...
Little is known about the strategies end-user programmers use in debugging their programs, and even less is known about gender differences that may exist in these strategies. With...
Neeraja Subrahmaniyan, Laura Beckwith, Valentina G...