CSE 2011  
(Section Z)
Fundamentals of Data Structures
  Winter  2009
     Lecture Schedule:  TR, 13:00 - 14:30, CLH J

     Instructor: Natalija Vlajic
     Office Hours:   TR, 15:00 - 16:00, CSEB 2047

Han Liping,  e-mail:

     Serene Wong,  e-mail:
     Office HoursTR, 11:30 - 12:30 , CSEB 2013

Course Information:
Textbook and Other Recommended Material
Course Description
Grading Scheme
Course Schedule (Topics, Notes, Required Reading, Assignments)

Course Policies:
Late Assignments and Missed Midterm
Academic Honesty

WWW Links:
Link to Earlier Course Web-page (includes exam samples)


"Data Structures and Algorithms in Java", M. T. Goodrich and R. Tamassia, John Wiley and Sons, 2006, 4th edition.

"Data Structures & Other Objects Using Java", M. Main, Addison-Wesley, 2006, 3rd edition.
"Data Structures and Algorithm Analysis in Java", M. A. Weiss, Addison-Wesley, 2006, 2nd edition.
"Data Structures and Abstractions with Java", F. M. Carrano, Pearson Prentice Hall, 2007, 2nd edition.
"Java Foundations: Introduction to Program Design & Data Structures", J. Lewis, P. J. DePasquale, J. Chase, Addison Wesley, 2007.
"Java Collections: An Introduction to Abstract Data Types, Data Structures and Algorithms", D. A. Watt and D. F. Brown,  John Wiley and Sons, 2001.

General Prerequisite. The course assumes prior knowledge of Java programming, as taught in CSE 1020 and 1030.

Course Description:

The design and analysis of data structures is one of the key subjects in computer science and software engineering. The main objective of this course is to provide students with a solid knowledge of some advanced data structures and fundamental concepts in the design and analysis of algorithms. At the end of the course, the students should be able to make intelligent choices in the selection and design of data structures and algorithms, when dealing with problems at hand.

Grading Scheme:
15%  Assignment (3 Assignments - 5% each)
35%  Midterm Exam
50%  Final Exam

Late Assignments and Missed Midterm:
Late assignments will not be accepted, unless a prior arrangement is made with the instructor.
Makeups of missed midterm exams are only possible in extremely exceptional situations (such as verifiable medical emergencies) or by arrangement well prior to the exam, provided there is an extremely compelling reason.

Academic Honesty:

"The Department takes the matter of academic honesty very seriously. Academic honesty is essentially giving credit where credit is due. And not misrepresenting what you have done and what work you have produced. When a piece of work is submitted by a student it is expected that all unquoted and uncited ideas and text are original to the student. Uncited and unquoted text, diagrams, etc., which are not original to the student, and which the student presents as their own work is considered academically dishonest." 
For more see:  Department of Computer Science Academic Honesty Guidelines

Course Schedule (Topics, Notes, Required Reading, Assignments):

Required Reading
R, Mar 5
Introductory Class

T, Mar 10
Algorithm Analysis (1)
Sections 4.1 and 4.2

R, Mar 12

T, Mar 17
Arrays and Linked Lists
Sections 2.1, 1.5, 3.1 to 3.4
R, Mar 19
Algorithm Analysis (2)
Section 3.5

T, Mar 24
Java-Generics, Stacks Sections 1.3.3, 2.5.2, 5.1

R, Mar 26
Section 5.2
Assignment 1 posted

T, Mar 31
Deques, Additional Exercise Section 5.3

R, Apr 2
Array List
Section 6.1

T, Apr 7
Node List, Self-Organizing List, Iterators Sections 6.2, 6.3, 6.5

R, Apr 9
Trees (1), Trees (2) Sections 7.1, 7.2

T, Apr 14
Midterm Examination
( in class, closed book )

R, Apr 16
Binary Trees (1) Sections 7.3.1 to 7.3.5

T, Apr 21
Midterm Solutions
( last date to drop courses: Apr 22 )

R, Apr 23
Binary Trees (2) Section 7.3.6
Assignment 2 posted

T, Apr 28
 Binary Search Trees Sections 9.1, 9.3, 10.1

R, Apr 30
  AVL Trees Section 10.2

T, May 5
Section 8.3

R, May 7
Hash Tables (1) Section 9.2

T, May 12
Hash Tables (2)

R, May 14

Assignment 3 posted

T, May 19
Section 13.1

Final Examination
Saturday May 23,  7:00 - 10:00 pm