NUS School of Computing Summer School 2017

Sponsorship from

The four-day summer school organised by NUS School of Computing provides an excellent opportunity for student participants to explore as well as to gain exposure and foundations to the latest computing research. This forum, which is particularly useful for students who wish to embark on computing research, also aims to facilitate interactions and discussions of ideas amongst student participants, researchers and faculty members.

NUS School of Computing graduate students and final-year undergraduate students are welcome to attend the summer school.

Participants from external institutions or organizations may also apply to attend the summer school. Limited financial support may be available to external participants. To apply for this support, applicants can submit their CV, academic transcripts and statement of purpose (indicating their reasons for attending this summer school) to by 14 July 2017.

Date & Time
7 to 8 and 10 to 11 August 2017
9.00am to 5.00pm

NUS School of Computing (COM1 Level 2)

Registration Period         : 23 June to 14 July 2017

Registration Fees           : S$200 per day (External participants only)

Registration Link              :

Due to limited places, attendance is strictly by registration only. Only notified registered participants will be allowed to attend the summer school.

Lunch Talks by Standard Chartered Bank
Time: 1.00pm – 1.30pm
Venue: Cerebro (COM1-02-05)

8 August 2017
Title: Commando Development
Speaker: Ben Ford
Abstract: Haskell programming

11 August 2017
Title: Strats/Haskell in Standard Chartered
Speaker: Chia Shee Liang
Abstract: Who we are and how we use typed functional programming to manage complexity

Programme Outline

DAY 1 – 7 August 2017
VenueSeminar Room 3
(COM1 02-12)
Seminar Room 10
(COM1 02-10)
Video Conference Room
(COM1 02-13)
TitleCryptocurrencies: Security Challenges & SolutionsA Logical Introduction to Computational BiologySocial Network Analysis for Social Scientists

Prateek Saxena

Dean’s Chair Assistant Professor Dept of Computer Science

Wong Lim Soon

KITHCT Chair Professor

Dept of Computer Science

Phan Tuan Quang

Assistant Professor

Dept of Information Systems and Analytics


Cryptocurrency networks represent an aggregated market value of several hundred billion dollars, with tens of thousands of computing machines connected to them. Cryptocurrencies promise to operate as an open distributed network with no trusted party, inviting anyone to join their mining infrastructure or as a user. The design of secure cryptocurrencies is a multi-faceted problem. It includes a number of research challenges, both theoretical and applied. In this talk, I present technical challenges involved in designing a cryptocurrency, including (a) ‘cryptonomic’ incentive structures, (b) consensus protocols, (c) operational decentralization, (d) privacy, (e) Sybil-resilience, and (f) network topology design. Our work has anticipated attacks that have occurred in practice, and proposed solutions to prevent such failures. A number of these solutions have now found live deployments and have shaped the design of large-scale cryptocurrency systems.


Students will need to bring a laptop to get the most out of this class.

This course consists of two parts. In part #1, I will describe some problem-solving principles that are common to multiple problems, even in different disciplines (I will illustrate using different areas in computer science, medicine, biology, and biotechnology). These principles are simple logical ways to exploit fundamental properties of each problem domain, highlighting the value of both logical thought and domain knowledge, and bringing out the sometimes creative way of applying the former to the latter in the context of each problem being solved. In part #2, by focusing on computational biology, I will go into further depth of these problem-solving principles as well as into the art (as opposed to the mechanics) of data analysis.

Materials for the course are available on

There has been a lot of interest in social networks (SN) and social media in industry and amongst academics.  The objective of this session is to give you a quick overview of the topic, and get you to think about potential new research.

While the majority of topics have been about influence and virality, it has been increasingly difficult to publish about these topics because of saturation.  Although there still remain many technical challenges to influence [1], to make a contribution and increase chances of getting published, researchers need to look at other topics and research questions which shine light on consumer behavior, provides actionable insight to companies and organizations, or suggests policy implications for governments.

The readings span two parts: 1) herding, word-of-mouth, and influence, and 2) new areas.  The former gives you the background and key papers in the online and offline context.  The perspective should focus on offline SN, then build upon how online may be different.

[1] For an example of technical issues, see the reflection problem.

Manski, C. F., Identification of Endogenous Social Effects: The Reflection Problem, The Review of Economic Studies, 1993, 60, 531-542

For an technical reference of social network analysis methods, see

Wasserman & Faust, “Social Network Analysis: Methods and Applications”, Cambridge University Press, 1994

DAY 2 – 8 August 2017
Session 2A 2B 2C
Venue Seminar Room 10 (COM1 02-10) Seminar Room 8 (COM 1 02-08) Video Conference Room (COM1 02-13)
Title Trustworthy Software Hands-on coding: Computer architecture at the end of Moore’s Law and Dennard Scaling Health Informatics
Speaker Abhik Roychoudhury Professor Dept of Computer Science Trevor E. Carlson Assistant Professor Dept of Computer Science Atreyi Kankanhalli Professor Dept of Information Systems and Analytics
Abstract Software controls many critical infra-structures and a variety of software analysis methods have been proposed to enhance the quality, reliability and security of software components. On this day we will first study the gamut of methods developed so far in software validation research – ranging from systematic testing, to analysis of program source code and binaries, to formal reasoning about software components. We will also discuss the research on trustworthy software at NUS which make software vulnerability detection, localization and patching much more systematic. We will specifically explore research on futuristic programming environments which enable auto-patching of software vulnerabilities, with a focus on automatic program repair – where software errors get detected and fixed continuously. This research aims to realize the vision of self-healing software for autonomous cyber-physical systems such as unmanned aerial vehicles, where autonomous devices may need to modify the code controlling the device on-the-fly to maintain strict guarantees about trust. Throughout the day, I will share experiences in developing and transitioning the research on such trustworthy software technologies where we have been engaging with several industrial research partners – including Airbus, Fujitsu and IBM. Since serious engagements with industry often involve non-disclosures, we will focus on the broader research issues, without disclosing any specific details of the engagements. While computers continue to advance in performance today, the near future will bring challenges for computing. We can no longer continue to add additional transistors to our processors as the costs have begun to rise (Moore’s Law is ending). We can no longer turn on more transistors at a time; because our processors are getting too hot (Dennard Scaling is ending). To address these problems, computer architects have turned their focus to efficiency, a departure from previous years’ efforts of performance at all costs. The goal of this course is to provide a preview of some of the state-of-the art techniques developed today to address energy and area efficiency challenges in computer architecture. We will focus on developments that apply to today’s devices, from watches to smartphones, as well as desktops and servers. More specifically, this class will begin from the transition to multi-core technologies, discuss energy-efficient techniques that allow these general-purpose architectures to improve, and finally, describe the latest techniques and architectures, like the focus on memory-level parallelism (MLP), runahead and load-slice processors and out-of-order commit processors as well as accelerators. In the second half of this course, we will conduct a hands-on coding playground. We will take a deep-dive into the latest software computer architects use to design next generation processors and accelerators. In small groups, participants will choose from a number of platforms and tutorials to learn how to become the computer architects of the future. Students can focus on one or two platforms, and work in-depth to improve state-of-the-art designs, or take a broader view, and work through the basic tutorials for each platform to understand how each platform contributes in different ways. At the end of the second half, each student group will give very short presentation on one of the topics they found interesting during the hands-on session, and explain its connection to computer architecture and the future of computing. REQUIREMENTS: Students will need to bring a laptop to get the most out of this class. The goal of this course is to provide students with an introduction to researching the many facets of IT applications in healthcare. With the increasing use of IT in the healthcare sector, there has been a steady growth of demand for IT systems and innovations to streamline healthcare practice and to provide for quality patient care. Sample topics include healthcare IT adoption, decision-making in patient care, healthcare analytics, patient data privacy and security, challenges associated with IT implementation in healthcare enterprises, and their impacts.
DAY 3 – 10 August 2017
Session 3A 3B 3C
Venue Programming Lab 1 (COM1 B-12) Video Conference Room (COM1 02-13) Seminar Room 9 (COM1 02-09)
Title Human-Centered Artificial Intelligence Cloud Computing and Beyond Conducting Innovation Design Research
Speaker Harold Soh Assistant Professor Dept of Computer Science Teo Yong Meng Associate Professor Dept of Computer Science Tan Chuan Hoo Associate Professor Dept of Information Systems and Analytics
Abstract This course will focus on the core aspects of Human-Centered Artificial Intelligence. We will cover the fundamentals of what it means for an AI system to be “human-centered” and how we can go about developing such intelligent systems using a human-centered approach. Sample topics include interactive machine learning, human cognitive modeling, and human-AI interaction. This course will be hands-on: we’ll use the theory discussed to build and evaluate sample AI systems using modern machine-learning toolkits.               Cloud computing has left the Gatner hype cycle for emerging technologies in 2016 and is increasingly adopted in industries. The objectives of this class are (i) a quick tutorial introduction to key principles, concepts and models in cloud computing (ii) research opportunities in cloud computing including an overview of our work in advancing the understanding of time, energy and cost performance of heterogeneous computing on the cloud, and the potential in exploiting low-power wimpy systems, and (ii) research opportunities in designing and deploying wide-scale geographically distributed Internet-of-Things applications using hybrid cloud-fog (edge) architecture. The class include a lab visit with demo on a range of low-power wimpy systems that we have developed.   The computing field has been energized by a flurry of recent activity that centers on the use of design research as an important reseach paradigm, and its relevance to innovation creation. This workshop provides a quick overview of two different methodological perspectives of innovation design research. The first mehodology is the design thinking that has been highly advocated by the industry. The second methodology is the design science research approach that is backed by scholars. Students will be asked to consider the philosophical differences and synergies of the approaches and how they could drive innovation creation.
DAY 4 – 11 August 2017
VenueVideo Conference Room
(COM1 02-13)
Seminar Room 7
(COM1 02-07)
Seminar Room 9
(COM1 02-09)
TitleAn Introduction to Sound Music and Wearable ComputingAn Introduction to Software Foundations

The Structure and Dynamics of Digital Innovation: An Organizational Genetics Approach



Wang Ye

Associate Professor

Dept of Computer Science

Aquinas Adam Hobor

Assistant Professor

Dept of Computer Science

Um Sungyong

Assistant Professor

Dept of Information Systems and Analytics


The summer school one-day course at NUS School of Computing serves as an introduction to the field of sound, music and wearable computing which is multidisciplinary in nature. We will touch bases on three major areas – sound, music, and the relationship of theory to practice by way of several interactive and hands-on sessions. We will introduce the analytic and synthetic approaches of sound and music computing. The analytic approach pertains to analysis and understanding, whereas the synthetic approach pertains to generation and processing. Special attention will be given to user interaction aspects including multimodal mobile music interfaces and sound interaction design with live demos. Participants will get to record their own voice, process it, modify it, mix it with background music, to make a composition.


We will demonstrate tools we have developed to facilitate the delivery of established music-enhanced therapies, harnessing the synergy of sound and music computing (SMC), wearable computing, and cloud computing technologies to promote learning and to facilitate disease prevention, diagnosis, and treatment in both developed countries and resource-poor developing countries. These tools are being developed as part of ongoing research projects that combine wearable sensors, smartphone apps, and cloud-based therapy delivery systems to facilitate music-enhanced learning and music-enhanced physical therapy.



Students must bring their own laptop, USB flashdrive and earphones/ headphones.

We will study the mathematical foundations of trustworthy software using the Coq proof assistant.  Writing reliable software is very difficult; formal methods give us a way to attack the problem in a rigorous way.  Moreover, programming with a proof assistant such as Coq has been described as “surprisingly addicting, akin to playing a video game” [Leroy 2006].  Topics will include the basics of logic, machine-checked proofs, functional programming, and induction.  We will use the first few chapters of “Software Foundations” by Pierce as a general guide to the topic.



Students    must     bring     their     own     laptop,

pre-installed with Coq 8.6.1 software (, as well as an editor that interacts with the Coq system (eg: CoqIDE or Proof General).

This course explores the unique aspects of digital innovation and its complex pattern. The first emphasis is on learning a series of conceptual frameworks to help navigate the complex and dynamic digital platform system by understanding the dominant discourse of digital platform innovation. Specifically, the framework covers the concept of multi-sided platforms based on the economic perspective and of platforms as technological architectures based on the engineering design perspective. The second emphasis is on learning the evolutionary patterns of digital platform innovation to help analyze the complex interactions of digital platform systems in the evolutionary network persepctive. Such complexity comes from the massively interconnected nature of digital platform systems through the use of APIs, as we can observe from the case of Google Map API. The analytical framework aims at experiencing some hand-on network methods such as genetic algorithm and Bayesian hierarchical modeling using a sample of massive digital trace data to predict the future interactions of digital platform systems.