Computer science
From Wikipedia, the free encyclopedia
Computer science is the science of how to treat information. There are many different areas in computer science. Some of the areas consider problems in a more abstract way. Some areas need special machines, called computers. A computer scientist will need math, science, logic, and knowledge, in order to make and use computers.
Contents |
[change] Common tasks for a computer scientist
[change] Asking a question
A computer is a device which takes orders very quickly (as fast as you can give them to it), and then it works as quickly as possible, to complete the tasks.
[change] Asking the right question
Computers can do some things easily (for example: simple math, or arranging a list of names from A-to-Z). Computers cannot do some things, though. Computers cannot answer questions when there is not enough information, or when the answer does not exist. Also, computers may take too much time to complete long tasks. For example, it may take too long to find the shortest way through all of the towns in the USA - therefore, sometimes it is logical to try to find an approximation. A computer will answer these simpler questions much faster.
[change] Answering the question
Algorithms are ways to solve problems or perform tasks. Think about playing cards, for example. A computer scientist wants to sort the cards. First he wants to order them by color. Then he wants to order them by number (2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King, and Ace). The computer scientist may see different ways to sort the playing cards. He must now think about the details of the method that he will use. When he decides these details, he has created an algorithm. After making the algorithm, the scientist needs to test whether the algorithm always does what it should. Then, the scientist can see how well his program sorts the cards.
A simple but very slow algorithm would be: drop the cards, retrieve them, and check whether they are sorted. If not, do it again. This method will work, but it will probably take a very long time.
A person may do this better, by looking through all the cards, finding the first card (2 of diamonds), and putting it at the start. After this, he looks for the second card, and so on. This works much faster, and does not need much space.
Computer science separated from the other sciences near the end of the 20th century. Now, computer science uses special methods of doing things, and has its own special words. It is linked with electrical engineering, mathematics, and language science.
Computer science looks at the theoretical (not physical) parts of computers. Computer engineering looks at the physical parts of computers (the parts that a person can touch), and software engineering looks at the use of computer programs and how to make them.
[change] Parts of computer science
[change] Central math
- Boolean algebra (when something can only be true or false)
- Computer numbering formats (how computers count)
- Discrete mathematics (math with numbers a person can count)
- Symbolic logic (clear ways of talking about math)
[change] How an ideal computer works
- Algorithmic information theory (how easily a computer can answer a question?)
- Complexity theory (how much time and memory does a computer need to answer a question?)
- Computability theory (can a computer do something?)
- Information theory (math that looks at data and how to process data)
- Theory of computation (how to answer questions on a computer using algorithms)
- Graph theory (math that looks for directions from one point to another)
- Type theory (what kinds of data should computers work with?)
- Denotational semantics (math for computer languages)
- Algorithms (looks at how to answer a question)
- Compilers (turning words into computer programs)
- Lexical analysis (how to turn words into data)
- Microprogramming (how to control the most important part of a computer)
- Operating systems (simple computer programs to control different kinds of other programs in computer systems)
- Cryptography (making data safer)
[change] Computer science at work
- Artificial intelligence (making computers look intelligent)
- Computer algebra (using computers for Mathematical problems)
- Computer architecture (What should a computer look like inside)
- Computer graphics (making pictures with computers, as in CG)
- Computer networks (hooking computers to other computers)
- Computer program (how to tell a computer to do something)
- Computer programming (writing, or making, computer programs)
- Computer security (making computers and their data safe)
- Databases (a way to get and store data)
- Data structure (how to form or group data)
- Distributed computing (using more than one computer to solve a difficult problem)
- Information retrieval (getting data back)
- Operating systems (what makes a computer run, like Linux, Microsoft Windows, Mac OS)
- Programming languages (languages that a programmer uses to make computer programs)
- Program specification (how a programmer makes a computer program)
- Program verification (making sure a computer progranm does what it is supposed to do, see debugging)
- Robots (Using machines controlled by computers)
- Software engineering (making computer programs better)
[change] What computer science does
- Benchmark (testing a computer's power)
- Computer vision (how computers can see and understand images)
- Collision detection (how computers (controlling robots) do not smash against things)
- Data compression (making data smaller)
- Data structures (how computers group and sort data)
- Data acquisition (getting data)
- Design patterns (solutions to common problems)
- Digital signal processing (cleaning and "looking" at data)
- File formats (how computers store and group data in a file)
- Human-computer interaction (how humans use computers)
- Information security (keeping data safe from other people)
- Internet (a large network that hooks up nearly all computers)
- Online computations and algorithms
- Optimization (making computer programs work faster)
- Software metrics
- VLSI design (the making of a very large and complex computer system)