This course is designed to teach students essential elements of computer programming and analytics that will be useful in carrying out research and other work. This work often involves
(i) the gathering, organizing, and analysis of data
(ii) the use of numerical algorithms for analysis (e.g. regression, simulation, optimization, solution of nonlinear equations, etc.)
(iii) the generation and presentation of results using tables, graphs, and reports
This course will prepare students to be able to correctly and efficiently carry out these tasks. No prior programming experience is necessary to take this course. Students from all divisions and departments are welcome. Specific course topics include:
1. Basics of programming: variables, memory, control structures, code design
2. Overview and comparison of languages and tools: Excel and Visual Basic, MATLAB, Python, SQL, C
3. Principles of software design: performance and reliability, testing and debugging, code profiling
4. Overview of analytics, including predictive analytics and prescriptive analytics. Techniques covered will include principal components analysis, k-nearest neighbors, logistic regression, and difference-in-differences.
5. Use of software packages and libraries including mysqldb, urllib, numpy and scipy in Python and Numerical Recipes in C++. The course focuses on the use of existing software tools to accomplish a task, not on the writing of original code for numerical methods.
The majority of the course will focus on MATLAB, Visual Basic, and advanced Excel, Python, SQL and C (and C++). Examples will be taken from finance, economics, operations research, and other disciplines. There will be a midterm and a final exam.
Course work: The work for the course will involve weekly assignments. Cheating will strictly not be tolerated.
Sidney Taurel Associate Professor of Business
Yash Kanoria is the Sidney Taurel Associate Professor of Business in the Decision, Risk and Operations division at Columbia Business School, working primarily on matching markets and the design and operations of marketplaces. Previously, he obtained a BTech from IIT Bombay in 2007, a PhD in Electrical Engineering from Stanford in 2012, and spent a year at Microsoft Research New England during 2012-13 as a ...