Class Hours 
Thursday 14:00  17:00 
Classroom 
CD 201 
Type of Course  Lecture + Laboratory 
Year  2 
Semester  Spring 
ECTS  8 
Credits  4 (3+0+2) 
Objective and Contents: To teach how
data is arranged in computer' s memory and how computer programs manipulate
the stored data. Students will have an understanding of data arrangement and
algorithmic approach to the manipulation of data. Java Programming,
ObjectOriented Design, Arrays and the Vector class, Recursion, Analysis of
Algorithms, Sorting, Collections, Stacks, Queues, Lists, Binary Trees, Heaps
and Priority Queues, Graphs.
Recommended Reading:
Data Structures and Algorithms in Java, 2nd Ed., Robert Lafore, SAMS, 2003.
Data Structures and Algorithms in Java, 2nd Ed., Micheal T. Goodrich and Roberto Tamassia, Wiley, 2001.
Introduction to Algorithms, 2nd Ed.,Thomas H. Cormen, et al,The MIT Press, 2001.
Teaching Methods:
Laboratory: The students will run demonstration
programs and workshop applets and develope computer programs for using data
structures and algorithms.
Computer Usage: The students will install and setup Java
Software Development Kit to compile and run programs that will be provided
to them as support material.
Projects/Teamwork: Students, either individually or in a
team of 2, will submit 3 term assignments, modelling data structures and
their usage, coded in Java.
Assessment Tools: Assignments, term
exams, final exam
Instruction Language: English
OPTIONAL HOMEWORK:
If your midterm grades are below 40, you can complete the following homework and send via email until May 16th
1 Draw the flowchart of the algorithm to find the prime numbers between 1 and N (You should use the algorithm defined in the lecture)
2 Write the Java code for the algorithm (N should be given by the user as an input)
3 Analyze the algorithm or give an example output of the code (you should print every step of the program)
4 Calculate the complexity of the algorithm (time formula and the BigO)
Tentative Calender
Week 
Date 
Subject 
Reading & Assignments 
1 
14 February 2008 
Overview of the course and practical arrangements; Introduction and orientation 
General steps to creating, compiling and running Java Programs : Basic Help Document 
2 
21 February 2008 
Basic concepts; Basic data structures and their applications. Object Oriented Programming 

3 
28 February 2008 
Arrays:
Searching,insertion, and deletion in arrays and ordered arrays.
Linear search and 
Applets: Array Ordered Array

4 
06 March 2008 
Simple Sorting: Bubble sort, selection sort, and insertion sort. 
Applets visualizing the Bubble sort, Selection sort and Insertion sort algorithms.
Sample code: array.java SelectSort.java 
5 
13 March 2008 
Stacks and
Queues: covers three data structures that can be thought of as 
Applets visualizing the Stack, Queue and Priority Queue structures. 
6 
20 March 2008 
Midterm Exam I 

7 
27 March 2008 
Linked Lists: Insertion, searching, and deletion in linked lists. 
Linked List Applet 
8 
03 April 2008 
Linked Lists: continued 

9 
10 April 2008 
Recursion: Towers of Hanoi, mergesort. 
Towers of Hanoi Applet 
10 
17 April 2008 
Advanced Sorting: Shellsort and quicksort. 

11 
24 April 2008 
Midterm Exam II


12 
01 Mayl 2008 
Binary Trees: unbalanced binary search trees. Balanced trees 

13 
08 May 2008 
Hash Tables: The hashtable approach to organizing external files. 

14 
15 May 2008 
Heaps: an efficient implementation of a priority queue. 

15 
30 May 2008 
Final Exam 





Lab Sessions
For all related information and documents please visit : http://hacivat.khas.edu.tr:80/~ozgurb/ce242/
Evaluation Criteria
Midterm Exam I 
%20 
Midterm Exam II 
%20 
Labs & Homeworks 
%25 
Final Exam  %35 
Attendance Requirements
% 70 Attandance is mandatory.