Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Front Cover
Half Title
BCS, THE CHARTERED INSTITUTE FOR IT
Title Page
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
← Prev
Back
Next →
← Prev
Back
Next →