Sign In

Communications of the ACM

Table of Contents


President's letter

ACM Forum

Programming pearls: Document design

The challenges of teaching computer programming

Programming has been described by many authors as the new Latin of the school syllabus, a kind of mental whetstone for developing minds. As such, it was assumed that students would develop their general problem-solving skills …

The automated tutoring of introductory computer programming

The methodologies of artificial intelligence and the knowledge of cognitive psychology can be used to automatically generate fine-grain tutorial interactions, rather than having to program them manually.

Learning to program = learning to construct mechanisms and explanations

Teaching effective problem-solving skills in the context of teaching programming necessitates a revised curriculum for introductory computer programming courses.

Boxer: a reconstructible computational medium

Programming is most often viewed as a way for experts to get computers to perform complex tasks efficiently and reliably. Boxer presents an alternative image—programming as a way for nonexperts to control a reconstructible medium …

Imbalance between growth and funding in academic computing science: two trends c

This report is endorsed by the Computer Science Board and prepared by the board's Committee on Research Funding in Computer Science.

Expert systems: perils and promise

Based on a review of some actual expert-system projects, guidelines are proposed for choosing appropriate applications and managing the development process.

Adapting UNIX for a multiprocessor environment

Existing Unix data protection and synchronization mechanisms present difficulties when adapting Unix to a multiprocessor environment, but solutions do exist.

Tree rebalancing in optimal time and space

A simple algorithm is given which takes an arbitrary binary search tree and rebalances it to form another of optimal shape, using time linear in the number of nodes and only a constant amount of space (beyond that used to store …