Course Overview

Subject Description

Computational Thinking for Design is an introductory programming course that combines programming both in the design and computing contexts targeted at novice programmers. It introduces students to programming and design computing skills essential for their studies at SUTD regardless of pillar preference.

PillarASD & ISTD
GradingPass / Fail

Learning Objectives

  1. Acquire conceptual knowledge and skills for visual and python programming. 
  2. Acquire basic knowledge of computational geometry concepts.
  3. Develop hands‐on experience with applying computational thinking approaches to explore solutions to design and engineering problems.
  4. Gain skills in programming the Raspberry pi micro-controller.
  5. Learn and practice effective technical communication skills for formal written reports.

Measurable Outcomes

  1. Implement a working visual/textual program to generate variations of a 3‐dimensional model in accordance to a given geometric problem
  2. Develop python programs that meet a set of specifications to solve computational problems.
  3. Produce a physical artefact as the final outcome of a computational process for a design project.
  4. Develop and deliver a written report on time that describes the results of the design project.

Course Structure

The first half of this course is led by faculty of Architecture and Sustainable Design [ASD], while the second half is led by faculty of Information Systems Technology and Design [ISTD]. This site contains contents regarding the first part of the term.

The first six weeks focus on computational design using the visual programming paradigm [>]. The following six weeks, after recess week, introduce programming using Python. Contents taught in both parts of the course complement one another.

Course Overview

Computational Design Thinking takes place twice a week. Each session is 2.5 hours long, split into two circa one hour segments. The first segment is typically theory oriented while the second aims towards practice and applications. The table below captures the overall organization content, subject to minor changes.

Session A

Course Overview
Introduction and Administrative

Orientation Activities
No Cohort Session

Visual Programming
Introduction to Grasshopper

Associative Modeling
Spirograph Tutorial

Curve Geometry
Tangent, Normal and Curvature

Parametric Modeling
Spiral Bridge Tutorial

Surface Geometry
Tangent, Normal and Curvature

Modular Design
Esplanade Tutorial

Modeling Entities
Projectile Physics

Multibody Dynamics
Planetary Motion Tutorial

Swarm Intelligence
Actors and Behaviors

Collision Detection
Environmental Interactions

Session B

Computer Aided Design
Introduction to Rhinoceros

Ranges and Expressions
Spreadsheet Tutorial

Spatial Geometry
Points and Vectors Algebra

Logical Patterns
Conditionals and Control Flow

Information Nesting
Lists, Grids and Tables

Data Landscapes
Scalar Fields and Bitmaps

Space and Time
Clock and Persistence

Mesh Geometry
Subdivision Tutorial

Material Elasticity
Particles and Springs

Minimal Surfaces

Concluding Session
Beyond Visual Programming

Design Review
Assignment Work






Generative Design

Parametric Design

Simulated Design

Course Instructors

Cohort 01

Stylianos Dritsas
Assoc. Professor

Grace Teo
Teaching Assistant

Cohort 05

Jason Lim
Lecturer (Course Lead)

Lee Yinjie
Yeo Kailin
Teaching Assistants

Cohort 09

Bige Tuncer
Assoc. Professor

Kateryna Konieva
Teaching Assistant

Cohort 02

Clover Chen
Adjunct Lecturer

Lynus Lim
Hendriko Teguh
Teaching Assistants

Cohort 06

Jason Lim
Lecturer (Course Lead)

Looi Siao Si
Lynus Lim
Teaching Assistants

Cohort 10

Jooyoung Hong
Assist. Professor

Lee Yinjie
Yeo Kailin
Teaching Assistants

Cohort 03

Jason Lim
Lecturer (Course Lead)

Yeo Kailin
Teaching Assistant

Cohort 07

Zheng Kai
Faculty Fellow

Dixon Loo
Kwang Kai Jie
Teaching Assistants

Cohort 11

Clover Chen
Adjunct Lecturer

Hendriko Teguh
Teaching Assistant

Cohort 04

Zheng Kai
Faculty Fellow

Tan Shao Xuan
Teaching Assistant

Cohort 08

Michael Budig
Assist. Professor

Hendriko Teguh
Looi Siao Si
Teaching Assistants

Grading Components

The table below summarizes grading components. Assignments 1, 2 and 3 will be handed out in the ASD led half of the course (weeks 1 to 6). The 2D Project will be a common project that involves all freshmore courses. The remaining components are part of ISTD led weeks 8 to 14.

1 – 2Assignment 114%
3 – 4Assignment 215%
5 – 6Assignment 315%
8 – 13Coursework9%
8 – 131D Project10%
102D Project10%
14Final Examination20%
Evaluation Survey &
Course Participation

Design Assignments

Course contents in the ASD led half are organized around three computational design topics, namely Generative, Parametric and Simulated design. Following those, there are three short associated assignments that aim to motivate students to practice both computation and design. Assignment’s important dates are listed below. Note that deadlines are set at the end of the listed day. Submissions must be uploaded using the central SUTD student portal [>].

Start Date

Sept. 22nd

Oct. 2nd

Oct. 16th

End Date

Sept. 29th

Oct. 16th

Oct. 23rd

Assessment Criteria

While the course is credited with Pass/Fail mark there are grades aimed at providing performance feedback. Design assignments are not evaluated in an objective manner as in mathematics, where correctness is depersonalized; instead they are assessed via peer-review, based on expertise, experience and domain knowledge represented by the course instructors.

  • Computation: Sophistication of approach and depth of process development.
  • Design: Creativity with emphasis on conceptual design and product outcome.
  • Presentation: Effectiveness of literary and visual communication using media.

Self-Evaluation Guidance

Design assignments do not aim to evaluate your percentile compliance in executing prescribed procedures or perceived effort committed; they measure the results and process efficacy. As this may be your first experience in design, computational or otherwise, we list below a few self-evaluation guidelines.


The objective of computation is to capture thought processes in an explicit medium which become depersonalized and a shared part of knowledge. We may evaluate the clarity, depth, playfulness, curiosity and sophistication of a computational process by observing its structure, complexity, performance and comprehension.

Positive AttributesNegative Attributes
Attempts to translate thought processes embodied into computational constructs from first principles in the sense of algorithmic thinking.Generic use of prefabricated utilities, replication of online ready-made visual programming definitions, lack of sense of originality.
Ability to compose hierarchically deep logical structures and organize abstractions in procedures or data by detecting common patterns.Preference of brute force approach to computing, use of copy & paste logic, verbose implementations, spaghetti graphs, it works therefore it is correct attitudes.
Use of computation is integral to the design process and outcome from the perspective of creative experimentation, generative qualities, measurement of design performance, parameter control, automation of work, result optimization.Computation and design are disjoint resulting into non-design outcomes or no-purpose computation such as use of computing for decorative purposes or unnecessarily complex computation for tasks easier performed manually.
Shows appreciation and understanding of mathematics and geometry via expressing concise relationships and elegant associative constructions in building abstract models.Inability to model conceptually abstract relationships such as order, hierarchy, proportionality, dependence etc. Use of geometry as visual graphical shapes devoid of reason.
Demonstration of the hacker’s attitude as in thinking outside of the box, lateral thinking in approaching challenges, stretching the limits of the machine, identifying corner cases and exploiting the medium.Lack of understanding of the medium’s capabilities and limitations, use of computing as faster calculator or smarter spreadsheet, demonstrable lack of understanding basic computing concepts.


The objective of design is to bridge the world of creative abstract ideas living in our mind with the shared world of unique artifacts as their embodiment. Design reflects the intellectual aptitude, sensibilities and personality of its creator. Design illuminates facets of life that were previously unknown or overlooked. Design offers a new perspective or interpretation for others to consider and change theirs.

Positive AttributesNegative Attributes
The design offers fragments of novelty and personal interpretation of the brief beyond conventional wisdom.The design replicates banal and stereotypical social norms without hint of reflective or critical thinking.
The design is inclusive allowing for multiple interpretations and audience to associate and project their imagination.One-dimensional, marketing grade slogan, intellectual one-liner or sound bite, demonstrates shallow thinking.
Experimental and inquisitive attitude demonstrates creativity, curiosity and desire to propose something specific, unique and genuinely interesting other people should care about.Following instructions mindlessly towards the completion of given tasks up to minimum standards compliance by replicating provided materials and arrival at indifferent outcomes.
The complexity of the outcome demonstrates proportionality between means and ends.The outcome can be dismissed as simplistic ie. too reductive or overly complicated ie. unnecessarily verbose.
The design outcome demonstrates understanding of contextual opportunities and limitations creatively embedded, overcome or entertained.The design outcome demonstrates inability to accommodate explicit or implied contextual parameters or evidences uncritical compromise.


The objective of developing presentation skills is communication for academic and professional purposes. Your aim is to foremost demonstrate clarity of thought by conveying the important message without making people feel lost in information; organizational capabilities via showing you can structure a complex sequence of thoughts coherently to guide the audience and tastefulness by demonstrating consistent, coherent and appropriate style and effort expended of visuals.

Positive AttributesNegative Attributes
Consistent quality across entire presentation, content value, information density and visual style, demonstrates meticulous attitude, respect for your audience and desire to communicate.Uneven or haphazard slide quality through presentation demonstrates lazy attitudes, poor discipline and low care for your audience.
Well structured content and logical order of sequence of thoughts hints for intellectually organized, deeper understanding of content and care for the audience to also understand.Content in illogical order shows lack of organizational skills, low understanding of the content itself or lack of care for whether the audience can arrive as the same conclusions, if any.
Use of formal language and style of referencing other people’s works demonstrates maturity in appropriately addressing the audience and acknowledging social, literary and academic norms worthy of university educated.Colloquial language, typos, grammatical mistakes, demonstrate lack of maturity or care for approaching other people, resulting in making bad impressions, rendering your work dismissable, even though the content may be valuable and worth sharing.
High quality imagery, framing and composition, without need for excessive effort in graphics, shows understanding of style aiming to elevate the content without making visuals the value of the presentation itself but instead clearly communicating the core ideas.Point and shoot pics, selfies, poorly cropped, bad margins, low-res screen shots, clip-art, logos, cute emojis etc. show lack of understanding the power of visual communication, lack of taste, and low respect for the audience, especially if design trained.
Simple, clear, effective typography using minimal amount effort just highlight the important part of the content without being in the way, shows care for content delivery.Inspirational use of typefaces, sizes and font accents shows misguided effort put in graphic design amateur acrobatics instead of valuable time spent on the actual content value.

Software Requirements

Course sessions are conduced in a design workshop format. Student must come to class with their laptops and follow the hands-on interactive sessions. Please ensure Rhino 6.0 is installed in your laptop prior to joining the first session. [>]

If you are using an Apple product you may use Rhino for Mac, or dual boot operating system approach (recommended), or the virtual machine approach, which may not work sufficiently fast. Assistance on software installation and troubleshooting is kindly provided by the SUTD IT support center. If you are using native Rhino for Mac please follow these instructions [>] to make the user interface similar to Windows which more often used by the instructors.

SUTD provides network Rhino licenses for students. You do not need to purchase your own. However, you will need to be connected to SUTD network. For additional detailed instructions, please refer to the following guide prepared by SUTD IT. Even though it refers to Rhino 5, the same steps apply for Rhino 6.

Course Policies

Coursework submitted within seven days after the deadline will have a 50% penalty on the score, thereafter will have a 100% penalty. Students may only miss formal assessments (quizzes, exams) due to the following reasons: (1) medical leave, (2) family emergencies, (3) other matters beyond their control, with documentary proof.

During class sessions all personal communication devices should be switched to silent mode. The use of social media unrelated to classroom activities (such as for private mail, instant messaging, surfing the internet, reading the news, or playing games) is considered inappropriate and distracting to other people.

Copying from someone else’s assignments or other class content is considered cheating and is not tolerated in this class. Signing an attendance sheet in place of another student is also considered cheating. You are expected to attend all classroom sessions.

Please remember that attempting to dishonestly influence or manipulate an academic evaluation, grade, or record is considered a breach of course rules and will be taken very seriously by the instructors, leading to undesirable results for the students conducting these actions.