Syllabus - ICS 160E / EECS 114- Engineering Data Structures and
Algorithms
Michael T. Goodrich
http://www.ics.uci.edu/~goodrich/teach/ics160e/
(Office hours: M W 10:00am-11:00am, and appointments by request)
-
Catalog description.
Design of efficient algorithms for practical data structures in
engineering applications. Models of computation. NP-completeness.
-
Prerequisites. EECS 40, ability to program in Java.
- Coursework. Coursework will consist of weekly homeworks,
two midterms, and a comprehensive final exam. The overall grade
will be determined as follows:
- 5% from lecture attendance
- 20% from written homework assignments
- 20% from programming assignments
- 20% from the two midterms (10% each)
- 35% from the final.
Group work on the written homeworks is permitted, but each
student must list his or her collaborators in writing for each problem.
If a student turns in a solution without listing
the others who helped produce this solution,
this act will be considered cheating (for it is plagarism).
Programming projects must be 100% individual efforts.
Submitted code will be subjected to a rigorous similarity checking
system at UC-Berkeley,
known as MOSS,
and non-negligible similarities between different student submissions
will be considered as cheating for both students (so don't even show
your code to other students).
In addition to the procedures of the
ICS
Cheating Policy, students caught cheating on programming projects
will have
a letter placed in their permanent record at UCI
and, at a minimum, receive a score of zero points on the work in question.
Late homework assignments and projects will not be accepted.
- Exam policy.
Exam performance must be 100% individual effort; no collaboration
is allowed on exams. Any collaboration or copying on exams
will be considered cheating.
In addition to the procedures of the
ICS
Cheating Policy, students caught cheating on exams will be given a
failing grade in the class and have a letter describing the incident
placed in their permanent UCI record.
- Text.
-
Required:
Goodrich and Tamassia,
Algorithm Design,
John Wiley & Sons, ISBN 0-471-38365-1.
- Add/drop policy.
Drops will be accepted only up to the first midterm.
Once your drop card has been
signed, further coursework from you will not be graded. After the
seventh week of classes, withdrawals will be allowed only by
petition and under documented extenuating circumstances.
Tentative Schedule
- Week 1:
-
Introduction.
Algorithm Experimentation.
Stacks and queues. Vectors and Lists.
- Week 2:
-
Trees. Priority queues and heaps.
-
Week 3:
-
Dictionaries.
Binary Search Trees.
-
Week 4:
Midterm I
-
Week 5:
-
Divide-and-conquer. Merge-sort.
Quick-sort. Sorting lower bound. Radix-sort.
-
Week 6:
-
Selection.
The greedy method.
Dynamic programming.
-
Week 7:
Midterm II
-
Graphs. Graph traversal.
Depth-first search.
-
Week 8:
-
Weighted graphs.
Shortest paths.
-
Week 9:
-
Week 10:
-
NP-Completeness.
Approximation algorithms.
Copyright © 2005
Michael T. Goodrich, as to all lectures.
Students are prohibited from selling
(or being paid for taking) notes during this course to or by any
person or commercial firm without the express written permission of the
professor teaching this course.