PTG home
Catalog Search:
Search
Related Topics:
COMPUTING
Programming Languages
C




 
Art and Science of C, The: A Library Based Introduction to Computer Science 1/e

Eric S. Roberts

Published August 1994 by Addison-Wesley
Copyright 1995, 704 pp., Paper
ISBN: 0-201-54322-2
List Price:
$98.00

Inventory Status:
In-Stock
   
Preface


More Info


Summary

The Art and Science of C is specifically designed to teach introductory programming using ANSI C. Roberts uses standard software engineering strategies---procedural abstraction, modular decomposition, and information hiding---from start to finish. What is unique about this book is Roberts' use of libraries. This method has two advantages. First, Roberts uses the libraries to emphasize the techniques of procedural abstraction, modular development, and information hiding, which are essential tools for the professional programmer. By emphasizing these concepts from the very beginning to the text, students develop the skills necessary to manage complexity when it arises.

Second, the text makes the material easier for students to learn. Early in the book, Roberts introduces several new libraries that hide details from the students until they are ready to use them. The libraries give the students the power to write useful programs that they could not yet develop on their own. Later chapters reveal the implementation of those libraries, thereby allowing students to appreciate the power of abstraction. With this text, Roberts provides you with everything you'll need to manage C's inherent complexity.

Features

  • Promotes solid programming skills by including discussion of the hows as well as the whys of programming.
  • Includes helpful learning tools:
  • Review questions covering key elements end each chapter.
  • Exercises, over 175 in the text.
  • Sample programs illustrate both the mechanics of programming and the use of good programming style.
  • Buggy programs help student identity and correct bugs of their own.

Supplements

Instructor's Manual (93365)Graphics Library
Runs on the Macintosh (THINK C), the PC (Borland C/C++), and UNIX (XWindows).

Libraries
The library interfaces and associated implementations are reprinted in Appendix B of the text.

All supplemental material available on-line.



0201543222B04062001

Author Bio

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

Table of Contents

(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




back to top