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...
Saved in:
Main Author | |
---|---|
Format | eBook Book |
Language | English |
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 |
Edition | 1 |
Subjects | |
Online Access | Get full text |
ISBN | 9781780173641 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