Computational Thinking

Book description

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 road to becoming an experienced and effective programmer.

Table of contents

  1. Front Cover
  2. Half Title
  3. BCS, THE CHARTERED INSTITUTE FOR IT
  4. Title Page
  5. Copyright Page
  6. Contents
  7. List of figures and tables
  8. Author
  9. Acknowledgements
  10. Glossary
  11. Introduction: Why Study Computational Thinking?
  12. Part I Computational Thinking
  13. 1. What is Computational Thinking?
  14. Objectives
  15. What is computational thinking?
  16. How is computational thinking used?
  17. Disclaimers
  18. Summary
  19. Exercises
  20. 2. Logical and Algorithmic Thinking
  21. Objectives
  22. Approach
  23. Logical thinking
  24. Algorithmic thinking
  25. ‘Gotchas’
  26. Summary
  27. Exercises
  28. 3. Problem-Solving and Decomposition
  29. Objectives
  30. Where to start
  31. Defining the problem
  32. Devising a solution: Something to keep in mind
  33. Decomposition
  34. Other effective strategies
  35. Patterns and generalisation
  36. Summary
  37. Exercises
  38. 4. Abstraction and Modelling
  39. Objectives
  40. Abstraction
  41. Modelling
  42. Summary
  43. Exercises
  44. 5. Anticipating and Dealing with Errors
  45. Objectives
  46. Coming to terms with bugs
  47. Designing out the bugs
  48. Mitigating errors
  49. Testing
  50. Debugging
  51. You can’t have everything: Deciding which errors to fix
  52. Summary
  53. Exercises
  54. 6. Evaluating A Solution
  55. Objectives
  56. Solution evaluation
  57. Is it correct?
  58. Is it efficient?
  59. Is it elegant?
  60. Is it usable?
  61. Trade-offs
  62. Summary
  63. Exercises
  64. Part II Computational Thinking in Software Development
  65. 7. Tutorial for Python Beginners
  66. Objectives
  67. Introducing Python
  68. First steps
  69. Basic types
  70. Basic operations
  71. Functions
  72. Comments
  73. Summary
  74. Exercises
  75. 8. Effective Building Blocks
  76. Objectives
  77. Logic
  78. Basic algorithmic constructs
  79. Program state
  80. More advanced constructs
  81. Summary
  82. Exercises
  83. 9. Organising Your Code
  84. Objectives
  85. Recap
  86. Introducing tkinter
  87. Separating concerns
  88. Defining information scope
  89. Using modules
  90. Packages
  91. Summary
  92. Exercises
  93. 10. Using Abstractions and Patterns
  94. Objectives
  95. Finding patterns in programs
  96. Abstractions in programming
  97. Built-in types
  98. Creating your own types
  99. Ready-made patterns
  100. Summary
  101. Exercises
  102. 11. Effective Modelling
  103. Objectives
  104. Recap
  105. Entities
  106. Relationships
  107. Processes
  108. Usage
  109. General advice
  110. Summary
  111. Exercises
  112. 12. Testing and Evaluating Programs
  113. Objectives
  114. Introduction to program testing and evaluation
  115. Anticipating bugs
  116. Verification and validation
  117. Testing the parts
  118. Testing the whole
  119. Debugging
  120. Summary
  121. Exercises
  122. 13. A Guided Example
  123. Problem definition
  124. Problem decomposition
  125. Finding patterns
  126. Form generalisations and abstractions
  127. Models
  128. Annotated source code
  129. Testing
  130. Opportunities for improvement
  131. Appendix A: Reference Lists and Tables
  132. Order of operator precedence
  133. Usability heuristics
  134. Mutable and immutable types in Python
  135. Appendix B: Answers to Exercises
  136. Notes
  137. References
  138. Index
  139. Back Cover

Product information

  • Title: Computational Thinking
  • Author(s): Karl Beecher
  • Release date: September 2017
  • Publisher(s): BCS, The Chartered Institute for IT
  • ISBN: 9781780173665