1. Programming abstractions in C++ [2014]
- Book
- xiii, 943 pages : illustrations ; 24 cm
- Contents 1 Overview of C++ 1 1.1 Your first C++ program 2 1.2 The history of C++ 3 1.3 The structure of a C++ program 6 1.4 Variables 14 1.5 Data types 19 1.6 Expressions 26 1.7 Statements 36 Summary 47 Review questions 48 Exercises 50 2 Functions and Libraries 55 2.1 The idea of a function 56 2.2 Libraries 59 2.3 Defining functions in C++ 61 2.4 The mechanics of function calls 65 2.5 Reference parameters 73 2.6 Interfaces and implementations 78 2.7 Principles of interface design 85 2.8 Designing a random number library 90 2.9 Introduction to the Stanford libraries 107 Summary 112 Review questions 114 Exercises 115 3 Strings 125 3.1 Using strings as abstract values 126 3.2 String operations 129 3.3 The <cctype> library 137 3.4 Modifying the contents of a string 138 3.5 The legacy of C-style strings 139 3.6 Writing string applications 140 3.7 The strlib.h library 146 Summary 147 Review questions 148 Exercises 149 4 Streams 159 4.1 Using strings as abstract values 160 4.2 Formatted input 165 4.3 Data files 167 4.4 Class hierarchies 181 4.5 The simpio.h and filelib.h libraries 186 Summary 188 Review questions 189 Exercises 190 5 Collections 195 5.1 The Vector class 197 5.2 The Stack class 211 5.3 The Queue class 217 5.4 The Map class 226 5.5 The Set class 232 5.6 Iterating over a collection 236 Summary 243 Review questions 245 Exercises 246 6 Designing Classes 261 6.1 Representing points 262 6.2 Operator overloading 268 6.3 Rational numbers 281 6.4 Designing a token scanner class 292 6.5 Encapsulating programs as classes 301 Summary 303 Review questions 305 Exercises 306 7 Introduction to Recursion 315 7.1 A simple example of recursion 316 7.2 The factorial function 318 7.3 The Fibonacci function 325 7.4 Checking palindromes 332 7.5 The binary search algorithm 335 7.6 Mutual recursion 336 7.7 Thinking recursively 338 Summary 340 Review questions 342 Exercises 344 8 Recursive Strategies 349 8.1 The Towers of Hanoi 350 8.2 The subset-sum problem 361 8.3 Generating permutations 364 8.4 Graphical recursion 368 Summary 375 Review questions 375 Exercises 376 9 Backtracking Algorithms 389 9.1 Recursive backtracking in a maze 390 9.2 Backtracking and games 400 9.3 The minimax algorithm 409 Summary 415 Review questions 416 Exercises 417 10 Algorithmic Analysis 429 10.1 The sorting problem 430 10.2 Computational complexity 435 10.3 Recursion to the rescue 443 10.4 Standard complexity classes 449 10.5 The Quicksort algorithm 452 10.6 Mathematical induction 458 Summary 462 Review questions 463 Exercises 466 11 Pointers and Arrays 473 11.1 The structure of memory 474 11.2 Pointers 484 11.3 Arrays 494 11.4 Pointer arithmetic 500 Summary 506 Review questions 508 Exercises 510 12 Dynamic Memory Management 515 12.1 Dynamic allocation and the heap 516 12.2 Linked lists 519 12.3 Freeing memory 523 12.4 Defining a CharStack class 527 12.5 Heap-stack diagrams 536 12.6 Unit testing 543 12.7 Copying objects 546 12.8 The uses of const 550 12.9 Efficiency of the CharStack class 558 Summary 560 Review questions 562 Exercises 564 13 Efficiency and Representation 569 13.1 Software patterns for editing text 570 13.2 Designing a simple text editor 572 13.3 An array-based implementation 579 13.4 A stack-based implementation 586 13.5 A list-based implementation 591 Summary 607 Review questions 608 Exercises 610 14 Linear Structures 615 14.1 Templates 616 14.2 Implementing stacks 619 14.3 Implementing queues 634 14.4 Implementing vectors 649 14.5 Integrating prototypes and code 656 Summary 657 Review questions 658 Exercises 659 15 Maps 663 15.1 Implementing maps using vectors 664 15.2 Lookup tables 668 15.3 Hashing 671 15.4 Implementing the HashMap class 682 Summary 683 Review questions 684 Exercises 685 16 Trees 689 16.1 Family trees 691 16.2 Binary search trees 693 16.3 Balanced trees 706 16.4 Implementing maps using BSTs 717 16.5 Partially ordered trees 719 Summary 722 Review questions 724 Exercises 727 17 Sets 737 17.1 Sets as a mathematical abstraction 738 17.2 Expanding the set interface 742 17.3 Implementation strategies for sets 747 17.4 Optimizing sets of small integers 753 Summary 761 Review questions 762 Exercises 764 18 Graphs 767 18.1 The structure of a graph 768 18.2 Representation strategies 772 18.3 A low-level graph abstraction 776 18.4 Graph traversals 783 18.5 Defining a Graph class 789 18.6 Finding shortest paths 804 18.7 Algorithms for searching the web 808 Summary 812 Review questions 813 Exercises 815 19 Inheritance 823 19.1 Simple inheritance 824 19.2 A hierarchy of graphical shapes 832 19.3 A class hierarchy for expressions 841 19.4 Parsing an expression 861 19.5 Multiple inheritance 870 Summary 873 Review questions 875 Exercises 877 20 Strategies for iteration 885 20.1 Using iterators 886 20.2 Using functions as data values 890 20.3 Encapsulating data with functions 899 20.4 The STL algorithms library 904 20.5 Functional programming in C++ 907 20.6 Implementing iterators 911 Summary 918 Review questions 920 Exercises 921 A Stanford library interfaces 927 Index 1025.
- (source: Nielsen Book Data)9780133454840 20160612
(source: Nielsen Book Data)9780133454840 20160612
- Contents 1 Overview of C++ 1 1.1 Your first C++ program 2 1.2 The history of C++ 3 1.3 The structure of a C++ program 6 1.4 Variables 14 1.5 Data types 19 1.6 Expressions 26 1.7 Statements 36 Summary 47 Review questions 48 Exercises 50 2 Functions and Libraries 55 2.1 The idea of a function 56 2.2 Libraries 59 2.3 Defining functions in C++ 61 2.4 The mechanics of function calls 65 2.5 Reference parameters 73 2.6 Interfaces and implementations 78 2.7 Principles of interface design 85 2.8 Designing a random number library 90 2.9 Introduction to the Stanford libraries 107 Summary 112 Review questions 114 Exercises 115 3 Strings 125 3.1 Using strings as abstract values 126 3.2 String operations 129 3.3 The <cctype> library 137 3.4 Modifying the contents of a string 138 3.5 The legacy of C-style strings 139 3.6 Writing string applications 140 3.7 The strlib.h library 146 Summary 147 Review questions 148 Exercises 149 4 Streams 159 4.1 Using strings as abstract values 160 4.2 Formatted input 165 4.3 Data files 167 4.4 Class hierarchies 181 4.5 The simpio.h and filelib.h libraries 186 Summary 188 Review questions 189 Exercises 190 5 Collections 195 5.1 The Vector class 197 5.2 The Stack class 211 5.3 The Queue class 217 5.4 The Map class 226 5.5 The Set class 232 5.6 Iterating over a collection 236 Summary 243 Review questions 245 Exercises 246 6 Designing Classes 261 6.1 Representing points 262 6.2 Operator overloading 268 6.3 Rational numbers 281 6.4 Designing a token scanner class 292 6.5 Encapsulating programs as classes 301 Summary 303 Review questions 305 Exercises 306 7 Introduction to Recursion 315 7.1 A simple example of recursion 316 7.2 The factorial function 318 7.3 The Fibonacci function 325 7.4 Checking palindromes 332 7.5 The binary search algorithm 335 7.6 Mutual recursion 336 7.7 Thinking recursively 338 Summary 340 Review questions 342 Exercises 344 8 Recursive Strategies 349 8.1 The Towers of Hanoi 350 8.2 The subset-sum problem 361 8.3 Generating permutations 364 8.4 Graphical recursion 368 Summary 375 Review questions 375 Exercises 376 9 Backtracking Algorithms 389 9.1 Recursive backtracking in a maze 390 9.2 Backtracking and games 400 9.3 The minimax algorithm 409 Summary 415 Review questions 416 Exercises 417 10 Algorithmic Analysis 429 10.1 The sorting problem 430 10.2 Computational complexity 435 10.3 Recursion to the rescue 443 10.4 Standard complexity classes 449 10.5 The Quicksort algorithm 452 10.6 Mathematical induction 458 Summary 462 Review questions 463 Exercises 466 11 Pointers and Arrays 473 11.1 The structure of memory 474 11.2 Pointers 484 11.3 Arrays 494 11.4 Pointer arithmetic 500 Summary 506 Review questions 508 Exercises 510 12 Dynamic Memory Management 515 12.1 Dynamic allocation and the heap 516 12.2 Linked lists 519 12.3 Freeing memory 523 12.4 Defining a CharStack class 527 12.5 Heap-stack diagrams 536 12.6 Unit testing 543 12.7 Copying objects 546 12.8 The uses of const 550 12.9 Efficiency of the CharStack class 558 Summary 560 Review questions 562 Exercises 564 13 Efficiency and Representation 569 13.1 Software patterns for editing text 570 13.2 Designing a simple text editor 572 13.3 An array-based implementation 579 13.4 A stack-based implementation 586 13.5 A list-based implementation 591 Summary 607 Review questions 608 Exercises 610 14 Linear Structures 615 14.1 Templates 616 14.2 Implementing stacks 619 14.3 Implementing queues 634 14.4 Implementing vectors 649 14.5 Integrating prototypes and code 656 Summary 657 Review questions 658 Exercises 659 15 Maps 663 15.1 Implementing maps using vectors 664 15.2 Lookup tables 668 15.3 Hashing 671 15.4 Implementing the HashMap class 682 Summary 683 Review questions 684 Exercises 685 16 Trees 689 16.1 Family trees 691 16.2 Binary search trees 693 16.3 Balanced trees 706 16.4 Implementing maps using BSTs 717 16.5 Partially ordered trees 719 Summary 722 Review questions 724 Exercises 727 17 Sets 737 17.1 Sets as a mathematical abstraction 738 17.2 Expanding the set interface 742 17.3 Implementation strategies for sets 747 17.4 Optimizing sets of small integers 753 Summary 761 Review questions 762 Exercises 764 18 Graphs 767 18.1 The structure of a graph 768 18.2 Representation strategies 772 18.3 A low-level graph abstraction 776 18.4 Graph traversals 783 18.5 Defining a Graph class 789 18.6 Finding shortest paths 804 18.7 Algorithms for searching the web 808 Summary 812 Review questions 813 Exercises 815 19 Inheritance 823 19.1 Simple inheritance 824 19.2 A hierarchy of graphical shapes 832 19.3 A class hierarchy for expressions 841 19.4 Parsing an expression 861 19.5 Multiple inheritance 870 Summary 873 Review questions 875 Exercises 877 20 Strategies for iteration 885 20.1 Using iterators 886 20.2 Using functions as data values 890 20.3 Encapsulating data with functions 899 20.4 The STL algorithms library 904 20.5 Functional programming in C++ 907 20.6 Implementing iterators 911 Summary 918 Review questions 920 Exercises 921 A Stanford library interfaces 927 Index 1025.
- (source: Nielsen Book Data)9780133454840 20160612
(source: Nielsen Book Data)9780133454840 20160612
Engineering Library (Terman)
Engineering Library (Terman) | Status |
---|---|
On reserve: Ask at circulation desk | |
QA76.73 .C153 R63 2014 | Unknown 2-hour loan |
QA76.73 .C153 R63 2014 | Unknown 2-hour loan |
CS-106B-01, ENGR-70B-01
- Course
- CS-106B-01 -- Programming Abstractions
- Instructor(s)
- Gregg, Christopher
- Course
- ENGR-70B-01 -- Programming Abstractions
- Instructor(s)
- Gregg, Christopher
- Book
- xvii, 587 p. : ill. ; 24 cm.
- Chapter 1. Introduction 1.1 A Brief History of Computing 1.2 What Is Computer Science? 1.3 A Brief Tour of Computer Hardware 1.4 Algorithms 1.5 Stages in the Programming Process 1.6 Java and the Object-Oriented Paradigm 1.7 Java and the World Wide Web Chapter 2. Programming by Example 2.1 The "Hello World" Program 2.2 Perspectives on the Programming Process 2.3 A Program to Add Two Numbers 2.4 Programming Idioms and Patterns 2.5 Classes and Objects 2.6 Graphical Programs Chapter 3. Expressions 3.1 Primitive Data Types 3.2 Constants and Variables 3.3 Operators and Operands 3.4 Assignment Statements 3.5 Boolean Expressions 3.6 Designing for Change Chapter 4. Statement Forms 4.1 Statement Types in Java 4.2 Control Statements and Problem Solving 4.3 The if Statement 4.4 The switch Statement 4.5 The while Statement 4.6 The for Statement Chapter 5. Methods 5.1 A Quick Overview of Methods 5.2 Writing Your Own Methods 5.3 Mechanics of the Method-Calling Process 5.4 Decomposition 5.5 Algorithmic Methods Chapter 6. Objects and Classes 6.1 Using the RandomGenerator Class 6.2 The javadoc Documentation System 6.3 Defining Your Own Classes 6.4 Representing Student Information 6.5 Rational Numbers 6.6 Extending Existing Classes Chapter 7. Objects and Memory 7.1 The Structure of Memory 7.2 The Allocation of Memory to Variables 7.3 Primitive Types versus Objects 7.4 Linking Objects Together Chapter 8. Strings and Characters 8.1 The Principle of Enumeration 8.2 Characters 8.3 Strings as an Abstract Idea 8.4 Using the Methods in the String Class 8.5 A Case Study in String Processing Chapter 9. Object-Oriented Graphics 9.1 The acm.graphics Model 9.2 Structure of the acm.graphics Package 9.3 Using the Shape Classes 9.4 Creating Compound Objects Chapter 10. Event-Driven Programs 10.1 The Java Event Model 10.2 A Simple Event-Driven Program 10.3 Responding to Mouse Events 10.4 Responding to Keyboard Events 10.5 Creating a Simple GUI 10.6 The Swing Interactor Hierarchy 10.7 Managing Component Layout 10.8 Using the TableLayout Class Chapter 11. Arrays and ArrayLists 11.1 Introduction to Arrays 11.2 Internal Representation of Arrays 11.3 Passing Arrays as Parameters 11.4 Using Arrays for Tabulation 11.5 Initialization of Arrays 11.6 Multidimensional Arrays 11.7 Image Processing 11.8 The ArrayList Class Chapter 12. Searching and Sorting 12.1 Searching 12.2 Sorting 12.3 Assessing Algorithmic Efficiency 12.4 Using Data Files Chapter 13. Collection Classes 13.1 The ArrayList Class Revisited 13.2 The HashMap Class 13.3 The Java Collections Framework 13.4 Principles of Object-Oriented Design Chapter 14. Looking Ahead 14.1 Recursion 14.2 Concurrency 14.3 Using the Network 14.4 Programming Patterns.
- (source: Nielsen Book Data)9780321486127 20160527
(source: Nielsen Book Data)9780321486127 20160527
- Chapter 1. Introduction 1.1 A Brief History of Computing 1.2 What Is Computer Science? 1.3 A Brief Tour of Computer Hardware 1.4 Algorithms 1.5 Stages in the Programming Process 1.6 Java and the Object-Oriented Paradigm 1.7 Java and the World Wide Web Chapter 2. Programming by Example 2.1 The "Hello World" Program 2.2 Perspectives on the Programming Process 2.3 A Program to Add Two Numbers 2.4 Programming Idioms and Patterns 2.5 Classes and Objects 2.6 Graphical Programs Chapter 3. Expressions 3.1 Primitive Data Types 3.2 Constants and Variables 3.3 Operators and Operands 3.4 Assignment Statements 3.5 Boolean Expressions 3.6 Designing for Change Chapter 4. Statement Forms 4.1 Statement Types in Java 4.2 Control Statements and Problem Solving 4.3 The if Statement 4.4 The switch Statement 4.5 The while Statement 4.6 The for Statement Chapter 5. Methods 5.1 A Quick Overview of Methods 5.2 Writing Your Own Methods 5.3 Mechanics of the Method-Calling Process 5.4 Decomposition 5.5 Algorithmic Methods Chapter 6. Objects and Classes 6.1 Using the RandomGenerator Class 6.2 The javadoc Documentation System 6.3 Defining Your Own Classes 6.4 Representing Student Information 6.5 Rational Numbers 6.6 Extending Existing Classes Chapter 7. Objects and Memory 7.1 The Structure of Memory 7.2 The Allocation of Memory to Variables 7.3 Primitive Types versus Objects 7.4 Linking Objects Together Chapter 8. Strings and Characters 8.1 The Principle of Enumeration 8.2 Characters 8.3 Strings as an Abstract Idea 8.4 Using the Methods in the String Class 8.5 A Case Study in String Processing Chapter 9. Object-Oriented Graphics 9.1 The acm.graphics Model 9.2 Structure of the acm.graphics Package 9.3 Using the Shape Classes 9.4 Creating Compound Objects Chapter 10. Event-Driven Programs 10.1 The Java Event Model 10.2 A Simple Event-Driven Program 10.3 Responding to Mouse Events 10.4 Responding to Keyboard Events 10.5 Creating a Simple GUI 10.6 The Swing Interactor Hierarchy 10.7 Managing Component Layout 10.8 Using the TableLayout Class Chapter 11. Arrays and ArrayLists 11.1 Introduction to Arrays 11.2 Internal Representation of Arrays 11.3 Passing Arrays as Parameters 11.4 Using Arrays for Tabulation 11.5 Initialization of Arrays 11.6 Multidimensional Arrays 11.7 Image Processing 11.8 The ArrayList Class Chapter 12. Searching and Sorting 12.1 Searching 12.2 Sorting 12.3 Assessing Algorithmic Efficiency 12.4 Using Data Files Chapter 13. Collection Classes 13.1 The ArrayList Class Revisited 13.2 The HashMap Class 13.3 The Java Collections Framework 13.4 Principles of Object-Oriented Design Chapter 14. Looking Ahead 14.1 Recursion 14.2 Concurrency 14.3 Using the Network 14.4 Programming Patterns.
- (source: Nielsen Book Data)9780321486127 20160527
(source: Nielsen Book Data)9780321486127 20160527
Engineering Library (Terman)
Engineering Library (Terman) | Status |
---|---|
On reserve: Ask at circulation desk | |
QA76.73 .J38 R59 2008 | Unknown 2-hour loan |
QA76.73 .J38 R59 2008 | In-library use 2-hour loan |
QA76.73 .J38 R59 2008 | Unknown 2-hour loan |
QA76.73 .J38 R59 2008 | Unknown 2-hour loan |
CS-106A-01, CS-106B-01, ENGR-70A-01, ENGR-70B-01
- Course
- CS-106A-01 -- Programming Methodology
- Instructor(s)
- Troccoli, Nicholas Paul
- Course
- CS-106B-01 -- Programming Abstractions
- Instructor(s)
- Gregg, Christopher
- Course
- ENGR-70A-01 -- Programming Methodology
- Instructor(s)
- Troccoli, Nicholas Paul
- Course
- ENGR-70B-01 -- Programming Abstractions
- Instructor(s)
- Gregg, Christopher