| Preqs | Textbook | Topics | Dates | Grading | Academic Honesty | Course Home |
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.
| Math 210 | Discrete Mathematics |
| CISC 220 | Data Structures |
Required Michael T. Goodrich & Roberto Tamassia, Algorithm Design: Foundations, Analysis, and Internet Examples, John Wiley, 2001.
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.
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
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.
Topics
Important Dates
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.
| Test | 20% |
| Exercises | 50% |
| Final Exam | 30% |
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.
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.
Corrections, suggestions and comments to caviness@cis.udel.edu
Copyright
2002 B. F. Caviness