UNIVERSITY OF DELAWARE
DEPARTMENT OF COMPUTER AND INFORMATION SCIENCES

CISC 320---Syllabus Spring 2002

Instructor

B. F. Caviness, 406 Smith Hall, email: caviness@udel.edu
Office Hours -- 2-3:30PM Wednesdays and by appointment
Phone: 831-8234

Preqs Textbook Topics Dates Grading Academic Honesty Course Home

Course Content

A rigorous introduction to the design and analysis of algorithms. Issues that are important in both theory and practice will be covered. We will study the best algorithms for fundamental problems that occur in many different applications of computing. We will be especially interested in the analysis of the attributes of algorithms (primarily the computing times) so that we can compare different algorithms to determine which ones are the best in a given situation. We will do this in both abstract and concrete ways.

Also, we will be interested in learning how to design fast and efffective new algorithms. In this regard, we will study some templates, like divide-and-conquer, that can be used to develop new, fast algorithms.

Finally, we will look at theoretical results that indicate that, for some problems, fast algorithms either do not exist or are unlikely to exist. These thereotical results have led to powerful new encryption algorithms.

This course is intended for majors/minors in computer science.

Prerequisites

Math 210 Discrete Mathematics
CISC 220 Data Structures

Text

Required Michael T. Goodrich & Roberto Tamassia, Algorithm Design: Foundations, Analysis, and Internet Examples, John Wiley, 2001.


Topics

Note: Generally new material will be introduced first through the reading, then discussed in lecture, and then used in homework assignments. Reading assigned on a given date is to be done before the next lecture.

Below is an outline of the material to be covered. This is an ambitious outline and it is unlikely that we will be able to cover all of the topics. We will quickly cover chapters 2-4 since most of this has been covered in CIS 220 - Data Structures. Important exceptions in these early chapters are 2-3, 2-4, and red-black trees and randomized algorithms for splay trees and quick sort. These we will cover in some detail. We will also cover in some detail chapter 1, which contains material that must be mastered for this course.

Algorithm Analysis Chapter 1.

Fundamental Data Structures Chapter 2 - a quick review of material from your data structures course.

Search Trees and Skip Lists Much of this material should have been covered in your data structures course. We will cover sections 3.3-3.5 carefully.

Sorting, Sets, and Selection The material on sorting should have been covered in your data structures course. An exception may be the important concept of randomization that can be used to insure that quick sort behaves well on all inputs. We will cover this.

Fundamental Algorithmic Techniques Chapter 5. The greedy method, divide-and-conquer, and dynamic programming.

Text Processing Chapter 9.

Number Theory and Cryptography Chapter 10

Network Algorithms Chapter 11. If time is short, we may not do this chapter.

NP-Completeness Chapter 13. Theoretical evidence that we can never have fast algorithms for certain tasks.

Algorithmic Frameworks Chapter 14.


Important Dates

Test Fri, March 22

Spring Break March 30-April, 7

Last day to drop without grade penalty Monday, April 22

Last class Wed, May 15

Final Exam Mon, May 20, 10:30AM-12:30PM


Grading

Grading will be based on a test, the final exam, and regular homework assignments. These will be weighted as given in the table below.

Homework (readings and exercises) will normally be assigned in each lecture. Reading should be completed before the next lecture. Exercises will be due each Monday. Since there will be many exercises you should avoid the temptation to not start on the Monday and Wednesday assignments until the weekends.

Homework Late Penalty Homeworks will be penalized 25% per day for lateness. The clock will tick each day at 12:20PM. Since papers are normally due on Mondays at the beginning of class (12:20PM), papers handed in or before 12:20PM on Tuesdays will be one day late, on or before 12:20PM on Weds will be two days late, etc. Homeworks will be accepted at most three days late. So when due on Mondays, they must be turned in by 12:20PM on Thursdays to receive any credit.

Normally on Fridays, the homework assignments due the previous Monday will either be discussed in class and/or the solutions made available on the course web site.

Test 20%
Exercises 50%
Final Exam30%

Course grades will be assigned according to the table below.

If the final course average is
>= 90 = A
>= 88 & < 90 = B+
>= 82 & < 88 = B
>= 80 & < 82 = B-
>= 78 & < 80 = C+
>= 72 & < 78 = C
>= 70 & < 72 = C-
>= 68 & < 70 = D+
>= 62 & < 68 = D
>= 60 & < 62 = D-
< 60 = F

However, homework grades cannot raise the course grade more than one letter grade above the average on the test and exam.

Special consideration will be given to students who fall just below a grade cut-off. The special consideration will take into account such factors as class participation, punctual completion of projects, ``bad days'' suffered in exams, and other intangibles. Such considerations will never lower your grade but can raise it.

There are invariably mistakes in grading exams and projects. After an assignment is returned in class, you will have one week to submit a written request to have it regraded. After one week no requests for grade changes will be considered. The request for regrading should include the original paper and the reason and justification for regrading.


Academic Honesty

I like to look at the issue of academic honesty in a broader context than simply talking about cheating, plagiarism, and other ways it is possible to get into trouble. Although many of you (and your parents) may be sacrificing a lot for you to attend school, in the broader context of the world and in a historical context, we live in a privileged country, in a privileged time, and study and work in a privileged environment at this university. Privilege call us to a greater good. It seems appropriate to think about this as we begin a new semester.

My good friend Myron Talcott has noted: ``As students, faculty, administrators, citizens, and friends of this University, we are called to do more than achieve a certain grade average or complete a major and earn a particular degree. We're called not just to prepare ourselves to make a better living, but to learn how to make a better life. We're called to discover a vision of the future which will bring hope and justice to all people and to develop and implement that vision in ways which are healing and humane, so that every aspect of our life will affirm life rather than negate it.''
---University of Wisconsin Alumna, 1978.

So we are called to do much more than to simply be honest, but certainly to ``affirm life rather than negate it'' it is necessary to observe the highest ethical standards, not even appearing otherwise.

Rather than simply following the rules because of the negative consequences of not doing so, I hope you will be inspired by the calling articulated by Myron Talcott and by thoughts like the following by William Cobbett.

``It is the mind that lives; and the length of life ought to be measured by the number and importance of our ideas; and not by the number of our days. Never, therefore esteem [persons] merely on account of their riches or their station. Respect goodness, find it where you may. Honor talent wherever you behold it unassociated with vice; but, honor it most when accompanied with exertion, and especially when exerted in the cause of truth and justice.''
---A Grammar of the English Language, 1819.

Copying another person's work without proper acknowledgment is plagiarism, a serious offense, and the one most common to computer science courses. Familiarize yourself with the University's policy on plagiarism and other policies having to do with ethical academic conduct by studying the Policy of Academic Dishonesty found in The Official Student Handbook.


Back to the
CISC 320 homepage.

Corrections, suggestions and comments to caviness@cis.udel.edu

Copyright 2002 B. F. Caviness