Spring 2023 Topics Courses

The below are course descriptions for the Spring 2023 Topics Courses. This page will be updated as new information is made available. The official record of what will be offered is listed on the Directory of Classes. Please use this only as a resource in your course planning. Undergraduates should consult your CS Faculty advisor to see if a course counts for your track. MS students should consult the Topics page (if not listed then consult your CS Faculty advisor).

For questions regarding Data Science courses please email: DataScience-Registration@columbia.edu

 

COMS 4995.001 INTRO TO NETWORKS AND CRO | Chaintreau, Augustin
COMS 4995.002 GEOMETRIC DATA ANALYSIS | Blumberg, Andrew
COMS 4995.003 PROG ANALYSIS SECURITY | Jana, Suman
COMS 4995.004 CAUSAL INFERENCE II | Bareinboim, Elias
COMS 4995.005 BLDNG SUCCESSFUL STARTUP | Agarwal, Apoorv
COMS 4995.006 APPLIED COMPUTER VISION | Reiter, Austin
COMS 4995.007 EMPIRICAL METHODS DATA SC | Levine, Michelle
COMS 4995.008 COMPETITIVE PROGRAMMING | Lim, Yongwhan
COMS 4995.009 OPEN SOURCE DEVELOPMENT | Paine, Timothy
COMS 4995.010 INNOVATION & DESIGN LAB | Zamchick, Gary
COMS 4995.011 MOBILE APP DEVELOP IOS | THOMAS, HUGH
COMS 4995.012 INTRO TO DATA VISUALIZATI | Swinehart, Christian
COMS 4995.020 APPLIED MACHINE LEARNING | Pappu, Vijay
COMS 4995.021 CAUSAL INFERENCE FOR DATA | Kelleher, Adam


COMS 6156.001 TOPICS IN SOFTWARE ENGINE | Kaiser, Gail

 

COMS 6998.001 PRIVACY PRESERVING SYS | Geambasu, Roxana
COMS 6998.002 ADV SPOKEN LANGUAGE PROCE | Hirschberg, Julia
COMS 6998.003 READING THE CS CLASSICS | Papadimitriou, Christos
COMS 6998.004 FUND SPEECH RECOGNITION | Beigi, Homayoon
COMS 6998.005 HIGH PERF MACH LEARNING | Dube, Parijat
COMS 6998.006 CLOUD COMPUTING & BIG DAT | Sahu, Sambit

COMS 6998.007 Types, Languages, and Compilers | Stephen Edwards

 

 


COMS 4995.001 INTRO TO NETWORKS AND CRO | Chaintreau, Augustin


Course description coming soon…

 


COMS 4995.002 GEOMETRIC DATA ANALYSIS | Blumberg, Andrew

 
Course Description:
 
The goal of this class is to introduce approaches to analyzing data presented as finite metric spaces using ideas from optimal transport, differential geometry, and algebraic topology.  Prerequisites are a grounding in basic probability, statistics, and linear algebra. The class will focus on rigorous mathematical foundations and applications drawn from computational genomics.


(added 20221115)

 

 

~ back to top ~

COMS 4995.003 PROG ANALYSIS SECURITY | Jana, Suman

 


Course description coming soon…

 

 

COMS 4995.004 CAUSAL INFERENCE II | Bareinboim, Elias

 


Course description coming soon…

 

 

~ back to top ~

 

 

 

COMS 4995.005 BLDNG SUCCESSFUL STARTUP | Agarwal, Apoorv

 


Course description coming soon…

 

 

COMS 4995.006 APPLIED COMPUTER VISION | Reiter, Austin

 


Course description coming soon…

 

 

~ back to top ~

 

 

 

COMS 4995.007 EMPIRICAL METHODS DATA SC | Levine, Michelle

 

Empirical Methods of Data Science is a seminar for students seeking an in depth understanding of how to conduct empirical research in computer science. In the first part of the seminar, we will discuss how to critically examine previous research, build and test hypotheses, and collect data in the most ethical and robust manner. As we explore different means of data collection, we will dive into ethical concerns in research. Next, we will explore how to most effectively analyze different data sets and how to present the data in engaging and exciting ways. In the last part of the seminar, we will hear from different researchers on the methods they use to conduct research, lending to further conversations and in class debates about when and how to use particular research methods. The focus will be primarily on relatively small data sets but we will also address big data.

 

(added 20221129)

 

 

~ back to top ~

 

 

 

COMS 4995.008 COMPETITIVE PROGRAMMING | Lim, Yongwhan

 
Upon successful completion of the course, you will have mastered the fundamental knowledge required to succeed in:
  • Competing with confidence in the ICPC contest series (Please check the Columbia team site here): Columbia Locals, Greater New York Regionals, North America Championships, and World Finals.
  • Passing with confidence in any entry-level technical interview at the top-tier companies.
  • Attaining high ratings in any competitive programming websites (e.g., CodeForces, AtCoder, LeetCode, and etc.)

We will go over topics and strategies required to succeed in the competitive programming contests!

(added 20221115)

 

 

 

COMS 4995.009 OPEN SOURCE DEVELOPMENT | Paine, Timothy

syllabus  

Course Description:

In this course, students will learn how to build and maintain open source projects.

Students will be responsible for both supporting an existing open source project of their choosing, as well as creating their own open source project (both in either Python or Javascript, under the direction of the instructor).

In lieu of homeworks or exams, ongoing progress reports and a final presentation on these two will serve as the grading basis for the course.

The course will include an overview of general software engineering concepts, including version control, testing, modern development workflows, and software licensing, as well as a brief history of open source software including major court cases in copyright, patent, and trademark law.

We will also learn about popular tools for
– project management (Github, Kanban/Agile boards)
– testing (GitHub Actions, Jenkins)
– static analysis and coverage (Codecov, Coveralls)
– documentation (GitHub Pages, Sphinx, MkDocs, Docusaurus, ReadTheDocs)
– publishing (npm, PyPI, anaconda)

Beyond the basics, students will learn how these tools can be integrated together in their open source projects to better manage their development and community.

 
 
 

(added 20221117)

 

 

 

~ back to top ~

 

 

COMS 4995.010 INNOVATION & DESIGN LAB | Zamchick, Gary

 


Course description coming soon…

 

 

COMS 4995.011 MOBILE APP DEVELOP IOS | THOMAS, HUGH

syllabus

Course outline and overall goals

  • Mobile application development based on Apple’s iOS operating system and Swift programming language.
  • The class will need to work on Apple Mac computers running Xcode, students will learn how to develop applications for iPhones/iPads/iWatch devices.
  • Students will create mobile applications based on the latest programming patterns and frameworks in use in the mobile industry today.
  • The class covers fundamentals essential to understanding all aspects of app development from concept to deployment on the App Store.
  • Taught in a team environment. Students required to present their project proposals and deliver a fully functional mobile application as a final project.

 

Class Topics

  • Lecture 1 – Intro to Mobile Application Development & XCode IDE 
  • Lecture 2 – Intro to Swift & Storyboard (Constraints) – my first app – [Homework 1 (10%) Lecture
  • The App Lifecycle (App Delegate) & more Swift syntax; Intro to Source Code Control (Git) Lecture
  • Storyboard Navigation (Back, Tabbar, Page) [Red/green/blue] Lecture
  • More Swift (Delegation & TableViewControllers) [Homework 2 (10%)] Lecture
  • More Swift (JSON parsing from file) [Shopping list] Lecture
  • More Swift {Completion blocks} & Networking APIs (REST) [Homework 3 (20%)] Lecture
  • iOS Frameworks (Core Location/MapKit/ARKit/HealthKit) Lecture
  • Data Persistence (User defaults/CoreData) HW3 MIDTERM DUE (20%) Lecture
  • UI/UX (Accessibility/i18n/l10n) [Final Project Description] Lecture
  • Networking and Authentication for Enterprise Apps (REST/OAUTH/GRAPHQL) Lecture
  • Application Analytics Tools (app statistics, crash reports) / [Final Project storyboard] Lecture
  • Deploying your app (AppStore, Testflight, Enterprise distribution) Lecture
  • Final Project presentations to class FINAL PROJECT DUE (50% of Class Grade)



(added 20221116)

 

 

~ back to top ~

 

COMS 4995.012 INTRO TO DATA VISUALIZATI | Swinehart, Christian

2023 website (in progress) | 2022 Website | syllabus  

Course Description:

This course is a hands-on introduction to design principles, theory, and software techniques for visualizing data. Classes will be a combination of lecture, design studio, and lab. Through readings, design critique, and code assignments, students will learn how visual representations can help in the understanding of complex data, and how to design and evaluate visualizations for the purpose of analysis or communication. Students will develop skills in processing data and building interactive visualizations using D3. Topics include visual perception, exploratory data analysis, task analysis, graphic design, visual hierarchy, narrative, etc.

 
Special Enrollment Procedures: 

Prospective students should add themselves to the waitlist and will be enrolled in the course based upon their completion of a warm-up assignment during the first week of the semester.

 

(added 20221117)

 

COMS 4995.020 APPLIED MACHINE LEARNING | Pappu, Vijay

This is a DSI course. For questions regarding Data Science courses please email: DataScience-Registration@columbia.edu

syllabus

Course synopsis:

The course introduces students to the applied aspects of Machine Learning, where they gain a better understanding of ML by working with real-world datasets. While the course introduces different ML concepts, the focus would be on gaining hands-on-experience using Python programming. The first half of the course focuses on exploratory data analysis, followed by introduction to supervised and unsupervised learning techniques. The second half focuses on more advanced topics like learning with data (sparse, imbalance & text), neural networks, embeddings and recommender systems. The topics are complemented with programming assignments and a final project that focuses on helping students gain a deeper understanding.


Prerequisites:

1. Familiarity with ML methods from a course like W4721

2. Introductory-level courses in linear algebra and calculus

3. Familiarity with Python programming and working with packages like numpy, scipy, pandas and matplotlib

 

(added 20221130)

 

~ back to top ~

 

COMS 4995.021 CAUSAL INFERENCE FOR DATA | Kelleher, Adam

 


Course description coming soon…

 

 

COMS 6156.001 TOPICS IN SOFTWARE ENGINE | Kaiser, Gail

 


Course description coming soon…

 

 

 

~ back to top ~

 

COMS 6998.001 PRIVACY PRESERVING SYS | Geambasu, Roxana

 


Course description coming soon…

 

 

COMS 6998.002 ADV SPOKEN LANGUAGE PROCE | Hirschberg, Julia

syllabus

Course Description

This class will introduce students to spoken language processing:  basic concepts, analysis approaches, and applications.  Applications include Text-to-Speech Synthesis, dialogue systems, and analysis of entrainment, empathy, personality, emotion, humor and sarcasm, deception and trust, radicalization and charisma, all using text and speech information and some visual features as well.

course enrollment is by waitlist


(added 20221128)

 

 

~ back to top ~

 

COMS 6998.003 READING THE CS CLASSICS | Papadimitriou, Christos

This is a class meant for CS PhD students. Enrollment is limited, and others may be admitted on a case by case basis.

We shall read several classical papers in CS: Turing on the Entscheidungsproblem, Turing on AI, von Neumann’s interim report on the EDVAC, Codd on relational databases, McCarthy on Lisp 1.5, Shannon on information theory, Cook-Karp-Levin on NP-completeness, Feynman on quantum computation, modern cryptography, several others; participants can propose more.

We will read one or sometimes two clusters of such papers a week, and one will be presented, half the time by teams of students: Historical and intellectual context, biographies, technical exposition, impact. The intention is to understand the process whereby legendary scientists – often in their twenties – looked around them, realized what was missing, and created something new that changed CS and the world.

The book “Ideas that changed the world” by Harry L Lewis contains many of these, along with commentary.


(added 20221115)

 

 

COMS 6998.004 FUND SPEECH RECOGNITION | Beigi, Homayoon

syllabus | website

Fundamentals of Speech Recognition is a comprehensive course, covering all aspects of automatic speech recognition from theory to practice. In this course such topics as Anatomy of Speech, Signal Representation, Phonetics and Phonology, Signal Processing and Feature Extraction, Probability Theory and Statistics, Information Theory, Metrics and Divergences, Decision Theory, Parameter Estimation, Clustering and Learning, Transformation, Hidden Markov Modeling, LanguageModeling, Neural Networks (specifically TDNN, LSTM, RNN, and CNN architectures) plus other recent machine learning techniques used in speech recognition are covered in some detail. Also, several open source speech recognition software packages are introduced, with detailed hands-on projects using Kaldi to produce a fully functional speech recognition engine. The lectures cover the theoretical aspects as well as practical coding techniques. The course is graded based on a project. There will be one homework project worth 20%, a Midterm proposal (20% of the grade is in the form of a two page proposal for the project and the final (60% of the grade) is an oral presentation of the project plus a 6-page conference style paper describing the results of the research project. The instructor uses his own Textbook for the course, Homayoon Beigi, “Fundamentals of Speaker Recognition,” Springer-Verlag, New York, 2011. Every week, the slides of the lecture are made available to the students.



(added 20221116)

 

 

~ back to top ~

 

COMS 6998.005 HIGH PERF MACH LEARNING | Dube, Parijat

 


Course description coming soon…

 

 

COMS 6998.006 CLOUD COMPUTING & BIG DAT | Sahu, Sambit

 

 

 

COMS 6998.007 Types, Languages, and Compilers | Stephen Edwards

An advanced course on modern programming language and type theory with
a focus on functional languages and concrete implementations. The
goal is to become fluent in the concepts and formalisms typical of
papers in conferences such as POPL.

Judgments, Logic, and Inductive Definitions;
Context-free Grammars;
the Lambda Calculus;
the Simply Typed Lambda Calculus;
Type Inference, Hindley-Milner-Damas;
Operational Semantics;
Proof Assistants, Dependent Type Systems,
and the Curry-Howard Correspondence.

Prerequisites:
COMS 4115 Programming Languages and Translators;
COMS 3203 Discrete Mathematics;
COMS 3261 Computer Science Theory. Equivalents acceptable

 

~ back to top ~