Class/Laboratory Schedule: Three 50 minutes lectures, One 180 minutes lab per week (3-3-4)
Review of object-oriented concepts; Introduction to design patterns; Basic algorithms analysis; Fundamental data structures - implementation strategies for stacks, queues and linked lists; Recursion; Implementation strategies for tree and graph algorithms; Hash tables; Applications of data structures (e.g. data compression and memory management).
Data Structures and Algorithms in Java, 2nd Edition, Adam Drozdek, Thomson Learning, 2005
Data Structures and Algorithms with Object Oriented Design Patterns in Java, Bruno R. Preiss, John Wiley & Sons, Inc., 2000.