CS 3343 /3341 Analysis of Algorithms
Spring 2018


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.

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

Lecture (3343.001/2)

Time: MWF 12:00 - 12:50pm (3343.001)
Location
: BB 2.01.14

For CS3343.001, concurrent enrollment in CS3341.001/2/5 is required.

Time: MWF 2:00 - 2:50pm (3343.002)
Location
: MH 3.02.18

For CS3343.002, concurrent enrollment in CS3341.003/4 is required.

Recitation (3341.001/2/3/4/5)

Time: M 1:00-1:50pm (3341.001) W 1:00-1:50pm (3341.002) F 1:00-1:50pm (3341.005)
Location: MH 3.02.40 (3341.001), AET 0.102 (3341.002), NPB 4.140 (3341.005)  

For CS3341.001/2/5, concurrent enrollment in CS3343.001 is required.

Time: M 3:00-3:50pm (3341.003) W 3:00-3:50pm (3341.004)
Location: NPB 1.226

For CS3341.003/4, concurrent enrollment in CS3343.002 is required.

 

Textbooks:

Instructor:

Teaching Assistant:

 

 

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

Week

Date

Topic

Slides

Reading

Assignment

Due

1

1/8-1/12

Introduction, loop invariant, order of growth

1-intro,

2-asym

Ch 1,2

 

HW1 | sol

 

 

2

1/17,1/19

Asymptotic notation, analyzing non-recursive algorithms

2-asym,
3-iterAlg

Ch 3

3

1/22-26

Analyzing recursive algorithms
- correctness proof, defining recurrence, recursion tree method

4-recAlg
5-recTree

Ch 4

HW2 | sol

HW1

4

1/29-2/2

Analyzing recursive algorithms
- master theorem

- substitution method


6-MTSub

Ch 4

HW3 | sol

HW2

5

2/5-2/9

Quick sort
Heap sort & Priority queue

7-qsort

8-heap

Ch 6, 7

HW3  

6

2/12-

2/16

Review for exam 1

Linear time sorting algorithms

review

9-counting

Ch 8

7

2/19-

2/23

Exam 1 on 2/21 (covers week 1-5)

Linear time sorting algorithms

practice: pt1, pt2, 1s, 2s, Quiz 1,2,3

Sec 1 solution

Sec 2 solution

8

2/26-

3/2

Order statistics

Dynamic programming

10-OS

11-DP1

Ch 9

Ch 15

HW4 | sol

 

9

3/5-

3/9

Dynamic Programming

 

12-DP2

Ch 15

HW5 | sol

HW4

11

3/19-

3/23

Greedy Algorithm

Intro to graphs

13-greedy

14-graph

Ch 16

Ch 22

 

HW6 | sol

HW5 

12

3/26-

3/30

Minimum spanning tree

15-mst

 

Ch 22

13

4/2-

4/6

Shortest paths

16-sp

Ch 23

HW6 

14

4/9-

4/13


Graph search
Topological sort

17-gs

Ch 24

Ch 32

 

HW7 | sol

 

 

15

4/16-

4/20

Exam 2 (Wed 4/18, covering topics from quick sort to greedy alg)

solution

review
ex test1 | sol
ex test2
Quiz5-8

HW8 | sol (optional)

16

4/23-

 4/27

String matching

Hashing
P/NP
Final review: long | short

18-sm

19-pnp

Ch 34

 

HW7

HW8

 

 

Final 1 (3343.001): May 4, 12:30-3:00

Final 2 (3343.002): May 7, 12:30-3:00

 

 

 

 


Grading Policy

     In-class quizzes and attendance 5% 
     Homework assignments 25 %

     Exam 1 and Exam 2 grades will be averaged and compared with Final Exam grade; whichever is greater will weight 50% and the other will weight 20%.

 

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

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 lab.

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.

Homework Collaboration Policy


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