PREFACE Synopsis Changes in the Second Edition Course Structure Book Production AcknowledgmentsCHAPTER 1Programming Principles 1.1 Introduction 1.2 The Game of Life 1.2.1 Rules for the Game of Life 1.2.2 Examples 1.2.3 The Solution 1.2.4 Life: The Main Program 1.3 Programming Style 1.3.1 Names 1.3.2 Documentation and Format 1.3.3 Refinement and Modularity 1.4 Coding, Testing, and Further Refinement 1.4.1 Stubs 1.4.2 Counting Neighbors 1.4.3 Input and Output 1.4.4 Drivers 1.4.5 Program Tracing 1.4.6 Principles of Program Testing Pointers and Pitfalls Review Questions References for Further Study C Programming Principles The Game of LifeCHAPTER 2Introduction to Software Engineering 2.1 Program Maintenance 2.1.1 Review of the Life Program 2.1.2 A Fresh Start and a New Method for Life 2.2 Algorithm Development: A Second Version of Life 2.2.1 Lists: Specifications for a Data Structure 2.2.2 The Main Program 2.2.3 Information Hiding 2.2.4 Refinement: Development of the Subprograms 2.2.5 Verification of Algorithms 2.3 Coding 2.3.1 The List Functions 2.3.2 Error Processing 2.3.3 Demonstration and Testing 2.4 Coding the Life Functions 2.5 Program Analysis and Comparison 2.6 Conclusions and Preview 2.6.1 The Game of Life 2.6.2 Program Design 2.6.3 C Pointers and Pitfalls Review Questions References for Further Study……