https://github.com/ashleefv/applnumcomp

Applied Numerical Computing Course

https://github.com/ashleefv/applnumcomp

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 11 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Applied Numerical Computing Course

Basic Info
  • Host: GitHub
  • Owner: ashleefv
  • License: bsd-3-clause
  • Language: Jupyter Notebook
  • Default Branch: master
  • Size: 35.8 MB
Statistics
  • Stars: 27
  • Watchers: 4
  • Forks: 10
  • Open Issues: 4
  • Releases: 3
Created over 5 years ago · Last pushed 10 months ago
Metadata Files
Readme Contributing License

README.md

ApplNumComp: An Open Access Introductory Course for Applied Numerical Computing

This repository contains a set of lessons on Applied Numerical Computing covering Git for version control, LaTeX for typesetting, and MATLAB and Python for high-level programming and scientific computing.

Note: this site is based on the Fall 2020 course offering: CHE 4753/5753 Applied Numerical Computing for Scientists & Engineers at Oklahoma State University created and taught by Ashlee N. Ford Versypt, Ph.D. and assisted by Duncan H. Mullins. The translation of course materials to the online lessons here was supported by a mini-grant from the Computer Aids in Chemical Engineering (CACHE) Corporation. This material is based upon work supported by the National Science Foundation under Grant No. 2133411 (formerly 1845117) to Dr. Ford Versypt.

Course repository: DOI

Paper: DOI

ASEE Conference proceedings paper about the course: A. N. Ford Versypt, "An Interdisciplinary Elective Course to Build Computational Skills for Mathematical Modeling in Science and Engineering," in ASEE Annual Meeting, Tampa, FL, 2019. Online.

Statement of Need

An introductory course on Applied Numerical Computing was developed for upper division undergraduate and graduate students interested in research and industrial projects involving mathematical modeling using computational tools. The class was designed to fill a gap distinct from introductory programming and numerical methods courses and was intended to be very practical. Graduate students new to computational research were the primary student group targeted for the course topics. We have previously detailed the course FordVersypt 2019 and the final course project Ruggiero 2018. No single textbook covers all of the topics in the Applied Numerical Computing course. As the course emphasized best practices for reproducible research computing, we sought to apply the concept to the course materials for a reproducible computing educational experience. Here, we have curated a set of open educational resources for others to engage with the course lessons outside of the institution's learning management system and outside of the formal course. The main repository is organized into a set of lessons as Markdown-formatted text-based open-source webpages that include code snippets, explanatory text, reflection questions, sample solution software files, links to supplemental videos, related references, and other instructional materials. Each lesson can be considered as a stand alone module on a particular computational topic; however, there are conceptual links between some of the lessons. Many of the lessons include detailed MATLAB or Python coding examples, or both as in the case for Lesson 10: Python and MATLAB Plotting. For instance, Lesson 13: Parameter Estimation in Python provides a worked example for fitting parameters to one differential equation and the solution .py file followed by a second example for fitting parameters to multiple differential equations. Related Lessons 11 and 12 provide supportive general information and complimentary content with examples in MATLAB. Documentation associated with MATLAB or Python often only shows much simpler examples. Open-source worked examples are limited for even just solving multiple differential equations simultaneously independently from the parameter estimation. The full list of lessons is available here. Other supporting materials include a list of suggested readings with links to the sources, the full set of computational assignments, and the course learning objectives.

Course Description

Practical software tools for computational problem solving in science and engineering: version control (e.g., Git), mathematical typesetting (e.g., LaTeX), graphical user interfaces, and high level programming languages with libraries of solvers and visualization tools (e.g., Python and MATLAB). Application of numerical computing methods to solve systems of differential and algebraic equations and to estimate model parameters using optimization.

Prerequisites

  • Junior, Senior, or Graduate Student status
  • Differential equations and/or Calculus III
  • Basic familiarity with at least one programming language and introductory terminology such as program, for loop, if statement, etc. (e.g., C/C++, Fortran, Python, MATLAB, Maple, Java, Polymath, VBA). Note that these expectations are at the level of a first year engineering introductory computer programming class.
  • Or consent of the instructor

Course Learning Objectives

Upon completion of this course, you should be able to * utilize Git for version control using common commands: status, add, commit, push, pull * write scientific reports and similar documents in the LaTeX typesetting language using an article template and include equations, figures, tables, document hierarchy, cross referencing, and citations (using BibTeX) in the documents * use best practices for computational problem solving and research and scientific computing as described in publications provided as assigned readings * develop graphical user interfaces for interactive applied numerical computing * program well-documented, readable code in the high-level languages of Python and MATLAB that uses libraries, built-in functions, and user-defined functions * to solve systems of linear and nonlinear equations, * to numerically integrate functions and data, * to solve systems of ordinary and partial differential equations, * to estimate parameters for mathematical models using optimization and data fitting tools, * to create publication quality figures

Reading Materials

A full list of recommended and optional reading materials that complement the course lessons are available here.

Note on Accessibility

All of the YouTube videos produced by Dr. Ford Versypt have captions transcribed by Otter.ai and edited by Dr. Ford Veryspt and Duncan Mullins. PDF versions of all video transcripts are available upon request.

Lessons

Recommended Software

Computational Assignments

The assignments, related files, and grading rubrics are available in the Assignments folder of this repository. The overviews for the assignments are as follows: 1. Version control in Git and document typesetting in LaTeX * Create a Git repository to track versions of assignment files (in this and subsequent assignments) * Produce a LaTeX document with several required components using research or major course work as the topic 2. Programming in MATLAB while developing best practices for scientific computing (version control, commenting, and documentation) * Write a function to define a system of ODEs * Provide well-documented code following specified standards * Generate an HTML output file from MATLAB documenting the code 3. Using built-in functions and library routines for numerical methods (specifically ODE solvers) in MATLAB and Python * Solve a system of ODEs using numerical solvers in MATLAB and Python * Plot the results * Generate an HTML file to document the code from MATLAB * Generate a Jupyter Notebook file and a LaTeX file to document the code from Python 4. Parameter estimation of dynamic models using MATLAB and Python * Solve a system of ODEs using numerical solvers in MATLAB and Python * Use an optimization routine to iterate the ODE model parameters to fit data * Plot the results * Generate an HTML file to document the code from MATLAB * Generate a Jupyter Notebook file and a LaTeX file to document the code from Python 5. Develop a GUI in MATLAB starting with an existing computational model * Create a GUI in MATLAB to take user inputs and display simulation results from a set of user-defined functions provided by the instructor 6. "Final Project": Design and construct a GUI in MATLAB, verify code implementation, and review content covered throughout the course * Develop a GUI for MATLAB that takes a user-specified number of ODEs and explicit equations as input, solves the system of ODEs using ode45 in MATLAB, returns and exports the solution vector, and plots the solution vector components against the independent variable * Verify that the GUI works for test cases from the systems of ODEs used in Computational Assignments 3 and 4

Course Implementation Tips

  • A. N. Ford Versypt, An Interdisciplinary Elective Course to Build Computational Skills for Mathematical Modeling in Science and Engineering, Proceedings of the ASEE Annual Conference, Tampa, FL, 2019. DOI: 10.18260/1-2--32072.
  • “Teaching Computational Skills for Chemical Engineers,” Webinar, AIChE Education Division, Feb 2020. Archived recording

Community guidelines

For third parties wishing to 1) contribute to the module, 2) report issues or problems with the module, 3) or seek support, you may submit an issue suggesting an edit or modification. Dr. Ford Versypt can be contacted via her university email address ashleefv@buffalo.edu for further support.

(c) 2025 Ashlee N. Ford Versypt and Duncan H. Mullins

Owner

  • Name: Ashlee Ford Versypt
  • Login: ashleefv
  • Kind: user
  • Location: Buffalo, NY
  • Company: University at Buffalo, The State University of New York

GitHub Events

Total
  • Release event: 1
  • Watch event: 4
  • Push event: 21
  • Create event: 1
Last Year
  • Release event: 1
  • Watch event: 4
  • Push event: 21
  • Create event: 1