Introducing Computational Thinking into the Undergraduate Curriculum

NUS President Prof Tan Chorh Chuan delivered his State of the University Address on 4 Nov 2016. It was a visionary and impactful speech, titled ‘Empowering for the Age of Empowerment’. He spoke on NUS’ plans to empower students for the future, enable faculty to stand out globally and create new platforms for high impact. (You may view the event webcast or read President’s speech here.)

Amongst the many educational initiatives to prepare and empower students for the future, President had made mention that NUS is considering introducing Computational Thinking on a large scale. I would like to take this opportunity to share more about Computational Thinking.

What is Computational Thinking?

Computational Thinking has been known to humans as long as we have been thinking. One of the initial formalisations of Computational Thinking happened, perhaps, in Geometry.  Along with Euclid’s axiomatic approach to Geometry, which focused on proving properties of geometric objects like triangles and quadrilaterals, there was a robust parallel development of constructing objects using a ruler and a compass. This approach emphasised constructing objects (for example, constructing a right-angled triangle) over proofs. In fact, one fed the other, leading to increasing intellectual sophistication in the understanding of Geometry. Not only that, there was a pragmatic facet to it as well. It helped put Geometric conceptualisations into practice – in areas ranging from building construction to time-telling to Astronomy.

Another example of Computational Thinking in daily life is cooking! Humans have been cooking for a long time; in fact, civilisations take great pride in their cuisines. Any recipe which can be executed by a non-Michelin-starred cook is a fine demonstration of Computational Thinking. The ingredients of that recipe are precisely specified and the steps laid out clearly for anybody to follow. By following the recipe (think algorithm – a series of steps to the solution) fastidiously, we get delicious outcomes.

Fast-forwarding to modern times, Wikipedia explains that Computational Thinking was first used by Seymour Papert in 1980. It caught wide attention when Computer Scientist Jeanette Wing wrote an influential article about it in 2006 (https://www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf).  It refers to the thought processes involved in formulating a problem and expressing its solutions in such a way that a computer—human or machine—can effectively carry out. Simply put, Computational Thinking involves creating and making use of different levels of abstraction, to understand and solve problems more effectively.

Why Computational Thinking?

Computational Thinking is important because this is the thinking process of creative humans.. First, it compels us to discard inessential aspects of any problem to focus on minimum conceptual abstractions that are salient to the problem. Second, it enables us to successfully accomplish even very complex tasks by breaking them down into a set of elementary simple tasks. (In Geometry, the elementary tasks are (i) drawing a line using a ruler and (ii) drawing an arc using a compass. In cooking, there are basic skills such as chopping, stirring, straining, roasting etc.) Third, Computational Thinking helps us give an idea of the inherent complexity of any problem. Simple recipes comprise fewer steps and complex recipes require more steps in a certain order. The chef who uses Computational Thinking realises the importance of preparing the ingredients beforehand and in the right order so that the meal arrives at the table at the right temperature. No one likes a cold, bleeding steak.

As you can imagine, this way of thinking practically covers most areas of human endeavours. All of us have been unconsciously practising Computational Thinking throughout our lives. What is different today is that many of these elementary steps can be performed by computers. In fact, Computational Thinking is increasingly recognised as a fundamental 21st century skill, especially in this digital and technology-centric era. Together with reading, writing, critical thinking and problem solving, Computational Thinking is ubiquitous with vast applications across a range of fields, so much so that practically no field has been left un-touched. It is therefore time that we, as a university, start thinking about Computational Thinking formally in our curriculum.

The relevance and importance of Computational Thinking is also borne out in the job market. The World Economic Forum recently published an article on 2017’s most in-demand skills, according to LinkedIn data. It is quite evident that data and IT literacy have become a necessity, and at the next level, data proficiency and Computational Thinking are critical, relevant and sought after. This list of top ten most sought-after skills may change with time, but it is an indication of the skills in demand now.

This trend in the labour market is not surprising. Big data and technology developments are shaping the world. In Singapore, the big data sector is set for big growth and EDB expects the data analytics sector to contribute at least $1 billion to the economy every year by 2017. To stay competitive, companies will have to harness data for better decision-making.

Computational Thinking at NUS

NUS is mindful of these developments and we make effort to ensure that our educational programmes equip our graduates with the knowledge and skills to take on jobs immediately upon graduation, as well as to engage in lifelong learning, so that our graduates can adapt and learn to ride the waves and opportunities in this ever changing world.

A distinctive aspect of NUS’ curriculum is the General Education (GE) Framework. Comprising 20MCs, the General Education Framework serves as a common, core university experience for all students to be exposed to fundamental approaches to knowledge for a broad intellectual perspective and lifelong learning. Implemented in AY2015/16, the revised GE framework is designed as a five-pillar curriculum structure, and is closely aligned with the University’s educational philosophy which seeks to ‘help students become individuals with questioning minds, willing and able to examine what is taken for granted, and who engage in rigorous inquiry within and beyond assumed disciplinary borders’. The five pillars are:

  • Singapore Studies
  • Human Cultures
  • Thinking and Expression
  • Quantitative Reasoning
  • Asking Questions

Under the Quantitative Reasoning (QR) pillar, all NUS students read GER1000, a module introducing foundational data competency, taught using a blended format. Lectures are pre-recorded and are available online for students to view, pause and play at their own pace; learning is facilitated and reinforced with face-to-face tutorials. The module introduces students to the role of data in addressing real-world issues, and how to collect and employ data to conduct projections and scenario planning. Students will acquire basic reasoning skills, and learn to quantify and characterise relationships between data.

Given the growing importance of quantitative skills, we plan to take one step further to introduce Computational Thinking as a requirement for selected undergraduate majors and degree programmes. Computational Thinking is a set of cognitive skills and techniques that can be used to support problem solving across situations and disciplines. More specifically, as Google’s website summarises, Computational Thinking entails

  1. Decomposition – breaking a (big, complicated, complex) problem into parts or steps;
  2. Pattern Recognition – finding and identify patterns and trends in data;
  3. Abstraction – identifying the general principles that generate these patterns;
  4. Algorithm Design – developing instructions for solving the problem.

Step by step, part by part, the solutions to the small problems can be brought together, and help shed light on and provide a solution to the big, complex problem.

Computational Thinking is useful as a problem-solving methodology, but beyond that, training in Computational Thinking can also help cultivate positive learning attitudes and values, such as tinkering and experimenting with solutions, debugging through finding and fixing errors, perseverance in working with difficult and open-ended problems, and confidence in dealing with ambiguity and complexity.

I hope NUS students will be keen to acquire and deepen their QR and Computational Thinking skills, and that you are curious and excited about the many future job opportunities in these fields. With a good foundation in QR and the added training in Computational Thinking for some of you, NUS students will gain confidence and are empowered to pick up computer coding, even if you are not a Computer Science major.