Data Structures
Fall, 2009
| Professor: | Jessen Havill | Phone: | 587-6582 |
| Office: | Olin 208 | E-mail: | havill@denison.edu |
| Web site: | http://personal.denison.edu/~havill/ | Mailbox: | Olin 201 |
| Office hours: | Please see the schedule outside my office. |
Description
An algorithm is a well-defined sequence of computational steps that transforms an input into some output. The design, analysis, and implementation of efficient algorithms plays a central role in the study of computer science. Very often, the structure of the information that is operated upon by an algorithm is vital to the efficiency of the algorithm. In this course, we will study several useful data structures and how to efficiently solve problems using them. This course acts as the foundation for every later course in the major.
Required Text
T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to Algorithms, Second Edition, MIT Press and McGraw-Hill, 2001.
Attendance and Other Responsibilities
In order to do well in this class, it is imperative that you take an active role in the learning process. I cannot (and will not) simply transfer knowledge to you. Rather, learning must be an active process in which the instructor is but an important resource. Your attendance is expected at each class meeting. It is in your own best interest to attend class, as your grade will almost certainly suffer indirectly if you choose not to attend. In addition, I reserve the right to consider attendance in instances of borderline grade assignments. Of course, excused absences (sickness, family emergencies, varsity athletic participation) will not be held against you. Such absences should be communicated to me in advance. You are responsible for the content of reading assignments, lectures and handouts, as well as announcements and schedule changes made in class whether or not you are present. If you must miss a class, be sure to check with me or another student to get what you missed. Exams will be given in class on the day scheduled and may not be made up. It is very important that you keep up with the assigned reading. Read your book on a daily basis. Be especially sure to read the material in the appropriate chapter before coming to class so you will be ready to ask questions. The material in the course is, by necessity, cumulative. Be warned that if you fall behind, you will not be able to catch up easily.
Homework Policies
There will be a number of written and programming assignments given during the semester which will be due in class on the date specified. No late homework assignments will be accepted, unless arrangements have been made with me well in advance. Since it will most likely not be obvious how long an assignment might take, you are well advised to start early. Like other classes at Denison, it is expected that you devote at least 3 hours to these assignments for each hour of class time. Homework assignments must be typed.
Academic Integrity
Proposed and developed by Denison students, passed unanimously by DCGA and Denison's faculty, the Code of Academic Integrity requires that instructors notify the Associate Provost of cases of academic dishonesty, and it requires that cases be heard by the Academic Integrity Board. Further, the code makes students responsible for promoting a culture of integrity on campus and acting in instances in which integrity is violated.Academic honesty, the cornerstone of teaching and learning, lays the foundation for lifelong integrity. Academic dishonesty is intellectual theft. It includes, but is not limited to, providing or receiving assistance in a manner not authorized by the instructor in the creation of work to be submitted for evaluation. This standard applies to all work ranging from daily homework assignments to major exams. Students must clearly cite any sources consulted -- not only for quoted phrases but also for ideas and information that are not common knowledge. Neither ignorance nor carelessness is an acceptable defense in cases of plagiarism. It is the student's responsibility to follow the appropriate format for citations. Students should ask their instructors for assistance in determining what sorts of materials and assistance are appropriate for assignments and for guidance in citing such materials clearly.
For further information about the Code of Academic Integrity see http://www.denison.edu/about/integrity.html
In this class, you may discuss homework problems with other students in the class, but written (and typed) work must be your own. In other words, you may talk about homework problems with your peers, but when it comes time to write your solutions, you are on your own. You may have general conversations about problem strategies, but you must leave these conversations without having written anything down. Keep in mind that it is quite easy for me to tell when two students have been working too closely. You may not get help from students outside the class. If you have questions, come see me and I will be happy to help. You are also quite welcome to send me e-mail or call if you would like to discuss an assignment.
WWW Resources
I will maintain a class web page containing reading assignments, homework assignments, answer keys, sample programs, and other useful resources. Refer to this page often for updated information. The class home page can be found at: http://www.denison.edu/~havill/271/
Grade Determination
The following relative weights will be used to determine your final grade:
Homework Assignments 40% 3 Mid Term Exams 40% Final Exam 20%
Topics
Here is a list of the topics that we will cover during CS 271:Any student who feels he or she may need an accommodation based on the impact of a disability should contact me privately as soon as possible to discuss his or her specific needs. I rely on the Office of Academic Support in 104 Doane to verify the need for reasonable accommodations based on documentation on file in their office.
- Review of basic mathematics and recurrences for algorithm analysis
- Sorting algorithms
- Priority queues and heaps
- Binary search trees and forests
- Hash tables
- Balanced search trees
- Graph implementation and algorithms
- Object oriented programming using template classes
- Functional programming using LISP
Have a great semester! If you need anything, please let me know.
