Like any professional, a computer scientist must have an understanding of all of the subdisciplines
of the field. Some of the major disciplines of computer science are algorithms, programming, programming
languages, computer hardware, networking, operating systems, database systems, distributed computing, and
the ethical issues surrounding the use of computer technology.
There are two major schools of thought when it comes to the education of computer scientists. The depth-first
approach is to study one particular topic in depth. For example, many computer science degree programs start
out with a course in programming. After taking such a course, students will be proficient programmers, but
clearly they will not have enough knowledge of the other subdisciplines of the field to be considered computer
scientists.
A second approach is to cover many of the subdisciplines of computer science, but only to the depth
required to teach a basic understanding of the principles of each discipline. After obtaining an overall view of
the field, students will then study certain subdisciplines in depth. This is referred to as the breadth-first
approach, and is the approach we chose to use in this book.
The organization of this text follows the description of computing given in the first section of this chapter.
Pages:
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44