Professional software developers use version control systems to coordinate their work, and to provide an unwindable history of their project’s evolution. In contrast, students i...
Undergraduate computer science students have few opportunities to experience scientific investigation and computer science research. A human-computer interaction (HCI) course can ...
Red-black trees and leftist heaps are classic data structures that are commonly taught in Data Structures (CS2) and/or Algorithms (CS7) courses. This paper describes alternatives ...
Operating system courses teach students much more when they provide hands-on kernel-level project experience with a real operating system. However, enabling a large class of stude...
We provide a systematic transformation of an LL(1) grammar to an object model that consists of · an object structure representing the non-terminal symbols and their corresponding...
Research on learning suggests the importance of helping students organize their knowledge around meaningful patterns of information. This paper reports on a multi-institutional st...
Courses in Relational Databases largely use a domain-specific design approach different from that used in the rest of the curriculum. Use of the Unified Process, UML, and Design P...