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 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.