ORIE 4741: AboutWho is this class for?This is a senior level class in Operations Research and Information Engineering. We expect that the class will be suitable for advanced undergraduates and masters students, and for earlyyear PhD students eager for some practical data science experience. The class may be of interest to students in CS, IS, ECE, Statistics, Economics, and other disciplines; however, ORIE students will have enrollment priority if the class is oversubscribed. Course requirements and grading
These weights are approximate; we reserve the right to change them later. Textbooks and readingsWe will not require students to purchase any textbook; the information you need to know will be posted as lecture slides or notes. However, we heartily recommend all of the following, and will be drawing on ideas from many of these:
For a refresher on linear algebra, we recommend Appendix A of Convex Optimization by Boyd and Vandenberghe; or for a longer, but very thorough, applied treatment, try the book on Vectors, Matrices and Least Squares by the same authors. SoftwareThis class will use the Julia programming language: all examples and code that we discuss in class or refer to in the homework will be written in Julia. Julia is a highlevel, highperformance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments (including Matlab and scipy/numpy). It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. Students may complete assignments using either Julia or Python (or both). We will be releasing numerical portions of homeworks (and collecting completed homeworks) as Jupyter notebooks. This format makes it easy to embed plots, code and text in the same document, and to switch between Julia and Python. If you use Julia, we recommend starting out with version Julia 0.4.6 on JuliaBox, and installing locally when version 0.5.0 is officially released in a few weeks. If you have trouble running Julia or run into errors, you can ask questions on the Julia Users Google Group; similarly, if you find a JuliaBox problem, use the JuliaBox Google Group. If you use Python, we recommend installing it via the Anaconda software stack, which comes with the numerical and plotting libraries you'll need (scipy, numpy, and matplotlib), and using Python version 2.7. Resources for learning Julia:
Relation to other courses
