CSCI-2300: Algorithms
Fall 2010
Announcements.
Lectures
Labs
Homework
Exams
Your Grade
Course Information
Instructor: Moorthy
Email: moorthy@cs.rpi.edu
Office Hours: Tuesday, Friday 2:00 -3:30pm
Office: Lally 305
Teaching Asst: Hoonlor, Apirak
Email:
hoonla@rpi.edu
Office Hours: Tuesday And Thursday 2-3:00 pm
Location: AE 217
Teaching Asst: Li, You
Email: liy13rpi.edu
Office Hours: Wednesday 11am-1pm
Location:
AE 217
Teaching Asst: Ozcaglar, Cagri
Email: ozcagc2@cs.rpi.edu
Office Hours: Tuesday 1- 2:30pm
Location: AE 207
Undergraduate Lab TAs:
- Eric M. Herdzik, Colin Sullivan --Section 1 (Amos Eaton 216) W 6-7:50 pm
- Dave Pizzuto --Section 2 (Amos Eaton 216) 2-3:50 pm
- Nick Martin, Varun Madiath --Section 4 (Sage 2715) Noon -1:50 pm
- John Schwartz, Jesse Natalie -- Section 5 (Sage 2715) 10-11:50 am
- --Section 6 (Eaton 216) Noon-1:50 pm
- Dave Hughes -- Section 7 (Sage 2715) 2-3:50 pm
Course Objectives
Students at the end of the course will be able to design, implement and analyze algorithms
for problems in Science and Engineering. Students will learn different Algorithmic Paradigms
and learn techniques for analyzing the algorithms. Students will also learn efficiency both in
design and implementation. Students will learn to compare different algorithms for solving
the same problem. Students will be exposed to an elementary treatment of NP-complete problems.
Learning Outcome
The goal of this course is to provide a strong foundation in algorithms and
data structures in
preparation for jobs in industry or for more advanced courses. Algorithms are the basic language of computer science. After taking this course, you, the student, should be able to:
- Analyze the correctness and running times of different algorithms.
- Use different algorithm-design techniques, including, but not limited to, greedy, divide-and-conquer, and dynamic programming techniques, to solve particular problems.
- Model real problems abstractly using the language of graphs and flows.
- Solve problems by reducing to other problems whose solution is known, and show that
problems are hard by reducing from other problems.
- Make intelligent decisions about alternative data structures and algorithmic techniques in
the context of practical software problems, choosing from existing data structures and algorithms or designing your own when necessary
Class Time: Monday and Thursday, 12:00 - 1:20pm
Classroom: DCC 318
Credits: 4
Prerequisites: CS2 (CSCI-1200) and
Discrete Structures (MATH-2800).
Description
This course discusses
algorithms, and the mathematical techniques necessary to design
and analyze them.
Web Page: http://www.cs.rpi.edu/~moorthy/Courses/CSCI2300
Syllabus
Chapter 0 Introduction
Chapter 1 Algorithm
with Numbers and Randomized Algorithms
Chapter 2 Divide and,
Conquer Algorithms
Chapter 3 Decomposition of Graphs
Chapter 4 Paths in Graphs
Chapter 5 Greey Algorithms
Chapter 6 Dynamic Programming
Chapter
8 NP-complete Problems
Chapters
8 Coping with NP-complete Problema
Chapter
7 Linear Programming
Lectures
Class 1 (8/30: Chapter
0
Class 2 (9/2): Chapter 0 and 1
Class 3 (9/9): Chapter 1
Class 4 (9/13): Chapter 1
Class 5 (9/16): Chapter 2
Class 6 (9/20): Chapter
2 and 3
Class 7 (9/23): Chapter
3
Class 8 (9/27): Chapter 3 and 4
Class 9 (9/30): Chapter 4
Class 10 (10/4): Exam 1
Class 11 (10/7): Chapter 4
Class 12 (10/12): Chapter 5
Class 13 (10/14): Chapter 5
Class 14 (10/18): Chapter
6
Class 15 (10/21): Chapter
6
Class 16 (10/25): Chapter
6
Class 17 (10/28): Chapter
6 and 8
Class 18 (11/1): Chapter
8
Class 19 (11/4): Chapter
8 and Review
Class 20 (11/11): Exam
2
Class 21 (11/15): Chapter
8 .
Class 22 (11/18): Chapter
8
Class
23 (11/22): Chapter 9
Class
24 (11/29): Chapter 9
Class
25 (12/2): Chapter 7
Class
26 (12/6): Chapter 7
Class
27 (12/9): Review
Labs
6pm - 7:50pm Sec 1 Eaton 216
2pm - 3:50pm Sec
2 Eaton 216
Noon - 1:50pm Sec
4 Sage 2715
10 am - 11:50am Sec
5 Sage 2715
Noon - 1:50pm Sec
6 Eaton 216
2:00 pm - 3:50pm Sec
7 Sage 2715
- Lab 1 (Sep 8)
- Lab 2 (Sep 15)
- Lab 3 (Sep 22)
- Lab 4 (Sep 29)
- Lab 5 (Oct 13)
- Lab 6 (Oct 20)
- Lab 7 (Oct 27)
- Lab 8 (Nov 3)
- Lab 9 (Nov 17)
- Lab 10 (Dec 1)
Integrity
Collaboration is not allowed. Homeworks and exams should be
solved and written by individuals alone. If anyone is caught cheating then
severe measures will be taken such as lowering the final grade, and the event will
be reported to the appropriate authorities in the campus.
Homework No Late Submissions (unless there is a medical Excuse)
- Late homework
will not be accepted.
- Homework 1: Due
in class on Thursday, Sep 9.
- Homework 2: Due
in class on Thursday, Sep 16.
- Homework 3: Due
in class on Thursday, Sep 23.
- Homework 4: Due
in class on Thursday, Sep 30.
- Homework 5: Due
in class on Thursday, Oct 14.
- Homework 6: Due
in class on Thursday, Oct 21.
- Homework 7: Due
in class on Thursday, Oct 28
- Homework 8: Due
in class on Thursday, Nov 4.
- Homework 9: Due
in class on Monday, Nov 22.
- Homework 10: Due
in class on Monday, Dec 6 .
Exams (in class exams )
- Exam 1 on Monday Oct 4, from 12 to 1:30pm in class – Chapters 0 to 4
- Exam 2 on Thursday Nov 11, from 12 to 1:30pm in class Chapters 5,6 and 8
- Final Exam (To Be Scheduled) –
Everything.
Your Grade
- 15% Labs, 20% Homework; 20% Exam 1; 20% Exam 2; 25% Final
Required Text
- Algorithms, Dasgupta, Papadamitriou and Vazirani
McGraw Hill, 2008
- Introduction to Algorithms, Cormen, Leiserson, Rivest and Stein
2nd Edition McGraw Hill, 2008
Moorthy
Department of Computer Science
Rensselaer Polytechnic Institute
110 8th
Street
Troy, NY 12180