(CS 6161) - Fall 2018
Objectives and Overview
Goals. The goal of this course is to develop skills that allow formally (i.e., mathematically) arguing about design and analysis of algorithms and data structures.
This involves knowing how to use the right mathematical tools, notions, and ideas to design the right solutions. You can find more details the syllabus file.
Pre-reqs. No prerequisites are enforced, but being familiar with concepts of CS 3102 (theory of computation), CS 2102 (Discrete Math), and particularly Algorithms (CS 4102) will be extremely useful. The key is to be comfortable with math concepts and proofs.
Logistics. We will meet Tues and Thurs 5pm-6:15pm in Mechanical Eng 205.
My office hours are right after class till 7pm, but you can always email me to meet me in other times as well.
Ahmadreza Rahimi's office hours are Wednesdays 12pm-2pm in Rice 436.
Caleb Smith's office hours are Fridays 11:30am-1:30pm in Rice 340.
Problem solving sessions are Mondays 11am-1pm in Olsson hall 001.
Lectures You can find specifics posts for each lecture here. For each class you can find suggested readings as well as link to the recorded video of the class (accessible through collab).
Homeworks and exams
There will be a mid-term exam (Oct 16, 5:00-8:00pm in class) and a final exam (December 11, 9:00AM-12:00PM). There will be bi-weekly problem sets posted, and there will be bi-weekly problem solving sessions run by the TAs, but only some of the problem sets will be returned by you for grading. Exams will be 30% each, and the problem sets will be 40% total. The submitted assignments (for grading) should be written individually. You can collaborate on solving the problems together, and you are even encouraged to do so, but (1) you should explicitly list the name and computing ID of your collaborators on top of the submitted drafts (which will be submitted as PDF in collab) and (2) you are not allowed to share any written material, so make sure you write the solutions on your own. This way you notice if there is anything that you have not fully understood, so you can come to the office hours and discuss them with us.
Textbook(s) and content
There will be no single text-book that is followed closely in class. The content of the first half of the course will largely be based on the book
Introduction to Algorithms, Third Edition
By Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. So, if you want to get one book, this will be the one.
However, there are also quite a few other great books that you can use. (I will post for each session which related chapters of the books could be used.) Examples include:
And of course there are many great lecutre notes, some of which will be posted to the course page as we go.
Piazza. We will also have a Piazza
page which will serve as a place for discussions after the class and announcements. There you can ask any questions you have about the material and other students as well as myself will provide their thoughts on that.
More details You can find more details the syllabus file.