CE-242  Data Structures and Algorithms


Class Hours    

Thursday 14:00 - 17:00


CD 201

Type of Course Lecture + Laboratory
Year 2
Semester Spring
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, Object-Oriented 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:
: 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




If your midterm grades are below 40, you can complete the following homework and send via e-mail 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 Big-O)







                                    SOLUTIONS FOR MIDTERM II


                                    SOLUTIONS FOR MIDTERM I




Tentative Calender       







Reading & Assignments


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


21 February 2008

Basic concepts; Basic data structures and their applications. Object Oriented Programming

  1    2    3


28 February 2008

Arrays: Searching,insertion, and deletion in arrays and ordered arrays. Linear search and
binary search.

Applets: Array Ordered Array



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


13 March 2008

Stacks and Queues: covers three data structures that can be thought of as
Abstract Data Types (ADTs): the stack, queue, and priority queue.

Applets visualizing the Stack, Queue and Priority Queue structures.


20 March 2008

Midterm Exam I




27 March 2008

Linked Lists: Insertion, searching, and deletion in linked lists.

Linked List Applet 


03 April 2008

Linked Lists: continued



10 April 2008

Recursion: Towers of Hanoi, mergesort.

Towers of Hanoi Applet


17 April 2008

Advanced Sorting: Shellsort and quicksort.



24 April 2008


Midterm Exam II




01 Mayl 2008

Binary Trees: unbalanced binary search trees.  Balanced trees



08 May 2008

Hash Tables: The hash-table approach to organizing external files.



15 May 2008

Heaps: an efficient implementation of a priority queue.



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      


Midterm Exam II      


Labs & Homeworks 

Final Exam %35


Attendance  Requirements


% 70 Attandance is mandatory.