Notes From Class
Week 1: January 26, 2023.
-
Topic (2023-01-26): Welcome to ENCE 688R.
-
Topic (2023-01-26): Civil Information Systems (Part 1)
(pdf)
(video)
Week 2: January 31 and February 2, 2023.
-
Topic (2023-01-31): Civil Information Systems (Part 2)
(pdf)
(video)
-
Topic (2023-01-31): Civil Information Systems (Part 3)
(pdf)
(video)
(passcode: q0^e9!H$)
-
Topic (2023-02-02): Civil Information Systems (Part 4)
(pdf)
(video)
Passcode: mv2Ya!By
-
Topic (2023-02-02): Civil Information Systems (Part 5)
(pdf)
(video)
Passcode: mv2Ya!By
-
Download: Civil Information Systems (Parts 1-2-3-4-5)
(pdf)
(Version: 2023-01-27)
-
Reading: Maria's Report on Digital Engineering at INL
(pdf), 2022.
-
Reading.
Bello J.P., Silva C., Dubios R.L., Arora A., Salamon J., Mydlarz C., and Doraiswamy H.,
SONYC: A System for Monitoring, Analyzing and Mitigating Urban Noise Polution
(pdf),
Contributions of the ACM, Vol. 62, No. 2, February 2019, pp. 68-77.
-
Reading.
Jackson D., Dependable Software by Design
(pdf),
Scientific American, June, 2006, pp. 69-75.
-
New Class Schedule:
Starting Week 3 (Feb. 6), we will meet on Monday and Tuesday, 5-6.15 pm.
Week 3: February 6 and 7, 2023.
Week 4: February 13 and 14, 2023.
-
Topic (2023-02-13): Python (Part 1) (History and Program Development)
(pdf)
(video)
Passcode: 9768$x.m
-
Topic (2023-02-13): Python (Part 2) (Data Types and First Program)
(pdf)
(video)
Passcode: 9768$x.m
-
Topic (2023-02-13): Python (Part 3) (Working with Lists, Dictionaries and Sets)
(pdf)
(video)
Passcode: 9768$x.m
-
Topic (2023-02-14): Python (Part 4) (Working with NumPy)
(pdf) (video)
(video)
Passcode: 6%XdmEi.
-
Topic (2023-02-14): Python (Part 5) (Working with Pandas)
(pdf)
(video)
Passcode: 6%XdmEi.
-
Download: Python Tutorial -- Introduction (Parts 1-5)
(pdf)
(Version: 2023-01-18).
-
Homework 1: Homework 1
Due: March 1.
Week 5: February 20 and 21, 2023.
Week 6: February 27 and 28, 2023.
-
Topic (2023-02-27): Introduction to Java (History and Buzzwords)
(pdf )
(zoom video)
-
Topic (2023-02-27): Introduction to Java (First Program)
(pdf)
(zoom video)
-
Topic (2023-02-28): The Java Language (Part 1) (Basic Stuff)
(pdf)
(zoom video)
Passcode: 09W#K5z$
-
Topic (2023-02-28): The Java Language (Part 2) (Packages and Methods)
(pdf)
(zoom video)
Passcode: 09W#K5z$
-
Topic (2023-02-28): The Java Language (Part 3) (Arrays)
(pdf)
(zoom video)
Passcode: 09W#K5z$
-
Download: The Java Language (Parts 1-2-3)
(pdf)
(Version: 2020-09-28)
-
Homework 2: Homework 2
Due: March 15.
Week 7: March 6 and 7, 2023.
-
Topic (2023-03-07): Java Productivity Tools (Apache Ant)
(pdf)
(zoom video)
-
Topic (2023-03-06): Working with Classes and Objects (Part 1) (Objects, Relationship among Classes)
(pdf)
(zoom video)
Passcode: LA.y#0q@
-
Topic (2023-03-06): Working with Classes and Objects (Part 2) (Association Relationships)
(pdf)
(zoom video)
Passcode: LA.y#0q@
-
Topic (2023-03-07): Working with Classes and Objects (Part 3) (Composition and Applications)
(pdf)
(zoom video)
Passcode: dpji99Y*
-
Download:
Working with Classes and Objects (Parts 1-2-3)
(pdf)
(Version: 2023-03-05)
Week 8: March 13 and 14, 2023.
Week 9: March 20 and 21, 2023.
Spring Break!
Week 10: March 27 and 28, 2023.
-
Topic (2023-03-27):
Java Collections Framework
(pdf).
Part 1: Interfaces, Implementations, Algorithms, ArrayLists:
(zoom video)
Passcode: 1BdnH=m$
-
Topic (2023-03-28):
Java Collections Framework
(pdf).
Part 2: Maps, Sets, and Associations:
Videos:
(zoom video 1)
(zoom video 2)
Passcode: &d.=@n4U
-
Handout:
Tutorial from IBM: Java Collections Framework
(pdf)
This tutorial is old, but has very nice examples ...
-
Java Source Code:
Click here to download a zip
file of java-code-collections (Version: 2023-03-05).
Either load into your favorite IDE (Eclipse, Visual Studio) or open a terminal window and type: ant -p
You will find target programs for:
-
Working with Arraylists.
-
Hashmaps and linked hashmaps.
-
Working with Hashsets.
-
Modeling of function interfaces.
-
Symbol tables.
-
Programming for Association Relationships.
-
Filtering of collections.
-
Working with Tree maps and tree sets.
-
Assembly of weather and passenger data models.
-
Homework 3: Homework 3
Due: April 18.
Week 11: April 3 and 4, 2023.
-
Handout:
Alexander C., Ishikawa S., and Silverstein M., A Pattern Language: Towns, Buildings, and Construction
(pdf),
Oxford University Press, 1977.
Alexander's early work (1960s and 70s) on finding patterns of solutions to
problems in the development of towns and buildings inspired the
development of software design patterns in the 1980s.
-
Handout:
Joshi R., Java Design Patterns: Reusable Solutions to Common Problems
(pdf),
Exelixis Media, 2015.
Download patterns from
github.
-
Topic (2023-04-03):
Structural Design Patterns
(pdf).
-
Handout:
Support Material:
J2EE Patterns ,
Sun Services, SUN Microsystems, 2003.
-
Java Source Code:
Click here to download a zip
file of java-code-design-patterns (Version: 2023-03-10).
You will find target programs for:
-
Adapter Design Pattern.
-
Bridge Design Pattern.
-
Builder Design Pattern.
-
Chain of Responsibility Design Pattern.
-
Composite Hierarchy Design Pattern.
-
Factory Design Pattern.
-
Mediator Design Pattern. Application with JavaFX.
-
Model-View-Controller Design Pattern and Applications.
-
Observer Design Pattern.
-
Proxy Design Pattern.
-
State Design Pattern.
-
Strategy Design Pattern.
-
Visitor Design Pattern and Applications.
-
Java Source Code:
Click here to download a zip
file of Liang's tree and graph code (Version: 2023-04-11).
-
Java Source Code:
Click here to download a zip
file of JGraphT (Version: 2023-04-12).
The JGraphT Library (2018) provides computational support for a wide range of graph analysis
problems, including all paths analysis.
-
MIDTERM EXAM: April 4, 5 pm.
Here is the midterm exam .
One question covering Python; a second question covering Java.
Week 12: April 10 and 11, 2023.
-
Topic (2023-04-10):
Behavior Modeling and Software (Mediator, Observer, Visitor) Design Patterns
(pdf)
(video)
Passcode: 4*8#uRK0
-
Topic (2023-04-11): Modeling Graphs and Networks
(pdf)
(video)
Passcode: n$@4Yku5
-
Algorithms for Directed Graphs (from CS department at Princeton).
-
Reading: Dunbar D., Hagedorn T., Blackburn M., and Verma D., Use of Semantic Web Techologies (SWT) for
System-Level Verification of Multi-Domain Systems
(pdf),
Transdisiplinary and the Future of Engineering, 2022.
Week 13: April 17 and 18, 2023.
-
Handout: Java Topology Suite in Action (pdf).
-
Handout: JTS Developers Guide (pdf).
-
Java Source Code:
Click here
to download java-code-sax-and-dom (Version: 2023-04-18).
Week 14: April 25 and 27, 2023.
-
Graph Problems.
Hard Graph Problems (pdf).
-
JGraphT Tutorial, Data Structures and Algorithms.
Tutorial on JGraphT Library (pdf),
and detailed writeup on data structures and algorithms (from 2019)
(pdf).
-
Reading.
The Bridge: Linking Engineering and Society
(pdf),
National Academy of Engineering, Vol. 53, No. 1, Spring 2023.
Notable position papers in this report include:
(1) MetaStructure Approach to Smart and Sustainable Cities, and
(2) Smart Infrastrcuture for Smart Cities, and others ...
-
Java Source Code for JavaFX:
JavaFX is a set of graphics and media packages that enables developers to design, create,
test, debug, and deploy client applications that operate consistently across diverse platforms.
From an software standpoint, JavaFX implements a number of interesting extensions to Java Collections.
Click here to download a zip
file of java-code-javafx (Version: 2023-03-10).
The code implemented as Java Modules and runs under Java 11.
You will find target programs for:
-
Working with Affine transformations.
-
Working with observable lists and maps (extension of Java collections capability).
-
Canvas applications.
-
Working with chart (barchart, linechart, scatterchart) applications.
-
Demonstrate drag-and-drop capability.
-
Drawing tools.
-
Sketch editing.
-
Specification of Graphical User Interfaces with FXML.
-
Three-dimensional graphics applications.
-
Working with list and menu applications.
-
Working with table and tree applications.
-
Adding zoom capability to graphical user interfaces.
Week 15: May 2 and 4, 2023.
-
FINAL EXAM. May 4, 24 hrs.
The final exam will be open book and open notes,
and will have the same style as the midterm exam.
PROJECT REPORT , Due: May 12 (no extensions)
Write a 10-15 page report on your project that includes:
-
A problem statement.
What problem (or class of problems) does your software development address?
-
The software architecture. Describe the use of packages,
arrangement of user-defined classes and interface classes,
graphs and Java/Python collections in your program.
-
Screendumps of your graphical user interface.
-
Brief conclusions and steps for future work (if you had more time).
Finally, please send me a zip of your source code.
Last Modified: May 5, 2023,
Copyright © 2023, Department of Civil and Environmental Engineering, University of Maryland.