Computational thinking involves problem formulation, pattern recognition, abstraction, and algorithm design. It is an important 21st century skill and countries are incorporating it into curricula. MOOCs can effectively deliver computational thinking education at scale. HKUST offers MOOCs on Java programming, app development, and engineering design that teach computational thinking concepts. Learning analytics provide insights into how students learn from MOOCs.
Keynote 1: Teaching and Learning Computational Thinking at Scale
1. 1
Teaching and Learning
Computational Thinking at Scale
T.C. Pong
Senior Advisor to the Executive Vice-President & Provost
Director of Center for Engineering Education Innovation
Professor of Computer Science & Engineering
Hong Kong University of Science & Technology
9 June 2018
2. Outline
• What is computational thinking and
why is it important?
• How to broaden access to
computational thinking education?
• Using HKUST’s MOOCs for
delivering computational thinking at
scale
• Concluding remarks
3. My Lesson Learned as a
Computer Science Student
Think very carefully before
doing any actual coding!
4. My Lesson Learned as a
Computer Science Student
Fortran – My 1st programming language
Basic
Algol
Scheme
Prolog
Pascal
C / C++
Java
A programming language doesn’t solve
problems, it is the thought process behind
programming that formulates solution to
problems!
5. What is Computational Thinking?
• Computational thinking is the thought
processes involved in formulating a
problem and expressing its solution(s) in
such a way that a computer—human or
machine—can effectively carry out.
[Wikipedia, Wing 2014]
6. Four stages of
Computational Thinking
The four main stages of computational
thinking include:
• Problem formulation and
decomposition
• Pattern recognition and data
representation
• Problem abstraction
• Algorithm design
7. Changing Way of Life
Why is Computational
Thinking Important?
18. How to broaden access to
computational thinking education?
Need to deliver computational thinking
education to different groups of learners:
• Students at different levels:
– K-12
– College students, including UG and PG
– Adult learners
• Teachers and educators
• Parents and others
19. Using MOOCs for Delivering
Computational Thinking at Scale
HKUST offers the following MOOCs for
delivering computational thinking at
scale:
- Introduction to Java Programming
- Developing Android Apps with App
Inventor
- Cornerstone Engineering Design
Project
20. Massive Open Online Courses
A massive open online course (MOOC) is a
type of online course aimed at large-scale
participation and open access via the Internet.
• In addition to online video lectures, learners
are involved actively in the learning process
• MOOCs go beyond just offering courses and
content. Learning analytics allow us to
understand how students learn and how
teachers can improve their teaching.
21. MOOC Platforms
Major MOOC platforms:
– Coursera and edX in the US
– FutureLearn in the UK
– France Université Numérique (France Digital
University) in France
– Iversity in Germany
– Open2Study in Australia
– XuetangX & CNMOOC in China
– Ewant 磨課師 in Taiwan
– JMOOC in Japan
– KMOOC in Korea
– HKMOOC in Hong Kong
28. Four stages of
Computational Thinking
The four main stages of computational
thinking include:
• Problem formulation and
decomposition
• Pattern recognition and data
representation
• Problem abstraction
• Algorithm design
29. Formulate a well-defined Problem:
• A well-defined problem means that
– a solution exists for the problem
– an unambiguous solution can be found in a finite
number of steps
• Examples:
– 1 x 2 + 3
– 1 + 2 x 3
Is the problem statement “Finding the best way to
travel from Hong Kong to London” a well-defined
problem?
Problem Formulation and Decomposition
1 + (2 x 3) = 7
(1 + 2) x 3 = 9
30. Formulate a well-defined Problem:
Is the problem statement “Finding the best way to
travel from Hong Kong to London” a well-defined
problem?
• How do you define best? (Fastest, Cheapest)
• Any limitations? (Preferred mode of
transportation)
• Any ambiguous definitions? (London)
Problem Formulation and Decomposition
31.
32.
33. 2D Square Apple Problem
Starting from the middle
cell, would it be possible
for the worm to finish
eating all the apples?
Rules:
The worm can only
move into another cell
that shares a common
wall; and
a cell that has not been
previously visited.
Problem Representation and
Pattern Recognition
42. Use the new representation and discuss
with your classmate to come up with a
solution again to the following question:
Would it be possible for the worm to
finish eating through all the 27 apples?
1) Yes
2) No
3) Not Sure
Question
43. Importance of
Problem Representation
2D square apple:
• There are 5 red apples and 4 green
apples
• Every move will be restricted to going
between apples of different colors
• If one starts from a green apple, there
would be no more green apple after
consuming the 4th red apple
44. 3D square apple:
• There are 14 red apples and 13 green apples
The problem shows the importance of finding
the right representation before solving a
problem!
Using the same argument as in
the 2D case, if one starts from a
green apple, there would be no
more green apple after finishing
the 13th red apple.
Importance of
Problem Representation
45. Can the dominos cover all the cells on the 8x8 board?
You may assume that there are enough dominos.
Pattern Recognition:
Transfer Learning
46. With two of the corners cutoff from the 8x8 board,
can the dominos still cover all the cells on the board?
Pattern Recognition:
Transfer Learning
47. There are 32 black cells and 30 white cells. Each domino
always covers one black and one white cell. After 15 dominos
are placed on the board, there would be no more white cell!
Pattern Recognition:
Transfer Learning
51. Algorithm Design: Selection Sort
• Selection sort performs sorting by repeatedly finding the
largest element in the unsorted portion of the array and
then placing it to the end of this unsorted portion until
the whole array is sorted.
• Algorithm
– Define the entire array as unsorted at the
beginning
– While the unsorted portion of the array has
more than one element:
• Find its largest element
• Swap with last element
• Reduce the unsorted portion of the array by 1
55. MIT App Inventor
• MIT App Inventor: a very easy-to-use Android
application development tool
– Homepage: http://appinventor.mit.edu
• It is completely started and used within a
browser. No software installation is needed
• Supported browsers: Chrome, Firefox and
Safari. Internet Explorer is not supported!
• System requirement details:
http://appinventor.mit.edu/explore/ai2/setup.html
56
58. An Android App Game
• We will create the Super-dolphin game, where a special
dolphin is moving super fast undersea. She only appears
still in your sight for a short time (when she is tired). She
is so lovely that you want to touch her. If you manage to
touch her, she will be scared and hide herself, and your
game score will be increased by 10 points.
59
60. To contextualize activities that allow the
application of computational thinking, a
cornerstone engineering design project course
was developed for 1st year engineering students:
• To provide students exposure to knowledge
and skills from different engineering disciplines
• To engage students in team projects that
connect engineering design with real-world
problems using computational thinking
• using a blended and experiential learning
approach
A Cornerstone Engineering
Design Project Course