Instructor:  Dr. Lotzi Bölöni 
Office:  ENGR 1  444 
Phone:  4078232320 
Email:  lboloni@cs.ucf.edu 
Web Site: 
http://www.cs.ucf.edu/~lboloni/Teaching/EEL4851_2005/index.html
The assignments and the other announcements will be posted on the course web site 
Classroom:  ENGR2 205 
Class Hours:  Tuesday,Thursday 1:30  2:45 
Office Hours:  Monday 9:3012:30, Tuesday 3:006:00 or by appointment 
Grader:  Mohammad Zubair Ahmad zubair48@yahoo.com 
Lab assistants: 
Shiyuan Jin shiyuan_jin@yahoo.com Monday, Friday Pamella Johnson pjohnson@mail.ucf.edu Wednesday 69pm 
Prerequisites:  Basic knowledge of a highlevel programming language (Java, C, C++ or C#) 
Text:  Mark Allen Weiss: Data Structures and Problem Solving Using Java, 3/E 
Grading:  Homework: 15% Labs: 15% Midterm Exam: 30% Final Exam: 40% Standard 90/80/70/60 scale will be used for final grades (curved if necessary) 
Date 
Topic 
Lecture Notes, Readings, Homeworks 
Aug. 23 
Administrativia Java review basics control structures packages 
[slides] Primitive Java [code] FirstProgram.java [code] MinTest.java [code] OperatorTest.java 
Aug. 25 
reference types using arrays in Java creating new objects, null, the use of garbage collector call by value, call by reference 
[slides] Reference Types [code] RandomNumbers.java [code] MatrixDemo.java [code] Echo.java [code] ForeachDemo.java [code] DivideByTwo.java [code] MaxTest.java Inputoutput: [code] ReadStrings.java [code] ReadStringsWithArrayList.java [code] ListFiles.java [code] DoubleSpace.java 
Aug. 30 
Object oriented programming in Java classes visibility, accessor functions interfaces 
[slides] Classes 
Sep. 1 
inheritance virtual functions abstract classes 
[slides] Inheritance 
Sep. 6 
collection classes List and its implementations (LinkedList, ArrayList) 
[code] CollectionPerformance.java 
Sep. 13 
The equals operator sets 

Sep. 15 
Maps Using generic classes 

Sep. 20 
Algorithm analysis Big Oh. Binary search Maximum subsequence sum examples 
[slides] Algorithm Analysis Homework 1  due October 4th. [code] BinarySearch.java [code] MaxSumTest.java 
Sep. 22 
Maximum subsequence sum examples Linked lists 
[slides] Linked Lists [code] LinkedList.java [code] LinkedListIterator.java 
Sep. 27 
linked lists (cont'd) the implementation of java.util.LinkedList 

Sep. 29 
Trees representations Unix directories 
[slides] Trees 
Oct. 4 
operations on trees, merge 
Homework 1 due 
Oct. 6 
Binary search trees  [slides] Binary Search Trees 
Oct. 11 
Midterm examination  
Oct. 13 
binary trees cont'd 

Oct 18 
binary trees cont'd 

Oct. 20  Hash tables 
[slides] Hash Tables 
Oct 25 
hash tables cont'd 

Oct. 27  Practical: comparing HashSet, TreeSet and ArrayList used as sets. consistent use of equals(), compareTo() and hashCode(). 
[code] Student.java [code] HashTest.java 
Nov. 1 
Sorting basics, comparators sorting and cryptographic hashcodes for searching for duplicates bubblesort 
[slides] Sorting 
Nov. 3 
insertion sort, performance analysis Shell sort, performance analysis 

Nov. 8 
merge sort, performance analysis 
Homework 2  due November 29th 
Nov. 10 
quicksort 

Nov. 15 

Nov. 17 
Graph algorithms graph representations 
[slides] Graphs Dijskra's algorithm applet 
Nov. 22 
shortest paths 

Nov. 24 
Thanksgiving 

Nov. 29 
topological sorting 
Homework 2 due 
Dec. 1 
Review for the exam 