Programming Resources
Listed below are a number of resources for those interested in shoring up their programming skills. QMSS makes no warrantees or representations as to the quality of these resources. They have been compiled as a reference for QMSS students and alum. If you have any resources to share or would like to provide feedback on your experience with any of these resources, please contact us at [email protected].
Columbia Experimental Laboratory in the Social Sciences (CELSS)
The Columbia Experimental Laboratory for Social Sciences provides a space for researchers to run computer-based experiments with participants from Columbia University, Barnard, and Columbia alumni. Students and alumni can register through the C.E.L.S.S. registration system and earn money by participating, while contributing to the advancement of research. You can find the laboratory in room 505 on the 5th floor of the International Affairs Building at Columbia University. More information about C.E.L.S.S. can be found here.
Programming in R
Introduction: R is a language and environment for statistical computing and graphics. R provides a wide variety of statistical (linear and nonlinear modeling, classical statistical tests, time-series analysis, classification, clustering, etc.) and graphical techniques, and is highly extensible. R is available as Free Software and is an integrated suite of software facilities for data manipulation, calculation and graphical display.
Manuals:
- The R project for Statistical Computing: R-project website
- An Introduction to R (pdf): The official R manual, provided by its creators.
- Resources to help you learn and use R: Compiled by UCLA's Technology Services
- The R Language Definition (pdf): A detailed guide to the technical terms of the R language. Useful to have when learning R from any source.
- R Programming Wikibook: A comprehensive source of information on R from introduction to more advanced topics.
- Penn 4-Week Summer R Course: A guided, 4-week tour of R.
- The R-Inferno (pdf): A guide to and description of trouble spots, odities, traps and glitches in R that may be a good resource once you’ve grown comfortable writing your first programs.
- An R and S-PLUS comopanion to Applied Regression: By John Fox and Sanford Weisberg. Webite includes code, data, and other resources used in the book.
- Bret Larget's R Help
- A Brief Guide to R for Beginners in Econometrics by Mahmood Arai
- Using R for Data Analysis and Graphics: An introudction by J.H. Maindonald
- Kickstarting R by Jim Lemon
- Econoetrics in R: By Grant V. Farnsworth
Online Videos/Courses:
- Computing for Data Analysis (Coursera): A 4-week, free online course that is about learning the fundamental computing skills necessary for effective data analysis. You will learn to program in R and to use R for reading data, writing functions, making informative graphs, and applying modern statistical methods.
- Videos on Data Analysis with R: An introductory through advanced source of videos for the R student.
- Try R (CodeSchool): A free, interactive, introductory course for R beginners.
Downloads:
Programming in Python
Introduction: Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java. Some of Python's notable features:
- Uses an elegant syntax, making the programs you write easier to read.
- Is an easy-to-use language that makes it simple to get your program working. This makes Python ideal for prototype development and other ad-hoc programming tasks, without compromising maintainability.
- Python's interactive mode makes it easy to test short snippets of code. There's also a bundled development environment called IDLE.
- Can also be embedded into an application to provide a programmable interface.
Manuals:
- Python Wiki - Beginner's Guide: A textual introduction to Python by its creators.
- Instant Python: A crash-course in Python for those with programming experience (can already program in another language).
- Python Official Documentation: The complete Python information bank from its creators.
Online Videos/Courses:
- Python (Codecademy): A thorough, interactive introduction to Python.
- Google's Python Class (Google): A free class for people with a little bit of programming experience.
- A Gentle Intro to Programming Using Python (MIT OpenCourseWare): A beginner programming course that integrates Python into the curriculum.
- Quantitative Economics: This website presents a series of free lectures on quantitative economic modeling, designed and written byThomas J. Sargent and John Stachurski. The primary programming language is Python.
Downloads:
Programming in Java
Introduction: Java is a high-level language and software-only platform. Java is the foundation for virtually every type of networked application and is the global standard for developing and delivering enterprise software, web-based content, games and mobile applications. Java enjoys a large and mature ecosystem with strong tools support. Java delivers application portability and robust performance across many computing environments.
Manuals:
- New to Java: An introductory guide and training source from Java’s developers.
- Princeton Into to Programming in Java: An online textbook for a first course in Java.
- Intro to Programming Using Java: A detailed, beginner’s guide to Java.
Online Videos/Courses:
- Introduction to Programming in Java (MIT OpenCourseWare): An online course devoted to the Java beginner.
- Robocode: A programming game that helps beginner Java students practice.