How to Think Like a Computer Scientist C Version

The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians, computer scientists use formal languages to denote ideas (specifica...

Full description

Saved in:
Bibliographic Details
Main Author: Downey, Allen B. (Author)
Other Authors: Scheffler, Thomas (Translator)
Format: Electronic eBook
Language:English
Published: [Place of publication not identified] Green Tea Press [1999]
Series:Open textbook library.
Subjects:
Online Access:Access online version
Tags: Add Tag
No Tags, Be the first to tag this record!
Table of Contents:
  • Chapter 1: The way of the program
  • 1.1 What is a programming language?
  • 1.2 What is a program?
  • 1.3 What is debugging?
  • 1.4 Formal and natural language
  • 1.5 The first program
  • 1.6 Glossary
  • 1.7 Exercises
  • Chapter 2: Variables and types
  • 2.1 More output
  • 2.2 Values
  • 2.3 Variables
  • 2.4 Assignment
  • 2.5 Outputting variables
  • 2.6 Keywords
  • 2.7 Operators
  • 2.8 Order of operations
  • 2.9 Operators for characters
  • 2.10 Composition
  • 2.11 Glossary
  • 2.12 Exercises
  • Chapter 3: Function
  • 3.1 Floating-point
  • 3.2 Constants
  • 3.3 Converting from double to int
  • 3.4 Math functions
  • 3.5 Composition
  • 3.6 Adding new functions
  • 3.7 Definitions and uses
  • 3.8 Programs with multiple functions
  • 3.9 Parameters and arguments
  • 3.10 Parameters and variables are local
  • 3.11 Functions with multiple parameters
  • 3.12 Functions with results
  • 3.13 Glossary
  • 3.14 Exercises
  • Chapter 4: Conditionals and recursion
  • 4.1 Conditional execution
  • 4.2 The modulus operator
  • 4.3 Alternative execution
  • 4.4 Chained conditionals
  • 4.5 Nested conditionals
  • 4.6 The return statement
  • 4.7 Recursion
  • 4.8 Infinite recursion
  • 4.9 Stack diagrams for recursive functions
  • 4.10 Glossary
  • 4.11 Exercises
  • Chapter 5: Fruitful functions
  • 5.1 Return values
  • 5.2 Program development
  • 5.3 Composition
  • 5.4 Boolean values
  • 5.5 Boolean varaiables
  • 5.6 Logical operators
  • 5.7 Bool functions
  • 5.8 Returning from main()
  • 5.9 Glossary
  • 5.10 Exercises
  • Chapter 6: Iteration
  • 6.1 Multiple assignment
  • 6.2 Iteration
  • 6.3 The while statement
  • 6.4 Tables
  • 6.5 Two-dimensional tables
  • 6.6 Encapsulation and generalization
  • 6.7 Functions
  • 6.8 More encapsulation
  • 6.9 Local varaiables
  • 6.10 More generalization
  • 6.11 Glossary
  • 6.12 Exercises
  • Chapter 7: Arrays
  • 7.1 Increment and decrement operators
  • 7.2 Accessing elements
  • 7.3 Copying arrays
  • 7.4 for loops
  • 7.5 Array length
  • 7.6 Random numbers
  • 7.7 Statistics
  • 7.8 Array of random numbers
  • 7.9 Passing an array to a function
  • 7.10 Counting
  • 7.11 Checking the other values
  • 7.12 A histogram
  • 7.13 A single-pass solution
  • 7.14 Random seeds
  • 7.15 Glossary
  • 7.16 Exercises
  • Chapter 8: Strings and things
  • 8.1 Containers for strings
  • 8.2 String variables
  • 8.3 Extracting characters from a string
  • 8.4 Length
  • 8.5 Traversal
  • 8.6 Finding a character in a string
  • 8.7 Pointers and Addresses
  • 8.8 String concatenation
  • 8.9 Assigning new values to string variables
  • 8.10 strings are not comparable
  • 8.11 Character classification
  • 8.12 Getting user input
  • 8.13 Glossary
  • 8.14 Exercises
  • Chapter 9: Structures
  • 9.1 Compound values
  • 9.2 Point objects
  • 9.3 Accessing member variables
  • 9.4 Operations on structures
  • 9.5 Structures as parameters
  • 9.6 Call by value
  • 9.7 Call by reference
  • 9.8 Rectangles
  • 9.9 Structures as return types
  • 9.10 Passing other types by reference
  • 9.11 Glossary
  • 9.12 Exercises