3 179 kr
Beställningsvara. Skickas inom 7-10 vardagar. Fri frakt över 249 kr.
Beskrivning
This text is intended for use in the second programming course
Programming is a matter of learning by doing. Eric Roberts’ Programming Abstractions in C++ gives students opportunities to practice and learn with engaging graphical assignments. A client-first approach to data structures helps students absorb, and then apply the material.
Teaching and Learning Experience
This program presents a better teaching and learning experience—for you and your students. It will help:
- Improve Student Comprehension with a Client-first Approach to Data Structures: To aid in student understanding, this book presents the full set of collection classes early.
- Defer the Presentation of C++ Features that Require a Detailed Understanding of the Underlying Machine: Introducing collection classes early enables students to master other equally important topics without having to struggle with low-level details at the same time.
- Engage Students with Exciting Graphical Assignments: An open-source library supports graphics and interactivity in a simple, pedagogically appropriate way.
- Support Instructors and Students: The companion website provides source code, sample run PDFs, answers to review questions, and more.
Produktinformation
- Utgivningsdatum:2013-10-04
- Höjd:190 x 233 x 48 mm
- Vikt:1 606 g
- Språk:Engelska
- Antal sidor:960
- Upplaga:1
- Förlag:Pearson Education
- EAN:9780133454840
Utforska kategorier
Mer om författaren
After receiving his Ph.D. in Applied Mathematics from Harvard University in 1980, Eric Roberts taught at Wellesley College from 1980-85, where he chaired the Computer Science Department. From 1985-90, he was a member of the research staff at Digital Equipment Corporation’s Systems Research Center in Palo Alto, California, where he conducted computer science research, focusing on programming tools for multiprocessor architectures. In September 1990, Roberts joined the Stanford faculty, where he is now Professor of Computer Science and the John A. and Cynthia Fry Gunn University Fellow in Undergraduate Education.From 1990 to 2002, Professor Roberts was Associate Chair and Director of Undergraduate Studies for Computer Science. In that capacity, he was the principal architect of Stanford’s introductory programming sequence, which for many years held the distinction of being the largest course at Stanford. He has also written four computer science textbooks that are used at many colleges and universities throughout the world. His research focuses on computer science education, particularly for underserved communities. From 1998 to 2005, Roberts was Principal Investigator for the Bermuda Project, which developed the computer science curriculum for Bermuda’s public secondary schools. While at Stanford, Professor Roberts has received several university- level teaching awards, including the Bing Fellowship, established “to recognize excellence in teaching and a committed interest to the teaching of undergraduates”; the Dinkelspiel Award, which recognizes “distinctive and exceptional contributions to undergraduate education”; and the Laurance and Naomi Carpenter Hoagland Prize, awarded for excellence in undergraduate teaching. In January 2002, Roberts was named one of the first eight University Fellows in Undergraduate Education, which are designed “to reward faculty who make truly outstanding contributions to Stanford’s undergraduate experience.” Professor Roberts has been active in professional organizations dedicated to computer science education. From 2005 to 2007, he served as co-chair of the Education Board of the Association of Computing Machinery (ACM) and was for many years on the board of the ACM Special Interest Group on Computer Science Education (SIGCSE). From 1998 to 2001, Roberts served as co-chair and principal editor for the ACM/IEEE- CS Joint Task Force on Computing Curricula 2001, which published a detailed set of curriculum guidelines in December 2001. He also chaired the ACM Java Task Force from 2004 to 2006. In 2003, Roberts received the SIGCSE Award for Outstanding Contribution to Computer Science Education. Professor Roberts is a Fellow of the ACM and the American Association for the Advancement of Science (AAAS). Professor Roberts has also been active in several organizations seeking to promote socially responsible use of science and technology. He is past president of both Computer Professionals for Social Responsibility, a public-interest organization of computer scientists and other professionals concerned about the impact of computer technology on society, and Student Pugwash USA, which encourages students to use their training in science and technology to create a better world. In 1999-2000, Roberts was the Eugene M. Lang Visiting Professor for Social Change at Swarthmore College.
Innehållsförteckning
- Contents1 Overview of C++ 11.1 Your first C++ program 21.2 The history of C++ 31.3 The structure of a C++ program 61.4 Variables 141.5 Data types 191.6 Expressions 261.7 Statements 36Summary 47Review questions 48Exercises 502 Functions and Libraries 552.1 The idea of a function 562.2 Libraries 592.3 Defining functions in C++ 612.4 The mechanics of function calls 652.5 Reference parameters 732.6 Interfaces and implementations 782.7 Principles of interface design 852.8 Designing a random number library 902.9 Introduction to the Stanford libraries 107Summary 112Review questions 114Exercises 1153 Strings 1253.1 Using strings as abstract values 1263.2 String operations 1293.3 The library 1373.4 Modifying the contents of a string 1383.5 The legacy of C-style strings 1393.6 Writing string applications 1403.7 The strlib.h library 146Summary 147Review questions 148Exercises 1494 Streams 1594.1 Using strings as abstract values 1604.2 Formatted input 1654.3 Data files 1674.4 Class hierarchies 1814.5 The simpio.h and filelib.h libraries 186Summary 188Review questions 189Exercises 1905 Collections 1955.1 The Vector class 1975.2 The Stack class 2115.3 The Queue class 2175.4 The Map class 2265.5 The Set class 2325.6 Iterating over a collection 236Summary 243Review questions 245Exercises 2466 Designing Classes 2616.1 Representing points 2626.2 Operator overloading 2686.3 Rational numbers 2816.4 Designing a token scanner class 2926.5 Encapsulating programs as classes 301Summary 303Review questions 305Exercises 3067 Introduction to Recursion 3157.1 A simple example of recursion 3167.2 The factorial function 3187.3 The Fibonacci function 3257.4 Checking palindromes 3327.5 The binary search algorithm 3357.6 Mutual recursion 3367.7 Thinking recursively 338Summary 340Review questions 342Exercises 3448 Recursive Strategies 3498.1 The Towers of Hanoi 3508.2 The subset-sum problem 3618.3 Generating permutations 3648.4 Graphical recursion 368Summary 375Review questions 375Exercises 3769 Backtracking Algorithms 3899.1 Recursive backtracking in a maze 3909.2 Backtracking and games 4009.3 The minimax algorithm 409Summary 415Review questions 416Exercises 41710 Algorithmic Analysis 42910.1 The sorting problem 43010.2 Computational complexity 43510.3 Recursion to the rescue 44310.4 Standard complexity classes 44910.5 The Quicksort algorithm 45210.6 Mathematical induction 458Summary 462Review questions 463Exercises 46611 Pointers and Arrays 47311.1 The structure of memory 47411.2 Pointers 48411.3 Arrays 49411.4 Pointer arithmetic 500Summary 506Review questions 508Exercises 51012 Dynamic Memory Management 51512.1 Dynamic allocation and the heap 51612.2 Linked lists 51912.3 Freeing memory 52312.4 Defining a CharStack class 52712.5 Heap-stack diagrams 53612.6 Unit testing 54312.7 Copying objects 54612.8 The uses of const 55012.9 Efficiency of the CharStack class 558Summary 560Review questions 562Exercises 56413 Efficiency and Representation 56913.1 Software patterns for editing text 57013.2 Designing a simple text editor 57213.3 An array-based implementation 57913.4 A stack-based implementation 58613.5 A list-based implementation 591Summary 607Review questions 608Exercises 61014 Linear Structures 61514.1 Templates 61614.2 Implementing stacks 61914.3 Implementing queues 63414.4 Implementing vectors 64914.5 Integrating prototypes and code 656Summary 657Review questions 658Exercises 65915 Maps 66315.1 Implementing maps using vectors 66415.2 Lookup tables 66815.3 Hashing 67115.4 Implementing the HashMap class 682Summary 683Review questions 684Exercises 68516 Trees 68916.1 Family trees 69116.2 Binary search trees 69316.3 Balanced trees 70616.4 Implementing maps using BSTs 71716.5 Partially ordered trees 719Summary 722Review questions 724Exercises 72717 Sets 73717.1 Sets as a mathematical abstraction 73817.2 Expanding the set interface 74217.3 Implementation strategies for sets 74717.4 Optimizing sets of small integers 753Summary 761Review questions 762Exercises 76418 Graphs 76718.1 The structure of a graph 76818.2 Representation strategies 77218.3 A low-level graph abstraction 77618.4 Graph traversals 78318.5 Defining a Graph class 78918.6 Finding shortest paths 80418.7 Algorithms for searching the web 808Summary 812Review questions 813Exercises 81519 Inheritance 82319.1 Simple inheritance 82419.2 A hierarchy of graphical shapes 83219.3 A class hierarchy for expressions 84119.4 Parsing an expression 86119.5 Multiple inheritance 870Summary 873Review questions 875Exercises 87720 Strategies for iteration 88520.1 Using iterators 88620.2 Using functions as data values 89020.3 Encapsulating data with functions 89920.4 The STL algorithms library 90420.5 Functional programming in C++ 90720.6 Implementing iterators 911Summary 918Review questions 920Exercises 921A Stanford library interfaces 927Index 1025
Mer från samma författare
Pay Attention: Things you need to know if you want to be happier at work
Lorena Mendez, Eric Roberts
153 kr
Du kanske också är intresserad av
Human Diseases Plus MyLab Health Professions with Pearson eText -- Access Card Package
Elaine Tompary, Mark Zelman Ph.D., Jill Raymond, Paul Holdaway, Mary Lou Mulvihill Ph.D.
3 179 kr
Compelling Storytelling Narratives for Sustainable Branding
Paula Rodrigues, Ana Pinto Borges
3 179 kr
Pay Attention: Things you need to know if you want to be happier at work
Lorena Mendez, Eric Roberts
153 kr
- Nyhet