Skip to main content

140.778.01
Statistical Computing, Algorithm, and Software Development

Location
East Baltimore
Term
3rd Term
Department
Biostatistics
Credit(s)
3
Academic Year
2022 - 2023
Instruction Method
In-person
Class Time(s)
M, W, 3:30 - 4:50pm
Auditors Allowed
Yes, with instructor consent
Available to Undergraduate
No
Grading Restriction
Letter Grade or Pass/Fail
Course Instructor(s)
Contact Name
Frequency Schedule
Every Year
Prerequisite

Linear algebra; 140.776; and, in future years, 140.777 (to be offered as a special topics course in 2022-23 and will be offered as a permanent course starting in 2023-24.

Description
Teaches students common algorithms and essential skill sets for statistical computing and software development through hands-on experiences. Takes a large-scale logistic regression as an example and has students work toward implementing a high-performance `hiperLogit` R package for fitting this model. Presents progressively advanced algorithms and computing techniques. Trains students in various best practices for developing statistical software, including how to start with a basic version of the package and progressively integrate more advanced features. Prepares students for further training in statistical computing techniques and algorithms as covered in Advanced Statistical Computing (140.779).
Learning Objectives
Upon successfully completing this course, students will be able to:
  1. Explain a basic theory behind optimization algorithms and numerical linear algebra methods
  2. Diagnose numerical instabilities (and fix simple instances of such), which may arise when implementing mathematical algorithms in finite-precision arithmetic
  3. Develop a preliminary statistical software package in a maintainable and extensible manner
  4. Participate in an open-source software project
Methods of Assessment
This course is evaluated as follows:
  • 70% Homework
  • 30% Final Project