This is an advertisement for Prof. Gail Kaiser's Spring 2025 COMS E6156 Topics in Software Engineering, the only regularly offered course at Columbia CS where students have the opportunity to explore in depth a specific topic of their own choosing. 6156 is a seminar oriented towards graduate students and advanced undergraduates who aspire to become, or already are, researchers or industry technology leaders. Students should be are highly self-motivated to pursue their own forward-looking topic within software engineering, 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. Students should have already completed at least one graduate level software systems course, preferably 4115 (compilers), 4118 (operating systems), 4156 (software engineering) or 4181 (security) or their equivalent. Students read, present and discuss research papers; write a midterm literature review paper; and conduct and write up a final research project. There are no lectures after the first week or so, after that all class sessions consist of student presentations, demos and discussions. Class participation is required but can include edstem discussions outside of class sessions. The paper must be individually written but the project can be joint with any reasonably-sized team. Each student chooses their own topic(s) with instructor approval. A student's midterm paper topic typically leads into the student's final project topic, but it's ok to change topics. Some recent student topics: Fault Localization Techniques for Deep Neural Networks GAN-based Inpainting Algorithms MLIR: Design and Impact MLOps Challenges and Solutions Mixed Reality Socializing Sparse Matrix Support in LLVM Bias in AI Image Generation Transformers for Masked Facial Recognition Gaze-Controlled VR Game Some suggested student topics: LLM-based translation from C to idiomatic safe Rust Protecting containerized applications from compromised libraries Generating unit tests from buggy execution traces to test candidate fixes If you would like to take the course, please add yourself to the waitlist and then complete "homework zero", posted at http://www.cs.columbia.edu/~kaiser/6156-choosing-from-waitlist.Spring2025.txt. Email your "homework zero" to kaiser+6156@cs.columbia.edu. Please do not omit the +6156 or I might not see your email. You do not need to submit again if you have already been approved to enroll in the course. ----- Advertisement for Prof. Gail Kaiser's Spring 2024 COMS E6156 Topics in Software Engineering. Note 6156 is a “topics” course, like 6998, where each section has a different topic. Prof. Donald Ferguson teaches his very popular Cloud Computing course as a section of 6156, but my section does not teach Cloud Computing. Students can take multiple sections of 6156 similar to 6998, so you can take my section even if you have already taken Cloud Computing (or plan to take it in the future). My section of 6156 is a seminar oriented towards graduate students and advanced undergraduates who aspire to become, or already are, researchers or industry technology leaders. Students should be are highly self-motivated to pursue their own forward-looking topic within software engineering, 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. Students should have already completed at least one Columbia software systems course (any COMS W41xx course except 416x or 417x). In my section of 6156, students read, present and discuss research papers; write a midterm literature review paper; and conduct and write up a final research project. There are no lectures after the first week or so, after that all class sessions consist of student presentations, demos and discussions. Class participation is required. The paper must be individually written but the project can be joint with any reasonably-sized team. Each student chooses their own topic(s) with my approval. A student's midterm paper topic typically leads into the student's final project topic, but it's ok to change topics. Some recent student topics: Hallucination or Explainability? The Possibilities of Conversation-based APR [GPT for APR = Automatic Program Repair] DeveloperGPT [GPT for software developer command line tasks] Adversarial Attacks on Fake News Detection Methods NPC Population Control [NPC = Non-Player Character in video games] A Review of Blockchain-Based Internal Tamper-Proof Relational Database Management System Designs Overview of Methods to Treat Autism Using Software Applications Improved Compression, Similarity Search, Clustering, Organization, and Manipulation of cDNA Libraries Using Vector Embeddings Based on Sequence Similarity and Context [in consultation with Prof. Knowles] Practical Security Framework [set of lab assignments for COMS W4181 Computer Security 1 in consultation with Prof. Bellovin, this student TA'd 4181 the following semester where they used his labs] If you would like to take the course, please add yourself to the waitlist in SSOL and then complete "homework zero", posted at http://www.cs.columbia.edu/~kaiser/6156-choosing-from-waitlist.Spring2024.txt. Email your "homework zero" to kaiser+6156@cs.columbia.edu. Please do not omit the +6156 or I may not see your email. You do not need to submit again if you have already been approved to enroll in the course.