CSC 301 Grinnell College Fall, 2011 Analysis of Algorithms

 Assignments Instructor Textbooks Course Work Schedule ( .dvi format / pdf format / postscript ) Academic Honesty Deadlines Collaboration Cell Phones Accommodations Grading

Overview

CSC 301 examines the design, implementation, and efficiency of algorithms, extending the study begun in CSC 151 and continued in CSC 161, CSC 207, and MAT 218. The course has four main foci:

• Alternative strategies in the design of algorithms,
• Relationships between algorithms and data structures:
• Some algorithms (e.g., numerical methods) solve problems with little need for extensive data structures,
• Some algorithms evolve to support abstract data types (e.g., dictionaries) and their underlying data structures (e.g., arrays and linked lists), and
• Some algorithms require careful record keeping, requiring the design and use of their own internal data structures (e.g., residual networks in network-flow problems).
• Careful analysis of the efficiency of these algorithms, regarding both run-time performance and resource use.
• Techniques for establishing algorithm correctness.

Goals

More specifically, CSC 301 has these high-level goals:

• to gain proficiency in the use of a variety of strategies for algorithm development
• to understand and apply fundamental algorithms to a range of problems
• to learn representative algorithms that are largely independent of data structures, algorithms that support abstract data types and data structures, and algorithms that utilize their own data structures for record keeping
• to learn techniques for analyzing algorithms, such as instruction counts, recurrence relations, probability theory
• to understand and apply methods for showing the correctness of algorithms to solve sample problems

Objectives

The objectives of CSC 301 include these capabilities:

• Students should be able to identify and explain several strategies for algorithm development and provide at least one example illustrating each strategy.
• Students should be able to explain, implement, and analyze fundamental algorithms from several application domains, such as trees, graphs, strings, and dictionaries.
• When several different algorithms are available for a task, students should be able to apply careful analysis to determine conditions under which one algorithm is better or worse than another.
• Since algorithms are normally designed to help solve problems, students should be able to provide formal arguments establishing that proposed algorithms meet their respective specifications.

Office: Science 3811
Telephone: extension 4208
E-mail: walker@cs.grinnell.edu

Office hours are posted weekly on the bulletin board outside Science 3811, with additional hours possible by appointment. You may reserve a half hour meeting by signing up on the weekly schedule, but please sign up at least a day in advance.

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, Third Edition, Cambridge, Massachusetts: The MIT Press, 2009; ISBN 978-0-262-00384-8.

While the schedule for this course is expected to evolve, a Tentative Class Schedule is available in .dvi , pdf, and postscript formats.

Also, if you are logged into the departmental network and want a copy printed, click duerer to have a copy printed on the printer duerer.

Course Work will involve a combination of the following activities.

• Written Assignments: Exercises will be assigned regularly throughout the course. These assignments may be done individually (allowed) or in groups of 2 (preferred). (But each student will need to notify the instructory by Friday about their preference for the following week. If the preference is not communicated by 5:00 pm on Friday, it will be assumed the student wants to participate in a group for the following week.)

• Daily Summaries/Questions: In preparation for at least 25 class meetings (except tests), each student is expected to read the assigned materials and use Blackboard on Pioneer Web to complete the following form:

• Summarize a main idea underlying the reading (in 3-6 sentences), or
• Ask one or more question on material that is not clear or requires additional discussion.

Daily summaries/questions are due by 5:00 pm the day before class; materials submitted after 5:00 pm will not be counted or considered. If Blackboard is down for any reason, students should email the instructor by the 5:00 pm deadline.

For material not covered by questions, students should be prepared to join class discussions by helping to answer questions.

• Small-group Presentations: For two assignments, troups of 2 students will present an assigned problem to the class. One presentation will be scheduled before fall break, and one after fall break.

• Programming Assigments: There will be two programming assigments to highlight specific algorithms and provide a framework for an experimental investigation of algorithm efficiency.

• Tests: Three tests are tentatively scheduled for Friday, 23 September, Friday, 4 November, and Wednesday, 23 November. Although initial course planning has scheduled these tests to be in class, discussions with the students may change one or more of tests to be take-home assignments.

• Exam: Toward the end of the semester, the class will discuss the options of an in-class or oral final exam. If the class decides that an in-class final exam is a viable option, then those taking the in-class final will take the exam on Friday, 16 December 2011 at 10:00 am, following the College's published schedule. If the class decides that an oral final exam is a viable option, then those taking the oral exam will be able to choose a time slot during exam week.

The assignment page for this course specifies whether or not collaboration is allowed for each assignment.

In particular, this means that you may work in groups of two or three on selected assignments for which collaboration is allowed. However, you are reminded All academic work at Grinnell College must follow standard academic practice regarding quotation, paraphrase, and citation. Grinnell's Student Handbook provides basic guidelines. For this course, academic honesty requires the following practices:

• If a group of two or three people work together on an assignment, the group should turn in one written report, and all names in the group must appear at the top of the first page.
• If a student talks to someone else about on an individual problem (but this is not part of a 2-3 person group), then the assistance should be cited in a statement at the end of the problem. For example, one might write, "I talked about the solution to this problem with Katherine McClelland in the Math Lab", or "Mr./Ms. ---, a tutor in the CS Open Lab, led me to Steps 3 and 4 in this solution".
• If a student finds information about a problem in a book or online, the source of that information must be cited.
• If a student quotes from someone else, from a book, or from an online source, then normal rules of citation apply. That is, the material must be presented either with quotation marks or via a block quote, and a full citation must be given.

Late Work will not be accepted, as it interferes with normal grading and with preparation for other parts of this course.

Exceptions:

• Allowances may be made for students with special circumstances, subject to written verification by the Health Center or the Student Affairs Office.
• If an assignment involves programming or experiments involving MathLAN, then an extension of one class day is automatically granted if the department's Linux network is down for an unscheduled period of four or more hours during the preceding the assignment. Note that this exemption does not apply for assignments that can be handwritten.

Collaboration often will be allowed on some problems from the textbook and on some programming assignments. However, collaboration normally will NOT be allowed on supplemental problems, other programming assignments, and tests. To avoid confusion, the rules for collaboration on homework are included in the specification of each assignment.

Cell phones, text-messaging devices, and other social-networking connections may not be used in this class. If you bring such equipment to the classroom, it must be turned off before the class starts and stay off throughout the class period. Use of such equipment is distracting to those nearby and will not be tolerated.

If you have specific physical, psychiatric, or learning disabilities and require accommodations, please let me know early in the semester so that your learning needs may be appropriately met. You will need to provide documentation of your disability to the Directory of Academic Advising. Feel free to talk to me if you have questions or want more information.

This instructor's grading philosophy dictates that the final grade should ultimately be based upon each student's demonstration of her or his understanding of the material, not on the performance of the class as a whole nor on a strict percentile basis. The following scheme is proposed as a base for how the various assignments and tests will be counted in the final grade.

 Assignments: 35% Small-group Activities: 15% Discussion Questions: 5% Hour Tests: 30% Exam: 15%

This document is available on the World Wide Web as

```     http://www.walker.cs.grinnell.edu/courses/301.fa11/index.shtml
```