This book provides a solid introduction to computer science that emphasizes software engineering and the development of good programming style. Writing in an engaging style, Stanford professor Eric Roberts makes difficult concepts accessible and exciting. The text focuses on the use of libraries and abstractions, which are essential to modern programming. Moreover, by using libraries to hide C's complexity, Roberts introduces topics in an order that allows students to master each one individually. As soon as the student has the background to understand the details, Roberts reveals the underlying implementation of each library. With this approach, the libraries themselves demonstrate the power of abstraction.
Sprache
Verlagsort
Verlagsgruppe
Zielgruppe
Für höhere Schule und Studium
Maße
Höhe: 232 mm
Breite: 189 mm
Dicke: 38 mm
ISBN-13
978-0-201-54322-3 (9780201543223)
Schweitzer Klassifikation
Eric S. Roberts is a Professor of Computer Science at Stanford University and the department's Associate Chair for Educational Affairs. He is also the Charles Simonyi Professor for Innovation in Teaching. After receiving his Ph.D. in Applied Mathematics from Harvard University in 1980, Dr. Roberts founded and chaired the computer science department at Wellesley College. He then worked for five years as a researcher for Digital Equipment Corporation's Systems Research Center in Palo Alto, California. Dr. Roberts is also the author of The Art and Science of C, published by Addison-Wesley in 1995.
0201543222AB04062001
(All chapters contain a Summary and Review Questions, and all chapters, except Chapter 1, conclude with Programming Exercises.)
Introduction.
A Brief History of Computing.
What is Computer Science?
A Brief Tour of Computer Hardware.
Algorithms.
Programming Languages and Compilation.
Programming Errors and Debugging.
Software Maintenance.
The Importance of Software Engineering.
Some Thoughts on the C Programming Language.
I. THE BASICS OF C PROGRAMMING.
Learning by Example.
The "Hello World" Program.
A Program to Add Two Numbers.
Perspectives on the Programming Process.
Data Types.
Expressions.
Problem Solving.
Programming Idioms and Paradigms.
Solving Problems on a Larger Scale.
Control Statements.
An Exercise in Debugging.
Formatted Output.
Crafting a Program.
Statement Forms.
Simple Statements.
Control Statements.
Boolean Data.
The if Statement.
The switch Statement.
The while Statement.
The for Statement.
Functions.
Using Library Functions.
Function Declarations.
Writing Your Own Functions.
Mechanics of the Function-Calling Process.
Procedures.
Stepwise Refinement.
Algorithms.
Testing for Primality.
Computing the Greatest Common Divisor.
Numerical Algorithms.
Series Expansion.
Specifying the Size of Numeric Types.
II. LIBRARIES AND MODULAR DEVELOPMENT.
Libraries and Interfaces: A Simple Graphics Package.
The Concept of an Interface.
An Introduction to the Graphics Library.
Building Your Own Tools.
Solving a Larger Problem.
Designing Interfaces: A Random Number Library.
Interface Design.
Generating Random Numbers by Computer.
Saving Tools in Libraries.
Evaluating the Design of random.h Interface.
Using the Random-Number Package.
Strings and Characters.
The Principle of Enumeration.
Characters.
Strings as Abstract Data.
The strlib.h Interface.
Modular Development.
Pig Latin-A Case Study in Modular Development.
Maintaining Internal State within a Module.
Implementing a Scanner Abstraction.
III. COMPOUND DATA TYPES.
Arrays.
Introduction to Arrays.
Internal Representation of Data.
Passing Arrays as Parameters.
Using Arrays for Tabulation.
Static Initialization of Arrays.
Multidimensional Arrays.
Searching and Sorting.
Searching.
Sorting.
Pointers.
Using Addresses as Data Values.
Pointer Manipulation in C.
Passing Parameters by Reference.
Pointers and Arrays.
Dynamic Allocation.
Strings Revisited.
Conceptual Representations of the Type string.
The ANSI String Library.
Implementing the strlib.h Library.
Files.
Text Files.
Using Files in C.
Character I/O.
Line-oriented I/O.
Formatted I/O.
Records.
The Concept of the Data Record.
Using Records in C.
Combining Records and Arrays.
Pointers to Records.
Building a Database of Records.
Designing a Record-Based Application.
Looking Ahead.
Recursion.
Abstract Data Types.
Analysis of Algorithms.
Summary.
Review Questions.
Programming Exercises.
Appendix A. Summary of C Syntax and Structure.
Appendix B. Library Sources.
Includes instructions for installing the libraries, sample course syllabus, extra assignments, examinations and solutions. 0201543222T04062001