|
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,
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:
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 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)
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 hash-table 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.