Preface xiii
Chapter 1: Elements of Programming 1
1.1 Your First Program 2
1.2 Built-in Types of Data 14
1.3 Conditionals and Loops 56
1.4 Arrays 100
1.5 Input and Output 140
1.6 Case Study: Random Web Surfer 188
Chapter 2: Functions and Modules 209
2.1 Defining Functions 210
2.2 Modules and Clients 248
2.3 Recursion 290
2.4 Case Study: Percolation 322
Chapter 3: Object-Oriented Programming 351
3.1 Using Data Types 352
3.2 Creating Data Types 402
3.3 Designing Data Types 450
3.4 Case Study: N-Body Simulation 496
Chapter 4: Algorithms and Data Structures 511
4.1 Performance 512
4.2 Sorting and Searching 556
4.3 Stacks and Queues 590
4.4 Symbol Tables 634
4.5 Case Study: Small-World Phenomenon 684
Context 729
Glossary 733
Index 739
Each section concludes with Q&A and Exercises.