University of Illinois at Chicago
Spring 2000
EECS 360 -- Data Structures and Algorithms
Course Syllabus

Room: 130 SES
Time: MTWF 3:00 - 3:50



 

Staff

Instructor: Barbara Di Eugenio
Office: 916 SEO
Phone: 6-7566
E-mail: bdieugen@uic.edu
Office Hours: T 10:30-noon, F noon-1:30
Other times by appointment only

Teaching Assistant: Arunkumar Elango
TA's email: aelang1@uic.edu
TA's Office Hrs: TBA


Course Objectives

This course is a continuation of EECS 260. Both 260 and 360 aim at providing students with a fundamental understanding and working knowledge of key concepts in computer science. 360 focusses on fundamental data structures such as stacks, trees, heaps, etc, the algorithms that implement and manipulate such data structures, and the analysis of these algorithms.

Textbooks

1.
Mark A. Weiss, Data Structures and Algorithm Analysis in C, Second Edition, Addison-Wesley, 1997
2.
Alfred V. Aho and Jeffrey D. Ullman, Foundations of Computer Science, C edition, Freeman, 1995

You should already have Aho & Ullman from 260.

Prerequisites

Grade of C or better in EECS 260. You also need to be a competent C programmer.



Tentative Schedule

Dates Topic Readings
1/10 Introduction and Overview Ch. 1 Weiss
1/11-14 Algorithm Analysis Ch. 2 Weiss
(1/17) No Class, Martin Luther King day
1/18-26 Lists, Stacks, Queues Ch. 3 Weiss
1/28-2/16 Trees Ch. 4 Weiss
2/18 Review Ch. 1-4 Weiss
2/21-28 Hashing Ch. 5 Weiss
2/29-3/10 Heaps Ch. 6 Weiss
(3/13-17) No Class, Spring Break
3/20-29 Sorting Ch. 7 Weiss
3/31 Review Ch. 5-7 Weiss
4/3-7 Sets Ch. 8 Weiss
4/10-26 Graphs Ch. 9 Weiss
4/28 Review Ch. 1-9 Weiss

Important Dates

Date Event
1/21 Homework 1 due
2/7 Homework 2 due
2/21, 6-8pm Exam 1
2/25 Homework 3 due
3/6 Homework 4 due
3/24 Homework 5 due
4/3, 6-8pm Exam 2
4/6 Homework 6 due
4/14 Homework 7 due
4/28 Homework 8 due




Grading Criteria

Class participation, hard work, etc will decide borderline cases.

Letter grades will be decided only at the end. However, the following guidelines will be adhered to:

Overall Score of at least Letter grade
   
90% A
80% B
70% C





General Policies

1.
Late homeworks will not be accepted in any case, unless there's a documented personal emergency. Arrangements must be made with the instructor as soon as possible after the emergency arises, preferably before the homework due date.
Advice: If for whatever reason you don't manage to finish an assignment, hand in what you have, provided it compiles (see below). Partial credit may be given at the grader's discretion.
2.
Statute of Limitations: no grading questions or complaints -- no matter how justified -- will be listened to two weeks after the item in question has been returned. If you have a question on a homework, first see the TA; if you have a question on an exam, go directly to the instructor.

Homeworks

Note that although there are 8 homeworks, the first two concern material you should be familiar with from 260. Programming assignments will constitute the vast majority of homeworks, however paper and pencil problems will be assigned from time to time.

Homeworks will have to be handed in either via the facility available under the web page, or by means of the turnin command under UNIX. More details will be available later.

Programming Assignments

All programming assignments will be written in ANSI C, must compile correctly by using gcc (path: /usr/local/gnu/bin/gcc on the EECS servers), and must run under the EECS department UNIX environment. To do your homeworks, you can use the SUN workstations in the EECS labs (see here for locations), or connect to the department servers --bert, ernie, oscar, grover-- from home or from other computers on campus.

Important Notice. If you do your homeworks in another environment, you have to make sure they run on the EECS machines. No credit will be given if the program does not compile! The TA cannot go and check whether your program compiles within another system.

Advice: When you do your programming assignments, always keep an old copy of your homework that you know compiles properly as a backup. Better to hand in an incomplete solution that compiles than a complete one that doesn't.

Exams

1.
The two midterms will be given at night, so that students will have ample time to complete the exam
2.
Exams will be written so that the average student will be expected to finish in about an hour
3.
Any justified request for a make-up must be brought to the instructor's attention well in advance of the exam. No requests for make-up will be granted after the exam
4.
Exams will be closed-book. One crib sheet will be allowed, no larger than 8.5x11 inches, double-sided, hand-written in a reasonable size font.





Policy on Academic Integrity

Academic dishonesty will not be tolerated. Please see the EECS department policy below on the topic; this policy specifies penalties for violations.

What is academic dishonesty? To hand in any work which is not 100% the student's creation. Thus:

1.
All work on all exams must be individually performed.
2.
No student may give any other student any portion of their code, through any means.
3.
Students may discuss homework problems, including background concepts and general solution strategies, but they are forbidden from discussing or sharing specific solutions. Students are not allowed to help each other debug the code, ro to show each other any portions of code or homework.

Advice. Unfortunately, it is not sufficient that an individual student is honest, because there are others who may not be that honest. Thus:

1.
Set the appropriate permissions to the subdirectory that contains your work for 360
2.
Don't leave your workstation unattended
3.
Always collect all your printouts before you leave the lab

EECS department policy on academic dishonesty

The EECS Dept. will not tolerate cheating by its students. The MINIMUM penalty for any student found cheating will be to receive an E for the course and to have the event recorded in a department and/or College record. The maximum penalty will be expulsion from the University.

We intend to devote more effort than in the past to detecting and punishing cheating. Cheating includes all the following, though this is not a complete list:

For computer programs, if for some reason we cannot determine who copied from whom, we may, at our discretion, give failing grades to both students.

It is the responsibility of all engineering and computer science professionals to safeguard their company's "trade secrets." An employee who allows trade secrets to be obtained by competitors will almost certainly be fired. So, YOU are responsible for making sure that your Unix directories have permissions set so that only you can read your files, for being sure to log out at the end of working in the computer lab, etc.