After reading this chapter, you should realize that there is much more to computer science than simply writing
programs. 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.
It begins with a discussion of algorithms, how they are developed, and how they may be compared. We also
introduce a formal model of computation. After reading this chapter you will have a basic understanding of
algorithm development and will be able to develop algorithms to solve simple problems.
After studying algorithms, the text will focus on the basics of computer hardware. In this chapter you will
learn what the major components of the computer are and how they work together. You will also learn about the
binary number system and see how it can be used to encode information at the hardware level.
The next two chapters will focus on programming. We will first study software in general and discuss
how high-level languages can be constructed to provide models in which algorithms can be expressed, and
ultimately expressed in a way that the hardware can work with. In the next chapter we will focus on programming
using the programming language Java. The goal of this chapter is not to make you an expert programmer,
but instead to introduce you to the basics of programming using a language that is readily available and
in wide use.
After learning the fundamentals of programming we will focus on operating systems, networking, and
databases. The topics covered in these chapters will address common techniques used to manage computer
hardware, provide access to network resources, and manage and store data. Almost every modern computer
application uses the technologies discussed in these chapters.
The last chapter in the book will discuss some of the social issues of computing. In this chapter we
will discuss intellectual property rights and conflicts, privacy of data, “hacking,” and viruses. We will also discuss
our professional responsibilities when lives depend on the systems on which we work.
No comments:
Post a Comment