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 life.
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 subject.
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.
• Realizing 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.
• Computer Networks — On this page, users can find a great overview and introduction to computer networking.
• 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 computer networking.
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.
• An 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 processing.
• Linux and Symmetric Multiprocessing — This page has a history of multiprocessing, its operation in Linux, and more.
• Open 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 ones.
• The Language List — Search for a computer language and learn all about it on this resource.
• Research 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.