This course is a hands-on introduction to tools and techniques for data mining and
machine learning analysis of data from the built environment.
Students will learn how to write and compile simple software programs in Python and Java (no prior
experience required), and then work step-by-step toward the design of software
solutions using objects, data structures and software patterns.
Students will be introduced to a spectrum of software tools, basic methods, and algorithms
for data mining (e.g., Weka) and machine learning analysis of data (e.g., DL4J, TensorFlow, Keras).
The semester will conclude with completion and presentation of a project.
SPRING SEMESTER, 2022
The topics will be as follows:
Part 1: Data and Information Management in the Built Environment (2 weeks)
Learning about the Built Environment
Topic: Modern Infrastructure Systems and Near-Term Challenges.
Topic: Engineering Sensor Systems.
Topic: Large-scale Urban and Global Sensing.
Opportunities for AI, Data Mining and Machine Learning
Topic: AI in the 1980s, 1990s, 2000s, and post 2010 era.
Topic: Recent Advances in Data Mining/AI/Machine Learning.
Topic: Cyber-Physical and Digital Twin Systems.
Part 2: Object-Oriented Software Development (3 weeks)
Introduction to Engineering Software Development
Topic: Evolution of computer languages over the past 50 years?
Topic: Low- and high-level languages
Topic: Scripting languages versus compiled languages
Getting Started with Python
Topic: Programming (data types, expressions, assignments, branching constructs, loops),
Topic: Arrays and dictionaries
Topic: Data visualization (charts)
Topic: Python Productivity Tools: Google Colab, Apache Zeppelin
Getting Started with Java
Topic: Writing and Compiling a Simple Python/Java Program,
Topic: Programming (data types, expressions, assignments, branching constructs, loops, methods),
Topic: Single- and multi-dimensional arrays,
Topic: Java Productivity Tools: Ant
Object-based Modeling with Python and Java
Topic: Classes, objects, association and inheritance relationships.
Topic: Abstract classes and interfaces.
Topic: Guidelines for class and package design.
Part 3: Collections, Basic Data Structures + Algorithms (2 weeks)
Java Collections Framework
Topic: Collection, Set and Map Interfaces
Topic: Working with Arraylists, Sets and HashMaps.
Topic: Basic Algorithms for Searching and Sorting
Python Collections Module
Topic: Basic Collections: lists, sets, tuples, dictionaries.
Topic: Working with lists, sets, tuples and dictionaries.
Part 4: Hands-On Data Mining and Machine Learning (5 weeks)
Working with Real-World Datasets
Topic: Urban, Government and Geographic Data Portals
Topic: Data Analysis with Pandas
Data Mining Tools and Techniques
Topic: Basic Methods (Classification, Association, Clustering).
Topic: Synthesis of Decision Trees and Rules
Topic: Data Mining with Weka (Applications)
Introduction to Machine Learning Techniques and Tools
Topic: Machine Learning Capabilities
Topic: Taxonomy of Machine Learning Problems
Topic: Types of Machine Learning Systems
Topic: Urban Applications of Machine Learning
Introduction to Neural Networks
Topic: Perceptron Models (Building Block of Machine Learning)
Topic: Activation Functions, Loss Functions, Metrics of Evaluation
Topic: Training Neural Networks (Backpropogation and Optimization Algorithms)
Multilayer Neural Networks
Topic: Multilayer Network Architectures and Capabilities
Topic: Neural Networks with One Hidden Layer
Topic: Neural Networks with Two Hidden Layers
Hands-On Machine Learning
Topic: Software Setup (TensorFlow, Keras, Jupyter, Anaconda, Deep Learning 4 Java)
Topic: Tensors and TensorFlow Graphs
Topic: Working with TensorFlow and Keras
Topic: Working with DL4J (Deep Learning 4 Java)
Part 5: Additional Topics (Class Interest and Time Permitting)
Software Design Patterns
Topic: Design Patterns in Architecture and City Planning.
Topic: Software Design Patterns (e.g, builder, composite hierarchy, visitor, model-view-controller).
Advanced Machine Machine Learning
Topic: AutoEncoder Neural Networks
(new for 2021/2022)
Topic: Recurrent Neural Networks
(new for 2021/2022)
Students will complete individual homework assignments,
and work in small teams on a data mining/machine learning project.