[Surface Plot]

ENCE 201: Engineering Information Processing


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

ENCE 201 IN-PERSON (current option)

Here's what in-person means:

  • Attend classroom lectures and recitations. JMP 3201, 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!

  • Stephen Eskandari (Grader) . E-mail: amires91 "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 name Jupyter Notebook/Zip file of Python programs.

    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: 7DGWP8. 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 Midterm and Final Exams

  • I will post exam on the "notes from class" web page at 12 pm (midday) on the day of the exam,
    and log into Zoom at 2 pm (just in case you have questions).
    If that is not convenient, send me an e-mail and I will try to reply promptly.

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

    For example, the file name: ENCE201-Midterm2-Austin-Mark.pdf would indicate midterm 2 exam paper from Mark Austin.

    Two Steps (we are experimenting with a new procedure):

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

    Step 2: Upload your exam to Gradescope. Stephen has it setup so that submissions
    will be accepted until midnight.

  • Good luck!

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 - SPRING 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%): March 13,
    The exam will be open book and open notes.
    Three questions ....
  • Midterm 2 (20%): April 22,
    The exam will be open book and open notes.
    Three questions covering: ...
  • Final (40%): May 15
    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.

Integrated Development Environments


Python Programming Resources


Numerical Computing with Python


Real-World Urban Datasets


Digital Twins

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