CS4800: Algorithms and Data

Algorithms and Data CS4800 - 02, Spring 2017

Click for Class Schedule & HW Assignments

General Information

Instructor:
Dr. Jacek Ossowski
Email: jossowsk@ccs.neu.edu
Phone: (617) 373 4128
Location: 460A WVH
Office Hours: Mondays 1-3 pm, Wednesdays 11-1 pm

Teaching Assistants:
Abhinav Kharbanda
Email: abhinavk@ccs.neu.edu
Office Hours: Thursdays 10-11:30am, 462 WVH

Aditya Awalkar
Email: awalkaradi95@ccs.neu.edu
Office Hours: Fridays 3-4:30pm, 362 WVH

Other Q&A resource: peer discussion forum on Piazza
(first time sign-up link is here)

Lecture Time & Location
11:45 am - 1:25 pm     T     Robinson Hall 107
 2:50  pm - 4:30 pm     R     Robinson Hall 107

Textbook

Jon Kleinberg and Eva Tardos Algorithm Design, Addison Wesley 2006

A set of slides accompanying the textbook have been written by Kevin Wayne at Princeton. We will be using this material frequently.

Recommended books for further reading:

Algorithms by Dasgupta, Papadimitriou, and Vazirani

Description of Course

In this introductory course in algorithms, we will study efficient solutions to computational problems in graph theory, geometry, task scheduling, image processing and others. We will apply the following major techniques: greedy algorithms, "divide and conquer", dynamic programming and network flows. We will also study the current limits of efficient computability by studying the concept of NP-hardness and surveying a set of classic NP-complete problems.
The study of algorithms, their correctness and efficiency, requires a proper mathematical foundation and a high standard in logical reasoning. We will review some of the needed concepts and practice useful proof techniques on many examples.
Our main focus will be algorithmic ideas, analysis and design; the course will have, however, a programming component where we will see how the learned algorithms translate into programs.

Homework

Programming Component

We will have 4 short programming assignments demonstrating how the learned algorithms work in practice. The assignments will be posted as challenges on www.hackerrank.com. You will need to write your programs in Java or Python. Details to follow soon.

Exams

Grading

The worst two quizzes, the worst written assignment, and the worst programming assignment will not be counted towards your grade.

Additional Remarks

Last modified: Dec. 27, 2016