# COMS E6998 (Spring 2019)

### Lecture Details

**Instructor**: Suman Jana

**Office**: Mudd 412

**Office hours**: by appointment

**TA**: Kyle Matoba (km3227@columbia.edu)
**TA Office hours**: Mondays 2:30-4:00 pm over Skype

**Classroom**: 1127 Seeley W. Mudd Building

**Class hours**: Thursday (1:10-3:40 pm)

### Description

This class is going to focus on improving program analysis using Machine Learning (ML). Traditionally, program analysis has used formal logic due to its mathematical precision and expressiveness. However, such approaches often struggle to scale to large programs. In this class, I plan to explore the challenges and possibilities of using ML together with formal logic to make such analysis scalable without making major sacrifices in precision.

Note:There will be no assigned textbook for the class and you are expected to read the assigned articles/papers/slides carefully.

The final project report is due by May 18th 11:59pm . The format should be two-column ACM format >= 5-6 pages.

### Prerequisite

There is no formal prerequisite for this class but you should be generally comfortable with ML. Feel free to send me an email if you have any specific questions.

### Grading

- Project - 60%
- Presentations - 30%
- Class participation - 10%
- Extra credit (scribing a lecture) - 5%

### Schedule

**Online presentations:**

Andrew Calvano (Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection) Video, Slides

Nathan Reitinger (Towards Seamless Tracking-Free Web: Improved Detection of Trackers via One-Class Learning) Video, Slides

Ben Meerovitch (Deep Learning to Find Bugs) Video, Slides