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:

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 RAn 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:

Online Videos/Courses:

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:

Online Videos/Courses:

Downloads: