CCOM 5050: Analysis & Design of Algorithms

Course Info

Time: Mondays and Wednesdays 1:00-2:20

Place: A-143

Description:
Algorithms affect the lives of billions of people daily. Think about it this way: if you've ever used a cell phone then you've been a user of several algorithms that route calls, decode infromation, remove noise, sort data, or move graphics around fast. This course introduces undergraduate students to notions and techniques that are used as `building blocks' in the design of algorithms.

We will study runtime analysis, correctness proofs and specific algorithms with an emphasis on graph algorithms. We will also discuss problems that appear to be impossible to be solved efficiently, posing one of the most challenging problems of our time.

Class Objectives:
The main goals of the class are to introduce students to some of the fundamental problems and  techniques in algorithms and to expose some of the underlying mathematical tools and challenges.

Topics include:

• Insertion sort
• Runtime analysis and big-O notation
• Graph Algorithms: Breadth-First Search, Depth-First Search, Topological Sort,                  Shortest Paths, Minimum Spanning Trees
• Divide & Conquer and Recurrences: Merge Sort, Binary Search, Integer Multiplication, Strassen's Algorithm, Order Statistics, Counting paths
• Dynamic Programming
• Limits of efficient computation and NP-completeness
• Lower bounds in sorting
• Number-theoretic algorithms and cryptography

Course Materials
Textbook: Introduction to Algorithms, by Cormen, Leiserson, Rivest, Stein

Lectures: Lecture slides and notes will be posted on the Schedule page.

Assignments and Evaluation

Evaluation in the class will be based on:

• Bi-weekly homework, 50%
• Midterm, 25%
• Final, 25%

You are encouraged to discuss homeworks and solutions. However, the homeworks you deliver must be entirely yours and you should be sure you understand completely your solutions.

Feedback From Students

I welcome any comments and requests related to the course content and format. Don't be shy, come by my office!

Policies

Late Assignments A 10% will be subtracted from your grade each day after the deadline. If you delay more than two days the grade will be zero.

Attendance Policy You are expected to be present in class. I will be taking formal attendance as required by UPRRP. While there will be no strict rules, promptly showing up and attending regularly will count positively in your final grade.

Re-Grade Policy If you feel that I graded a homework or exam incorrectly, please email me or come by during office hours.

Laptops and Cell Phones During Class  Please silence and don't use your cell phone during class. Laptops and tablets can be used only for taking notes.