|
GOALS
This course will be a hands-on introduction to engineering software development
for the model-based design and operational management of modern civil systems.
Students will learn how to model the structure and behavior of civil systems,
and then develop object-oriented software solutions for specific civil systems applications.
Motivating case studies will be drawn from road, rail, and utility networks,
networked building services, and spatial modeling for buildings and urban areas.
COURSE CONTENTS - SPRING SEMESTER 2012
The topics will be as follows:
Part 1: Data and Information Management for Modern Civil Systems (2 weeks)
-
Modern Civil Systems
Topic: Features and required capabilities.
Topic: Role of sensing, communications, control, and computation.
Topic: Pathway from sensing to data to information, knowledge and decision making to action.
Topic: Cyber-physical systems.
Topic: Challenges in development and operational management.
-
Visual Modeling with UML
Topic: History and Goals of UML.
Topic: Represention of concepts, relationships, constraints, rules and operations.
Topic: Modeling abstractions for system structure and system behavior.
-
Motivating Case Studies
Architecture and behavior modeling for the Washington D.C. Metro System.
Object and topological relationships in the GIS domain.
Applications of the Geography Markup Language (GML).
Digitization of aeronautical data and information exchange (AIXM).
Visual modeling of urban areas and buildings with the City Markup Language (CityML).
Part 2: Object-Oriented Software Development (3 weeks)
-
Languages for Engineering Software Development
Topic: Evolution of computer languages over the past 20 years?
Topic: Features of low- and high-level languages
Topic: Features of scripting languages versus compiled languages
-
Getting Started with Java
Topic: Writing and Compiling a Simple Java Program,
Topic: Basic programming (data types, expressions, assignments, branching constructs, loops),
Topic: Public and private methods and data.
Topic: Single- and multi-dimensional arrays,
Topic: Software Productivity Tools: Ant
Topic: Integrated Development Environments: Eclipse, Netbeans, Xcode 3/4.
-
Object- and Component-Based Modeling
Topic: Classes, objects, association relationship.
Topic: Inheritance and abstract classes.
Topic: Guidelines for class and package design.
-
Introduction to Data Structures and Algorithms
Topic: Arrays, arraylists, hash tables, and trees.
Topic: Working with the Java Collections Framework.
Part 3: Modeling System Structure and System Behavior (2 weeks)
-
Modeling System Structure
Topic: Association relationships (e.g., many-to-one, many-to-many),
Topic: Graph and network data structures and algorithms.
Topic: Two- and three-dimensional spatial representations.
-
Modeling System Behavior
Topic: Finite state machines and statecharts.
-
Case Study
Topic: Structure and Behavior Modeling for the Washington D.C. Metro System
Part 4: Design Patterns and Graphical User Interfaces (GUIs) (2 weeks)
-
Introduction
Topic: Design patterns in architecture and city planning.
Topic: Definition and Importance
-
Structural Design Patterns
Topic: Composite, adapter, and bridge design patterns.
-
Behavioral Design Patterns
Topic: Observer and mediator design patterns.
-
System Design Patterns
Topic: Model-view-controller and router design patterns.
-
GUI Development with Swing
Topic: Hierarchy of Swing components.
Topic: Layout managers.
Topic: Event listeners.
Topic: Working with Standard Geometric Shapes in Java2D.
-
Case Study
Topic: Visualization of networks and graphs.
Part 5: Advanced Topics (2 weeks)
Depending on student interests and project needs, topics
will be selected from:
-
Integration of Software Systems with Python
Topic: Features and benefits of Python.
Topic: Writing and running a simple Python programs.
Topic: Working with Jython.
-
More Graphical User Interface Development
Topic: Working with Java3D.
Topic: Working with free plotting software (e.g., ptplot).
-
Concurrent Behavior Modeling with Threads
Topic: Working with the Runnable Interface.
Topic: Lifecycle of a threaded process.
Topic: Threads and observers.
Topic: Opportunities and applications.
-
Working with Java and XML
Topic: User-defined tagsets, stylesheet transformations, XML schema.
Topic: Parsing XML documents.
-
XML binding for Java (JAXB)
Topic: Java to XML conversion.
Topic: XML to Java conversion.
-
Working with Semantic Web Technologies
Topic: The Resource Description Framework (RDF).
Topic: The Web Ontology Langage (OWL).
Topic: The Semantic Web Rule Language (SWRL).
Students will complete individual homework assignments,
and work in small teams on a Civil Systems software development project.
|