EECS 2011Z (W) FUNDAMENTALS OF DATA STRUCTURES
CLH B Tues Thurs 13:00-14:30
Instructor Information:
James H. Elder 0003G Lassonde Building
tel: (416) 736-2100 ext. 66475 fax: (416) 736-5857
email: jelder@yorku.ca website: www.yorku.ca/jelder
Office Hour: Thursday 14:30-15:30
TAs:
Alireza Moghaddam
Email: alireza@cse.yorku.ca
Office Hour: By appointment
Nada el Assal
Email: elassal_nada@yahoo.com
Office Hour: By appointment
Syllabus
Lectures:
I reserve the right to make changes to the lectures up to the time of the class. Small changes may also be made after class, e.g., to correct errors. I will indicate in each set of slides the date they were last modified: please verify that you have the most recent versions.
Slides:
- Introduction
- Asymptotic Analysis
- Linear Data Structures
- The Java Collections Framework
- Recursion
- Trees
- Priority Queues and Heaps
- Maps and Hash Tables
- Loop Invariants and Binary Search
- Midterm Review
- Search Trees
- Comparison Sorts
- Linear Sorts
- Graphs - ADTs and Implementations
- Graphs - Depth First Search
- End of Term Review
Camtasia Recorded Lectures:
- Tues, March 24 Search Trees
- Thurs, March 26 Search Trees, Comparison Sorts
- Tues, March 31 Comparison Sorts
- Thurs, Apr 2 Comparison Sorts, Linear Sorts
- Tues, Apr 7 Linear Sorts, Graphs - ADTs and Implementations
- Thurs, Apr 9 Graphs - ADTs and Implementations, Depth-First Search
- Tues, Apr 14 Depth-First Search and End of Term Review
Final Exam: Fri Apr 24 9am - 12pm LAS C
Grades: As submitted work is marked, grades are posted here.
Announcements:
This is a stack: the most recent announcements are at the top.
- Apr 26: I have posted the grades for A2.
- Apr 15: I have updated the text for A4Q2 to provide a link to GraphAlgorithms.java. See method DFS_Complete for an example of how to use the DFS method.
- Apr 10: There will be a tutorial this Thursday Apr 16th 4pm - 6pm in Stong College Rm. 303 to review Problem Set 3 and answer questions to help you prepare for the final exam.
- Apr 10: Solutions for Problem Set 3 have been posted (see above).
- Apr 7 A4Q2: There were errors in the import statements for some of the .java files provided. These have been corrected - please download a fresh copy.
- Apr 6 A4Q2 has been posted.
- Apr 1 A4Q1 has been posted. Q2 will be posted shortly.
- Apr 1 We missed 3 lectures (Mar 3, Mar 5, Mar 10) due to the labour disruption, and we will make these up Apr 7, Apr 9 and Apr 14. Apr 14 will be our last meeting.
- Mar 27 Assignment 3 is now due at 11:59pm Thursday April 2nd. This is the final deadline.
- Mar 27 I have again updated hints for A3Q1 in Lecture 9. Please refresh your copy.
- Mar 24 It is now expected that we will have support for the grading of Assignments 2 - 4 once the labour disruption ends. All students should submit both assignments. However, the grades for Assignments 3-4 will only be used if they improve your overall grade.
- Mar 24 Assignment 3. I have updated hints for A3 in Lectures 9 and 11. Please refresh your local copies.
- Mar 21 Assignment 3. I have extended the deadline to Thursday.
- Mar 19 Assignment 3 Q1. There was an error in the comment for the second test case in testFindAllInRange. It read '//should output USA, Germany, Canada, Norway, Austria, Russian Federation, Korea, China, Norway, France'. The second occurence of 'Norway' should be 'Sweden'.
- Mar 17 Problem Set 3 has now been posted.
- Mar 17 Assignment 3 is now due Tues Mar 24th. This will only be graded if we obtain TA support. If graded, then your assignment mark will only be used if it serves to improve your course grade.
- Mar 11 Lectures resume tomorrow, Thurs, Mar 12, at the regular time and location. Midterms will be returned then.
- Mar 10 The lab scheduled for today has been cancelled due to the labour disruption.
- Mar 2 There will be an optional lab for Assignment 3 held in LAS 1006 Tues Mar 10 4pm - 6pm. Computers will be in linux mode.
- Feb 26 A3 has been posted - please see above.
- Feb 23, 2015 We have corrected more errors in the marks for Assignment 1. Please re-check your mark.
- Feb 19, 2015 There were a few errors in the marks posted for Assignment 1. Please re-check your mark.
- Feb 18, 2015 The grades for Assignment 1 have been posted (see above). Your grade is the last number listed.
- Feb 16, 2015 EECS servers are now operational and you have access again to the course web page and submit. The assignment is now due by 11:59pm this Thurs Feb 19.
- Feb 15, 2015 Due to the power outage at York yesterday, the EECS servers are not fully operational. I am going to extend the deadline for the assignment by the length of the disruption. So far it's been a day and a half, so the assignment will not be due until Thursday at the earliest.
- Feb 13, 2015 An optional tutorial will be held this Thursday Feb 19 from 4pm-6pm in LSB 105. The TAs will be there to answer your questions and work problems to help you prepare for the midterm.
- Feb 11, 2015. This is an opportunity for you to ask the TAs questionsI have just posted the second problem set as well as the solutions - please see above. These problems will not be graded, but will help you prepare for the midterm.
- Feb 8, 2015 There will be an optional lab this Thurs Feb 12 4pm - 6pm in LAS 1002. This is an opportunity to get feedback from the TA on Assignment 2s.
- Feb 8, 2015 A2. As we are running a lecture behind, the due date has been extended to 11:59pm Tues Feb 17.
- Feb 7, 2015 A2Q1 Note that it is possible that 2 elements of the array will sum to a number that exceeds Integer.MAX_VALUE. I will not use this test case when grading, but your program really should handle this. The easiest solution is to use a temporary variable of type long to represent the sum, and cast appropriately. Otherwise you may get an overflow which will not throw an exception but may cause your program to return an incorrect result.
- Jan 29, 2015 Assignment 2 has now been posted - please see above.
- Jan 29, 2015 Solutions for Problem Set 1 have now been posted - please see above.
- Jan 26, 2015 Please note that my office hour has been changed to Thurs 2:30 - 3:30.
- Jan 26, 2015 A1 I have decided to extend the due date to 11:59pm this Thurs Jan 28.
- Jan 26, 2015 A1Q3 The generic class E is defined as extending the interface Comparable, and as such must provide a compareTo method:
obj1.compareTo(obj2) returns
–Negative integer if obj1 < obj2
–Positive integer if obj1 > obj2
–0 if obj1 = obj2
- Jan 25, 2015 Please note that MinStack extends java.util.Stack, and therefore you can use all of the functionality provided by the latter. In particular, you can use java.util.Stack to create your stack(s). You could instead, if you want, implement your own stack(s), either using an array or linked list, but this is not required.
- Jan 21, 2015 Please consider applying for an NSERC Undergraduate Summer Research Award (USRA).
This is a great opportunity to get research experience this summer and get paid doing it (~$6,000). If you are interested in in applying for this award to work in my human and computer vision lab this summer, please send me an email with your GPA, unofficial transcript and brief statement of your interests. A minimum GPA of B is required. However the awards are competitive, so with a higher GPA you stand a better chance.
- Jan 15, 2015 When doing the assignments, I recommend that you work with an Integrated Development Environment (IDE) like Eclipse. Then, for Assignment 1, all of your .java files for Q1 should be part of Package A1Q1 etc...If instead you are compiling and running from the command line, then you are likely compiling your .class files into the same directory as your .java source files. For example, for Question 1, both your .java and your .class files would now be in A1Q1. In this case, you will have to ascend to the parent directory when you run your main program, since the package A1Q1 statement at the top of each file will cause the Java runtime environment to search for all definitions in the ./A1Q1 directory.
- Jan 13, 2015 I have fixed a typo in SparseNumericIterator.java for A1Q1. Please download the corrected version.
- Jan 6, 2015 Apply for the York CVR Vision Science Summer School. (All expenses paid!)