Teaching Asst: Haiqiong Li (Sec 5 and 6)
Office Hours: W 2-4:00 pm
Location: AE 125
Teaching Asst: Jon Crall (Sec 2)
Office Hours: W 1-2:00 pm
Location: AE 127?
Teaching Asst: Shreyas Sekar (Sec 4 and 5)
Office Hours: T 3-5:00 pm
Location: Lally 301
Undergraduate Lab TAs:
Lab 1 W 6-7:50 pm Samuel Rhody , Paul Ignatenko
Lab 2 W 2-3:50 pm Manghesh Tamhankar, Bojiang Jin
Lab 4 W Noon-1:50 Bojiang Jin , Dan Ibanez
Lab 5 W 10-11:50 Max Curran, Paul Ignatenko
Lab 6 Noon-1:50 Ben Pringle , Max Curran
Lab 7 W 2-3:50 pm Ben Pringle, Dan Ibanez
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.
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:
Understand the correctness of, and analyze the 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,
Classroom: DCC 318
Prerequisites: CS2 (CSCI-1200) and
Discrete Structures (MATH-2800).
This course discusses
algorithms, and the mathematical techniques necessary to design
and analyze them.
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)