COMS 4252: Introduction to Computational Learning Theory
Fall 2015


General Information | Introduction | Topics | Prerequisites | Grading | Readings | Problem Sets | Final Projects | Schedule of Topics | Link to Courseworks/Piazza | Schedule of Deadlines

General Information

Instructor: Rocco Servedio. Office: CS department chair's office. Office hours: Fri 9:30-11:30.
Instructional assistants: Jihye Kwon (OH 3-5 Thurs; TA room), Juliana Louback (OH 2-4 Tues; CS Department Lounge), Pedro Savarese (OH 2-4 Fri; TA room), Keiron Stoddart (OH 4-6 Wed; TA room), Max Lee Tucker Da Silva (OH 4-6 Tues; CS Department Lounge).
Classroom: 702 Hamilton Hall
Time: Tues/Thurs 8:40-9:55.
Course website (this page):
Course email (use for all course-related issues): coms4252columbia2015 at gmail dot com.


The question "Can machines think?" is one that has fascinated people for a long time; see here for a non-technical perspective (you may need to be on the Columbia network to access this resource). This is pretty close to the question "Can machines learn?", which has been studied from different points of view by many researchers in computer science.

This course will give an introduction to some of the central topics in computational learning theory, a field which approaches the above question from a theoretical computer science perspective. We will study well-defined mathematical and computational models of learning in which it is possible to give precise and rigorous analyses of learning problems and learning algorithms. A big focus of the course will be the computational efficiency of learning in these models. We'll develop computationally efficient algorithms for certain learning problems, and will see why efficient algorithms are not likely to exist for other problems.

List of Topics

This is a preliminary list of core topics. Other topics may be covered depending on how the semester progresses. Most topics will take several lectures.


You should be familiar with the following topics:

Grading and Requirements

The requirements of the course are as follows:

Homework policy: You are encouraged to discuss the course material and the homework problems with each other in small groups (2-3 people), but you must list all discussion partners on your problem set. Discussion of homework problems may include brainstorming and verbally discussing possible solution approaches, but must not go as far as one person telling the others how to solve the problem. In addition, each person must write up her/his solutions independently; you may not look at another student's written solutions. You may consult outside materials, but all materials used must be appropriately acknowledged, and you must always write up your solutions in your own words.

Violation of any portion of this policy will result in a penalty to be assessed at the instructor's discretion. This may include receiving a zero grade for the assignment in question AND a failing grade for the whole course, even for the first infraction.

Students are expected to adhere to the Academic Honesty policy of the Computer Science Department; this policy can be found in full here. Please contact the instructor with any questions.

Re-grade policy: If you dispute the grade received for an assignment, you must submit, in writing, a detailed and clearly stated argument for what you believe is incorrect and why. This must be submitted no later than the beginning of class 1 week after the assignment was returned. (For example, if the assignment were returned to the class on Tuesday, your regrade request would have to be submitted before the start of class on the next Tuesday). Requests for a re-grade after this time will not be accepted. A written response will be provided within one week indicating your final score. Requests of re-grade of a specific problem may result in a regrade of the entire assignment. This re-grade and written response is final. Keep in mind that a re-grade request may result in the overall score for an assignment being lowered.


The textbook for this course is:

This book is available for purchase on-line. It's also available on reserve in the science and engineering library, and is electronically available through the Columbia library here (you will need to be signed in to access this). Note that several topics which we'll cover (particularly early in the semester) are not in the book. A good source for material which we will cover in the first few weeks of class are the following two papers:

A handy overview of Chernoff and Hoeffding bounds can be found here (thanks to Clement Canonne for preparing this).

For the unit on boosting, a good reference is Rob Schapire's survey paper "The Boosting approach to machine learning: An overview". The first three sections give a (very condensed) treatment of the AdaBoost algorithm we'll cover in class, and later sections have good overviews of more advanced material (this is a good starting point for a project on boosting). Of course, the original paper on Adaboost, "A decision-theoretic generalization of on-line learning and an application to boosting", is a good sources as well. Click here for a handy copy of the AdaBoost algorithm.


Lectures will often be cumulative, in the sense that most lectures will build on concepts and results that were covered in previous lectures; so if you fall significantly behind it can be difficult to catch up. You are advised to take careful notes during lectures and to review those notes between lectures.

Problem Sets

Click here to get to the homework page.

Final Projects

Click here for more information about final projects.

Schedule of Topics

Here is an anticipated schedule of topics. Note that the ordering of some topics may change, and we may spend more or less than one lecture per topic.

Link to Courseworks/Piazza

Click here for Courseworks (from which you can access Piazza, the discussion forum for the class).

Schedule of Deadlines

Click here for a handy overview of all course deadlines.