CS417 Outline

Fall 2023

1 Online Orientation and Course Introductions 08/26/2023 - 08/28/2023

Overview

In this pseudo-module, we will discuss course organization, policies, and mechanics. We will review the CS 417 course website structure, and get set up for the semester to come.

We will take a brief look at the major themes and areas of emphasis that we will discuss during the coming semester. This will include a review of prerequisite mathematics (mainly, Calculus) and programming (namely, principles from CS 250). We will discuss the basics of Python 3 with particular emphasis on:

Objectives

  1. Identify requirements, protocols, policies, and expectations for CS 417.
  2. Discuss and utilize select tools for communication, collaboration, and documentation.
  3. Discuss course themes and their relation to computational methods.

Relevance

You must understand the fundamentals of the tools used any course to be successful. An understanding of expectations for participation, assignment submission, and time management skills is foundational in all academic endeavors.


Getting Started

  1. Syllabus
  2. Grade Totals in Canvas
  3. Introduction & Overview
  4. Discussion Board Guidance
  5. Language Resources (from CS 330)
  6. Tools

The Fun Part of Module 1

  1. Personal Introduction Post Due: 08/30/2023
  2. Complete Homework 0
  3. The Beginning Lecture
  4. The Beginning
  5. Unfamiliar Notation
  6. A Quick Warm Up
  7. Unfamiliar Notation - Mountain Story
  8. Deriving the Quadratic Formula
  9. Example Code Repo

Office Hours

  1. Complete the office hours survey

Example Code

  1. ExampleBuildFiles/C
  2. ExampleBuildFiles/CPP
  3. SqrtExample
  4. TimeDilation

Summary

  1. Module Summaries - Introduction
  2. Module 1 Summary

2 Chapter 1: Machine Arithmetic & Related Matters

2.1 Real Numbers & Machine Numbers & Rounding 08/29/2023 - 09/06/2023

Overview

In mathematics the impact finite precision is oft dismissed as an artifact of rounding. In most–if not all cases–the solution is to use more decimal places or signifigant digits until precision errors are within an “acceptable threshold” (a nebulous phrase). In this module, we will discuss how to measure and analyze finite precision errors arise from representing a single numerical quantity.

Objectives

After this module students will be able to:

  1. Discuss the impact of finite precision on machine representation of floating-point values.
  2. Apply mathematical analysis to examine (i.e., quantify) the magnitudes that can be represented with a finite number of mantissa and exponent bits.
  3. Compare the error that arises in finite representation using the well known absolute error and relative error formulae.
  4. Explain the difference between absolute and relative error, and discuss how absolute and relative error are mathematically linked.

Relevance

When developing software of any size machine precision is a consideration. The impact may be something seemingly inconsequential (e.g., a rounding error of less than one cent). Machine precision can result in interesting impacts (e.g., a solar system simulation may compute planets spiraling into the Sun).


  1. Converting to Base 2
  2. During Lecture - Binary Arithmetic by Hand
  3. Precision Intro Lecture
  4. Review of Machine Precision
  5. Finite Precision Error - Base 2
  6. Finite Precision & Error... in General
  7. Complete Homework 1
  8. Complete Machine Assignment 1

Example Code

  1. FPvsArbitraryPrecision/FP-Error-Estimate-C++
  2. FPvsArbitraryPrecision/FP-Error-Estimate-Python
  3. FPvsArbitraryPrecision/FP-Error-Estimate-Rust

Summary

  1. Read Chapter 1 pages 1-4
  2. Module Summary

2.2 Rounding & Finite Arithmetic 09/07/2023 - 09/18/2023

Overview

In this module, we will continue our discussion of finite precision and its impact on arithmetic operations. The propagation of error through arithmetic operations will be our primary focus.

Objectives

After this module students will be able to:

  1. Discuss the impact of finite precision on error propagation in arithmetic operations involving two operands.
  2. Examine the impact of finite precision on error propagation in arithmetic operations involving three or more operands and one operation (e.g., addition, subtraction, multiplication, and division).
  3. Examine the impact of finite precision on error propagation in arithmetic operations involving three or more operands and combinations of two or more operations).

Relevance

When developing software of any size rounding is a consideration. The impact may be something seemingly inconsequential (e.g., a rounding error of less than one cent). Machine precision can result in interesting impacts (e.g., a solar system simulation may compute planets spiraling into the Sun).


  1. Review Finite Precision
  2. Arithmetic Error
  3. Cancellation Error
  4. Repeated Arithmetic Operations
  5. Bounding Arithmetic Error
  6. Complete Homework 2
  7. Complete Machine Assignment 2
  8. Arithmetic Error Revisited
  9. Arithmetic Error Generalized

Summary

  1. Read Chapter 1 pages 5-9
  2. Module Summary

2.3 Condition of a Problem 09/19/2023 - 10/01/2023

Overview

In this module, we will continue our discussion of finite precision and its impact on numerical computations. The propagation of error and the resulting behavior on computations will be our primary focus.

Objectives

After this module students will be able to:

  1. Discuss the sensitivity of computations to errors in input resulting from finite precision.
  2. Quantify (i.e., examine/model) through *Condition Number*s the sensitivity of computations to errors in input resulting from finite precision.
  3. Explain (through mathematical analysis) when a problem is ill-conditioned or well-conditioned.
  4. Leverage the results of Condition Number analysis to develop alternative methods of computation when a problem is ill-conditioned.

Relevance

Error propagation can result in interesting impacts (e.g., a solar system simulation may compute planets spiraling into the Sun). The ability to quantify the impact of a small change in input on a computation is foundational when building (or selecting) numerical methods (and algorithms)


  1. The Condition Number
  2. A Quick First Example
  3. Condition Number Example - A Line
  4. Condition Number Example - Square Root
  5. Condition Number Example - Natural Log
  6. Condition Number Example - Exponent
  7. Condition Number Example - Monomial
  8. Condition Number Example - Polynomial
  9. Condition Number Example - (Book) Integral
  10. Complete Homework 3
  11. Complete Machine Assignment 3
  12. Complete Homework 4

Summary

  1. Read Chapter 1 Section 4 pages 10-15
  2. Module Summary

2.4 Unit Summary 10/02/2023 - 10/07/2023

Overview

This module serves as a review of Chapter 1. We will revisit finite precision, arithmetic error, and conditioning of problems. This summary module also serves to force another review of requisite principles from Calculus.

Objectives

After this module students will be able to:

  1. Summarize the techniques discussed in this unit.
  2. Combine the techniques discussed in this unit to examine non-trivial problems.
  3. Utilize various principles from Calculus (e.g., differentiation, integration, limits, sequences, and series) in combination without becoming overwhelmed.

  1. Condition Number Sum (Discussed in Zoom Lecture)
  2. Condition Number Product
  3. Condition Number Exponent (Discussed in Zoom Lecture)
  4. Some Trigonometry (Thinking Assignment)
  5. Some Trigonometry (Thinking Assignment) - The First Few Steps
  6. Exam 1: Chapter 1 09/13/2023 - 09/14/2023

Matrices & Vector Functions

  1. Condition Numbers - Matrices
  2. Condition Numbers - Vector Functions

Summary

  1. Module Summary

Additional Reading

  1. Finite Precision in the Real World

  2. How you average numbers matters

3 Chapter 2 Approximation

3.1 Introduction to Approximation 10/11/2023 - 10/16/2023

Overview

Approximation has numerous applications throughout all disciplines. This can be something as simple as plotting data in Excel and computing a line of best fit or something more domain specific (e.g., transforming raw data for use in A.I. applications. In this Module we will explore Least Squares Approximation at an introductory level in preparation for a more rigorous and thorough derivation in later modules.

Objectives

After this module students will be able to:

  1. Locate and review web-based resources covering Least Squares Approximation at an introductory level.
  2. Explain how approximation methods can be employed for trend analysis for simple data (e.g., grade projection and price analysis).
  3. Manually (i.e., by hand on paper) build a solution for discrete data.

Relevance

To apply approximation methods to discrete (and later continuous) data, one must analyze (possibly) unfamiliar mathematical notation. Application of approximation methods requires a solid foundation in linear algebra.


  1. Least Squares Introduction Lecture
  2. Least Squares - A Whirlwind Introduction
  3. Least Squares - A Quick First Example
  4. Least Squares - Quadratic Example
  5. Least Squares - Considerations
  6. Least Squares - More Formal Notation
  7. A Tedious Problem?
  8. Machine Assignment 4: Implement a Matrix Solver

Semester Project

  1. Start working on CPU Temperature Semester Project
  2. Semester Project - Input Library
  3. Semester Project - Piecewise Linear Interpolation

Summary

  1. Module Summary

3.2 Approximation Proper 10/17/2023 - 10/30/2023

Overview

The previous module discussed the XTX|XTY method for computing polynomial approximation functions for discrete data. This Module will formalize the process and discuss how to generalize Least Squares approximation to both discrete and continuous data sets.

Objectives

After this module students will be able to:

  1. Explain the differences between the Riemann Integral and Riemann-Stieltjes Integral.
  2. Apply the weighted L2-Norm, properties of inner products, derivatives, and integrals to explain derivations of Least Squares Approximation.
  3. Explain the impact of basis functions.
  4. Manually (i.e., by hand on paper) build a solution for continuous functions/data.
  5. Discuss the motivation for a single Least Squares notation to reconcile the discrete and continuous cases.

Relevance

There are many applications in which one must approximate a combination of discrete and continuous data sets. This includes applications in A.I (e.g., hill climbing), Medical Imaging, and Aerospace applications.


Questions & the Impact of Point Selection

  1. Discrete Case & Impact of Point Selection
  2. Complete Homework 5

Deriving the Formal Method

  1. Least Squares Derivation - Overview
  2. Least Squares Derivation - Foundations (Discrete vs Continuous)
  3. Least Squares Derivation - Foundations (Applying Properties)
  4. Least Squares Derivation - The Fun Part

Putting It Together

  1. Least Squares Examples - sin(x)
  2. Least Squares Examples - "x-Squared"
  3. Least Squares - Using a Higher Degree Polynomial
  4. Least Squares - Using a Higher Degree Monomial
  5. Least Squares - Using a Lower Degree Monomial
  6. Least Squares Closing Thoughts - Discrete
  7. Least Squares Closing Thoughts - Continuous Error
  8. Complete Homework 6
  9. Complete Homework 7

Semester Project

  1. Semester Project - Least Squares Approximation

Summary

  1. Module Summary
  2. Read Chapter 2

Math References

  1. Integration by Parts DI Method

3.3 Unit Summary 10/31/2023 - 11/11/2023

Overview

This module serves as a review of Least Squares Approximation. We will revisit both the XTX|XTY and Ac = b methods and discuss how the two methods are equivalent for discrete points.

Objectives

  1. Explain how the [XTX|XTY] and [Ac|b] notations are related.
  2. Construct a mathematical proof to show [XTX|XTY] is equivalent to [Ac|b] for discrete data.

  1. Reconcile the XTX|XTY and Ab Methods
  2. Complete Exam 2 09/27/2023 - 09/28/2023

Semester Project

  1. Presolved Ab Method for a Line
  2. Semester Project - Final Submission

Summary

  1. Module Summary

Additional Reading

  1. So, what is a physics-informed neural network?
  2. Adaptive Physics-Based Non-Rigid Registration

4 Chapter 3: Interpolation 11/12/2023 - 12/01/2023

Overview

Interpolation has applications throughout many (if not all) disciplines. This can be something as simple as resizing an image in GNU Image Manipulation Program (GIMP). Interpolation can also be viewed as a complement to approximation. Just like approximation, we need to find a function of best fit. However, interpolation has a stronger invariant: the computed interpolation function must pass through all input points.

Objectives

After this module students will be able to:

  1. Locate and review web-based resources covering interpolation at an introductory level.
  2. Explain how interpolation methods can be employed for trend analysis for simple data (e.g., price analysis and temperature analysis).
  3. Summarize the differences between approximation and interpolation.
  4. Apply Lagrange Interpolation and Newton Interpolation.
  5. Apply piecewise linear interpolation (e.g., in the Semester Project).
  6. Compute interpolation error.
  7. Compare interpolation error to approximation error.

Relevance

To apply interpolation methods to discrete data, one must analyze (possibly) unfamiliar mathematical notation. Interpolation has applications in various everyday activities (e.g., photo editing, video upscaling, and mesh generation).


Interpolation Methods

  1. Interpolation - The Beginning
  2. Lagrange Interpolation
  3. Newton's Method (Interpolation)
  4. Newton’s Method - Algorithm 3.1
  5. Newton’s Method - Algorithm 3.2
  6. Complete Homework 8
  7. Complete Homework 9

Interpolation Error

  1. Interpolation Error
  2. Interpolation Error Example - Linear
  3. Interpolation Error Example - Quadratic (with Bounding)
  4. Interpolation Error Derivation
  5. Complete Homework 10

Interpolation Taking Stock

  1. Taking Stock

Piecewise Interpolation

  1. Piecewise Linear
  2. Spline Functions
  3. Cubic Spline Example

Example Code

  1. DividedDifferences

Summary

  1. Module Summary

5 Selected Topics - (Adjustments and Updates In Progress)

5.1 Chapter 4: Non-Linear Solvers 12/02/2023 - 12/08/2023

Overview

There exist many problems that can not be solved analytically. Such problems include finding zeroes (i.e., solutions), computing derivatives, and evaluating integrals. In this module we will discuss for first problem (i.e., computing numerical solutions to equations).

Objectives

After this module students will be able to:

  1. Discuss the requirements for each of the Bisection method, False Position (Regula Falsi) method, Secant method, and Newton’s method.
  2. Manipulate provided pseudocode and refine it into a form suitable for implementation in a selected language (e.g., C, C++, Python 3, or Rust).
  3. Identify the considerations inherent in converting pseudocode (theory) into usable code (application)–with particular emphasis on the impact of finite precision.

Relevance

There exist various numerical methods for solving problems, including finding zeroes of a function, performing numerical integration, and performing numerical differentiation. The ability to select the appropriate method, interpret pseudocode, and design an implementation (using best an appropriate language) is foundational when building numerical software.


  1. Solver Discussion
  2. Non-Linear Solvers
  3. Polynomial Examples
  4. cos(x) Example
  5. Solver Discussion Notes

Example Code

  1. NonLinearEquationSolvers/Python
  2. NonLinearEquationSolvers/Rust

Summary

  1. Module Summary

Final Exam

  1. Complete the Final Exam 10/04/2023 - 10/05/2023

6 Future Work

Overview

Computational Methods and Software covers a broad range of topics. In this course, we covered a few selected topics. This section contains resources and references for topics not covered this semester.


Example Code

  1. MonteCarloIntegration/Python
  2. MonteCarloIntegration/Rust

Reference Materials

  1. Templates for the Solution of Linear Systems
  2. The Runge Example for Interpolation and Wilkinson’s Examples for Rootfinding

7 Special Events and Dates

  1. Review the academic calendar.

8 Preamble

General Information

Below are the modules that comprise the course content.

Each module consists of a series of activities.

KEYS TO SUCCESS IN THIS COURSE:

  1. READ THE SYLLABUS

    The syllabus lays out the basic course policies. It tells you what you must
    do to earn a passing grade. It tells you how to get in touch with me if you
    run into problems.

  2. HAVE A SCHEDULE

    You have some freedom to schedule your own time in this course, but you
    DO need to set up a schedule. Do not forget that this course exists and that
    you are registered for it. Do not think you can repeatedly set it aside for
    days at a time and make up the time later.

  3. IF YOU DON’T UNDERSTAND SOMETHING, ASK QUESTIONS

    You can ask questions in the course Forums. You can contact me through email.
    You can contact me during office hours. You will find information on these
    options in the syllabus and Course Orientation module.

    Some people are too shy to ask questions. Some are too proud to ask
    questions. Part of being educated is knowing how to exploit your available
    information resources. In this course, I am one of those resources.

8 Postscript

All times in this schedule are given in Eastern Time.

Symbol Key
lecture Read:
slides Slides :
event Event or important date
text Read
lab
asst Assignment:
exam Take the
activity Do:
recitation In your recitation section:
construct Under construction:

9 Presentation

Topics Lectures Readings Assignments & Other Activities
topics lecture slides event exam video project construct text exam asst selfassess exam activity lab
Document Kind Prefix
lecture Read lecture notes:
video Watch:
event
exam Take the exam:
lab
asst Do assignment:
reading Read (optional):