Introduction / 0: |
The Role of Algorithms |
The Origins of Computing Machines |
The Science of Algorithms |
Abstraction |
An Outline of Our Study |
Social Repercussions |
Data Storage / 1: |
Bits and Their Storage |
Main Memory |
Mass Storage |
Representing Information as Bit Patterns |
The Binary System |
Storing Integers |
Storing Fractions |
Data Compression |
Communication Errors |
Data Manipulation / 2: |
Computer Architecture |
Machine Language |
Program Execution |
Arithmetic/Logic Instructions |
Communicating with Other Devices |
Other Architectures |
Operating Systems / 3: |
The Evolution of Operating Systems |
Operating System Architecture |
Coordinating the Machine's Activities |
Handling Competition Among Processes |
Security |
Networking and the internet / 4: |
Network Fundamentals |
The Internet |
The World Wide Web |
Network Protocols |
Algorithms / 5: |
The Concept of an Algorithm |
Algorithm Representation |
Algorithm Discovery |
Iterative Structures |
Recursive Structures |
Efficiency and Correctness |
Programming Languages / 6: |
Historical Perspective |
Traditional Programming Concepts |
Procedural Units |
Language Implementation |
Object-Oriented Programming |
Programming Concurrent Activities |
Declarative Programming |
Software Engineering / 7: |
The Software Engineering Discipline |
The Software Life Cycle |
Modularity |
Design Methodologies |
Tools of the Trade |
Testing |
Documentation |
Software Ownership and Liability |
Data Abstractions / 8: |
Data Structure Basics |
Implementing Data Structures |
A Short Case Study |
Customized Data Types |
Classes and Objects |
Pointers in Machine Language |
Database Systems / 9: |
Database Fundamentals |
The Relational Model |
Object-Oriented Databases |
Maintaining Database Integrity |
Traditional File Structures |
Data Mining |
Social Impact of Database Technology |
Artificial Intelligence / 10: |
Intelligence and Machines |
Understanding Images |
Reasoning |
Artificial Neural Networks |
Genetic Algorithms |
Other Areas of Research |
Considering the Consequences |
Theory of Computation / 11: |
Functions and Their Computation |
Turing Machines |
Universal Programming Languages |
A Noncomputable Function |
Complexity of Problems |
Public Key Cryptography |
Asterisks indicate suggestions for optional sections |
Introduction / 0: |
The Role of Algorithms |
The Origins of Computing Machines |