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




 
Programming Abstractions in C: A Second Course in Computer Science 1/e

Eric S. Roberts

Published August 1997 by Addison-Wesley
Copyright 1998, 819 pp., Paper
ISBN: 0-201-54541-1
List Price:
$108.20

Inventory Status:
In-Stock
   
Summary

Written by a master teacher and author of the highly acclaimed The Art and Science of C, this new book helps students master the fundamentals of data structures while encouraging them to develop strong software engineering skills. By emphasizing modern programming concepts such as interfaces, abstraction, and encapsulation, the text provides an ideal foundation for further study of programming. With his clear explanations and engaging writing style, Professor Roberts leads students through the CS2 curriculum in a way that captures and holds their interest throughout.

Highlights

  • This book introduces several library packages to simplify the programming process, making it possible for students to concentrate on high-level conceptual issues without being distracted by the complexities of C.
  • It contains an extensive discussion of recursion, including a large number of sample programs and exercises that range in difficulty from simple recursive functions to the minimax strategy for analyzing two-player games.
  • It emphasizes the practical skills necessary to write solid, reusable code.


0201545411B04062001

Features

  • Introduces several library packages to simplify the programming process, making it possible for students to concentrate on high-level conceptual issues without being distracted by the complexities of C.
  • Contains an extensive discussion of recursion, beginning early in Chapter 4, including a large number of sample programs and exercises that range in difficulty from simple recursive functions to the minimax strategy for analyzing two-player games.
  • Contains a "looking ahead" chapter which introduces Java to prepare students for their future Java programming courses.


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.



0201545411AB04062001

Table of Contents

I. PRELIMINARIES.

An Overview of Ansi C.

What is C?

The Structure of a C Program.

Variables, Values, and Types.

Expressions.

Statements.

Functions.

Data Types in C.

Enumeration Types.

Data and Memory.

Pointers.

Arrays.

Pointers and Arrays.

Records.

Dynamic Allocation.

Libraries and Interfaces.

The Concept of an Interface.

Random Numbers.

Strings.

The Standard I/O Library.

Other ANSI Libraries.

II. RECURSION AND ALGORITHMIC ANALYSIS.

Introduction to Recursion.

A Simple Example of Recursion.

The Factorial Function.

The Fibonacci Function.

Other Examples of Recursion.

Thinking Recursively.

Recursive Procedures.

The Towers of Hanoi.

Generating Permutations.

Graphical Applications of Recursion.

Backtracing Algorithms.

Solving a Maze by Recursive Backtracking.

Backtracking and Games.

Analysis of Algorithms.

The Sorting Problem.

Computational Complexity and Big-O Notation.

Recursion to the Rescue.

Standard Complexity Classes.

The Quicksort Algorithm.

Mathematical Induction.

III. DATA ABSTRACTION.

Abstract Data Types.

Stacks.

Defining a Stack ADT.

Using Stacks in an Application.

Implementing the Stack Abstraction.

Defining a Scanner ADT.

Efficiency and ADTs.

The Concept of an Editor Buffer.

Defining the Buffer Abstraction.

Implementing the Editor Using Arrays.

Implementing the Editor Using Stacks.

Implementing the Editor Using Linked Lists.

Linear Structures: Stacks and Queues.

Stacks Revisited.

Queues.

Simulations Involving Queues.

Symbol Tables.

Designing the Symbol Table Interface.

Hash Tables.

Using Functions as Data.

Mapping Functions.

Iterators.

Command Dispatch Tables.

IV. RECURSIVE DATA.

Recursive Lists.

The Recursive Formulation of a List.

Defining a List Abstraction.

Generalized List Structure.

Trees.

Family Trees.

Binary Search Trees.

Balanced Trees.

Defining a General Interface for Binary Search Trees.

Expression Trees.

Overview of the Interpreter.

Understanding the Abstract Structure of Expressions.

Representing Expressions as a Concrete Type.

Parsing an Expression.

Evaluating an Expression.

Sets.

Sets as a Mathematical Abstraction.

Designing a Set Interface.

Implementing the Set Package.

Designing a Polymorphic Iterator.

Enhancing the Efficiency of Integer Sets.

Graphs.

The Structure of a Graph.

A Standalone Interface for Graphs.

Implementation Strategies for Graphs.

A Set-Based Interface for Graphs.

Graph Traversals.

Finding Minimum Paths.

Looking Ahead.

The Concept of Object-Oriented Programming.

A Brief Tour of the Java Programming Language.

Interactive Programming. 0201545411T04062001




back to top