Skip Navigation

Course Directory

Statistical Computing, Algorithm, and Software Development

East Baltimore
3rd term
3 credits
Academic Year:
2022 - 2023
Instruction Method:
Class Times:
  • M W,  3:30 - 4:50pm
Auditors Allowed:
Yes, with instructor consent
Undergrads Allowed:
Grading Restriction:
Letter Grade or Pass/Fail
Course Instructor:
Akihiko Nishimura

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.


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

Instructor Consent:

Consent required for some students

Consent Note:

Consent of instructor required if pre-requisites not satisfied.

For consent, contact: