Teaching Computational Thinking using Cloud Computing

Technology in Pedagogy, No. 8, April 2012
Written by Kiruthika Ragupathi

Computational thinking is an emerging basic skill (Wing, 2006) that is becoming an integral part of higher education together with reading, writing, critical thinking, and problem solving.  Not only is it critical to all physical sciences but also highly relevant in other domains. The recent data deluge requires our students to be computationally competent and IT savvy, not just in theory but particularly in practice says A/P Tan, an Associate Professor and the former Head of the Department of Biochemistry, Yong Loo Lin School of Medicine. The world of computing has made possible profound leaps of innovation and imagination as it facilitates our efforts to solve andexpands our understanding of the world around us. The way in which the world is progressing technologically (in particular with the bombardment of datasets), students are expected to think statistically, computationally and quantitatively making it critical to provide our students a chance to experience and learn this skill set.

In this session, A/P shared his experience in the development and deployment of a bioinformatics LiveOS (BioSlax) on a private cloud computing platform that was set up to facilitate scalability. He highlighted how such a platform will be powerful in allowing students to practise computational thinking during research lab practical sessions and compulsory mini-projects. He then went on to explain about the flexibility it allows and its ease of customisation.

 What is Computational Thinking?

Jeannette Wing coined the term computational thinking in a recent 2006 CACM article. 1.   She argues that in order for students to apply computational techniques or computer applications to the problems and projects in their particular discipline (be it the arts, sciences, humanities, or social sciences), this skill set becomes necessary. Wing also claims in her seminal article that the ideas of abstraction, layering of abstractions, and automation are some of the fundamental computer science concepts that have provided new insights into the natural sciences and hard social sciences. She emphasizes that computational thinking is an emerging basic skill for everyone not just for computer scientists. Hence,   it should become an integral part of education and be added to every student’s analytical ability in addition to reading, writing, and arithmetic skills. By using the concepts fundamental to computer science, computational thinking enables and enhances the ability to solve problems, design systems, and understand human behavior (Wing, 2006).

Considering the area of life sciences as an example, it is not typical for life sciences student to have programming skills whereas an engineer or a physicist it is common to have ready expertise in programming. Many students who make life sciences as their choice of study are terrified by mathematical equations commonly found in the hard sciences. However the intellectual and reasoning skills associated with computational thinking are necessary for life science students and the onus is thus on us as teachers to address this problem by making provisions for students to understand computational thinking by providing them with tasks related to the Internet, informatics and computation.

There has been tremendous progress in life sciences driven by technological advances and this relates to the issue of addressing the problem of the volume of data that has been increasing exponentially over the last ten years. In the past, students just did one experiment and recorded the results; however the emergence of robotic systems that are currently being used in the laboratories generate thousands of data points. Hence, for our students to be employable, they will need to be able analyze things computationally and need to think in terms of computational scale.

Therefore, A/P Tan and his team studied the aspects of life sciences that would be impacted by computational thinking. He then urged the participants to explore and think about how computational thinking will impact their own disciplines to give them a better idea on how computational thinking would impact their own discipline and their own lessons.

As Lord Kelvin famously said, “When you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind; it may be the beginning of knowledge, but you have scarcely in your thoughts advanced to the state of Science, whatever the matter may be.” 

Therefore, as teachers it is important for us to help students

  • to think quantitatively (both mathematically as well as statistically);
  • to think algorithmically as a continuation of the thinking advancement process (started during their school days);
  • to think in terms of machine learning and prediction;
  • to engage in higher level activities of thinking in terms of representing the observed phenomena/results in the form of models and then to simulate.

Setting the framework: Teaching Computational Thinking

To instill these skills in life science students, A/P Tan embarked on a study to identify the minimum skill set needed for university graduates to meet the informatics needs and challenges of the “-omics” era . The study also confirmed that for students to achieve these skills, basic training geared towards acquiring a minimum skill set in computation and informatics be embedded in the undergraduate and graduate life science education. Two modules – “Introductory Bioinformatics” teaching the application of computational and informatics technology to the solving biological problems in the life sciences and “Bioinformatics and Biocomputing” teaching in-silico research techniques in life sciences were introduced for the past ten years.

The main objectives of the modules were to provide students with:

  • the basic essential knowledge in the specific domains of computer science, statistics and mathematics that intersect with modern biology ;
  • the expertise in communicating and representing biological knowledge and processes in mathematical, statistical and computing terms and concepts;
  • the ability to use and develop efficient bioinformatics and biocomputational tools and techniques for the acquisition, interpretation, analysis, prediction, modeling, simulation and visualization of experimental and other biological data;
  • the proficiency in the search, retrieval, processing, curation, organization, classification, management, and dissemination of biological data and information in databases for deriving biological insight and knowledge discovery;
  • critical thinking and problem solving skills in quantitative aspects of biology;
  • skills in machine learning and prediction; and
  • basic programming skills.

To implement this in the modules, it was necessary to have at least 100 computers in the classroom (with all necessary software installed) or to use laptops. However, this posed a number of problems:

  1. Too many students  (70 to 270 students) in a class;
  2. The field was ill-defined and comparatively new;
  3. To provide students with the technological expertise, a number of software applications/programs were required to be installed; and
  4. Too much time was spent in class handling computing problems during the hands-on laboratory sessions.

To overcome this, the option of a Live operating system CD was tried over the years. However, this was also not an ideal solution. Hence, a cleaner (and better) solution was needed that was easier to scale up – cloud computing emerged as the best option eventually.

Why Cloud Computing?

Cloud Computing is not a completely new concept and is closely related to grid computing. It is an approach of managing computing resources by increasing the capacity or adding the capabilities without having to invest (heavily) in new infrastructure, and train new personnel. Thus, cloud computing services represent a potentially cost-effective solution for server hosting. Furthermore, the performance of cloud servers can be scaled up or down according to the projected amount of traffic and load. Besides cost and technical advantages, cloud servers provide a platform for customised and personalized learning in which individual server instances can be created for each user. Hence, the option of cloud computing was chosen over the Live OS CD since it allows for a style of computing where massively scalable IT-enabled capabilities are delivered to students using Internet technologies. This enables students to use remote IT resources such as servers and storage, thus using applications not residing on their own hardware.

As such, students can immediately practise all the techniques that they have been taught in the two modules. The students were able to use any device (laptop, desktop, Mac, iPAD, smartphone or other mobile devices) to access the virtual systems online and administer the virtual computer through a web interface. It was easy on the part of the teachers to easily control the virtual machines and re-configure whenever necessary. In addition, the data generated or acquired by the user also resides online, and the user has sole access to that data unless he or she decides to share it.

The platform was then used to help students learn – programming languages,         structural modeling, machine learning, 3D structural visualization, multiple sequence alignment, database creation, curation and administration.

 Advantages of teaching using Cloud Computing

Thus the redevelopment of the curriculum for the two modules to teach using cloud computing enabled the teachers to add mathematical rigour to the program and engage the students visually. The key advantages were it allowed students to:

1. Focus more on thinking about science rather than the interface

Students do not have to worry about the technological concerns related to hardware and software but instead focus their attention on the science. Students could focus on the scientific problem at hand, and could even advance to the level of using supercomputing applications based on their interest and capability.

 2.  Focus more on students’ learning process

The variety of tasks and activities updated by the teacher provides the student with the flexibility to choose and repeat the tasks to learn the techniques at their own pace. This allows the learner to be in control of the whole learning process.

Thus, this is a very practical way of approaching a problem that involves the implementation of fundamental philosophical changes in the life sciences curriculum, and in the transformation of how computational thinking is taught to students and more importantly on how students learn computation. Students are able to easily identify the steps involved that could be documented and scripted, allowing them to understand the process more clearly. Thus, enabling the creation of a “work-flow” and further allowing them the opportunity to refine the workflow. This approach allows students to tweak the process, cross-validate, and see how and why the process was tweaked to obtain a better estimate.

This combination of both pedagogical aspects along with advanced technology developed using cloud computing, and the experience of his team with developing of the live OS CD enabled the implementation knowledge.

 Q & A Session

The presentation by A/P Tan Tin Wee (TTW) was followed up by a short demo and a discussion session. Listed below are some questions:

Q:  Does this solution help you in standardizing the computing environment for the students?  Does it also help with the hardware?
TTW: Yes, it standardizes the computing environment for the students. The hardware is not an issue anymore, as it is maintained by the administrative team maintain the servers.
Q:  Do you still need a classroom that is equipped with computers?
TTW: Technically, it is not necessary. However, not all students have their own mobile devices, and hence I still conduct my classes in a classroom equipped with computers (computer training cluster).
Q: Is there a change in requirements for students to enter this course?
TTW: Effectively there is no change to the requirement. However, it should be noted that this module has been a compulsory module, as our department understands the importance of computational thinking in our students.


  1. Tan TW, Lim SJ, Khan AM, Ranganathan S., A proposed minimum skill set for university graduates to meet the informatics needs and challenges of the “-omics” era. BMC Genomics. 2009 Dec 3; 10 Suppl 3:S36.
  2. J. Wing. Computational Thinking, Communications of the ACM, 49(3), pp. 33-35, March 2006.