Welcome to the University of Pittsburgh Department of Industrial Engineering Pre-MS preparation page. In order to enhance your experience in the program, we suggest a few technical areas that you might want to brush up on – these are optional, but our experience is that they would be a great way to get ready for the MS program if you have some time on your hands between now and August! Specifically, you should review scientific programming, statistics, and linear algebra.

Computer Programming

Choose one of these three technical computing languages to learn/review. Python (SciPy), R, and Matlab are all built on well established linear algebra and other numerical libraries. After you learn one, it is not difficult to move to another of these three.  Each of these has a base language, but the true capabilities of each language platform are the libraries and packages that are available. In practice, the choice of language should be based on how available packages match the specific task.  Note that Python and R packages tend to be free, while Matlab packages need to be purchased separately.

For each language, we recommend an online workshop (Software Carpentry, which focuses on technical computing), a freely available book for reference (can be used if the online course is not available), and we provide additional references for using the language with linear algebra and statistics.  We also suggest a fuller course if you have time.

Other than Matlab, the software and the books listed are freely available for a variety of operating systems. Python is used in a wide range of technical and non-technical areas including optimization, numerical methods, statistics, data manipulation and analysis, and many specialized areas of mathematics. Matlab/Octave is used in areas of numeric computation, such as optimization and other numeric methods (Note that Matlab is limited in statistics compared to R or Python without additional purchased libraries). R is principally used in statistics and data analysis. (Note: R is used in IE 2005, 2007, 2064) 

If your programming background is deficient or unsure, we suggest you learn one language this summer as it will help get your mind used to learning on your own outside of class instruction, which is the biggest difference between graduate school and your undergraduate education.

For the language you select, you will need to (a) obtain the language and integrated development environment (IDE), and (b) go through a short workshop on scientific programming.  We also identify some references that you can download.

  • Python (Scipy). Note that Python is heavily used in a number of different scientific and mathematical domains in addition to the general computing that it is most known for. You should get Python and learning materials from sources that focus on the needs for technical computing (as opposed to general or internet applications). Get version 3.x (2.x is still available, but is only in use where applications were developed from before 3.x.).  Make sure that the resources you use are geared towards scientific and technical computing, as the needs of scientists and engineers are different from an IT worker or general programmer.
    • Obtaining Python. Choose one of these for use in technical computing.

Continuum Anaconda (recommended) - https://www.anaconda.com/download/

Alternative - Enthought Canopy transition to the Enthought Deployment Manager (EDM) and Visual Studio Code.


This text focuses on using probability and computer simulation to motivate and explain fundamental concepts, in contrast to the arithmetic equations that most of you were taught in statistics. You should do all exercises using your technical computing environment of choice. The references in Python, R, or Matlab will help you. Note that Matlab has limited statistics capability without purchasing the Statistics and Machine Learning Toolbox.

  1. Introductory Statistics with Randomization and Simulation by Diez, Barr, and Çetinkaya-Rundel https://www.openintro.org/stat/textbook.php?stat_book=isrs

Linear Algebra  

This should be a review for most of you. Your goal should be to understand the concepts then solve the numerical exercises in Python, R, or Matlab. The references below will help you implement the linear algebra methods in Python, R, or Matlab.

  1. Linear Algebra by Hefferon - http://joshua.smcvt.edu/linearalgebra/