![]() |
CS320 Algorithms theory and practice, Fall 2013 |
|
|
||
Theory: Mondays and Wednesdays 2:00-2:50 PM, Behavioral Science Bldg 107
Practice: Fridays 2:00-2:50, Computer Science Building 215, 225 and 325
Instructor: Wim Bohm (bohm at cs ...)
Office CSB470 hrs MW 10:30-11:30
TA: Pratik Deoghare (pratik at cs ...)
Office CSB252 hrs W 3:00-4:00, 5:00-6:00, F 11:00-1:00. (in 120 Linux Lab)
hourly: TBA
Prerequisites
CS200, MATH161, and MATH229 or MATH369, all passed with a C [2.0] or better.
Professional Conduct
The students, the TAs, and the instructor, are all expected to conduct themselves professionally. See the student information sheet for the department. Also, see the code of conduct page for the department. The guidelines outlined in these documents will be followed in this course.
Description
Problem classes and approaches to solutions, correctness. Greedy methods, divide and conquer, dynamic programming. Design, implementation and analysis of advanced data structures and data access algorithms, and use of these algorithms in applications.
Course Objectives
Upon completion of this course, you will be able to design efficient algorithms and implement them as programs. They will be able to implement powerful abstract data types, and employ them as components of programs. You will be able to analyze program complexity. You will also have learned the programming language Python.
Course Topics
Implementation of an algorithm, proof of its correctness, and asymptotic analysis of its running time and space use. Applications to areas such as graph theory, scheduling, optimization, data compression, and search.
Learning Resources/Texts
Kleinberg and Tardos, Algorithm Design, First Edition, Addison-Wesley, (2005), ISBN 0-321-29535-8.
Lectures, recitations, supplemental handouts, study guides, and assignments involving both programming and written analysis.
The schedule page contains the weekly schedule, links to lecture notes, assignments.
Methods of Evaluation:
Students are evaluated on the basis of programming assignments, homework assignments, examinations, and quizzes. A student's grade is based on:
Grading scale:
A: 90-100%, B: 80-89%, C: 70-79%, D: 60-69%, F: < 60%.
There will be 5 to 7 quizzes. The worst quiz result will be dropped.
Programming Assignments:
In this class you will write your programs in python. There are recitation exercises and programming assignments. Recitation exercises are demo-ed to the TA. Programming assignments are usually due on a Friday. You may turn them in by Monday the next week with a 10% penalty. After that you may not submit an assignment.
Written Homeworks
You will do written homeworks on the more theoretical aspects of this course. They are usually due Mondays in class, or the following Wednesday with a 10% penalty.
Notes
The lecture notes are not meant to be complete study material, but initial pointers to what needs to be studied.
Copyright © Colorado State University. All rights reserved.