Computational thinking a beginner's guide to problem-solving and programming

Computational thinking (CT) is a timeless, transferable skill that enables you to think more clearly and logically, as well as a way to solve specific problems. With this book you'll learn to apply computational thinking in the context of software development to give you a head start on the roa...

Full description

Saved in:
Bibliographic Details
Main Author Beecher, Karl
Format eBook Book
LanguageEnglish
Published Swindon, UK The Chartered Institute for IT 2017
BCS The Chartered Institute for IT
BCS Learning & Development Ltd
BCS, the Cnartered Institute for IT
BCS Learning & Development Limited
BCS, The Chartered Institute for IT
BCS
Edition1
Subjects
Online AccessGet full text
ISBN9781780173641
1780173644
9781780173658
1780173652

Cover

Table of Contents:
  • Computational thinking: a beginner's guide to problem-solving and programming -- Contents -- List of Figures and Tables -- Author -- Acknowledgements -- Glossary -- Introduction: Why Study Computational Thinking? -- Part I: Computational Thinking -- 1. What is Computational Thinking? -- 2. Logical and Algorithmic Thinking -- 3. Problem-Solving and Decomposition -- 4. Abstraction and Modelling -- 5. Anticipating and Dealing with Errors -- 6. Evaluating a Solution -- Part II: Computational Thinking in Software Development -- 7. Tutorial for Python Beginners -- 8. Effective Building Blocks -- 9. Organising Your Code -- 10. Using Abstractions and Patterns -- 11. Effective Modelling -- 12. Testing and Evaluating Programs -- 13. A Guided Example -- Appendix A: Reference Lists and Tables -- Appendix B: Answers to Exercises -- Notes -- References -- Index.
  • Title Page List of Figures and Tables Glossary Table of Contents Introduction: Why Study Computational Thinking? Part I. Computational Thinking 1. What is Computational Thinking? 2. Logical and Algorithmic Thinking 3. Problem-Solving and Decomposition 4. Abstraction and Modelling 5. Anticipating and Dealing with Errors 6. Evaluating a Solution Part II. Computational Thinking in Software Development 7. Tutorial for Python Beginners 8. Effective Building Blocks 9. Organising Your Code 10. Using Abstractions and Patterns 11. Effective Modelling 12. Testing and Evaluating Programs 13. A Guided Example Appendices Notes References Index
  • Cover -- Copyright Page -- CONTENTS -- LIST OF FIGURES AND TABLES -- AUTHOR -- ACKNOWLEDGEMENTS -- GLOSSARY -- INTRODUCTION: WHY STUDY COMPUTATIONAL THINKING? -- PART I COMPUTATIONAL THINKING -- 1 WHAT IS COMPUTATIONAL THINKING? -- OBJECTIVES -- WHAT IS COMPUTATIONAL THINKING? -- HOW IS COMPUTATIONAL THINKING USED? -- DISCLAIMERS -- SUMMARY -- EXERCISES -- 2 LOGICAL AND ALGORITHMIC THINKING -- OBJECTIVES -- APPROACH -- LOGICAL THINKING -- ALGORITHMIC THINKING -- 'GOTCHAS' -- SUMMARY -- EXERCISES -- 3 PROBLEM-SOLVING AND DECOMPOSITION -- OBJECTIVES -- WHERE TO START -- DEFINING THE PROBLEM -- DEVISING A SOLUTION: SOMETHING TO KEEP IN MIND -- DECOMPOSITION -- OTHER EFFECTIVE STRATEGIES -- PATTERNS AND GENERALISATION -- SUMMARY -- EXERCISES -- 4 ABSTRACTION AND MODELLING -- OBJECTIVES -- ABSTRACTION -- MODELLING -- SUMMARY -- EXERCISES -- 5 ANTICIPATING AND DEALING WITH ERRORS -- OBJECTIVES -- COMING TO TERMS WITH BUGS -- DESIGNING OUT THE BUGS -- MITIGATING ERRORS -- TESTING -- DEBUGGING -- YOU CAN'T HAVE EVERYTHING: DECIDING WHICH ERRORS TO FIX -- SUMMARY -- EXERCISES -- 6 EVALUATING A SOLUTION -- OBJECTIVES -- SOLUTION EVALUATION -- IS IT CORRECT? -- IS IT EFFICIENT? -- IS IT ELEGANT? -- IS IT USABLE? -- TRADE-OFFS -- SUMMARY -- EXERCISES -- PART II COMPUTATIONAL THINKING IN SOFTWARE DEVELOPMENT -- 7 TUTORIAL FOR PYTHON BEGINNERS -- OBJECTIVES -- INTRODUCING PYTHON -- FIRST STEPS -- BASIC TYPES -- BASIC OPERATIONS -- FUNCTIONS -- COMMENTS -- SUMMARY -- EXERCISES -- 8 EFFECTIVE BUILDING BLOCKS -- OBJECTIVES -- LOGIC -- BASIC ALGORITHMIC CONSTRUCTS -- PROGRAM STATE -- MORE ADVANCED CONSTRUCTS -- SUMMARY -- EXERCISES -- 9 ORGANISING YOUR CODE -- OBJECTIVES -- RECAP -- INTRODUCING TKINTER -- SEPARATING CONCERNS -- DEFINING INFORMATION SCOPE -- USING MODULES -- PACKAGES -- SUMMARY -- EXERCISES -- 10 USING ABSTRACTIONS AND PATTERNS -- OBJECTIVES
  • FINDING PATTERNS IN PROGRAMS -- ABSTRACTIONS IN PROGRAMMING -- BUILT-IN TYPES -- CREATING YOUR OWN TYPES -- READY-MADE PATTERNS -- SUMMARY -- EXERCISES -- 11 EFFECTIVE MODELLING -- OBJECTIVES -- RECAP -- ENTITIES -- RELATIONSHIPS -- PROCESSES -- USAGE -- GENERAL ADVICE -- SUMMARY -- EXERCISES -- 12 TESTING AND EVALUATING PROGRAMS -- OBJECTIVES -- INTRODUCTION TO PROGRAM TESTING AND EVALUATION -- ANTICIPATING BUGS -- VERIFICATION AND VALIDATION -- TESTING THE PARTS -- TESTING THE WHOLE -- DEBUGGING -- SUMMARY -- EXERCISES -- 13 A GUIDED EXAMPLE -- PROBLEM DEFINITION -- PROBLEM DECOMPOSITION -- FINDING PATTERNS -- FORM GENERALISATIONS AND ABSTRACTIONS -- MODELS -- ANNOTATED SOURCE CODE -- TESTING -- OPPORTUNITIES FOR IMPROVEMENT -- APPENDIX A REFERENCE LISTS AND TABLES -- ORDER OF OPERATOR PRECEDENCE -- USABILITY HEURISTICS -- MUTABLE AND IMMUTABLE TYPES IN PYTHON -- APPENDIX B ANSWERS TO EXERCISES -- NOTES -- REFERENCES -- INDEX -- Back Cover