|
A central goal in high-level programming languages, such as those we use to
teach introductory computer science courses, is to provide an
abstraction that hides the complexity and idiosyncracies of computer
hardware. Although programming languages are very effective at
achieving this goal, certain properties of computer hardware cannot be
hidden, or are useful to know about. As a consequence, many of the
greatest conceptual challenges for beginning programmers arise from a
lack of undersatnding of the basic properties of the hardware upon
which computer programs execute.
To address this problem, we have developed a simple virtual machine
called ANT for use in our introductory computer science (CS1)
curriculum. ANT is designed to be simple enough that a CS1 student can
quickly understand it, while at the same time providing an accurate
model of many important properties of computer hardware. After two
years of experience with ANT in our CS1 course, we believe it is a
valuable tool for helping young students understand how programs and
data are actually represented in a computer system.
This paper gives a short introduction to ANT. We start with a brief
description of the architecture, and then describe how we use ANT in our
CS1 course. We include specific examples that demonstrate how ANT can
give students intuition about pointers, the representation of data in
memory, and other key concepts.
Passive NFS traces provide an easy and unobtrusive way to measure,
analyze, and gain an understanding of an NFS workload. Historically,
such traces have been used primarily by file system researchers in
an attempt to understand, categorize, and generalize file system
workloads. However, because such traces provide a wealth of detailed
information about how a specific system is actually used, they
should also be of interest to system administrators. We introduce
a new open-source toolkit for passively gathering and summarizing
NFS traces and show how to use this toolkit to perform analyses
that are difficult or impossible with existing tools.
|