Teaching

Graduate level (Level 5000/6000)

GE5230: Geospatial Statistics and Visualization

Data visualization is crucial for understanding geographical phenomena, and statistical thinking is essential for effective visualization. This course offers students a comprehensive understanding of geospatial data visualization and analysis techniques. Students will develop a strong foundation in statistical methods and spatial thinking abilities while learning to create compelling visualizations using Python. Key topics include statistical patterns, point patterns, areal patterns, and geovisualization. Through hands-on experience with Python libraries, students will enhance their spatial data science skills. By the end of the course, students will be well-equipped to analyze, visualize, and communicate geospatial data insights effectively.


AY24/25 | AY25/26 | AY26/27 (plan)


Course Material (coming soon)

GE6211: Spatial Data Science

This course familiarizes students with advanced spatial data science techniques and literature in the emerging field of digital geography. Topics examined include spatiotemporal data mining, geospatial simulation, spatial statistics and machine learning techniques, and spatial data quality. Upon completion of the course, students will be expected to be able to apply these spatial data science techniques to their field(s) of interest, and critically assess the analysis outcomes and implications to human everyday life and the physical environment. Students are required to undertake an independent project, and their work will be presented in a seminar format.


AY25/26 (co-teach) | AY26/27 (plan)

GE5231: Geospatial Machine Learning and Artificial Intelligence

Focusing on geospatial problems, this course introduces students to machine learning (ML) techniques for analyzing and interpreting spatial data. Students will learn to apply ML methods to spatial issues, emphasizing a solid foundation in ML for spatial analysis. The course covers essential concepts, methodologies, relevant tools (Python libraries), and best practices for implementing ML studies. Building upon this foundation, students will explore real-world ML applications, providing them with a comprehensive understanding of the ML pipeline. This approach equips students with the skills and knowledge to tackle various spatial problems and adapt to emerging challenges in the geospatial field.


AY24/25

Undergraduate level (Level 2000/3000)

GE3238: GIS Design and Practices

This course examines the range of considerations necessary to develop GIS, and is intended for geographers, planners, IT managers and computer scientists who have already acquired an introductory knowledge of the field. The course begins with a formal understanding of data and information and compares spatial data to traditional data processing. Topics covered are representation and storage of spatial data, database design, Internet GIS, and/or basic GIS programming. Students will obtain substantial hands-on GIS skills in support of geographic and environmental analyses.


AY25/26

GE2215: Introduction to GIS

This course focuses on the important concepts and the practical use of Geographic Information System (GIS) in problem solving in both the social and physical sciences. Topics to be covered include vector and raster data formats and their analytical functions. This course is designed as learning through practicing, so practical laboratory excises utilising GIS software such as ArcGIS will be major classroom activities. This course is mounted for students throughout NUS with interests in GIS applications in sciences, social sciences, engineering and business analysis.


AY25/26 (co-teach)

CS1010HS: Programming Methodology

This course introduces the fundamental concepts of problem solving by computing and programming using an imperative programming language. It is the first and foremost introductory course to computing and is equivalent to CS1010, CS1010S, CS1010E, CS1010A and CS1010X Programming Methodology. The course will be taught using the Python programming language and topics covered include problem solving by computing, writing pseudo-codes, basic problem formulation and problem solving, program development, coding, testing and debugging, fundamental programming constructs (variables, types, expressions, assignments, functions, control structures, etc.), fundamental data structures: arrays, strings and structures, simple file processing, and basic recursion. This course is appropriate for CHS students.


AY26/27 (plan)

CS2040HS: Data Structures and Algorithms

This course introduces students to the design and implementation of fundamental data structures and algorithms. The course covers basic data structures (linked lists, stacks, queues, hash tables, binary heaps, trees, and graphs), searching and sorting algorithms, and basic analysis of algorithms. Students will be implementing these in Python or Java.


AY26/27 (plan)