Gail Kaiser profile photo

Gail Kaiser is a Professor of Computer Science in the Computer Science Department at Columbia University. She is affiliated with the Software Systems Lab (SSL) and is the Director of the Programming Systems Lab (PSL). Her interests include software systems, static and dynamic program analysis, software testing, and software security.

Prof. Kaiser conducts research in software engineering and security from a systems perspective, focusing on program analysis and software testing. In the 1980s and early 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, and in the mid 1990s through early 2000s she investigated collaborative work technologies leveraging the nascent World Wide Web and self-adaptation for the then-emerging cloud computing, particularly techniques for retrofitting legacy software. Beginning with her sabbatical at Columbia's Center for Computational Learning Systems in 2005-2006, Kaiser was among the first to investigate software engineering testing techniques, such as metamorphic testing, for finding bugs in machine learning software. Her more recent work ranges across static and dynamic program analysis techniques for both source code and binaries. She currently investigates secure computing paradigms and machine learning techniques for solving software engineering problems.

Prof. Kaiser received her PhD from CMU and her BS from MIT.
. Google Scholar. The technical report version of her bachelor's thesis is here. She has not been able to find an online version of her entire PhD thesis, just the abstract here.


Prof. Kaiser teaches COMS W4156 Advanced Software Engineering (ASE) in the Fall. This course covers the workflows, 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.   Prerequisite: COMS W3157 Advanced Programming or equivalent.  Students are expected to already be fluent programmers in Java or C++. The detailed Fall 2024 checklist for expected background is posted here. Lecture Notes and Assignments from some recent offerings of the course are posted here. The course targets juniors, seniors and masters students in Computer Science and Computer Engineering; doctoral students interested in taking the course should contact Prof. Kaiser about special arrangements. 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 track. One of 4156 (this course) or 4152 (ESaaS Engineering Software as a Service) is required for the CS MS Software Systems track. 4156 is a technical elective for all other CS MS tracks and for CS undergraduate tracks. 

Prof. Kaiser teaches COMS E6156 Topics in Software Engineering (TSE) in the Spring. 6156 is a graduate-level seminar oriented towards students who aspire to be researchers or technology leaders and who are highly self-motivated to pursue their own forward-looking topic within software engineering, very broadly construed.  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 and interdisciplinary applications of software engineering. 6156 is the only regularly offered course at Columbia CS where students have the opportunity to explore in depth a specific topic of their own choosing. More details are posted here. 6156 is a track elective for the Software Systems track and is accepted for the Computer Security track for students who choose security or privacy topics. It may be accepted as a track elective for other tracks whose students choose topics relevant to their track - contact your track advisor. Students in all other MS tracks have successfully received track credit for 6156 since the course accommodates very broad interests. 6156 is a technical elective for all CS MS and undergraduate tracks.  To be accepted off the waitlist to enroll in the course, students must submit "homework zero", posted here. Prerequisites: Students should have already completed at least one 4k level software systems course at Columbia. 



Nico Family Tree
Women In STEM



Current Doctoral Students:

Former Doctoral Students, MS GRAs, MS thesis students, Staff and Visiting Researchers (suggestions for missing, broken or outdated links will be appreciated):


Prof. Kaiser's Greatest Achievement 


Prof. Gail Kaiser
Columbia University
Department of Computer Science
[office: 607 CEPSR]
[US mail: 1214 Amsterdam Avenue Mail Code 0401]
[package delivery: 500 W. 120th St., Room 450]
New York, NY 10027
United States

voicemail: 212-853-8452
department main number: 212-853-8400


Last updated April 28, 2024.
Gail E. Kaiser.