1. Characterizes classes of problems and solutions according to
Number of elements
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ..., 20, ..., 30, ..., 40, ..., 50
x squared
1, 4, 9, 16, 25, 36, 49, 64, 81, 100, ..., 400, ..., 900, ..., 1600, ..., 2500
2 to the x power
2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, ..., 1048576, ..., 1073741824, ..., 1099511627776, ..., 1.125899906843e+15
At 100MIPS, this would take
A fraction of a second vs. 11258999 seconds = 187649 minutes = 3127
hours = 130 days
2. Discover efficient solutions to general classes of problems.
Computer Architecture
Example: Separate processor for I/O
Example: Computers for controlling car engines. Different operating and processing requirements.
Artificial Intelligence and Robotics
1. Create computers that can accomplish tasks or behaviour that are considered alive or "human" Example: Chess-playing computers (once considered totally human)
Example: Robots (Mars Rover, etc.) walks like a human, collects samples, but in a hostile environment
Example: Robot insects at MIT
2. Learn about how humans do things by figuring out how to make machines do them Example: Laplacian-constant applied to baseball trajectories. Theory, people do laplacians automatically.
Database and Information Retrieval Efficient storage, manipulation, and retrieval of large amounts of information. Includes aspects of other areas combined to achieve effective solutions to this large, important set of applications.
Example: Banks and ATMs.
Example: Transaction processing.
Human-Computer Interaction
The design of machines so as to facilitate the natural exchange of information between humans and computers.
Example: wires
Example: switches
Example: keyboard and text display
Example: graphic displays and computer mice
Example: virtual reality interface
Numerical Computation
The science of solving large numerical equations with computers.
Example: geologists - oil companies
Example: space-flight calculations, shuttle guidance, MIR docking procedures.
Programming Languages
Example: Bits and bytes machine code – switches
Example: Assembly code
Examples: Cobol, Fortran, Basic, Pascal, LISP, C, C++, Java, and many more.
Software Engineering
Development of software systems. Specifically, the efficient specification, design, production, and verification of large software systems.
Example: 2 people developing a few thousand lines of code vs. hundreds of people developing millions of lines of code.
Example: Software for military applications - must be secure and reliable.
Example: Software for Banks