this is a very old photoGail E. Kaiser is a Professor of Computer Science and the Director of the Programming Systems Laboratory in the Computer Science Department at Columbia University. She was named an NSF Presidential Young Investigator in Software Engineering and Software Systems in 1988, and has published over 150 refereed papers in a wide range of software areas. Prof. Kaiser's research interests include software reliability and robustness (focusing on software testing and program analysis), information management (most recently privacy and security), social software engineering (including collaborative work and gamification), and software development environments and tools (particularly for cloud and mobile applications and systems). She has consulted or worked summers for courseware authoring, software process and networking startups, several defense contractors, the Software Engineering Institute, Bell Labs, IBM, Siemens, Sun and Telcordia. Her lab has been funded by NSF, NIH, DARPA, ONR, NASA, NYS Science & Technology Foundation, and numerous companies. Prof. Kaiser served on the editorial board of IEEE Internet Computing for many years, was a founding associate editor of ACM Transactions on Software Engineering and Methodology, chaired an ACM SIGSOFT Symposium on Foundations of Software Engineering, vice chaired three of the IEEE International Conference on Distributed Computing Systems, and serves frequently on conference program committees. She also served on the Committee of Examiners for the Educational Testing Service's Computer Science Advanced Test (the now-defunct GRE CS test) for three years, and has chaired her department's doctoral program since 1997. Prof. Kaiser received her PhD and MS from CMU and her ScB from MIT. See her CV at for details. Her lab's website is


Prof. Kaiser is teaching COMS W4156 Advanced Software Engineering in Fall 2014, which focuses primarily on developing and testing web-based applications leveraging third-party frameworks (e.g., Javaplay, Ruby on Rails or Python/Django) and data APIs (e.g., NYC Open Data). We will cover software process and design patterns, but the greatest emphasis will be on testing; we will follow an adapted test-driven development (TDD) approach. The Heartbleed Bug is one recent real-world example of why we need rigorous software testing. Most assignments will be conducted in pairs (2 students) or teams (4 students) working together, not dividing up the work and then working alone; students whose schedules are not sufficiently flexible to participate in several multiple-hour pair/team meetings every week should not take this course. However, 4156 is required for the MS computer security and software systems tracks (software systems track students who first enrolled before Fall 2014 are not required to take 4156, but are encouraged to take it for distribution, track elective, or general elective). MS students from other tracks, PhD students, undergraduates and non-majors are very welcome.

A preliminary assignment at the beginning of the semester will be used to determine adequate programming skills. Students who receive failing or borderline grades on this assignment will be encouraged to first complete another 4k course involving substantial programming, such as COMS W4115 Programming Languages and Translators or COMS W4118 Operating Systems I. This year's preliminary assignment is posted here, which includes additional deliverables for students seeking waivers for 4156. If you have any questions about the assignment, contact the Head TA, Riley Spahn (


Prof. Kaiser will teach COMS E6123 Programming Environments and Software Tools in Spring 2015. 6123 is a seminar-style follow-on to 4156 (or equivalent background) that involves readings from the research literature, an investigative paper, and a development/evaluation project. All students will give presentations in class; attendance and active class participation are required. Students can choose the software development, deployment and/or operation tools/environments of most interest to them for most assignments, and may work either in teams or individually. 6123 replaces COMS E6125, Web-Enhanced Information Management; students interested in the former 6125 material not covered by 4156 or 6123 are advised to consider the COMS E6998 topics courses addressing social networks, internet application development, and so on.


Prof. Kaiser's lab is seeking new undergraduate and MS project students for Fall 2014 and beyond. Students who would like to become involved should review the project literature and descriptions, as well as the specific advertisements. At present, projects are available only for academic credit: there are no MS GRA or otherwise paid positions open. However, top-notch research-oriented undergraduates and MS students will be considered for future PhD admission with funding.


Slides from Prof. Kaiser's "Distinguished Lecture" at the University of Southern California from April 18, 2013.

Alex Orso's advice on how to get your paper accepted at a top software engineering conference.

Prof. Kaiser's advice on finding "related work" for conference papers.

Prem Devanbu's Review Anti-Patterns.


meetings suck

Better yet, hold a conference call!



They also do not post the Honest University Commercial.


Current PSL Doctoral Students:

Former PSL GRAs, Staff and Visitors:


Prof. Kaiser's Greatest Achievement 


Prof. Gail E. Kaiser
Columbia University
Department of Computer Science
1214 Amsterdam Avenue
Mail Code 0401

[express/package delivery:
500 W. 120th St., Room 450]
New York, NY 10027
United States
voicemail: 212-939-7081
fax: 212-939-7084
lab: 212-939-7100
department main number: 212-939-7000

Last updated October 15, 2014.
Copyright 1985-2014
Gail E. Kaiser.