Algorithm animation has received much interest over the last few years. In this paper, we discuss the experiences gained in integrating animations into introductory computer scien...
Undergraduates are usually introduced to synchronization in operating systems through a discussion of classical problems such as reader-writer or producers-consumers. The traditio...
Being exposed to well-written code is a valuable experience for students -- especially when the code is larger or more complex than they are currently capable of writing. In addit...
Empirical skills are playing an increasingly important role in the computing profession and our society. But while traditional computer science curricula are effective in teaching...
Classifying is a central activity in object-oriented programming and distinguishes it from procedural programming. Traditional logic, initiated by Aristotle, assigns classificatio...
We look at the essential thinking skills students need to learn in the introductory computer science course based on object-oriented programming. We create a framework for such a ...
We propose an object-oriented (OO) formulation and implementation of lazy/delayed evaluation by reusing and extending an existing linear recursive structure (LRS) framework with t...
The paper elucidates two views (models) of algorithmic problem solving. The first one is static; it is based on the identification of several principal dimensions of algorithmic p...