Are all computer Scientists computer literate

advertisement
Are all Computer Scientists computer literate?
Lucas Venter1
Quotes:
1. Is there a Computer Scientist in the house?: Prof of Information
Systems at his inaugural lecture, after the computer running his
PowerPoint presentation crashed.
2. I HATE COMPUTERS!: Prominent Computer Scientist, in the tea room.
3. Computers zijn fijne dinge, zolank hulle werk: (Computers are nice, but
only when they work): MD of an International IT organization, after
attempting for many hours to get his home network up.
4. I don't have an email address. Donald E Knuth.
5. Switch the power off at the plug! Computer Scientist, after struggling
with the remote control of the aircon.
6. My son/daughter is very good with computers: On many occasions,
parent of failed first year student.
7. I am now at first year university level: Secretary, after completing a
week long course in MSWord.
Introduction
We live in a computerized world. The administrative processes of our society
are fully computerized. Our communications systems are computerized. Our
financial support systems are computerized. Our transport services are
computerized. Our diaries are computerized. Our vacations are planned and
booked by computer. We can even order flowers or send a get-well card by
computer. The fact is that everybody interacts with computers on a daily
basis. The computer has probably become the most useful and sophisticated
tool since mankind invented the wheel. This amazing feat has been
accomplished in a mere half century; the first digital computer, ENIAC, was
built in 1946 [i (1981)]. And in 1969 Rusch [ii] wrote:
Still to come is an era wherein the number of computers and their uses
will increase tremendously. No one can imagine where and how they
will be used or what their effect will be. Ultimately, they may become as
commonplace as the airplane, the automobile and the telephone.
Someday, it may even be necessary for every person to have at least
a working knowledge of these machines, and how they operate.
These prophetic words of Rusch has now become a reality: In 1973 Hewlett
Packard introduced the HP35 and HP65 series of calculators, which made
1
Department of Computer Science, UNISA
computing power generally available. This was followed in 1977 by the Apple
II computer, and in 1981 the IBM PC appeared. Suddenly every household
could own and use a computer. But computers also invaded other sectors of
our everyday lives. Every modern airliner has a number of computers that
drives its avionics; all telephones are connected in some way to a computer
and our cellular phones are indeed marvels of the computer age; the
computing power of the average German sedan is orders of magnitude larger
than that of ENIAC.
This revolution stimulated the development of a number of new skills, and the
rediscovery of some old skills. People had to learn to use these new
machines. New applications for the machines were constantly discovered,
and naturally some people wanted to use their machines more efficiently than
everybody else. Training programs in various aspects of computer technology
was, and still is, offered by many different institutions and organizations.
Currently, these training programs are generally classified into two categories,
namely computer literacy and computer science, but the distinction between
the two is not always clear to everybody. Our main aim in this paper is to
attempt to give meaningful definitions for the terms “computer literacy” and
“computer science”, and then in conclusion we will try to clear up some of the
confusion surrounding these concepts.
Computer Science
Definitions
We begin by giving a brief definition of Science, and then turn to a discussion
of the subject field popularly called Computer Science. As our discussion
progresses, it will become clear that it is possible to have a broader view of
the subject field.
Science is a process of searching for fundamental and universal
principles that govern causes and effects in the universe. The process
itself is a method of building, testing, and connecting falsifiable models
to describe, explain and predict a shared reality. The method includes
hypothesis, repeatable experiments and observations, and new
hypothesis. The prime criterion in determining the usefulness of a
model is the ease with which the model correctly makes predictions or
explains phenomena in the shared reality.
(http://www.csicop.org/youngskeptics/education/resources/sciencedef.html)
The point here is that Science is about searching for and studying principles
by building and testing models.
We now turn to definitions of the subject field studied in Computer Science
departments. In one of the earliest formal definitions from 1967, Newell, Perlis
and Simon [iii] states that Computer Science is
the study of computers and the major phenomena that surround them.
In this definition, the machine plays a central role. This is also the case in
some more recent definitions. For instance, the following definition comes
from the Webopedia: (http:// webopedia.lycos.com/TERM/C/ computer_
science.html, 2002)
The study of computers, including both hardware and software design.
Computer science is composed of many broad disciplines, including
artificial intelligence and software engineering. Most universities now
offer bachelor, master, and doctorate degrees in computer science.
These are very limited definitions of Computer Science. It is comparable to
the view of many first-year Computer Science students. Most modern
definitions of the subject field differs substantially from this view. The following
discussion was taken from the web site of an introductory Computer Science
course
at
Bishops
University
in
Canada
(http://www.ubishops.ca/faculty/rbrewste/csc101/, 2001)
1. Misconception 1: Computer Science is the study of computers. "CS is
no more about computers than astronomy is about telescopes, biology
is about microscopes or chemistry is about beakers and test tubes." [iv]
2. Misconception 2: Computer science is the study of how to write
computer programs.
3. Misconception 3: Computer science is the study of the uses and
applications of computers.
Computer Science is the study of algorithms, including:
a. Their formal and mathematical properties;
b. Their hardware realizations;
c. Their linguistic realizations;
d. Their applications.
This definition is the traditional scientific view of Computer Science, and
describes one aspect studied in Computer Science departments. Notice that
the machine is not even mentioned in this definition. A slightly broader view is
found on the web site of the Computer Science department at the University
of Valparaiso, Indiana, USA, (www.valpo.edu/mathcs/ what_is_cs.html, 2001):
Computer Science is, simply put, the study of computation. The study
of anything that lends itself to a computational model is a study in
Computer Science. The most fundamental concept of the discipline is
the algorithm. An algorithm is a precise sequence of instructions. ...
After the algorithm, the next most fundamental concept in Computer
Science is the data structure. A data structure is an abstract
representation of an entity. .....
The inclusion of the word 'computer' in the name of the discipline is
somewhat misleading; the study of computers is only one component
of the discipline. The origin of the name is due to the fact that the high
speed electronic computers created the need to study computation.
.....
Finally, and most importantly, computer scientists are computer
scientists because it is fun. (Not to mention lucrative career
opportunities!)
This discussion coincides with the definition of Computer Science, as
presented in the USA Federal Standard 1037C: (www.its.bldrdoc.gov/fs1037/dir-008/ 1196.htm )
computer science: The discipline that is concerned with methods and
techniques relating to data processing performed by automatic means.
data processing: The systematic performance of operations upon
data such as handling, merging, sorting, and computing. ..... Synonym
information processing .
The emphasis here is placed very much on computing: the concepts and
techniques used in this process are important. The algorithm is one aspect of
this computing process, but there are also other (non-algorithmic) processes
involved. It is also clear that the emphasis have moved away from the
machine as object of study. We are manipulating data, in order to transform it
into information. The computer is simply seen as a tool, to be used in this
process.
The ACM, together with the IEEE, refers to Computing curricula in their 2001report on curricula.
In the light of the above discussion, we can now conclude that the modern
Computer Scientist is a person who searches for and studies the principles of
Computing. One of the tools to be used in this process is the computer.
A short history of the subject field
Computing, and especially the subdiscipline Computer Science, is a very old
study field, even though it was not always called by this name.. The Greek
philosopher Euclid, (430-360BC), in his Elements, laid the foundation for
modern computer graphics. He also developed an algorithm to find the
greatest common divisor of two integers, which is used in modern
cryptography. Sir Isaac Newton (1642-1727), published (amongst many other
things) an iterative algorithm to find the roots of an equation. This method is
still used in many modern numerical methods. These are only two of an
almost endless list of scientists who studied algorithms.
In the early 19th century, the attention started to include the machine. For
instance, Charles Babbage designed a number of mechanical machines to do
rapid calculations. His difference engine was successfully built, but the design
of his programmable analytical engine was beyond the scope of instrument
builders of the time. It is remarkable to note that lady Ada Lovelace (18151852), daughter of the poet Lord Byron, designed a programming language
for this machine, even though she never had access to a working model of it.
In the 1930s and ‘40s, attention shifted strongly to a scientific study of the
machine. Alan Turing (1912-1954) in Britain and John von Neuman (19031957) in the USA published models of the ideal computing machine. Turings’
work still form the basis of any so-called theoretical computer science course.
All modern electronic computers are based on the model proposed by von
Neuman. During the second world war, both these scientists turned to more
practical work. Turing led a team of crypto-analysts who deciphered the
German Enigma machine, while von Neumann worked on the development of
the hydrogen bomb.
In the late 1950s attention shifted again, this time to programming languages
and the development of software, i.e. the communication between machine
and human. The first high-level compiler for FORTRAN appeared in 1958,
which led to a proliferation of programming languages. During this time, some
of the scientific basis of Computing was eroded. In his inaugural lecture, prof
R van der Riet [v] states:
Het grote aantal programmeertalen, de onvruchtbare discussies over
FORTRAN versus ALGOL, en die onwetenscappelijke aanvallen op
ALGOL68 zijn slechts enkele voorbeelden die het ontbreken van
algemeen aanvaarde wiskundige principes so duidelik demonstreren.
In effect, he says that at the time there is a general lack of scientific direction
in the design of programming languages. Fortunately, this is no longer the
case, due to the efforts of D E Knuth. He published volume 1 of The art of
Computer Programming in 1968. (See [vi]) Eventually, this series will consist
of seven volumes, of which three have appeared (1: Fundamental Algorithms,
2: Seminumerical Algorithms, 3: Sorting and Searching). Volumes 4
(Combinatorial Algorithms) and 5 (Syntactical algorithms) are in preparation
and will appear soon. These books have been named amongst the best
twelve scientific monographs of the twentieth century. They contain a concise,
scientific description of various aspects of Computing.
In the late 1990s and early in the 21 st century, the emphasis in Computing is
again shifting. We have amassed vast amounts of data. This data in itself is
meaningless. In order for the data to become information, we have to place
it within a certain context or give some interpretation to it. Very often, the data
must be summarized or processed in some way to become information.
Currently, a vast amount of work is done to understand this transition from
data to information. This work takes many guises: our understanding of large
databases (and data warehouses) is growing, the transport of data to and
from the database through networks (and the Internet) is studied, the actual
conversion from data to information (knowledge) is studied at many different
levels in many subjects such as Software Engineering, Project management
courses, etc., and the presentation of the information is the subject studied in
HCI courses. The data itself comes from many different sources; one of the
growing fields is the vast amount of biomedical data which must be
transformed into knowledge.
Who knows where the attention will go in the future? Perhaps back to
algorithms? This study is continuing, and new discoveries are made daily.
Perhaps back to the machine? The principles of quantum computing, which
have been well documented (see for instance http://www.sciam.com/
1998/0698issue/0698gershenfeld.html), differs substantially from the von
Neumann model. Or will some other aspect of Computing become important?
Only the future can tell.
Computer Literacy
Definitions
The term “Computer Literacy” was first used in 1976, in a paper by John
Nevison. [vii] He wrote:
Because of the widespread use of elementary computing skill, there
should be an appropriate term of this skill. It should suggest an
acquaintance with the rudiments of computer programming, much as
the term literacy connotes a familiarity with the fundamentals of reading
and writing, and it should have a precise definition that all can agree
on.
It is reasonable to suggest that a person who has written a computer
program should be called literate in computing. This is an extremely
elementary definition. Literacy is not fluency
We note that Nevison was equating “elementary computing skill” with
“rudiments of computer programming” This was written at the time when
Computer Scientists were studying the communicative aspects of Computing,
when programming languages and the development of software were the
flavours of the day. Computers were still relatively rare, and few people had
access to computers. However, two categories of computer users were
emerging. On the one hand, there were the Operators: a very powerful but
small group of people who maintained the machine. These people were often
very skillful programmers, providing an interface between the machine and
the users of the machine. On the other hand, there was a larger group of
people developing software that ran on the machine to accomplish a number
of tasks: the Programmers. This is the group of people that Nevison was
describing in his paper.
As we noted in our introduction, computers become more accessible in the
late 1970’s and early 1980’s. These new machines did not require an
Operator; instead it had a program called the Operating System that provided
the interface between machine and user. The maintenance tasks were
relegated to people who required no programming skills. The machine itself
was essentially a single-user machine. A new phenomenon arose – the user
could now buy pre-programmed software that would run on his machine. The
software would be installed on the machine, and the user simply provided
some inputs, in order to get the required output. The vast majority of users
were no longer required to have any programming skills. They needed new
skills: the ability to select and use software became increasingly important.
This proliferation in computer users led to an increasing demand for MORE
and BETTER; machines became more sophisticated, the capacity of
machines grew at an alarming rate and communication between machines
became better. All of which led to the growth of data, as mentioned in the
previous section. Now, users also need the ability to select and use tools that
can turn data into information.
Because of this change in skills required by the majority of computer users,
the definition of the term “Computer Literate” has also changed. Currently,
there are two groups of Computer Literacy courses.
The first group of literacy courses is typified by Websters’ definition of
computer literacy [viii]:
the ability to use a computer and its software to accomplish practical
tasks
No theoretical knowledge of computerized systems is assumed, the user
must simply have the skills to accomplish certain tasks. Many computer
literacy courses of this type can be found advertised in the daily press and on
the Internet. They usually consist of practical work using some standard
application, such as a word processor or spread sheet program. Most of them
will also include some aspect of Internet usage, such as teaching the user
how to use a Web browser. This type of course is at a functional level of
literacy.
Jan’s Illustrated Computer Literacy 101 (http://www.jegsworks.com/, 1997),
taught at the Roane State Community College, Tennessee, is typical of the
other group. The course has two components. The theoretical part consists
of the following lessons:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Computer Types
Applications
Input
Processing
Output
Storage
Computer to Computer communication
System Software
Programming
This covers the basic principles underlying any computer system, and
develops problem solving skills. The course also has a practical component,
namely an introduction to Microsoft Office in which functional literacy is
achieved.
In the functional approach, certain isolated skills are achieved. While this
might be useful, the second, integrated approach will develop in the learner
the ability to solve problems and complete complex tasks. Not only does the
learner learn the “how”, but also the “why” and the “when” of computer usage.
It seems generally accepted that the practical component of both groups will
include obtaining skills in working within the Microsoft Windows environment.
This is not surprising, since a very large percentage of personal computers
currently use some Microsoft-produced operating system.
Literacy in general
In the general literature on literacy, two views are predominant. On the one
hand, there is the instrumental notion of literacy, which views literacy as the
possession of certain practical skills that allows the owner to participate in a
given activity. This coincides with the functional group of courses. On the
other hand literacy can be seen as a mediational process, that help the
possessor to understand how the world is shaped by literate practices. (See
for instance [ix]) We examine this second view in some detail.
In the context of Computer Literacy, it would mean that the possessor would
have the ability to understand computerized processes. (S)he should be able
to accomplish a certain task with given software, without being taught the
specific steps required to obtain the result. The basic assumption in this view
is that the person:
1.
2.
3.
4.
5.
6.
understands the task to be completed;
can provide a series of steps that would lead to the required result;
understands the basic working of a computer;
can run the software provided;
can find a way of providing the necessary input to the software;
can perform the steps required to solve the problem with the software
provided;
7. can interpret the output provided by the software;
Step 1 requires the person to understand the principles involved, and step 2
means that the person must be able to provide an algorithm to solve the
problem. Hence the person must have some basic problem solving skills.
Steps 3 and 4, and partly step 5, would follow if the person has a basic
understanding of computer systems, such as described in the first part of
Jan’s Illustrated Computer Literacy 101. Parts 5, 6 and 7 depends on the logic
and usability of the computer system, and in particular the software. The
software must provide a way of implementing the specific algorithm that the
user has in mind, and the interface between software and user must be built
in such a way that the user can understand and use it. If the user is unable to
complete any of these steps, the software must provide some guidance. The
user should also be able to experiment with the software in order to learn how
to use it.
While functional computer literacy is relatively easy to achieve, the general
consensus in the literature indicates that the integrated approach is more
desirable. This approach will eventually lead to computer fluency.
A final definition
A comprehensively computer literate person is someone who has a certain
attitude; a willingness to study the problem at hand in detail (problem solving
skill), and a willingness and ability to experiment with the given computer
system, both hardware and software.
On the other hand, the given computer system must function correctly and in
a logical way, and must provide the user with the means to communicate with
it. Hence the literacy of a person also depends upon the computer system
that (s)he is using.
Are all computer Scientists Computer Literate?
In conclusion, we return to the question posed in our title. This question arose
out of numerous discussions I have had with many people in formal and
informal situations. You saw some quotations at the beginning of this paper.
Every computer scientist has heard or made statements like those on
numerous occasions. Even worse, computer scientists are sometimes
accused of knowing nothing about computers. People expect computer
scientists to know everything about all aspects of computer technology. This
is obviously not possible. The question then is: what can you expect from the
average computer scientist?
Most computer scientists will be functionally literate (even functionally fluent)
in at least one aspect, namely that area which supports their area of
expertise.
The computer scientist is experienced at studying the underlying principles of
a process, and then applying these principles. The computer scientist can
hence, when required to do so, become comprehensively literate in virtually
any aspect of computer technology since (s)he already has the problem
solving skills and the willingness to experiment with computer systems.
In general, most scientists with a mathematics-based training are trained
problem solvers. If they are also willing to learn the computer basic, they too
can become comprensively computer literate. Computer literacy does not
recide solely in the realm of computer science.
References
[i[ Stern, Nancy B. 1981. From ENIAC to UNIVAC: an appraisal of the
Eckert_Mauchly computers. Bedford, Mass: Digital press.
[ii] Rusch, Richard B. 1969. Computers: Their history and how they work. New
York: Simon and Schuster.
[iii] Newell, A., Perlis, A. & Simon, H. 1967. What is computer science?
Science, 157, 1373-4.
[iv] Parberry, I and Fellows, M R. 1993. SIGACT Trying to Get Children
Excited About CS, Computing Research News, Vol. 5, No. 1, p. 7.
[v] van der Riet, R P. 1971. Wiskunde, Computers en Computerwiskunde.
Vrije Universiteit Amsterdam. Inaugural Lecture.
[vi] Knuth, D E. 1968. The Art of Computer Programming V1: Fundamental
Algorithms. Reading, Massachusetts: Addison Wesley
[vii] Nevison, John M, 1976. Computing in the Liberal Arts College, Science,
Oct. 22, pp.396-402
[viii] Webster's II New College Dictionary. 1995. New York: Houghton Mifflin
Company.
[ix] Jones, B. 1991.Critical Computer Literacy. PhD Thesis, University of
California, San Diego.
Download