CS 3343 Analysis of Algorithms
Spring 2010


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

Time: TR 9:30am - 10:45am
Location: BB 3.04.08

Textbooks:

Instructor:

Teaching Assistant:

 

Schedule (tentative):

Week

Date

Topic

Notes

Reading

Assignment

Due

Misc

1

1/12

Introduction, administration

Slides Ch 1,2      

1/14

Basics, asymptotic notation

Slides

Ch 3 

Hw1 solution

 

 

2

1/19

Asymptotic notation

Slides

Ch 3 

 

 

 

1/21

Analyzing recursive algorithms - defining recurrence

Slides

Ch 4

Hw2 solution

Hw1

 

3

1/26

Analyzing recursive algorithms - recursion tree method

Slides

Ch 4

 

 

1/28

Analyzing recursive algorithms - master theorem

Slides

Ch 4

Hw3 solution Hw2  

4

2/2

Analyzing recursive algorithms - substitution method

Ch 4

 

 

Course Policy

2/4

Analyzing recursive algorithms - substitution method

Ch 4

 

 

5

2/9

Quick sort

Slides

Ch 7

 

Hw3

 

2/11

Heap sort, Review for exam 1

Slides

Ch 1-4, 6

Hw4 solution

 

6

2/16

Priority queue

Ch 6,8

 

 

 

2/18

Exam 1  (covers weeks 1-4)

 

 

Exam 1 Solution

stats

 

 

7

2/23

Linear time sorting algorithms

Slides

Ch 8

 

 

 

2/25

Order statistics

Slides

Ch 9

 

 

8

3/2

Hash tables

Slides

Ch 11

Hw5 solution

Hw4

 

3/4

Red black trees

Slides Ch 13  

 

 

9

3/9

Dynamic programming

Slides

Ch 15

 

 

3/11

Dynamic Programming Ch 15 Hw6 solution

Hw5

 
10  

Spring Break

11

3/23

Dynamic Programming Slides Ch 15  

 

3/25

Greedy Algorithm

Slides

Ch 16

 

 

12

3/30

IDEAL survey, Review for exam 2

Slides    

Hw6

 

4/1

Intro to graphs Slides Ch 22 Hw7 solution

 

 

13

4/6

Minimum spanning tree

Slides

Ch 22

 

 

 

4/8

Exam 2 (Covers weeks 5-9)

    Exam 2 solution

 

 

14

4/13

Minimum spanning tree, Shortest paths Slides Ch 23  

 

 

4/15

Graph search, topological sort

Slides Ch 24 Hw8 solution

Hw7

 

15

4/20

P/NP Slides Ch 34  

 

4/22

String matching Slides Ch 32

Hw8

 

16

4/27

Final review

Slides        

 

 

         

 

 

Final: May 3, Monday, 10:30 am - 12:30 pm

 

 

 

 

 

Grading

     Exam 1 15% 
     Exam 2 15% 
     Final Exam 30% 
     Lab Work and attendence 10% 
     Homework plus programming projects 30 %

One lowest grades 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 make up 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.

Quality Enhancement Plan

The Quality Enhancement Plan (QEP) is a course of action designed to enhance student learning and is a required component of the accreditation process conducted by the Southern Association of Colleges and Schools (SACS).

The UTSA QEP Quantitative Scholarship: From Literacy to Mastery provides you with the skills needed to evaluate and interpret data, understand risks and benefits, and make informed decisions in your personal and professional lives. The plan focuses on integrating quantitative reasoning and communication skills in existing courses across the undergraduate curriculum.

The SACS team will visit UTSA during March 23-25, 2010 to review the reaccreditation plan. All UTSA students, faculty, and staff are encouraged to learn more about the QEP by visiting the website www.utsa.edu/qep.

 


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