COMS BC3997 Topics
COMS BC3997 New Directions in Computing is an undergraduate seminar for special topics in computing arranged as the need and availability arises. Topics are usually offered on a one-time basis. Participation requires permission of the instructor. Since the content of this course changes each time it is offered, it may be repeated for credit. Courses below are 3.00 points. For additional information, see the Course Catalogue. We also list below how the courses count for the Barnard CS major.
Spring 2026 Topics
COMS BC3997 Section 003 (3 points)
AI IN MEDICAL APPLICATIONS
Instructor: Murad Megjhani
This course introduces the principles of artificial intelligence (AI) and machine learning in the context of medical applications. Students learn how different forms of medical data, such as electronic health records (EHR), medical images, and physiological time-series data, among others are analyzed with AI. The course covers supervised and unsupervised learning techniques, deep learning, and an introduction to reinforcement learning (tentative). The course addresses unique challenges in healthcare, including bias in AI, evaluation techniques, and causality leakage. The class includes lectures, invited talks from physicians and experts in AI and medicine.
Pre-requisites: COMS BC 1016 or CMS E1006 or (COMSW1004 and familiarity with python), COMS BC1016 or STAT UN1201 or MATH UN2015 or equivalent, and MATHC UN2010 or MATH UN 2015 or equivalent.
For Barnard CS majors on the tracked CS major: this class counts as a track elective for the Applications track and the Intelligent Systems and a breadth elective for all the other tracks. For the trackless CS major, it counts as a CS elective for BC and CU CS majors.
COMS BC3997 Section 004 (3 points)
AI INVESTIGATION OF 1921 TULSA MASSACRE
Instructor: Corey Toler-Franklin
This undergraduate course is designed for juniors and seniors and covers advances in Artificial Intelligence (AI) relevant to historic forensic investigation. Through a series of project-based assignments that focus on topics presented in lectures and discussions, students work in groups to develop neural network architectures, data analysis and 3D reconstruction methods to support the ongoing investigation of the Tulsa Race Massacre (TRM) of 1921. This catastrophic event resulted in the loss of lives, homes and the decimation of the thriving business district of Greenwood. Forensic scientists, historians and other specialists on the (TRM) investigative team, and descendants of TRM survivors interact with students through guest lectures and a field trip to Tulsa investigation sites to solve computational problems related to social network reconstruction, human identification and 3D reconstruction from multimedia data analysis. Project outcomes will be presented as a holographic display at the Greenwood Cultural Center (GCC) in Tulsa Oklahoma.
Prerequisites: COMS W3157 Advanced Programming (or equivalent proficiency in C, C++, and/or Python), Linear Algebra: MATH UN2010 or MATH UN2015 (or equivalent knowledge of vectors and matrices). Familiarity with the basics of machine learning and working with neural networks is strongly recommended but not required. The course begins with an introductory-level review of neural networks.
For Barnard CS majors on the tracked CS major: this class counts as a track elective for the Applications and the Intelligent Systems track and a breadth elective for all the other tracks. For the trackless CS major, it counts as a CS elective for BC and CU CS majors.
COMS BC3997 Section 005 (3 points)
PROJECTS IN USABLE SECURITY
Instructor: Lucy Simko
Security mechanisms are often not very usable: passwords are almost universally hated, encrypted email is no picnic, and it’s hard to be completely sure that that email is not a scam. We have some mechanisms for easing these pains–-password managers, encrypted email programs, phishing training, etc—but the balance between security and usability is still a struggle (and does it really need to be a balance? can’t we have both?). In this project-based course, student teams will take a step towards making security a bit less unusable. The work will progress from project conception to requirements to design to implementation to evaluation. Along the way, students will incorporate key computer security and usability practices, including threat modeling, bug fixing, and usability testing. Examples include password managers, secure messaging, security advice, and mobile payment systems.
Prerequisite: COMS W3157 Advanced Programming or by instructor approval, with fluency, confidence, and experience in a programming language.
For Barnard CS majors on the tracked CS major: this class counts as a track elective for the Applications track and a breadth elective for all the other tracks. For the trackless CS major, it counts as a CS elective for BC and CU CS majors.
Spring 2025 Topics
COMS BC3997 Section 004 (3 points)
BUILDING USABLE SECURITY
Instructor: Lucy Simko
Security mechanisms are often not very usable: passwords are almost universally hated, encrypted email is no picnic, and it’s hard to be completely sure that that email is not a scam. We have some mechanisms for easing these pains–-password managers, encrypted email programs, phishing training, etc—but the balance between security and usability is still a struggle (and does it really need to be a balance? can’t we have both?). In this project-based course, student teams will take a step towards making security a bit less unusable. The work will progress from project conception to requirements to design to implementation to evaluation. Along the way, students will incorporate key computer security and usability practices, including threat modeling, bug fixing, and usability testing. Examples include password managers, secure messaging, security advice, and mobile payment systems.
Prerequisite: COMS W3157 Advanced Programming or by instructor approval, with fluency, confidence, and experience in a programming language.
To be considered for admission to this class, you must register for the waitlist and fill out the form at https://forms.gle/98StMCgTx8d9i1Rs.
For Barnard CS majors on the tracked CS major: this class counts as a track elective for the Applications track and a breadth elective for all the other tracks. For the trackless CS major, it counts as a CS elective for BC and CU CS majors.
COMS BC3997 Section 005 (3 points)
DIGITAL GAME DESIGN
Instructor: Lisa Soros
This course provides an introduction to the field of video game design and game programming. It will focus heavily on the concept of design via rapid prototyping, and students will practice concepts learned in class by designing minimalist games. The course will also survey research topics such as game AI and procedural content generation.
Prerequisites: No prior game development experience is necessary, but students should have completed COMS W3134 Data Structures.
To be considered for admission to this class, you must register for the waitlist and fill out the form at https://forms.gle/i94quYrpnDMk9HZV8.
For the track-based CS major, this course counts as a track elective for the Applications track and a breadth elective for any other track. For the trackless CS major, it counts as a CS elective.
COMS BC3997 Section 006 (3 points)
LLM FOUNDATIONS & ETHICS
Instructor: Smaranda Muresan
Large Language Models (LLMs) such as GPT-3, ChatGPT, LLaMA are models that are trained on large amounts of data and are adaptable to a wide range of tasks. They are the basis of most state-of-the-art systems in Natural Language Processing. While the potential of these technologies for social good is large, the risks are also comparable. In this course, the students will learn the fundamentals about the modeling, theory and ethical aspects of LLMs and their applications, while gaining experience working with them. The course will be structured as a seminar, where one class is dedicated to instructor-led lecture and one to student-led discussion of papers around topics covered in the lecture. Each paper discussion will be structured as a panel of 3-4 students, each with an assigned role. Each panel role covers one aspect of critically assessing an academic/industry paper. The panel discussion will be moderated by the instructor. Everyone in the class should participate by commenting and asking questions from the panel. The class is project-based, meaning there will be a semester-long project focused on evaluating LLMs and/or building LLMs around a topic/problem/task you care about, with an end of semester final paper. The projects will be done by groups of 2-3 students. (Website to previous Spring 2024 iteration of the course is here).
Prerequisites: COMS W3134 Data Structures (or COMS W3136 or COMS W3137).
To be considered for admission to this class, you must register for the waitlist and fill out the form at https://forms.gle/vBuv4ZjRwkBtzwgV8.
For Barnard CS majors on the tracked CS major: this class counts as a track elective for the Intelligent Systems track or the Applications track, and as a breadth elective for all the other tracks. For the trackless CS major, it counts as a CS elective for BC and CU CS majors.
Fall 2024 Topics
COMS BC3997 Section 001 (3 points)
NATURAL LANGUAGE PROCESSING
Instructor: Smaranda Muresan
This course provides an introduction to the field of Natural Language Processing (NLP) and is similar in spirit to the Columbia Natural Language Processing course (COMS 4705) but at an undergraduate level. We will discuss properties of human language at different levels of representation (morphology, syntax, semantics, pragmatics), and will learn how to create systems that can analyze, understand, and generate natural language. We will study machine learning methods used in NLP such as various forms of Neural networks and will cover conceptual and technical advances of frontier Large Language Models based NLP technologies (think ChatGPT) that are revolutionizing classical computational linguistics and NLP fields. We will also discuss applications such as machine translation, question answering, summarization, dialog, language generation and creativity support as well as evaluation frameworks. We will discuss ethical aspects of NLP research and applications. Homework assignments will consist of programming projects in Python. Class will also have a midterm and a final exam.
Prerequisites: Data Structures (COMS 3134, COMS 3136, or COMS 3137). Background in probability/statistics and linear algebra is also required and experience with Python programming is strongly encouraged. Some previous or concurrent exposure to AI and machine learning is beneficial, but not required.
To be considered for admission to this class, you must register for the waitlist and fill out the form at forms.gle/igmshZ5cXWrhGq9h8.
Barnard CS majors: You cannot get credit for both this course and COMS W4705 Natural Language Processing. Barnard CS majors: This class counts for your tracked or trackless CS major in the same way that COMS W4705 Natural Language Processing counts. Columbia CS majors: this course is treated similarly to COMS W4995 courses and can also count however any COMS 3000-level course can count.
COMS BC3997 Section 002 (3 points)
INTRODUCTION TO NEURAL RENDERING FOR COMPUTER GRAPHICS
Instructor: Corey Toler-Franklin
This course introduces students to techniques that use neural networks to generate photo-realistic scenes and animation in computer graphics. Course materials combine machine learning techniques with fundamental principles from computer graphics to control scene properties including illumination, camera parameters, geometry, appearance, pose, and semantic structure. We first cover the fundamentals of computer graphics and deep learning that are relevant to neural rendering. Next, we study neural rendering methods for relighting, novel view synthesis, semantic photo manipulation, animation, volumetric rendering with neural radiance fields (NeRFs) and photo-realistic avatar creation for virtual and augmented reality. Students learn the techniques by implementing a series of interactive computer programs using deep learning APIs on a GPU cluster, discussing the latest innovations (from SIGGRAPH and related venues) and by proposing and implementing a final project.
Prerequisites: COMS W3157 Advanced Programming, Linear Algebra (UN2010), Calculus II, Introductory Knowledge of Computer Graphics (COMS W4160 or similar) and Machine Learning (COMS 4701 or similar), Programming experience (Python, and or C, C++)
To be considered for admission to this class, you must register for the waitlist and fill out the form at forms.gle/6Y6TzYv7tBshMqct8.
Barnard CS majors: This class counts for your tracked CS major as a track elective for the Applications track and the Vision, Graphics, Interaction, and Robotics track and as a breadth elective for all the other tracks. For the trackless CS major, it counts as a CS elective.
COMS BC3997 Section 003 (3 points)
USABLE SECURITY AND PRIVACY
Instructor: Lucy Simko
This course explores human factors in computer security and privacy. In this course, we discuss fundamental concepts in this field, including why we, as computer scientists, must understand users' security and privacy perceptions, experiences, and contexts in order to design and deploy security and privacy mechanisms. We explore both classical and current-day research, covering topics like usable authentication, developers as a user group, security and privacy advice for the "general population," user perceptions of and reactions to (in)security on the web, and security and privacy for vulnerable users. Throughout our study of research topics, we also cover human-centered research methodology (and the ethical application of these methods), including interviews, surveys, and social media analysis. Homework assignments include reading, short writing assignments, and data analysis. Students propose and complete a course project.
Prerequisite: COMS W3157 Advanced Programming
To be considered for admission to this class, you must register for the waitlist and fill out the form at forms.gle/7H7aYAUDJRtcpFgh6
Barnard CS majors: This class counts for your tracked CS major as a track elective for the Applications track and a breadth elective for all the other tracks. For the trackless CS major, it counts as a CS elective.
Spring 2024 Topics
COMS BC3997 Section 001 (3 points)
APPLIED COMPUTING - RESEARCH AND INDUSTRY PERSPECTIVES
Instructor: Brian Plancher
This course is designed as a companion to mentored research and industry projects in computer science that enable students to apply their learning in real-world contexts. While the course staff can provide general support for projects, they may not have the technical expertise to support all projects in depth. Therefore, for Spring 2024, students are expected to have arranged for a mentored project during the course registration period and will need to present their project topic in the second class. For example, a student could be working on a research project mentored by a professor or helping a local company develop a web interface to their product mentored by a company software engineer. Mentors must commit to meeting with students at least every other week. The course will be run through a mix of lecture and group work led by the course instructor as well as guest instructors from both industry and academia. Lectures cover a variety of applied computing topics designed to complement student projects and engage students with often underexplored considerations for effective and sustainable real-world projects. Students are evaluated both by their mentor on their project progress as well as by the course staff and peers on written deliverables and presentations.
To be considered for admission to this class, you must register for the waitlist and fill out the form at https://bit.ly/COMS3997-SP24-WL
For the track-based CS major, this course counts as a track elective for the Applications track and a breadth elective for any other track. For the trackless CS major, it counts as a CS elective.
COMS BC3997 Section 002 (3 points)
DIGITAL GAME DESIGN
Instructor: Lisa Soros
This course provides an introduction to the field of video game design and game programming. It will focus heavily on the concept of design via rapid prototyping, and students will practice concepts learned in class by designing minimalist games. The course will also survey research topics such as game AI and procedural content generation. No prior game development experience is necessary, but students should have completed COMS W3134 (Data Structures).
To be considered for admission to this class, you must register for the waitlist and fill out the form at https://forms.gle/LcTP45RJ3y2bLT4x9
For the track-based CS major, this course counts as a track elective for the Applications track and a breadth elective for any other track. For the trackless CS major, it counts as a CS elective.
COMS BC3997 Section 003 (3 points)
DEEP LEARNING: GRAPHICS
Instructor: Corey Toler-Franklin
This course covers the fundamental theory and application of AI algorithms in the context of computer graphics. The course begins with deep learning basics including related math review (numerical analysis and gradient optimization). Building upon this foundation, students learn essential deep learning concepts including: supervised, unsupervised and reinforcement learning, and operations relevant to neural network architectures (like backpropagation and fine tuning). There is an emphasis on developing GPU programming skills while implementing real computer graphics applications using learned concepts. Two homework assignments, weekly quizzes and one take-home exam compliment these programming assignments and help students evaluate their comprehension of course material. The course culminates with student-designed final projects that demonstrate creativity, and a depth of knowledge in two or more course topics. Convolutional neural networks for colorizing black and white movies, transformers for image classification, and generative adversarial networks for stylized rendering are application examples. Prerequisites: COMS W3157 Advanced Programming, Linear Algebra (UN2010), and Calculus I or higher.
To be considered for admission to this class, you must register for the waitlist and fill out the form at https://forms.gle/8MJFqq4cyi8f6Tjc7
For the track-based CS major, this course counts as a track elective for the Vision, Graphics, Interaction, and Robotics track and a breadth elective for any other track. For the trackless CS major, it counts as a CS elective.
COMS BC3997 Section 004 (3 points)
LARGE LANGUAGE MODELS: FOUNDATIONS & ETHICS
Instructor: Smaranda Muresan
Large Language Models (LLMs) such as GPT-3, ChatGPT, LLaMA are models that are trained on large amounts of data and are adaptable to a wide range of tasks. They are the basis of most state-of-the-art systems in Natural Language Processing. While the potential of these technologies for social good is large, the risks are also comparable. In this course, the students will learn the fundamentals about the modeling, theory and ethical aspects of LLMs and their applications, while gaining experience working with them. The course will be structured as a seminar, where one class is dedicated to instructor-led lecture and one to student-led discussion of papers around topics covered in the lecture. Each paper discussion will be structured as a panel of 3-4 students, each with an assigned role. Each panel role covers one aspect of critically assessing an academic/industry paper. The panel discussion will be moderated by the instructor. Everyone in the class should participate by commenting and asking questions from the panel. The class is project-based, meaning there will be a semester-long project focused on evaluating LLMs and/or building LLMs around a topic/problem/task you care about, with an end of semester final paper. The projects will be done by groups of 2 students. (Prerequisites: COMS W3134 Data Structures (or W3136 or W3137)).
To be considered for admission to this class, you must register for the waitlist and fill out the form at https://forms.gle/kVVYYQmjebHL3KJQA
For the track-based CS major, this course counts as a track elective for the Intelligent Systems track or Applications track, and a breadth elective for any other track. For the trackless CS major, it counts as a CS elective.