Gail now


Gail 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 is also affiliated with the Software Systems Lab. Prof. Kaiser conducts research in software engineering and security from a systems perspective, currently focusing on program analysis and software testing. In the 1980s and 1990s, Kaiser investigated semantics-focused extensions to language-based editors and process-oriented team software development environments, forerunners to today's IDEs and Continuous Integration, then in the late 1990s and early 2000s she focused on "autonomic computing" for the then-emerging cloud computing, particularly techniques for retrofitting legacy systems. Then from the late 2000s until a couple years ago, most of her work focused on Java and JVM bytecode, and she recently resumed targeting C/C++ and Linux binaries. Starting with her sabbatical at Columbia's Center for Computational Learning Systems in 2005-2006, Kaiser and her former PhD student Chris Murphy were among the first to adapt software engineering testing techniques, particularly metamorphic testing, to finding bugs in machine learning software. She is interested in ML4SE as well as SE4ML. Kaiser has published ~200 papers in major forums, advised or co-advised 20 PhD dissertations, and sponsored over 300 undergraduate and MS research students. Her lab has been funded by NSF, NIH, DARPA, ONR, NYS Office of Science, Technology and Academic Research, and numerous companies. Prof. Kaiser was a founding Associate Editor of ACM Transactions on Software Engineering and Methodology; chaired the Program Committee for the 3rd ACM SIGSOFT Symposium on Foundations of Software Engineering; and wrote a bi-monthly column for IEEE Internet Computing promoting the novel technologies of the nascent World Wide Web. She has served her department as Director of Graduate Students (PhD Program Chair) since 1997. Prof. Kaiser received her PhD from CMU and her ScB from MIT. Her full CV is at

Prof. Kaiser is not currently seeking any new doctoral students or postdocs. MS and undergraduate students who do particularly impressive work in one of her courses can request academic-credit project student positions thereafter. Prospective or visiting doctoral students or postdocs with their own external funding may also be considered.

Prof. Kaiser will teach COMS E6156 Topics in Software Engineering in Spring 2021. 6156 is a graduate seminar (qualified undergraduates are welcome) oriented towards students who aspire to be researchers or technology leaders. 6156 is not "more" 4156, and not "more advanced" 4156. 4156 is about doing software engineering, and 6156 is about improving software engineering including software security.   The primary theme this year will be on applications of AI (mostly ML and NLP) to software engineering and security problems. Note this is different from applying software engineering or security to AI applications (there are 6998 courses offered by other faculty on these). Students choose their own forward-looking topics within the primary theme, broadly construed, for their midterm papers and final projects. A few students may choose topics outside this theme with instructor approval. Students will also lead class discussions on recent research papers or open-source technologies. 6156 is a track elective for the CS MS Software Systems track and may be accepted as a track elective for the CS MS Security track for those students who choose paper and project topics emphasizing security (contact your track advisor). 6156 is a technical elective for CS doctoral students and for all CS/CE MS and undergraduate tracks. Prerequisite: It is not necessary to take 4156 or 4181 prior to 6156, but students should have at least the background expected from completing 4156 and/or 4181.

Prof. Kaiser is teaching COMS W4156 Advanced Software Engineering in Fall 2020. This course covers the workflow processes, techniques and "best practices" software engineers need to know to develop consumer and business software, and emphasizes software testing and other approaches to detecting and eliminating security vulnerabilities and other bugs.  4156 is a Systems distribution course for all CS doctoral students and a Systems breadth course for all CS MS students. 4156 is required for the CS MS Computer Security and Software Systems tracks, and a technical elective for all other CS/CE MS tracks and for CS/CE undergraduate tracks. Prerequisite: COMS W3157 Advanced Programming or equivalent.  Students are expected to have two or more years programming experience, and be comfortable programming in Java plus at least one of C/C++, Javascript or Python.


Nico Family Tree
Easy vs Hard
Women In STEM


Current PSL Doctoral Students:


Former PSL Doctoral Students, MS GRAs, MS thesis students, Staff and Visiting Researchers (suggestions for missing or updating links are appreciated):



Prof. Kaiser's Greatest Achievement 


Prof. Gail E. Kaiser
Columbia University
Department of Computer Science
[office: 607 CEPSR]
[US mail: 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
lab: 212-939-7100
department main number: 212-939-7000


Last updated November 23, 2020 .
Gail E. Kaiser.