CS 3343/3341 Analysis of Algorithms
Fall 2016


Disclaimer

This Syllabus is provided for informational purposes regarding the anticipated course content and schedule of this course. It is based upon the most recent information available on the date of its issuance and is as accurate and complete as possible. I reserve the right to make any changes I deem necessary and/or appropriate. I will make my best efforts to communicate any changes in the syllabus in a timely manner. Students are responsible for being aware of these changes.

A student who misses, without prior approval by the instructor, half or more of the lectures during the first two weeks will be dropped from the course.

Class Description

From the catalog: This course is to provide an introduction to the design and analysis of computer algorithms. The students will learn how to analyze the performance of computer algorithms, and programming techniques and data structures used in the writing of effective algorithms.

We will discuss classic algorithm design strategies (e.g., divide-and-conquer, dynamic programming, greedy approaches), data structures (e.g., hash tables, binary search trees), classic problems (e.g., sorting, knapsack problem, scheduling, graph-related problems) and the classic algorithms to solve them. We will also analyze algorithm complexity throughout, and touch on issues of tractibility such as NP-Completeness.

Objectives: to learn and apply techniques for the design and analysis of algorithms.

Prerequisites: CS 2123, CS 2233, CS 3333

Lectures

3343.002: TR 2:30 - 3:45pm @ MH 2.02.10

Recitation

3341.003 (concurrent registration of 3343.002 required): T 4 - 4:50pm @ BB 3.01.08

3341.004 (concurrent registration of 3343.002 required): R 4 - 4:50pm @ AET 0.204

Textbooks:

  • Required textbook: Introduction to Algorithms, 3rd Edition; Cormen, Leiserson, Rivest, and Stein; MIT Press, Boston, 2009.
    Errata: click to read the list of errors in the textbook.
  • Optional textbook: Introduction to the Design and Analysis of Algorithms; Anany Levitin. Addison-Wesley.

Instructor:

  • Dr. Jianhua Ruan
    Office location: NPB 3.202
    E-mail: jruan at cs.utsa.edu
    Phone: 458-6819
    Office hours: Tue 1-2pm, or by appointment

Teaching Assistant:

  • Erdal Akin
    E-mail:
    erdalakin1985@hotmail.com
    Office location: NPB 2.118 (Common TA area)
    Office hours: Wed 9:30-10:30

 Grader:

  • Tuan Dinh
    E-mail: tuan.dinh91@gmail.com
    Office location:

    Office hours:

Grading

     Exam 1 16% 
     Exam 2 16% 
     Final Exam 36% 
     In-class quizzes, participation and attendance (lecture and recitation combined) 7% 
     Homework assignments 25 %

One lowest grade in homework will be dropped.  Exams cannot be made up, cannot be taken early, and must be taken in class at the scheduled time.  There will be no makeup exams. The grade that you obtain for the course will also serve as the grade for the recitation.

I reserve the right to slightly adjust the weights of individual components if necessary.

Late homework submissions

         10% penalty if submitted the same day after the instructor left classroom

         15% penalty each additional day after the submission deadline

         Submission will not be accepted once TA shows solution in recitation or instructor puts solution online

         Email submission is acceptable in case of emergency

Collaboration on Homework

Since your grade is partially based on computer and homework assignments, they must be your own work. You can ask me questions about any aspect of an assignment and pursue general discussions with others on the system or on an approach to solving a problem. You may discuss high-level ideas and thoughts about a homework assignment with your other classmates, but you have to work out all details of any solutions discussed and write up the solution completely on your own. In particular, when working with a student on an assigned homework problem you should do so verbally -- Nothing should be written. This is aimed at keeping your discussion at a high level so everyone can work out the details on their own. Please follow the spirit of this rather than working to finds ways to share details verbally. Also you must clearly acknowledge anyone (except the instructor and TA) with whom you discussed any problem and say briefly what you discussed.

You are not allowed to read, copy, or rewrite the solutions written by others (in this or previous terms). Copying materials from websites, books or other sources is considered equivalent to copying from another student.

Every cheating (for example, copy homework solutions from the web, friends or other textbooks) will be reported to the office of academic integrity. If two people are caught sharing solutions then both the copier and copiee will be held equally responsible. Cheating on an exam will result in failing the course.

It is your responsibility to contact me in a timely manner if there are extenuating circumstances that impact your ability to perform in this class. Your grade is 'not given' by the instructor, but rather is earned by you through demonstrating your mastery of the subject.

Tentative lecture schedule: (Schedule and lecture slides are for information only and are subject to change without notice.)

Week

Date

Topic

Notes

Reading

Assignment

Due

1

8/23

Introduction, administration

Slides

Ch 1,2

 

 

8/25

Basics, asymptotic notation

Slides

Ch 3 

HW1 | solution

Note: typo in 3a fixed on Aug 30.

 

2

8/30

Asymptotic notation

Slides

Ch 3

 

9/1

Analyzing recursive algorithms - defining recurrence

Slides

Ch 4

3

9/6

Analyzing recursive algorithms - recursion tree method

Slides

Ch 4

HW2 | solution

HW1

9/8

Analyzing recursive algorithms - master theorem

Slides

Ch 4

4

9/13

Analyzing recursive algorithms - substitution method

Ch 4

9/15

Analyzing recursive algorithms - substitution method

Ch 4

HW2

5

9/20

Review for exam 1, Quick sort

Slides

Ch 1-4, 7

  

9/22

Quick sort

Ch 7

HW3 | Solution

 

6

9/27

Heap sort & Priority queue

Slides

Ch 6

 

9/29

Linear time sorting algorithms

Slides

Ch 8

 HW3

7

10/4

Exam 1 (covers week 1-4)

 

10/6

Order statistics

Slides

Ch 9

HW4 | solution

 

8

10/11

Order statistics

 

10/13

Dynamic programming

Slides

Ch 15

9

10/18

Dynamic programming

 

Ch 15

HW5 | Solution

HW4

10/20

Dynamic Programming

Slides

Ch 15

Q4 Solution

10

10/25

Greedy Algorithm

Slides

Ch 16

 

10/27

Intro to graphs

Slides

Ch 22

HW6 | Solution

HW5

11

11/1

Review for exam 2

Slides

 

 

11/3

Minimum spanning tree

Slides

Ch 22

12

11/8

Minimum spanning tree

Ch 23

HW7 | Solution

HW6

11/10

Shortest paths

Slides

Ch 24

Q5 solution

 

13

11/15

Graph search, topological sort

Slides

Ch 24 Q6 solution

 

11/17

Exam 2 (covers week 5-10)

14

11/22

Graph search, topological sort

 

 

11/24

Thanksgiving no class

 

 

 

15

11/29

String matching

Slides

Ch 32

HW7

 12/1

P/NP

Slides

Ch 34 

HW8 | Solution

 

16

12/6

Final review

Slides

Short

 

 

 

 12/8

Student study day no class

 

 

 

Final: Thursday Dec 15, 12:30-3:00pm 


Last modified by Jianhua Ruan,   jruan at cs.utsa.edu ,