WELCOME TO
ALGORITHMS AND
ABSTRACT
DATA
TYPES.
This class studies basic algorithms and their relationship to
common abstract data types.
You can zoom ahead to the
facts, the
assignments, the
quizzes, the
Programs, the
syllabus, or the
mechanics.
Who, what, and where:
- Instructor:
Tracy Larrabee
- Office: 323 Applied Sciences
- Phone: X9-3476
- Office hours: MW 12:30-1:30 and by appointment via email.
- Texts
- Required: Introduction to Algorithms
by Cormen, Leiserson, and Rivest, which has a
website
with a listing of errors and some explained jokes.
- Class meetings
- lecture location: Kresge 321
- lecture time: MWF 2:00-3:10 pm
- Teaching Assistants:
- ACE section leader: Melesio Muñoz
ACE sections are mandatory for those who choose to avail themselves of the support available through ACE.
Sections are
- MW 7:00-9:00pm 220 Kerr Hall
- Tutor: Alicja Szczurowska
- T 12:00-1:00 Couches next to food cart in Baskin Building
- W 3:30-4:30 Couches next to food cart in Baskin Building
- MSI Tutor: Amine Zejli
All meetings in Jack's Lounge (by the whiteboards)
- Monday 11:30am-12:30pm
- Tuesdays 7-8pm
- Thursday 6-7pm
- Lab Sections (Baskin 105):
- T 10:00-11:30am
- W 4:00-5:00pm
- F 10:00-11:30am (originally listed to conflict with lecture)
- M 4:30-6:00pm
- R 6:30-8:00pm Oct. 31 only! Section is 9:30-11:00 am
- Final Exam time: Tuesday, December 3, 4:00-7:00 pm
- Newsgroup
- There is a newsgroup (
ucsc.class.cmps101) for the class.
- For posting to the
newsgroup, it is generally better to be working from a UNIX machine
(or commercial internet provider), so that proper mailing addresses
are generated. One of our students wrote a nice
note
about how to access our newsgroup from off campus.
What we are addressing
For each day, before lecture, I will list what part of the book we are
addressing and what you should look into to prepare for the quiz on the
Monday after that lecture.
- Week 1 Abstract Data Types and review of needed mathematics
- September 18: Overview, Apple pie, and getting into the class
(warning about the intake quiz)
- September 20: ADTs, beginning of Asymptotics (skim Chapters 1 and 2). Intake Quiz.
- Week 2 Asymptotics and miscellaneous mathematical tricks
- September 23: Asymptotics (read Chapter 3).
Quiz with study problems with
solutions.
- September 25: Still on Chapter 3. Logs. Sum tidbits. Bits of
homework study problem solutions. Proving that the infinite sum
over the harmonic series diverges.
- September 27: The end of Chapter 3 and the beginning of Chapter 4.
- Week 3 Recurrences
- September 30: Read Chapter 4 (though 4.3). We begin recurrences.
Quiz with study problems
with solutions.
- October 2: Mostly Section 4.1. The substitution method.
- October 4: Still more Section 4.1. Good tricks; bad tricks.
- Week 4
- October 7: Tracy gone. Lecture on Satisfiability and Quiz
with study problemswith
solutions.
- October 9: Tracy gone. Martine Schlag is guest lecturer. Lecture on
Recursion trees as a method of guessing closed forms of recurrences.
- October 11: Kevin Karplus lectures on the Master theorem
- Week 5
- October 14: Review of Recursion Trees and Mater Theorem.
- October 16: Heaps and Heapify.
Quiz with study problems
with solutions and then
more solutions.
- October 18: more Heaps. Correctness and Runtime of BuildHeap
-
- Week 6
- October 21:Quiz with study problems
with solutions. Heapsort
and the beginning of Quicksort (that is, have read all of Chapter 6 and
the beginning of Chapter 7).
- October 23: Quicksort
- October 25: Quicksort
- Week 7
- October 28: Quiz with study problems
with solutions. Read Chapter 8.
Comparison Sorts. Counting sort. Radix sort.
- October 30: Graph Algorithms. Read Chapter 22. We are jumping
up to Chapter 22 to make sure I lecture on Strongly Connected
Components before you have to do Program 4. Depth first search.
- Week 8
- November 4: Quiz with study problems
with solutions. More on Strongly
Connected Components. Breadth First Search.
- November 6: More on Graphs
- November 8: Binary Search Trees and Red-black trees
- Week 9
- November 11: no class
- November 13: Quiz with study problems
with solutions. More on red-black
trees.
- November 15: Be nice to me, it's my birthday. Hash tables.
- Week 10
- November 18:Quiz with study problems
with solutions. More on hash tables.
- November 20: Disjoint Sets(Chapter 21)
- November 22: More Graph stuff (MST and Shortest paths--23 and 24)
- Week 11
- November 25: Quiz with study problems
with solutions.
More Graph stuff (MST and Shortest paths--23 and 24)
- November 27: Review
Weekly quiz solutions
What we are going to look at.
Below are the expected topics we will look at in this course, and
the order in which we will address them. Some of the topics will take
up more than one week.
All the chapters mentioned
come from our CLR course textbook.
- Introduction, Asymptotic Notation, Abstract Data Types
- Recurrences (Substitution method, Master Theorem)
- Trees, Heaps, Priority Queues
- Quicksort, Comparison Sorts, Linear time sorting
- Basic Graphs, Searching
Please note I am assuming you are familiar with the material from
your Discrete Mathematics and Data Structures classes, so I expect
you to be familiar with Summations (including closed forms),
proofs (especially inductive proofs), and the manipulation of linked lists and
simple trees.
The way the class works.
All
relevant performance (including class participation and willingness to
help fellow students through the newsgroup) will be noted in your
narrative evaluation. For the record, your quiz scores and program scores
will each count for 30% of your grade, and the final will count for 40%
of your grade. You will be able to drop your lowest quiz score.
I hate to talk about cheating,
because I like to assume there will be none, but the board office says
I must: If the TA or I find conclusive evidence that you have cheated
on an exam or assignment, we will pursue formal cheating charges
against you. If you are found to have cheated, you will fail the
course and two such incidents will get you ejected from the School
of Engineering.
Please feel free to tell either the professor or the TA about any
comments or suggestions you might have about how to improve the class.
The best way to do this is by electronic mail. You may also broadcast
your opinions by using the class newsgroup (ucsc.class.cmps101).
larrabee@soe.ucsc.edu