Fall 2021 Topics Courses

The below are course descriptions for the Spring 2021 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).

 

COMS 4995.1 HACKING 4 DEFENSE | Blaer, Paul
COMS 4995.2 PARALLEL FUNCTIONAL PROGR | Edwards, Stephen
COMS 4995.3 ENGR SOFTWARE AS A SERVIC | Yang, Junfeng
COMS 4995.4 INTRO TO NETWORKS AND CRO | Chaintreau, Augustin
COMS 4995.5 LOGIC AND COMPUTABILITY | Pitassi, Toniann
COMS 4995.6 DEEP LRNG FOR COMP VISION | Belhumeur, Peter
COMS 4995.7 NEURAL NETWORKS DEEP LEAR | Zemel, Richard
COMS 4995.10 ELEMENTS FOR DATA SCIENCE | Gibson, Bryan
COMS 4995.11 APPLIED MACHINE LEARNING |
COMS 6998.1 REPRESENTATION LEARNING | Vondrick, Carl
COMS 6998.2 ADV WEB DESIGN STUDIO | Chilton, Lydia
COMS 6998.3 FORMAL VERIFICATION SYSTE | Gu, Ronghui
COMS 6998.4 VIRTUAL AND AUGMENTED REA | Feiner, Steven
COMS 6998.5 TOPICS IN ROBOTIC LEARNIN | Song, Shuran
COMS 6998.6 FOUNDATIONS OF BLOCKCHAIN | Roughgarden, Timothy
COMS 6998.7 SECURITY ROBUSTNESS ML SY | Yang, Junfeng
COMS 6998.9 COMPUTATION AND THE BRAIN | Papadimitriou, Christos
COMS 6998.10 SYS FOR HUMAN DATA INTERA | Wu, Eugene
COMS 6998.11 FUND SPEECH RECOGNITION | Beigi, Homayoon
COMS 6998.12 PRACT DEEP LEARNING SYS P | Dube, Parijat
COMS 6998.13 CLOUD COMPUTING & BIG DAT | Sahu, Sambit
COMS 6998.14 EMPIRICAL METHODS DATA SC | Levine, Michelle
COMS 6998.15 ALGEBRAIC TECHNIQUES IN CS | Joshua H Alman

 


 

 


COMS 4995.1 HACKING 4 DEFENSE | Blaer, Paul  

Couse Website

Solve complex technology problems critical to our National Security with a team of engineers, scientists, MBAs, and policy experts. In a crisis, national security initiatives move at the speed of a startup yet in peacetime they default to decades-long acquisition and procurement cycles. Startups operate with continual speed and urgency 24/7. Over the last few years they’ve learned how to be not only fast, but extremely efficient with resources and time using lean startup methodologies. In this class student teams develop technology solutions to help solve important national security problems. Student teams take actual national security problems and learn how to apply the Lean launchpad and Lean Startup principles, (“business model canvas,” “customer development,” and “agile engineering”) to discover and validate customer needs and to continually build iterative prototypes to test whether they understood the problem and solution. Teams take a hands-on approach requiring close engagement with actual military, Department of Defense and other government agency end-users. Team applications required. Limited enrollment. Taught by Professor Paul Blaer and Jason Cahill, Hacking for Defense™ is a university-sponsored class that allows students to develop a deep understanding of the problems and needs of government sponsors in the Department of Defense and the Intelligence Community. In a short time, students rapidly iterate prototypes and produce solutions to sponsors’ needs. This course provides students with an experiential opportunity to become more effective in their chosen field, with a body of work to back it up. For government agencies, it allows problem sponsors to increase the speed at which their organization solves specific, mission-critical problems. For more information check out http://www.h4di.org/

 

 

COMS 4995.2 PARALLEL FUNCTIONAL PROGR | Edwards, Stephen

Prerequisites: COMS 3157 Advanced Programming or the equivalent. Knowledge of at least one programming language and related development tools/environments required. Functional programming experience not required. Functional programming in Haskell, with an emphasis on parallel programs. The goal of this class is to introduce you to the functional programming paradigm. You will learn to code in Haskell; this experience will also prepare you to code in other functional languages. The first half of the class will cover basic (single-threaded) functional programming; the second half will cover how to code parallel programs in a functional setting.

 

COMS 4995.3 ENGR SOFTWARE AS A SERVIC | Yang, Junfeng

Course Website & Syllabus

In 2011, Marc Andreessen penned a famous Wall Street Journal article “Why Software Is Eating The World.” Almost a decade later, software is still eating the world. Companies like Google, Amazon, Uber, and Airbnb are revolutionizing entire industry sectors, and even traditional enterprises have to embrace this transition to software and automate numerous tasks within their organizations in order to remain competitive. This software revolution is driven primarily by two technology trends. On the client side, billions of users now own computers and smartphones with broadband Internet access, providing each of them “instant access to the full power of the Internet, every moment of every day.” On the backend, cloud services and readily available software tools vastly simplify creating software startups in many industries, without the need to invest in infrastructure or employee training. For instance, when WhatsApp was acquired by Facebook for approximately $19.3 billion dollars, it powered hundreds of millions of users worldwide but had merely 50 employees. These technology trends not only enable software to flourish, but also fundamentally change our software engineering process. Broadband access enables developers to run their software in the cloud for users to access via browsers or mobile apps — so-called Software-as-a-Services (SaaS). The developers of SaaS products continuously gather user feedback and behavior analytics, quickly refine existing or build new product features, and deploy to production in matter of minutes to test out their ideas — so called Agile Development. This style of close collaboration with customers and fast iteration of product ideas is in stark contrast with how software was engineered two decades ago. In this course, we will study modern software engineering practices including including topics such as SaaS architecture, behavior-driven development, Ruby on Rails, and Dev/ops. For details on the topics we will cover, please check out the Course Syllabus page.

 


COMS 4995.4 INTRO TO NETWORKS AND CRO | Chaintreau, Augustin

This course covers the fundamentals underlying information diffusion and incentives on networked applications. Applications include but are not limited to social networks, crowdsourcing, online advertising, rankings, information networks like the world wide web, as well as areas where opinion formation and the aggregate behavior of groups of people play a critical role. Among structural concepts introduced and covered in class feature random graphs, small world, weak ties, structural balance, cluster modularity, preferential attachments, Nash equilibrium, Potential Game and Bipartite Graph Matching. The class examines the following dynamics: link prediction, network formation, adoption with network effect, spectral clustering and ranking, spread of epidemic, seeding, social learning, routing game, all-pay contest and truthful bidding

 

 


COMS 4995.5 LOGIC AND COMPUTABILITY | Pitassi, Toniann

Course description coming soon…

 


COMS 4995.6 DEEP LRNG FOR COMP VISION | Belhumeur, Peter

Recent advances in Deep Learning have propelled Computer Vision forward. Applications such as image recognition and search, unconstrained face recognition, and image and video captioning which only recently seemed decades off, are now being realized and deployed at scale. This course will look at the advances in computer vision and machine learning that have made this possible. In particular we will look at Convolutional Neural Nets (CNNs), Recurrent Neural Nets (RNNs), Long Short Term Memories (LSTMs) and their application to computer vision. We will also look at the datasets needed to feed these data hungry approaches–both how to create them and how to leverage them to address a wider range of applications. The course will have homework assignments and a final project; there will be no exams. Total enrollment capped at 60.

 

 

COMS 4995.7 NEURAL NETWORKS DEEP LEAR | Zemel, Richard

Course description coming soon…

 


COMS 4995.10 ELEMENTS FOR DATA SCIENCE | Gibson, Bryan

This is a DSI course therefore please refer to their website for the cross-registration instructions for NON-DS students

This course is designed as an introduction to elements that constitutes the skill set of a data scientist. The course will focus on the utility of these elements in common tasks of a data scientist, rather than their theoretical formulation and properties. The course provides a foundation of basic theory and methodology with applied examples to analyze large engineering, business, and social data for data science problems. Hands-on experiments with R or Python will be emphasized.

 

COMS 4995.11 APPLIED MACHINE LEARNING | instructor TBA

This is a DSI course therefore please refer to their website for the cross-registration instructions for NON-DS students

This class offers a hands-on approach to machine learning and data science. The class discusses the application of machine learning methods like SVMs, Random Forests, Gradient Boosting and neural networks on real world dataset, including data preparation, model selection and evaluation. This class complements COMS W4721 in that it relies entirely on available open source implementations in scikit-learn and tensor flow for all implementations. Apart from applying models, we will also discuss software development tools and practices relevant to productionizing machine learning models.

 

 

COMS 6998.1 REPRESENTATION LEARNING | Vondrick, Carl

Course description coming soon…

 

 

 

COMS 6998.2 ADV WEB DESIGN STUDIO | Chilton, Lydia

This semester, Advanced Web Design Studio is partnering with faculty and students in Journalism and Architecture to design, build and deploy “public interest technology.” We will introduce interdisciplinary design methods and principles for Human Computer Interaction — mixing Architecture, Urban Planning, Computer Science, and Journalism — that respond to the potentials as well as the adverse effects of computation on society today. Our work will be dedicated to leveraging technology to support public interest organizations. We will move beyond short-term metrics—clicks, daily active users, and private profit—to focus on fostering long-term value and local networks. Students will work together to create and deploy interdisciplinary projects in collaborative teams, with the aim of serving the public and using technology to advance justice, equality, and inclusion in society. We will also be alert to the ways in which the language of “public interest” can sometimes hide or offer alibis for other political or private interests. For the first half of the semester, coding and design exercises, and complete short readings on journalism, urban planning, and public interest technology. During the second half of the semester students will iterate their work and put their projects into action. A strict pre-requisite is to have taken COMS 4170 UI Design, or have taken an equivalent class with both web-based implementation and design components. You must also fill out the prerequisite form that will be available thru SSOL. It is also here: https://forms.gle/v3a22idw9qgubgcG9. The faculty instructors in each area are: Lydia Chilton: School of Engineering, Computer Science; Mark Hansen: School of Journalism; Laura Kurgan: Graduate School of Architecture, Planning and Preservation

Here are some examples of Public Interest Technology:

— Ushahidi: Since 2008, thousands have used this crowdsourcing platform in disaster settings, from violence post-election to earthquakes and floods worldwide.

— OneBusAway: Results from Providing Real-Time Arrival Information for Public Transit. (2010)

— Discrimination in Online Ad Delivery: Google ads, black names and white names, racial discrimination, and click advertising (2013)

— Anti Eviction Mapping is a volunteer data-visualization, data analysis, and storytelling collective documenting the dispossession and resistance upon gentrifying landscapes (since 2013)

 

 


COMS 6998.3 FORMAL VERIFICATION SYSTE | Gu, Ronghui

This course is a graduate seminar on research in the verification of system software. The goal of the class is to get the students to build provably correct software. The structure of the class will consist of students presenting research papers during lecture, and students working on a significant research project. We expect students to start working on the project in the first week or two, and continue for the entire semester, culminating in a draft research paper. Examples of project include building a certified file system, simple OS kernel, hypervisor, database system, etc. We expect projects will build on tools such as Coq, and Z3. To get students up to speed with these tools, we will offer several tutorial lectures on Coq, using parts of the Software Foundations textbook.

 

 


COMS 6998.4 VIRTUAL AND AUGMENTED REA | Feiner, Steven

This course will cover selected topics in VR and AR. There are two main components, with everyone participating in both: papers and projects.

Papers: Throughout the semester, we will be reading, presenting, and discussing papers that address important research themes in VR and AR. Each of you will be individually responsible for reading and commenting on all the papers and for participating in a team presentation of a selected set of papers related to one theme.

Projects: You will be developing a project in a small (individual or 2-3 person) team using the Unity 3D development environment. Projects will use either headset-based VR or phone-based AR. Through the generosity of a Provost Emerging Technology Grant, I expect to lend an Oculus Quest to each of you doing a headset-based VR project. Thus, members of all team projects can work remotely from each other without needing to share equipment. While you can generate your own project idea, I will encourage you to choose from a collection of projects co-advised with faculty and students in other schools, ranging from Medicine and Dentistry, to Social Work.

Prerequisites: You will ideally have taken COMS W4172 (3D User Interfaces and Augmented Reality) or equivalent and be comfortable with developing in Unity. However, I am willing to admit students who don’t have this background, with the understanding that you will need to get up to speed with Unity, starting early in September.

Please fill out the survey linked to the course SSOL entry, which is a necessary precondition to being admitted to the course.

 


COMS 6998.5 TOPICS IN ROBOTIC LEARNIN | Song, Shuran

This is an advanced seminar course that will focus on the latest research in machine learning for robotics. More specifically, we study how machine learning and data-driven method can influence the robot’s perception, planning, and control. For example, we will explore the problem of how a robot can learn to perceive and understand its 3D environment, how they can learn from experience to make reasonable plans, and how they can reliably act upon with the complex environment base on their understanding of the world. Students will read, present, and discuss the latest research papers on robot learning as well as obtain experience in developing a learning-based robotic system in the course projects.

 

 


COMS 6998.6 FOUNDATIONS OF BLOCKCHAIN | Roughgarden, Timothy

This course will provide a rigorous introduction to the mathematical analysis of blockchain protocols, including the relevant tools and definitions from game theory, economics, and distributed computing. The target audience is beginning PhD students with interest and experience in theoretical computer science.

 

 


COMS 6998.7 SECURITY ROBUSTNESS ML SY | Yang, Junfeng

Course Website

Over the past few years, Machine Learning (DL) has made tremendous progress, achieving or surpassing human-level performance for a diverse set of tasks including image classification, speech recognition, and playing games such as Go. These advances have led to widespread adoption and deployment of ML in security- and safety-critical systems such as self-driving cars, malware detection, and aircraft collision avoidance systems. This wide adoption of DL techniques presents new challenges as the predictability and correctness of such systems are of crucial importance. Unfortunately, ML systems, despite their impressive capabilities, often demonstrate unexpected or incorrect behaviors in corner cases for several reasons such as biased training data, overfitting, and underfitting of the models. In safety- and security-critical settings, such incorrect behaviors can lead to disastrous consequences such as a fatal collision of a self-driving car. For example, a Google self-driving car recently crashed into a bus because it expected the bus to yield under a set of rare conditions but the bus did not. A Tesla car in autopilot crashed into a trailer because the autopilot system failed to recognize the trailer as an obstacle due to its “white color against a brightly lit sky” and the “high ride height.” Such corner cases were not part of Google’s or Tesla’s test set and thus never showed up during testing. Other examples include Microsoft’s Tay chatbot tweeting racist words because it was misled by malicious twitter users, and Google removing “gorilla” as an image class after its image classification algorithm incorrectly classified dark skined people as gorillas.

These challenges have drawn huge attention from researchers in machine learning, security, systems, and programming language communities. A number of techniques and theories have been proposed to increase the robustness and security of machine learning. In this course, we will study the most practical and most important of these techniques and theories with a focus on deep learning. For details on the topics we’ll cover, please go to the Course Syllabus page.

 

 

COMS 6998.9 COMPUTATION AND THE BRAIN | Papadimitriou, Christos

Prerequisites: Familiarity with computation and algorithms. Some familiarity with Neuroscience; or willingness to venture into a vast, complex, and fascinating field. Familiarity with machine learning useful.

Despite brilliant and accelerating progress in experimental Neuroscience, there is little progress towards an overarching understanding of how the Brain works. This course will cover some basic material and results in Neuroscience, both classical and recent, from a computational perspective, that is, under the hypothesis that the way the Brain works is largely computational.”

 

 


COMS 6998.10 SYS FOR HUMAN DATA INTERA | Wu, Eugene

Human Data Interaction studies the interface between humans and data. What types of interfaces are suitable for different data tasks? Further, creating human data interfaces is extremely challenging because the responsiveness of the interface directly depends on the system architecture as well as the interface design. What system innovations are needed to simplify how effective human data interfaces can be created and used?

Human Data Interaction is a nascent field, and we will study modern research in data visualization, HCI, data analysis, and data management systems. This seminar course will center around reading, reviewing, and discussing research papers. Each session will consist of a round table discussion of the week’s readings to understand the context, the technical details, and to brain storm follow up research questions. Students will work in small teams on a semester-long research project that is within the scope of the course topic.

 


COMS 6998.11 FUND SPEECH RECOGNITION | Beigi, Homayoon

Syllabus

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, Language Modeling and Natural Language Processing, Search Techniques, Neural Networks, Support Vector Machines and 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. The Midterm (40% 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.

 


COMS 6998.12 PRACT DEEP LEARNING SYS P | Dube, Parijat

This course will cover several topics in performance evaluation of machine learning and deep learning systems. Major topics covered in the course: Algorithmic and system level introduction to Deep Learning (DL), DL training algorithms, network architectures, and best practices for performance optimization, ML/DL system stack on cloud, Tools and benchmarks (e.g., DAWNBench) for performance evaluation of ML/DL systems, Practical performance analysis using standard DL frameworks (tensorflow, pytorch) and resource monitoring tools (e.g., nvidia-smi), Performance modeling to characterize scalability with respect to workload and hardware, Performance consideration with special techniques like transfer learning, semi-supervised learning, neural architecture search. Emphasis will be on getting working knowledge of tools and techniques to evaluate performance of ML/DL systems on cloud platforms. The assignments will involve running experiments using standard DL frameworks (tensorflow, pytorch) and working with open source DL technologies. The students will gain practical experience working on different stages of DL life cycle (development and deployment) and understanding/addressing related system performance issues.

 


COMS 6998.13 CLOUD COMPUTING & BIG DAT | Sahu, Sambit

Cloud Computing and Big Data Systems
This is a graduate level course on Cloud Computing and Big Data with emphasis on hands-on design and implementations. You will learn to design and build extremely large scale systems and learn the underlying principles and building blocks in the design of such large scale applications. You will be using real Cloud platforms and services to learn the concepts, build such applications.

The first part of the course covers basic building blocks such as essential cloud services for web applications, cloud programming, virtualization, containers, kubernetes and micro-services. We shall learn these concepts by using and extending capabilities available in real clouds such as Amazon AWS, Google Cloud.

The second part of the course will focus on the various stacks used in building an extremely large scale system such as (i) Kafka for event logging and handing, (ii) Spark and Spark streaming for large scale compute, (iii) Elastic Search for extremely fast indexing and search, (iv) various noSQL database services such as DynamoDB, Cassandra, (v) cloud native with kubernets, (vi) cloud platforms for Machine Learning and Deep Learning based applications. Several real world applications will be covered to illustrate these concepts and research innovations.

Students are expected to participate in class discussions, read research papers, work on three programming assignments, and conduct a significant course project. Given that this is a very hands-on course, it is expected that students have decent programming background.

Prerequisite: Good programming experience in any language, Concepts of Web Applications and Systems

Reading Material: Lecture Notes, Reading Papers, Reference Text Books, Lot of Engineering Docs

Grading: 3 Programming Assignments (35%), 2 Quizzes (25%), Project (40%)

 


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

 

 

COMS 6998.15 ALGEBRAIC TECHNIQUES IN CS | Joshua H Alman

course website
Algebraic techniques have been used in nearly every area of computer science. This course will develop some of these techniques and explore a broad range of applications. We will mostly see applications to algorithm design and complexity theory, but we will touch on applications to other areas as well. The course will focus on four main topics:

Algebraic graph algorithms. The fastest known algorithms for several important graph problems use algebraic tools. Often, the graph problem appears (at first glance) to have nothing to do with algebra, and algorithm designers have found surprising algebraic connections.

The polynomial method. If one can capture a computational task using a simple polynomial, then fast algorithms for manipulating polynomials can often be used to solve the problem more efficiently. In contrast, if one can show that a task cannot be captured by simple polynomials, this can often be used to prove complexity-theoretic lower bounds.

Matrix rigidity. Some of the most important and applicable algorithms are for computing linear transforms such as Fourier transforms. Matrix rigidity is a powerful but poorly understood tool for understanding their complexity. A matrix is called rigid if it cannot be decomposed as the sum of a low-rank matrix and a sparse matrix. It remains an open problem to prove that any explicit family of matrices is rigid.

Matrix multiplication algorithms. Matrix multiplication is prevalent in computational science and is known to be equivalent to many other computational problems in linear algebra. We will see how fast matrix multiplication algorithms are designed, including some recent developments.
Evaluation will be primarily based on a final project. I will provide a list of suggestions for the project, but students are encouraged to relate their project to their interests. There will also be occasional (at most 4) homework assignments, and students will be asked to scribe a lecture.