Welcome to the Department of Industrial Engineering's Master of Science program! We are committed to providing you with the best education possible and to preparing you for a successful professional career.
You will probably find the academic system here at Pitt to be a lot different from what you are accustomed to as an undergraduate, and while the faculty and staff will always help you adjust, it will also require effort on your part. Our experience is that it would benefit you greatly to use any time you have between now and your start date to (a) improve your English as much as possible if you are a non-native speaker, and (b) do some self-study on three topics: computer programming, linear algebra, and statistics.
This is completely optional and does not affect your admission status in any way – it is just a suggestion to maximize your chances of being successful in your studies.
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.
- Development environment. Canopy comes with its own IDE. Anaconda includes Spyder. This link has instructions for Visual Studio or Eclipse if you already use these.
- Software Carpentry Workshop – Plotting and Programming in Python.
- Other reference: Python for Everybody by Charles Severance https://www.py4e.com/book.php. This is a university level CS0/CS1 textbook written for Python. Available in a range of electronic formats as well as in English, Spanish, Korean, and Chinese. Note: on this page, this is the only true introduction to programming reference provided. If you have never taken a computer programming course (all engineering curriculum globally include such a course and it was a requirement for the Pitt IE program), you may have to start here.
- R – R is primarily a data analysis and statistical language, but it has many capabilities that are needed for data analysis, such as data manipulation. It also benefits from having documentation written by and aimed at scientists and engineers who are not necessarily professional programmers.
- Obtaining R. The preferred source for R is Microsoft R Open
(This has been retired)
- You can also get this from the CRAN sites: https://cran.r-project.org
- For an IDE, install the R Studio IDE. Note that the web site has an introductory tutorial. http://www.rstudio.org. If you use Eclipse or Visual Studio, there are R extensions available for both.
- Software carpentry workshop – Programming with R https://swcarpentry.github.io/r-novice-inflammation/
- Further resources:
- R for Reproducible Scientific Analysis. A two-day workshop by the software carpentry group. https://swcarpentry.github.io/r-novice-gapminder/
- R for Data Science - http://r4ds.had.co.nz/ Textbook that focuses on data manipulation needed for data preparation.
- Matlab
- Mathworks works with vendors globally to sell Matlab. https://www.mathworks.com/. Matlab comes with its own IDE. Note: additional functionality in packages generally need to be paid for separately from the primary Matlab license for must functions.
- Octave is an opensource (freely available) language that uses the Matlab syntax and the base functions. Matlab scripts that do not require additional packages will generally work in Octave. https://www.gnu.org/software/octave/
- Software Carpentry workshop. https://swcarpentry.github.io/matlab-novice-inflammation/
- Book - Physical Modeling in Matlab by Allan Downey https://greenteapress.com/wp/physical-modeling-in-matlab/
Statistics
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.
- 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.
- Linear Algebra by Hefferon