A lesson for people who want to learn about programming, but do not want to learn how to program.
- Wat is computation thinking?
- Important elements [3]
- Logical Thinking
- Algorithmic Thinking
- Efficient Solutions
- Scientific Thinking
- Innovative Thinking
- Concepts and approaches of the computational thinker [4]
- Concepts
- Logic - predicting and analysing
- Algorithms - making steps and rules
- Decomposition - breaking down into parts
- Patterns - spotting and using similarities
- Abstraction - removing unnecessary detail
- Evaluation - making judgment
- Approaches
- Tinkering - experimenting and playing
- Creating - designing and making
- Debugging - finding and fixing errors
- Persevering - keep going
- Collaborating - working together
- Concepts
- Important elements [3]
- Why is it useful?
- What is the goal of the lesson?
The idea is to explain computational concepts by collectively solving puzzles from the North American Computational Linguistics Olympiad (NACLO) [1, 2].
What computational concepts should be explored?
- Algorithm
Types of problems [1]
- Assembly required
- Black box
- Broken machine
- Troublemaker
- Jabberwock
- Combinations
Other requirements
- Problems should be self contained (not require additional knowledge)
[1] Littell, Patrick, et al. "Introducing Computational Concepts in a Linguistics Olympiad." ACL 2013 (2013): 18. http://cs.jhu.edu/~jason/papers/littell+al.tnlp13.pdf
[2] http://www.naclo.cs.cmu.edu/practice.html
[3] http://www.cs4fn.org/computationalthinking/
[4] http://barefootcas.org.uk/barefoot-primary-computing-resources/concepts/computational-thinking/