Learn More
Pair programming is one of the twelve practices of Extreme Programming (XP) [1]. Pair programming is usually performed by programmers who are collocated—working in front of the same monitor. But the inevitability of distributed development of software gives rise to important questions: How effective is pair programming if the pairs are not physically next(More)
This paper reports on an experience in using the inverted-lecture model ("flipping the classroom") in computer architecture. The first author concurrently taught two courses in computer architecture. One of these courses was CSC/ECE 506: Architecture of Parallel Computers, an introductory Graduate-level course, taught via lecture both residentially and(More)
In recent years, educators have increasingly used pair programming in their computer science courses. Pair programming has been shown to be beneficial for both the teaching staff and the students in the courses. Occasionally, though, students are not compatible with their partners. An extensive study was done at the North Carolina State University to(More)
The Intel 432 is noteworthy as an architecture incorporating a large amount of functionality that most other systems perform by software. It has, in effect, “migrated” this functionality from the software into the microcode and hardware. The benefits of functional migration have recently been a subject of intense controversy, with critics(More)
We describe the Collie collector, a fully concurrent compacting collector that uses transactional memory techniques to achieve wait-free compaction. The collector uses compaction as the primary means of reclaiming unused memory, and performs "individual object transplantations" as transactions. We introduce new terms and requirements useful for analyzing(More)
Traditionally, instruction sets have included separate instructions for manipulating different data types, such as integers and real numbers. A long-discussed but seldom-implemented alternative has been tagging, where the type information is stored adjacent to the data itself, rather than being inferred from the instructions. Over the years, several(More)