NUS Spatial Computational Thinking
Offered By: National University of Singapore via edX
Course Description
Overview
Spatial Computational Thinking is increasingly being recognised as a fundamental skill for various spatial disciplines. It involves idea formulation, algorithm development, solution exploration, with a focus on the manipulation of geometric and semantic datasets. In this Professional Certificate Program, you will learn the theoretical knowledge and practical skills required for leveraging computation for the manipulation of various types of spatial data.
The program consists of four courses, starting with the fundamentals and gradually increase in complexity.
- The first course – Procedural Modelling – focuses on the fundamentals of procedural programming in a 3D environment. You will learn to write computational procedures using data structures and control-flow statements to automatically produce geometric models.
- The second course – Semantic Modelling – focuses on augmenting geometric models with an additional layer of semantic information. You will learn how geometric entities can be tagged with additional attributes, and how these attributes can then be used for querying your models.
- The third course – Generative Modelling – focuses on generating complex spatial information models capturing various relationships and constraints. You will learn how to tackle challenging problems by integrating multiple procedures that work together to generate spatial information models.
- The fourth course – Performative Modelling – focuses on evaluating alternative spatial configurations to support evidence-based decision making. You will learn methods for calculating various spatial performance metrics related to the built environment that can be used for comparative analysis of design options.
All the courses will use a free and easy to use browser-based software to write algorithms for generating and visualizing 3D models, called Möbius Modeller. The programming language uses a visual programming approach combining flowcharts with procedural programming. This will allow you to quickly learn the knowledge and skills required for writing complex computational procedures for generating, analysing, and visualizing complex 3D spatial information models. The programming knowledge you gain will be highly transferable if you later choose to use other languages such as Python or Javascript.
Syllabus
Course 1: Procedural Modelling
This course will focus on the fundamentals of procedural programming for generating spatial models. You will learn how to code, using functions, data structures and control-flow statements. You will create procedures to generate geometric models with attribute data. By the end of the course, you will be able to write your own procedures for generating spatial information models.
Course 2: Semantic Modelling
This course focuses on augmenting geometric models with an additional layer of semantic information. You will learn how geometric entities can be tagged with additional attributes, and how these attributes can then be used for querying your models.
Course 3: Generative Modelling
This course focuses on generating spatial information models capturing various relationships and constraints. You will learn a set of advanced modelling techniques for generating spatial models. You will create multiple procedures that annotate and query your models using attribute data. By the end of the course, you will be able to create your own scripts consisting of multiple procedures working together to generate complex spatial information models.
Course 4: Performative Modelling
This course focuses on evaluating alternative spatial models to support evidence-based decision making. You will learn methods for calculating various spatial performance metrics related to the built environment. You will use these performance metrics to carry out comparative analysis of design options. By the end of the course, you will be able to create scripts that automate the process of generating and analysing alternative design options.
Courses
-
The first in our “Spatial Computational Thinking” program, this “Procedural Modelling” course will focus on the fundamentals of procedural programming in 3D. You’ll learn to write computational procedures using data structures and control-flow statements to automate the production of 3D models.
During the course, you will learn a range of computational methods. These include general programming constructs such as using ‘while’ loops, ‘for-each’ loops, ‘if-else’ conditions, as well as writing your own custom functions. In addition, you will also learn to use two key data structures: list and dictionaries. And in the process, you will become familiar with the programming process: writing code, executing code and debugging code.
When creating modelling procedures, you will use a range of different modelling functions. You will also learn how geometric models can be augmented with an additional layer of semantic data. You will learn how geometric entities can be tagged with additional attribute values, and how these attributes can then be used for querying your models. You will also learn how to add attributes to define colour, materials, and other visual properties.
During this course, you will use Möbius Modeller, the modelling tool that is used throughout this “Spatial Computational Thinking” module. It is free and easy to use browser-based software to write algorithms for automatic generation and visualization of complex models with spatial information.
The programming language uses a visual programming approach combining flowcharts with procedural programming. This makes the process of learning coding much easier, allowing you to quickly acquire the knowledge and skills required for writing complex computational procedures for generating, analysing, and visualizing complex 3D spatial information models. The programming knowledge you gain will be highly transferable if you later choose to use other languages in your future work such as Python or Javascript.
The modelling exercises and assignments during this course will start with a simple procedural approach to 2D and 3D patterns and will progress towards more complex geometries representing entities within the built environment such as building footprints, building facades and staircases.
The course prepares you for the next course in the “Spatial Computational Thinking” program, focusing on generative modelling of more complex types of spatial information models.
-
As part of our “Spatial Computational Thinking” program, this “Semantic Modelling” course focuses on augmenting geometric models with an additional layer of semantic data. You will learn how geometric entities can be tagged with additional attribute values of different data types, and how these attributes can then be used for querying your models.
During the course, you will build on the foundations developed in the previous course, where the focus was on procedural modelling using geometric entities. In this course, you will first discover that the geometric entities actually have a topological structure that allows you to manipulate these models at a much deeper level.
You will then learn how to add semantics to your models, thereby allowing you to create data-rich spatial information models. This will allow you to apply powerful procedural data modelling techniques, especially the ability to query your semantic model and extract subsets of information.
In the process, you will also further develop your coding skills in the semantic world of computer science. You will revisit the loops and conditional and discover how these can be nested to create more complex control flows. You will also discover how list and dictionary data structures can be nested to create more complex types of data structures.
The modelling exercises and assignments during this course will progress from where the previous course left off. The geometric complexity of the modelling exercises and assignments will increase, but more important is the addition of layers of attribute data to all type of geometric entities, including positions, topological components, geometric objects, and collections of geometric objects. You will also learn how to add attributes to define colour, materials, and other visual properties.
The course prepares you for the next course in the “Spatial Computational Thinking” program, focusing on generative modelling of more complex types of spatial information models.
-
As part of our “Spatial Computational Thinking” program, this “Generative Modelling” course focuses on the generation of complex spatial information models capturing various relationships and constraints. You will learn how to tackle challenging problems by integrating multiple procedures that work together to generate spatial information models.
This course will build on the previous procedural modelling course. In this course, the complexity of the spatial information modelling tasks will increase, requiring a more advanced type of generative modelling approach. You will learn advanced generative modelling techniques, such as using law curves and resolving spatial constraints by implementing your own solvers. You will learn skeletal modelling strategies that make it easier to control the complexity of the generative process.
You will also learn a range of general mathematic techniques that are critical to basic types of spatial reasoning, including working with vectors, rays, and planes, and using various mathematical functions such as periodic functions, and dot product and cross product functions. You will also revisit the debugging process, learning how flowcharts can be used to isolate errors.
In the process, you will also further develop your coding skills. You will revisit the loops and conditional and discover how these can be nested to create more complex control flows. You will also discover how list and dictionary data structures can be nested to create more complex types of data structures.
The modelling exercises and assignments during this course will also become more advanced. The spatial information models will now represent complex buildings with a range of different types of components and parts, tagged with attributes and grouped into collections.
The course prepares you for the next and final course in the “Spatial Computational Thinking” program, focusing on performative modelling.
-
This course is the last in our “Spatial Computational Thinking” program. This “Performative Modelling” course focuses on evaluating alternative spatial models to support evidence-based decision making. You will learn methods for calculating various spatial performance metrics related to the built environment that can be used for comparative analysis of design options.
This course will build on the previous two courses that covered procedural and generative modelling. In this course, you will switch modes from generating to evaluating spatial performance. Thus, you will be creating procedures for evaluating alternative spatial models with respect to a set of performance indicators. This will once again require an increase in coding complexity, together with a new set of strategies for managing that complexity.
In this course, you will learn how to create your own reusable and customised function libraries. You will use this powerful technique to create a set of generative and performative functions. The generative functions will be used to generate alternative spatial models. The performative functions will be used to evaluate various performance metrics. You will then combine these functions, evaluating each spatial model against each performance metric.
The modelling exercises and assignments during this course will mainly focus on evaluating alternative spatial models for buildings within the urban environment. A site will be selected, and procedures will be developed for calculating performance metrics using morphological and raytracing analysis methods. The various metrics will then be weighted and aggregated, in order to allow alternative options to be easily compared.
Completing the three courses that make up the “Spatial Computational Thinking” program will provide you with the fundamental knowledge and skills required to tackle a wide variety computational design challenges using digital technologies.
Taught by
Patrick Janssen, Derek Pung and Pradeep Alva
Tags
Related Courses
Advanced Algorithms and ComplexityUniversity of California, San Diego via Coursera Advanced Learning Algorithms
DeepLearning.AI via Coursera Advanced Modeling for Discrete Optimization
University of Melbourne via Coursera Advanced Modeling for Discrete Optimization 离散优化建模高阶篇
The Chinese University of Hong Kong via Coursera Artificial Intelligence Algorithms Models and Limitations
LearnQuest via Coursera