Online Resource Guide To Computer Science
Most people enjoy the benefits of the computer revolution in home computers,
portable data devices, the Internet, and more without ever considering the science
behind it. Yet without the discipline of computer science, there would be no computers
and no advances in computer technology. As the study of the theoretical theories,
foundations, and practices of processing information in order to apply it in the design
of computer hardware and software, computer science is absolutely essential to the
modern world. Computer scientists develop new ways to process information, create new
technologies, develop ways to expand upon existing technologies, and much more, all for
making computers and their benefits a more practical and integrated part of everyday
Computer science is a fascinating field that, like other sciences, has many
subfields within it. The following represents a list of the major subfields of computer
science, along with a description of that field and links to further information on the
Algorithms / Data Structures
In computer science, an algorithm is a piece of computer logic that software
creators and developers write in order to get a computer to perform a specific task. An
algorithm can be quite simple or very complex. For example, a programmer might write an
algorithm that directs the computer to reset its clock each year when daylight savings
time begins. A more complex algorithm might tell the computer to reset the clock for
daylight savings time, but not to do so until after 12 pm on the day of the change and
not until the user has opened the word processing program. Basically, any process that
happens on a computer requires an algorithm.
Algorithms can be written in concert with the computer’s data structure in
order to determine where and how a particular file might be saved. Data structures
refer simply to the different ways a computer stores, organizes, and accesses
information for efficient and practical use. There are many different data structures,
and new ones are being created all the time.
• Algorithms and Data
Structures Research and Reference Material — Learn all about computer data
structures and the use of algorithms on this page.
• Design and Analysis
of Algorithms — This comprehensive page examines computer algorithms,
explains what they are used for, and much more.
Artificial intelligence is typically associated with things like robots and other
computer processes and applications that interact with human beings in a human-like
manner. The field is much broader than that, encompassing the study of the intelligence
of machines and the creation of machines that display intelligence spontaneously,
solving problems on their own and so forth. Artificial intelligence applications sort
through data, provide medical diagnoses, and perform other functions based on their
programming and the amount of information given to them. It is one of the fastest
growing areas of computer science as people rely more and more upon computers to do
tasks that were once thought to be the sole domain of human beings.
the Ultimate Promises of Computing — Here is an article about the history of
artificial intelligence and some of its modern complications.
• What Is
Artificial Intelligence? — Stanford University hosts this site with answers
to the most commonly asked questions about artificial intelligence.
Though its name is similar to that of computer science, computational science is
also a subfield within the broader computer science discipline. Computational science
incorporates mathematical models and quantitative analysis, seeking to write and use
models and quantitative tools that can be used within the other sciences. Computational
scientists are an essential part of today’s scientific world as they create
programs to simulate certain physical conditions, perform repeated experiments and data
compilation, and much more.
• Computational Science &
Discovery — Computational Science & Discovery is an
international journal dedicated to the field of computational science.
• Overview of
Computational Science — As the title indicates, this site provides a thorough
overview of the relatively new field of computational science.
Computer networks affect the ordinary lives of human beings far more than anyone
could have imagined before the late twentieth century. A computer network is simply a
collection of two or more computers that, via their connection, allow different users
to share information, communicate with one another, and much more. In computer science,
those who specialize in computer networks work on developing new ways to connect
computers, make these connections more efficient, and so forth. Essentially, the
Internet is a giant computer network.
Networks — On this page, users can find a great overview and introduction to
• Networks — The
basic information on computer networks on this page has been collected with non-profit
organizations in mind, but it has good tips and explanations for the process of
The security of information stored on computers has always been a concern, but the
growth of computer networks and the Internet has made computer security a top concern
for everyone. Computer scientists who specialize in computer security work on
developing ways to prevent hackers and otherwise unauthorized personnel from accessing
a computer or computer network. Using tools like passwords, encryptions, and more,
computer security experts develop applications to help keep everyone’s machines
safe from intruders. They are the gatekeepers of today’s computer networks.
• Best Practices for Computer
Security — This page of suggested tips for computer security shows the
benefits of applying the discipline in a practical manner.
• Science and
Tech Resources Online: Computer Security — This basic introduction to
computer security also has links to other sites with information on the topic.
Digital logic takes Boolean algebra and applies it to computer circuitry. The
two-value system of Boolean logic only has two factors — true and false, which is
represented in digital logic by the numbers 1 and 0, respectively. This logic regulates
the behavior of computer circuits, opening and closing them to allow them to perform
certain functions. Ultimately, the most complex computer processes can be boiled down
to digital logic.
• Digital Circuits
— Here is a good page on the use of digital logic in digital circuits to store
and retrieve information.
Introduction to Digital Logic — This introduction to digital logic is helpful
for understanding the basic workings of a computer.
Multiprocessing refers to the use of two central processing units within a computer
or the use of two or more processors within an entire computer system. It allows for
the performance of many different tasks at once, the joint sharing of information
within one computer or between many other computers, the handling of complex tasks in a
linear fashion without taxing one processor too much, and much more. Multiprocessing
can be symmetric or asymmetric. Symmetric multiprocessing connects two or more of the
same processors to one chief memory and controls it with one instance of the operating
system. Asymmetric multiprocessing assigns each processing unit its own program or
program portion that it alone can execute during a session of data entry and
• Linux and
Symmetric Multiprocessing — This page has a history of multiprocessing, its
operation in Linux, and more.
Multiprocessing — A resource and tutorial on open multiprocessing can be
found via this link.
The operating system is the computer software program that manages computer hardware
and allows for other application software to be accessed and used easily and
efficiently. Operating systems are intermediaries between hardware and software
applications, automatically running basic processes like the order of execution, the
reading and writing of computer memory, and much more. They provide an interface for
users to access the files and programs they want without having to attend to a lot of
ancillary details. Microsoft Windows and the Mac OS are two of the most common
operating systems in use today.
• Online CS
Module: Operating Systems — Virginia Tech has put together this good online
course that deals with computer operating systems.
• Operating Systems
Lecture Notes — The history of operating systems and other information can be
found on this page.
A programming language is used by computer programs to direct the behavior of
computer software. There are several commonly known languages like BASIC, C++, and
JAVA, but computer scientists have actually developed thousands of languages over the
years. Each computer language has its own syntax and structure and is typically
designed for one or more particular algorithms that collectively form a computer
program. Computer programmers will be specialists in one or more of these languages,
and they must keep up to date as languages fall out of favor and are replaced by new
Language List — Search for a computer language and learn all about it on this
Language Overviews —Computer research language definitions and links to other
resources are the subject of this site.
Systems architecture is the name for that branch of computer science that deals with
creating conceptual models that defines what a system is and does. Its emphasis is on
how computer hardware and software should be designed, combined, and managed most
practically and efficiently. Some computer scientists focus on hardware architecture
and others will focus on software architecture. Either way, the goal is to develop a
way to make complex computer systems user-friendly, compact, and sustainable.
• Institute for Computing Systems
Architecture — The Institute for Computing Systems Architecture is dedicated
to engineering future computer systems.
• WWW Computer Architecture Page
— The University of Wisconsin Department of Computer Science hosts this in-depth
resource page on computer systems architecture.