Key attributes and aspects of information networks, including their
physical structure (messages, packets, switching, routing, addressing, con-
gestion, local area networks (LANs), wide area networks (WANs), band-
width, latency, point-to-point communication, multicast, broadcast,
Ethernet, mobility), and logical structure (client/server, interfaces, lay-
ered protocols, standards, network services).
Computers are generally much more useful when connected to each
other and to the Internet. The goal is to understand how computers can
be connected to each other and to networks, and how information is
routed between computers. The appropriate emphasis is how the param-
eters of communication, such as latency and bandwidth, affect the respon-
siveness of a network from a user's point of view and how they might
limit one's ability to work.
Today, this skill involves the ability to use the current generation of
presentation software and graphics packages.
This skill includes the ability to use standard spreadsheet systems
and/or specialized packages (e.g., tax preparation software).
The general concepts of information organization, including forms,
structure, classification and indexing, searching and retrieving, assessing
information quality, authoring and presentation, and citation. Search en-
gines for text, images, video, audio.
Information in computers, databases, libraries, and elsewhere must
be structured to be accessible and useful. How the data should be orga-
nized and indexed depends critically on how users will describe the infor-
mation sought (and vice versa), and how completely that description can
be specified. In addition to locating and structuring information, it is im-
portant to be able to judge the quality (accuracy, authoritativeness, and so
forth) of information both stored and retrieved. Section 3.2 provides some
additional discussion.
Computers possess no intuition, creativity, imagination, or magic.
Though extraordinary in their scope and application, information tech-
nology systems cannot do everything. Some tasks, such as calculating the
closing price for a given stock on the NASDAQ exchange, are not solvable
by computer. Other tasks, such as that of placing objects into a container
so as to maximize the number that can be stored within it (e.g., optimally
filling boxcars, shipping containers, moving vans, or space shuttles), can
be solved only for small problems but not for large ones or those of prac-
tical importance. Some tasks are so easily solved that it hardly matters
which solution is used. And, because the programs that run on comput-
ers are designed by human beings, they reflect the assumptions that their
designers build into them, assumptions that may be inappropriate or
wrong. Thus, for example, a computer simulation of some "real" phe-
nomenon may or may not accurately reflect the underlying reality (and a
naive user may be unable to tell the difference between a generally true
simulation and one that is fundamentally misleading). Assessing what information technology can be applied - and when it should be applied - is essential in today's information age.
In conveying information to others, it is often necessary to use tech-
nology. This may involve the use of images or processes as well as words.
Effective communication requires familiarity with and understanding of
the pros and cons of various means of communication, because the inter-
vening technology may change the nature of the communication. For
example, it is much more difficult to provide driving directions to a given
location by using the telephone than by gesturing and pointing to a map.
But a deeper aspect of communication with other audiences is the
nature of that communication, independent of media. For example, com-
municating problem statements or project outcomes to customers, inter-
ested individuals, and others requires an understanding of audience needs
and background knowledge. An effective communication to experts
might involve translating informal needs into formal requirements, for
example, moving from a "wish list" expressed during a lunchtime con-
versation to a more formal tasking to a work team. These formal require-
ments form the basis for discussing whether or not a project performs
correctly, and therefore underlie the ability to test and debug. Without
communication that carries nuance and detail, it is impossible to know
whether a project component is being built correctly.
A related dimension of communication with other audiences is docu-
mentation. Documentation is almost always a component of informing
an "outsider" audience about the nature of a system, such as an office
system, a manufacturing system, or an information technology system.
Documentation makes content more explicit and provides many opportu-
nities for someone to think through the structure of a project. The devel-
opment of documentation can be regarded as a process of devising the
minimum set of information and instructions needed for an unknown task
to be performed with a specific tool by a non-expert.
When systems crash and technological tools fail, users need the abil-
ity to "debug," that is, to detect, diagnose, and correct problems and faults
(i.e., bugs). Debugging is a complex process that often goes beyond the
technology and includes the personal and social aspects of the undertak-
ing (e.g., when a system has multiple interacting components, each of
which is the responsibility of a different individual). Debugging also in-
volves other capabilites, such as sustained reasoning, managing complex-
ity, and testing.
Debugging is necessary because the best-designed and best-integrated
systems will still exhibit unanticipated behavior. Bugs are inevitably en-
countered in any ongoing effort using information technology, and thus
users must anticipate the need to identify them, diagnose their sources
(e.g., by recognizing patterns in observations or in fault reports, distin-
guishing root causes from derivative but proximate causes, and design-
ing systematic diagnostic experiments), understand the implications of
eliminating those sources, and take steps to modify the system appropri-
ately. Alternatively, the appropriate response to a faulty system that is
vital to some application may well be to structure the environment in
which the system operates to limit the risk associated with its use.
Testing reveals bugs, but once discovered, bugs need to be repaired
cleanly and correctly. Good design also involves designing systems that
are more easily fixed when something goes wrong (a process often known
as "anti-bugging"). For example, a well-designed system has clear docu-
mentation. Well-designed systems avoid hidden dependencies, so fixes
at one point do not create new flaws at another. The system design itself
facilitates examination of what the system is doing and enables the re-
porting of unexpected events.
Debugging also involves making the everyday elements of technol-
ogy work. When something goes wrong, it is desirable to be able to trace
the chain of events upon which correct operation depends. A typical ex-
ample today starts with a person who tries to print a document prepared
with a word processor, and the printer doesn't produce any output. There
could be a flaw anywhere along a chain of potential causes: the printer
isn't plugged in or is turned off; the printer isn't connected to the com-
puter; the wrong driver is selected; the printer queue is blocked; improper
parameters were set in the print command; and many other possible
events. A user needs to recognize that this is a solvable problem, find the
broken link in
The general methods and techniques for representing real-world phe-
nomena as computer models, first in appropriate forms such as systems
of equations, graphs, and relationships, and then in appropriate program-
ming objects such as arrays or lists or procedures. Topics include con-
tinuous and discrete models, discrete time, events, randomization, and
convergence, as well as the use of abstraction to hide irrelevant detail.
Computers can be made to play chess, predict the weather, and simu-
late the crash of a sports car by abstracting real-world phenomena and
manipulating those abstractions using transformations that duplicate or
approximate the real-world processes. One goal is understanding the re-
lationship between reality and its representation, including notions of
approximation, validity, and limitations; i.e., not all aspects of the real
world are modeled in any one program, and a model is not reality.
Even when a technological system works as intended to solve a prob-
lem as it was originally stated, its use may still have unexpected conse-
quences, because the system is embedded in a larger social and techno-
logical context that may not have been properly anticipated. In some
instances, these unexpected consequences may even overshadow the in-
tended outcome (i.e., the solving of the original problem). Users should
understand that such consequences are not uncommon and work to miti-
gate or exploit them as appropriate.
Unforeseen benefits or drawbacks may result when a technology de-
ployed for one purpose is used for other purposes. For example:
* One of the original "primary" purposes of the ARPANET (the pre-
decessor to the Internet) was to facilitate the use of computers many miles
away from one's local desktop; as users learned how to use the ARPANET,
they found that it was most useful for its e-mail capabilities.
* Making Web browsers in school libraries available to all students
is intended to give students easy access to the rich information content of
the Internet. But open access may unintentionally expose students to child
molesters, hate speech, and pornography.
In other cases, unexpected side effects may occur because a techno-
logical system is deployed on a much larger scale than originally expected.
For example:
* Introducing computers into schools on a large scale means that
many teachers must be trained to use them effectively.3
* Introducing information technology into businesses on a large scale
often results in unexpected recurring expenditures to keep hardware and
software investments current with evolving applications.4 Small applica-
tions of information technology can be funded on a shoestring (e.g., be-
cause problems can be solved in a "quick and dirty" manner). But on a
large scale, maintenance, support, documentation, and training become
big sources of expense.
Finally, technological systems may be designed for a particular inten-
sity of usage, but may display unexpected behavior or may result in unex-
pected consequences when the actual intensity of usage is higher. For
example:
* Acquisition of a cellular telephone "for emergency use only" for a
low monthly payment often results in first-time bills that are much larger
than expected, because the user finds the convenience of the cellular tele-
phone irresistible.
* A server designed for a particular load may crash when subject to
too many requests for service arriving at the same time, as often happens
when access is sought to a popular Web site.5
Today, minimal skills in this area include the ability to select fonts,
paginate, organize, and edit documents. Integration of image and other
data is becoming essential. In the near future, requirements in this area
will likely include the creation of Web pages using specialized authoring
tools.
A person who uses computers should be able to connect the parts of a
personal computer and its major peripherals (e.g., a printer). This entails
knowing about the physical appearance of cables and ports, as well as
having some understanding of how to configure the computer (e.g., know-
ing that most computers provide a way to set the system clock, or how to
select a screen saver and why one may need to use a screen saver).
This skill involves using online help files and reading and understand-
ing printed manuals. One aspect of this process is obtaining details or
features of systems one already comprehends; a second aspect is using
the tutorial to grasp the essential models and ideas underlying a new sys-
tem.
Today, locating information on the Internet involves the use of brows-
ers and search engines. The use of search engines and browsers requires
an understanding of one's needs and how they relate to what is available
and what can be found readily, as well as the ability to specify queries and
evaluate the results.
The technical basis for social concerns about privacy, intellectual prop-
erty, ownership, security, weak/strong encryption, inferences about per-
sonal characteristics based on electronic behavior such as monitoring Web
sites visited, "netiquette," "spamming," and free speech in the Internet
environment.
Understanding social issues strongly connected to information tech-
nology goes beyond FITness to general principles of good citizenship.
Policy issues that relate to information technology, including privacy, en-
cryption, copyright, and related concerns, are increasingly common to-
day, and informed citizens must have a basis for understanding the sig-
nificance of those issues and for making reasoned judgments about them.
Information technology connects to the world at large in many ways,
and characteristics of the technology have implications for everyday is-
sues. Consider, for example, intellectual property. Copyright is accom-
panied by a well-established body of law, but now that the Web makes
images and documents available to a huge audience, it has become much
more important for Web users to understand that the ability to see an
image on the Web does not automatically imply that the image can be
copied or reused.
Numerous other issues are apparent today on which many non-tech-
nologists are asked to make judgments. Is the Internet just another form
of publication, and therefore subject to the same First Amendment and
copyright protections that newspapers enjoy? Is encryption a potential
weapon that needs to be kept out of foreign hands? Why are standards
important, and how do we promote the use of standards without permit-
ting unregulated monopolies to stifle innovation? Does inviting techno-
logically skilled workers from other countries create or destroy jobs? How
do we encourage children to achieve the highest levels of technological
competence? Does information technology cause job displacement and/
or upskilling? How is it possible to promote social equity regarding ac-
cess to information technology?
A person who effectively determines how to apply information tech-
nology to his or her needs will think about information technology
abstractly. For example, she will reflect on her use of information tech-
nology, identifying characteristics and commonalities that cut across tech-
nological experiences. She will transfer the principles of technological
solutions from one setting to another. She will recognize technological
analogies, and use them to become adept with new technology quickly.
She will have high expectations for technological solutions, and she will
find work-arounds when technology falls short.
A second dimension of thinking abstractly about information tech-
nology is to consider what aspects of information technology affect a
policy issue. For example, a person engaged in such thought will try to
determine if and how the technology makes previous policy solutions in-
adequate. He or she will think deeply about proposed metaphors, such as
assertions that putting up a Web page is equivalent to publishing.
Most sustained activities involve the location, evaluation, use, and
organization of information. Often searching for and locating informa-
tion involve other aspects of FITness, including evaluating the validity of
information and resolving conflicting accounts of situations. (Note also
the connection to information literacy, discussed in Section 3.2.)
This capability also involves the ability to find and evaluate informa-
tion at different levels of sophistication. Tasks range from reading a
manual to finding and using online help. Web searches may be necessary
to find more complex information. Of course, as the level of complexity
rises, it becomes increasingly important (and more difficult) to ascertain
accuracy. An individual must be prepared to evaluate the reliability of a
source, understand the nature of a shared information space such as the
Web, and regard with appropriate caution the quality of the information
retrieved.
This capability also suggests that one must be able to structure infor-
mation appropriately to make it useful. The information created must be
retrievable and useful for the intended purpose. Thus, the design process
for information structures involves elements of communication (and may
involve programming of some sort).
Key aspects of a stored-program computer, including:
* The program as a sequence of steps,
* The process of program interpretation,
* The memory as a repository for program and data (including no-
tions of memory hierarchy and associated ideas of permanence/volatil-
ity), and
* Overall organization, including relationship to peripheral devices
(e.g., I/O devices).
The appropriate emphasis is not necessarily a specific electronic real-
ization such as a particular computer, but rather the idea of a computa-
tional task as a discrete sequence of steps, the deterministic interpretation
of instructions, instruction sequencing and control flow, and the distinc-
tion between name and value. Computers do what the program tells them
to do given particular input, and if a computer exhibits a particular capa-
bility, it is because someone figured out how to break the task into a se-
quence of basic steps, i.e., how to program it.
Determining the scope, nature, and conditions under which a techno-
logical solution is intended to operate can be difficult. A solution to a
problem must be tested in two ways - to determine that the design is cor-
rect or appropriate to the problem at hand (i.e., that the solution, when
implemented correctly, will meet user needs) and to determine that the
implementation of a given design is correct.
Testing entails determining whether a proposed solution meets de-
sign goals and works under diverse conditions, taking into account that
most systems will be used in ways that were not intended, as well as in
expected ways. Testing involves identifying the uses most likely to cause
a failure, developing ways of testing for all normal modes of operation,
determining typical misuses of the system, and designing the system so
that it responds gracefully when misused. Furthermore, because some
fixes to problems may introduce more problems, special care is necessary
to fix (or manage) the initial flaws. Testing is also best seen as an activity
concurrent with design, because the alternative is to implement a com-
plete system before knowing whether the implementation is correct.
While no one can predict accurately the future course of technology,
technology inevitably changes. FITness entails the capability to adapt to
new technology efficiently and how to learn a new language or system,
building on what is already known about older, perhaps similar technolo-
gies and facilities. For example, new versions of technology and tools will
almost certainly appear, and they may offer benefits over older versions
(e.g., the new version may be faster or offer more features). At the same
time, additional functionality often comes at a cost (e.g., the need to up-
grade system resources such as memory, or the need to learn the new set
of features). Users thus must be prepared to weigh whether the benefits
of the inevitable new version outweigh its costs. Decisions as to when or
whether to upgrade, which tool to use, and how many features to learn
are examples of such adaptation.
Today, SQL-based systems9 are becoming ubiquitous in the work-
place, and personal information managers are becoming increasingly com-
mon. In the future, different approaches, perhaps Web-oriented, may be-
come the prevalent mode.
Typical of today's operating system use is the ability to install new
software, delete unwanted software, and invoke applications. There are
many other skills that could reasonably be included in this category, such
as the ability to find out from the operating system whether there is suffi-
cient disk space.
Today, electronic mail is a primary mode of computer-based communication. Variants and improvements, as well as entirely new modes of communication, are expected in the future.
4. The general concept of information encoding in binary form. Differ-
ent information encodings: ASCII, digital sound, images, and video/mov-
ies. Topics such as precision, conversion and interoperability (e.g., of file
formats), resolution, fidelity, transformation, compression, and encryp-
tion are related, as is standardization of representations to support com-
munication.
The appropriate emphasis is the notion that information that is pro-
cessed by computers and communication systems is represented by bits
(i.e., binary digits). Such a representation is a uniform way for computers
and communication systems to store and transmit all information; infor-
mation can be synthesized without a master analog source simply by cre-
ating the bits and so can be used to produce everything from Toy Story
animations to forged e-mail; symbolic information in machine-readable
form is more easily searchable than physical information.
Problems often have a variety of solutions, each with its advantages
and disadvantages, and trade-offs are often necessary in determining the
most appropriate solution. One solution may require extensive design
but result in a relatively straightforward implementation; another may
require the opposite - a simple design but a costly implementation. Fur-
thermore, any given approach to a solution will often result in compo-
nents of a system interacting in complex, unexpected ways.
A sustained activity involving information technology will typically
be complex, involving a number of tasks, such as problem clarification,
solution formulation, solution design and implementation, and testing
and evaluation of the outcome. The solution developed for the problem
will often contain several components, including both hardware and soft-
ware. A person needs to be able to plan a project, design a solution, inte-
grate the components, respond to unexpected interactions, and diagnose
what is needed from each task. Some of the steps of the project may in-
volve some type of computer programming. Such programming could
entail configuring system control panels, using and adapting existing soft-
ware packages for one's needs, or writing code in some programming
language.
Another source of complexity is the need to manage the resources
that technology provides, especially when the resources available are in-
adequate. Thus, a user of information technology needs to be able to man-
age resources: Do processes require too much time? Too much disk
space? Is the bandwidth available to download what is offered? And of
course, are there ways to perform necessary tasks that will not exceed the
limits imposed by resource availability and/or adequacy?
A third source of complexity is the fact that large information technol-
ogy-based systems often have interdependencies. That is, small changes
in one part of the system can have large effects on another part of the
system that is "apparently" separate from that part. Such interdependen-
cies can be reduced by enforcing a rigid separation between different sys-
tem parts, but this practice is much easier to describe than to implement.
Sustained reasoning starts with defining and clarifying a problem.
Understanding exactly what problem is to be solved and knowing when
it has been solved are often the most difficult aspects of problem solving.
And, because information technology will in general operate in the way
in which one directs it to operate, rather than the way in which one in-
tends it to operate, precise specification of the problem to be solved with
information technology is even more critical for solving other types of
problems.
Once the problem has been defined, multiple attempts at formulating
a solution are often required. An initial solution is often revised or im-
proved by iteration, which often causes a refinement in the definition of
the problem. Reasoning is used for planning, designing, executing, and
evaluating a solution.
The "sustained" aspect of this capability is intended to convey an in-
tegrated effort that covers days or weeks rather than a one-time event.
Thus, individuals might use desktop publishing programs, computer-as-
sisted design tools, visualization and modeling environments, Web-search
engines, or a variety of other technological resources to help implement a
solution.
The general concepts of algorithmic thinking, including functional
decomposition, repetition (iteration and/or recursion), basic data organi-
zations (record, array, list), generalization and parameterization, algo-
rithm vs. program, top-down design, and refinement. Note also that some
types of algorithmic thinking do not necessarily require the use or un-
derstanding of sophisticated mathematics. The role of programming,
which is a specific instantiation of algorithmic thinking, is discussed in
Chapter 3.
Algorithmic thinking is key to understanding many aspects of infor-
mation technology. Specifically, it is essential to comprehending how and
why information technology systems work as they do. To troubleshoot or
debug a problem in an information technology system, application, or
operation, it is essential to have some expectation of what the proper be-
havior should be, and how it might fail to be realized. Further, algorith-
mic thinking is key to applying information technology to other person-
ally relevant situations.