[Metro Map]

ENCE 201: Engineering Information Processing


Mark Austin,
Department of Civil Engineering,
University of Maryland, College Park.
Notes from Class: [ Fall 2024 ]

ENCE 201 IN-PERSON (current option)

Here's what in-person means:

  • Attend classroom lectures and recitations. KEB 1110, 2-2.50 pm.
    Schedule will be posted on notes from class.

  • Adhere to University Health Center COVID-19 Protocols.

  • Review of lecture material posted to the class web page. If the office hours
    does not work for you, come to class and we will answer your questions.

  • Review of solutions to recent midterm and final exam papers.

  • Midterm and final exams will be in-person.

  • Lecture and recitation content will be posted to notes from class.


ENCE 201 ONLINE (in-person web support and contingency plan)

Here's what online means:

  • For each lecture I will post the "lecture content" (pdf) to the notes from class page.

  • Download zip files of Python code from the notes from class page.

  • I will also post handouts and links to interesting web sites on notes from class .

  • Online office hours (see details below) where we can review the material and answer your questions.


Office Hours

  • Mark Austin . In-Person and Online office hours will be as follows:

    M, W and F at 11 am, in-person and via Zoom.

    Join Zoom Meeting: https://umd.zoom.us/j/6517468335

    Even if you just want to drop-in to catch up, that'll be fine too!

  • Assistance with Python .

    Henry Renze
    Email: hrenze@terpmail.umd.edu
    Location: ENGR 1166
    Hours: M/W/F, 9:9-50am, M/Tu/Th, 3-5pm.

  • TBD (Grader) . E-mail: abc "at" umd.edu

    Please e-mail the TA and request he return your graded homework.


Submission of Homework

  • Homework will be posted on the notes from class web page.
    Scan your solution into a pdf file having the name:
        ENCE201-Homework1-YourLastName-YourFirstName.pdf
    

    or suitably named Jupyter file exported in a pdf format.

    Log into gradescope, go to ENCE 201 and then click on the relevent homework link and upload your solution as a pdf file.

    Note: The six-digit course code is: BKRJYP. Otherwise, to avoid being asked for a six-digit course code, be sure to log onto gradescope from the e-mail account listed on ELMS.

  • Solutions will be posted after the homework assignments have been graded.


Submission of Final Exam

  • I will post exam on the "notes from class" web page at 4 pm on the day of the exam.
    If you have questions, please send me an e-mail and I will try to reply promptly.

  • You will have 24 hrs to work on your solution, scan and convert your solution into a pdf file having the name, e.g.,
        ENCE201-Final-YourLastName-YourFirstName.pdf
    

    For example, the file name: ENCE201-Final-Austin-Mark.pdf would indicate the final exam paper from Mark Austin.

  • E-mail exam to austin "at" umd.edu with the subject heading ENCE 201: Final Exam ...
    I will send a short e-mail acknowledgement ...

  • Midterm exam papers will be returned after they have been graded (be patient, grading 30 odd exams online takes time).

GOALS

This course is a hands-on introduction to software development and scientific computing for data and information modeling of modern civil infrastructure systems.

The course explores algorithms for solving problems in several important areas of numerical computing: roots of equations; matrix algebra and the systems of linear equations; function approximation, numerical differentiation and integration; and ordinary differential equations. Issues of solution accuracy, robustness, and efficiency will be considered. Data processing and numerical techniques will be presented in the context of engineering applications and solved in Python.


COURSE CONTENTS - FALL SEMESTER 2024

The topics will be as follows:

Part 1: Data and Information Management for Modern Civil Systems (1-2 weeks)

  • Introduction to Civil Infrastructure 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 and Digital Twins.
    Topic: Goals of Scientific Computing.
  • 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
  • Real-World Urban Datasets
    Topic: Urban, Government and Geographic Data Portals

Part 2: Introduction to Python (2 weeks)

  • Getting Started with Python
    Topic: Writing and Compiling a Simple Python Program,
    Topic: Software Productivity Tools: pip, Jupyter Notebook.
    Topic: Basic programming (data types, expressions, control structures, functions),
    Topic: Reading CSV (comma-separated variable) files.
    Topic: Two and three-dimensional graphics.
  • Working with Builtin Collections
    Topic: lists, dictionaries, sets.
  • Working with NumPy (numerical computing)
    Topic: 1-D, 2-D, 3-D arrays.
    Topic: Solution of Linear Matrix Equations.
  • Working with Pandas (tabular data)
    Topic: Working with data series and dataframes.

Part 3: Numerical Analysis and Computing (2 weeks)

  • Introduction to Numerical Analysis
    Topic: Roundoff and Truncation Errors
    Topic: IEEE 754 Floating Point Standard
    Topic: Subtractive Cancellation, Examples
  • Taylor Series
    Topic: Mathematical Analysis, Examples
  • Roots of Equations
    Topic: Bisection Method; Newton Raphson; Modified Newton Raphson
    Topic: Applications

Part 4: Matrices and Linear Matrix Equations (2 weeks)

  • Matrices and Matrix Algebra
    Topic: Matrix Properties and Arithmetic
    Topic: Matrix Determinant, Rank, and Echelon Form
  • Numerical Solution of Linear Matrix Equations
    Topic: Systems of Linear Equations
    Topic: Gauss Elimination
    Topic: LU Decomposition

Part 5: Interpolation and Curve Fitting (1 week)

  • Topic: Method of Divided Differences
  • Topic: Method of Lagrange Interpolation
  • Topic: Least Squares Analysis

Part 6: Numerical Differentiation and Integration (2 weeks)

  • Numerical Differentiation
    Topic: Finite Difference Approximations to Derivatives.
    Topic: Applications
  • Basic Numerical Integration
    Topic: Trapezoid Rule.
    Topic: Simpson's Method.
  • More Advanced Numerical Integration
    Topic: Rhomberg Integration
    Topic: Gauss Quadrature

Part 7: Solution to Ordinary Differential Equations (ODEs) (1 week)

  • Solution of ODEs
    Topic: Analytical and Numerical Solution Procedures
  • Numerical Solution to First-Order ODEs
    Topic: Euler Integration.
    Topic: Modified Euler Integration.


Part 8: Additional Topics (Class Interest and Time Permitting) (1-2 weeks)

  • Object-Oriented Software Development with Python
    Topic: Objects and Classes.
    Topic: Association and inheritance relationships.
  • GeoSpatial Modeling and Visualization
    Topic: Points, Lines, Polygons, MultiPoints, MultiLines, ...
    Topic: Region Connected Calculus (RCC).
    Topic: Modeling planar geometric objects with Shapely (Python).
    Topic: Introduction to GeoPandas.

CLASS TEXT AND RESOURCES

  • Text not required, but there will be lots of class handouts distributed via notes from class web page.
  • Python software will be distributed via the notes from class web page and Dropbox.


COURSE ASSESSMENT AND EXAM SCHEDULE

Course assessment will be as follows:

  • Homework (20%).
  • Midterm 1 (20%): October 18,
    The exam will be open book and open notes.
    Two questions covering Python.
  • Midterm 2 (20%): November 25,
    The exam will be open book and open notes.
    Three questions covering linear algebra and numerical methods.
  • Final (40%): December 14
    The exam will be open book and open notes.
    Five questions covering solution of linear matrix equations, least squares analysis,
    roots of equations, and numerical integration with Trapezoid Rule, Simpson's Rule,
    Gauss Quadrature and Romberg Integration.

Note.

  • The midterm exams will spaced approximately one month apart.
    Midterm 1 will be in first week of March. Midterm 2 will be mid-April, approximately one month after Midterm 1.
  • There will be no midterm or final make-up exams.
  • Students may drop the lower midterm score if they do better in the final (i.e., the final exam can count for up to 60% of the overall grade).
  • The boundary between a B grade and an A grade will be 80%.
    The boundary between D/F grades and a C grade will be 50%.
    No extra credit will be allowed.
  • Accommodation for students with disabilities will be made.
  • Homework must be completed on engineering paper. Write on one side only.
  • We encourage students to work together on solutions to the in-class problems and homework problems.
    However, each student must hand in their own homework and will be held accountable for understanding the concepts employed in the problem solutions.
  • At the end of the semester, please participate in the evaluation of courses through CourseEvalUM.
    Your feedback is confidential and an important means of improving the course in future semesters.

Download Python, PiP and Homebrew

  • Download Python 3.X . Apple currently ships its Macs with Python 2.X pre-installed.
    But for the purposes of this class I am going to assume you have Python 3.7 or later installed.
    This detail matters because the language is not backwards compatible (ugh).

  • Installing Homebrew on a Mac.
    Homebrew is a fantastic tool for increasing the utility of your laptop.

  • To install the package management program (pip) on Windows computers, check out this link .
    Two alternative methods are provided by Geeks for Geeks.

Working with the Mac Terminal

  • Cheatsheet for Mac Terminal Commands (pdf).
  • Cheatsheet for bash and zsh (pdf).
  • Getting started with the MacOS Terminal (zsh).

  • Amazon has books on using the MacOS Terminal and zsh shell scripting that are not too expensive.
    See, for example, "Mastering the MacOS Terminal" and "Mastering Zsh Shell Scripting" ...

  • Cheatsheets for Command Line Text Editors: nano and vim .

Working with a Dell Laptop

Integrated Development Environments


Python Programming Resources


Numerical Computing with Python


Real-World Urban Datasets


Chesapeake Bay Datasets


Climate Change Datasets


Digital Twins

Last Modified: November 20, 2024.
Copyright © 2023-2024, Department of Civil and Environmental Engineering, University of Maryland