Vous êtes sur la page 1sur 5

King Fahd University of Petroleum & Minerals

College of Computer Sciences and Engineering

Information and Computer Science Department

ICS 202: Data Structures (3-3-4) Syllabus First Semester 2013-2014 (131)
Website: Blackboard (WebCT) and http://www.ccse.kfupm.edu.sa/~ics202. Class Time, Venue and Instructor Information:
Lecturer Sec. 01 Time UTR 10:00 - 10:50 Venue 24-146 Instructor Emad Ramadan Office: 23-64-2 Phone: 03-860-1148 E-mail: eramadan@cs.edu.sa Sami Zhioua Office: 22- 101 Phone: 03-860- 1251 E-mail: zhioua@kfupm.edu.sa Ahmad Irfan Office: 22-148-2 Phone: 03-860-1243 E-mail: irfanics@kfupm.edu.sa Office Hours UTR 9:00am 10:00am Or by appointment

02

SMW 09:00 - 09:50

24-250

UTR 11:00am 12:00pm Or by appointment

51 51

M 8:00 10:40am M 8:00 10:40am 22-333

UT 9:00am 10:30am Or by appointment

Text Books:

Data Structures and Algorithms in Java, 3rd Edition, Adam Drozdek, Thomson Learning, ISBN 978-981-4239-23-3.

Catalog Course Description:


Introduction to Design Patterns. Introduction to Algorithm Analysis. Review and Analysis of Linear Data Structures. Recursion, Trees and Graphs. Implementations of Tree and Graph Traversals. BST, AVL, Heaps and B-Trees. Hashing Techniques. Data Compression. Memory Management. Practice in Developing Medium Scale Programs. Prerequisite: ICS 201

Course Objectives:
The objectives of this course are to: 1. Introduce students to fundamental data structures; their algorithms, implementations and applications. 2. Teach students how to analyze the efficiency of the fundamental data structures in terms of both time and space so that they are able to decide what data structure is suitable for a given problem.

Course Learning Outcomes:


After completion of this course, the student shall be able to: 1. apply object oriented concepts (inheritance, polymorphism, design patterns, etc.) in software design. 2. implement various data structures and their algorithms, and apply them in implementing simple applications. 3. analyze simple algorithms and determine their efficiency using big-O notation. 4. apply the knowledge of data structures to other application domains like Graphs, Trees and Hashing.

Lab Learning Outcomes:


Upon completion of the lab, you should be able to:

1. Implement various data structures and their algorithms, and apply them in implementing simple applications. 2. Apply the concept of information hiding in designing data structures. 3. Design moderately complex data structures using reusable components. 4. Design, configure, and use user-defined Java packages.

Assessment Plan:
Assessment Tool Laboratory Assignments 4 Homework Assignments (2.5% * 4) Active Participation 5 Quizzes, 2% each EXAM 1: Sunday 6 October 2013, 6-8pm EXAM 2: Sunday 24 November 2013, 6-8pm Final Exam: Sunday 29 December 2013, 7:00pm Weight 20% (see Lab Guidelines) 10% 05% 10% 15% 15% 25%

Detailed Coverage of Exams, Quizzes, and Homework Assignments (Tentative):


Activity Exam 1 Exam 2 Final Exam HW#1 HW#2 HW#3 HW#4 Coverage Complexity Analysis Recursion and Its Analysis Trees B+ Trees Comprehensive Review of Object Oriented Concepts, Analysis of Iterative Algorithms Linked Lists, Stacks, Queues, Recursion, Analysis of Recursive Algorithms Binary Trees, BSTs, Binary Heaps, AVL Trees, B Trees, B+ Trees Graphs, Hashing, Huffman Coding, LZ78 Algorithms, LZW Algorithms

Main Topics and Their Coverage in Lectures, Labs and the Text Books (Tentative)
Topics of Coverage Number of Lectures

Number of Laboratories
2 0 1 1 1 4 2 1 0

Lecture Slides & Text Book References Lectures 1-2, Drozdek Chapter 1 Lectures 3-5, Drozdek Chapter 2 Lectures 6-8, Drozdek Chapter 3 Lectures 9-10, Drozdek Chapter 4 Lectures 11-15, Drozdek Chapter 5 Lectures 16-28,Drozdek Chapters 6 and 7, Heap Sort (Drozdek pg 484) Lectures 29-37, Drozdek Chapter 8 Lectures 38-40, Drozdek Chapter 10 Lectures 41-45, Drozdek Chapter 11

Review of Object Oriented Principles Introduction to Algorithm Analysis Review of Linked Lists Review of Stacks & Queues Recursion and Recursive Algorithms Tree Structures and their Applications Graphs and Graph Algorithms Hashing Techniques Compression Techniques

2 3 3 2 5 12 8 3 4

Notes:
All course material will be made available on Blackboard. Attendance will be checked each class. An unexcused absence can become an excused absence ONLY by an official letter from the Dean of Students office. Students are expected to be courteous toward the instructor, the lab instructor and their classmates throughout the duration of this course. All cell phones and pagers must be turned off during class and exams. Soft copies of homework assignments (according to the instructions given with each assignment) are to be submitted, through Blackboard Assignment Submissions, by the due date and time indicated. No late homework will be accepted. Discussing questions among your classmates and on Blackboard is highly encouraged. Copying homework solutions from each other is NOT permitted and will be considered CHEATING. Material covered in homework assignments, which maybe outside the material presented in class, are required to be mastered by the students and can be tested on in quizzes, major exams and/or final exams. 24-Hour Policy: One has 24 hours to object to the grade of a homework, quiz or a major from the end of the class time in which the graded exam/homework papers have been distributed. If for some reason you cannot contact the instructor within this period, send him an email requesting an appointment. The email should be sent within the 24-hour time period. Exams, homework assignments and quizzes are generally CHALLENGING. Check the Blackboard course page and the ICS 202 Webpage regularly for announcements and updates. Active Participation will be assessed in the form of fruitful participation in class discussions and/or on Blackboard discussions list.

Detailed Schedule of Lectures, Labs, Homeworks, & Exams (Tentative)


LECTURES Wk 1 Date 1-Sep 3-Sep 5-Sep 8-Sep 10-Sep 12-Sep 15-Sep 17-Sep 19-Sep 22-Sep 24-Sep 26-Sep 29-Sep 1-Oct 3-Oct 6-Oct 6-Oct 8-Oct 22-Oct 27-Oct 29-Oct 31-Oct 3-Nov 5-Nov 7-Nov 10-Nov 12-Nov 14-Nov 17-Nov 19-Nov 21-Nov 24-Nov 24-Nov 26-Nov 28-Nov 1-Dec 3-Dec 5-Dec 8-Dec 10-Dec 12-Dec 15-Dec 17-Dec 19-Dec 22-Dec 24-Dec Day Sun Tue Thu Sun Tue Thu Sun Tue Thu Sun Tue Thu Sun Tue Thu Sun Sun Tue Tue Sun Tue Thu Sun Tue Thu Sun Tue Thu Sun Tue Thu Sun Sun Tue Thu Sun Tue Thu Sun Tue Thu Sun Tue Thu Sun Tue No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 Lecture Topic OO Concepts Review OO Concepts Review Complexity Analysis Complexity Analysis Complexity Analysis Singly Linked Lists Singly Linked Lists Doubly Linked Lists Stacks Queues Recursion Recursion Recursion Recursion and Analysis of Recursive Algorithms Analysis of Recur. Algorithms Review for Major Exam 1 Major Exam 1 (6-8pm) Trees (Introduction) Binary Trees and BSTs Tree Traversal Algorithms Balanced Trees AVL Trees AVL Trees Binary Heaps Binary Heaps B Trees B Trees B+ Trees B+ Trees Graphs (Introduction) Graphs (Implementation) Review for Major Exam 2 Major Exam 2 (6-8pm) Graphs (Traversals) Graphs (Topological Sort) Graphs (Cycles, Connectedness) Shortest Path Algorithm Minimum Spanning Trees Minimum Spanning Trees Hashing Hashing Hashing Huffman Coding LZ78 Algorithms LZ78 Algorithms LZW Algorithms HW and QZ No 0 HW1 Assign 1 LABS Lab Topic Jcreator and Packages OO Concepts Review Linked Lists Stacks and Queues Lab Quiz

HW1 Due HW2 Assign

Recursion

HW2 Due

Lab Quiz 1

6 HW3 Assign 7

Binary Trees & BSTs AVL Trees

Lab Project Assigned

Binary Heaps B and B+ Trees

10

9 HW3 Due 10

11

HW4 Assign

Lab Quiz 2

12

11

Graphs Graph Algorithms Hashing

13

12 HW4 Due 13

14

15

14

Lab Project Presentations

Lab Guidelines:

For the Labs, you must store all your work in a package ics202 on your z-drive. We shall be adding files to this package in each lab. Your lab exercises should be stored in sub-packages lab01, lab02, etc. You are required to observe this package structure throughout the semester.

1. Grade Distribution: 6% Participation (0.5% * 12) 7% Two Laboratory Quizzes (3% + 4%) 7% One Laboratory Project (a) There will be no make-up for missed laboratory quizzes. (b) A student will not be allowed to take a laboratory quiz in a different section; unless permitted by the laboratory instructor to do so. (c) Each laboratory quiz will be an open-book programming quiz. (d) A student will be given zero in a quiz if he misses a lab quiz in his section without an official excuse or if he copies even a small portion of his quiz from another student. All students involved in a cheating offence will get a zero grade. 2. Announcement of Laboratory quizzes: The dates of each lab quiz are in the course syllabus. You are required to know these dates. Students may or may not be reminded about the quizzes. 3. Preparation for each laboratory session: A student is required to prepare himself for a laboratory session by reading the laboratory document for that session, by studying the code, and by reading all lecture material related to the session. THIS PREPARATION IS ESSENTIAL FOR A STUDENT TO BE ABLE TO DO THE LABORATORY TASKS. The lab instructor will not conduct lectures; he may just elaborate on specific issues related to the lab session. 4. Laboratory Quiz solutions will be discussed in the appropriate laboratory sessions. Solutions will not be posted. This is to encourage student participation. 5. Complaints regarding Laboratory quiz grades must be submitted to the laboratory instructor within 24 hours of the posting of the grades for that particular quiz. 6. Laboratory Instructors Office Hours: Students are encouraged to use the office hours to clarify any part of the laboratory tasks that is not clear; however the instructor will only provide hints and not solve a task. 7. Some aspects of the laboratory tasks may be asked in the ICS 202 major exams and the final exam. Students are thus required to take the laboratory part of this course seriously. 8. Laboratory Project will be assigned during the 6 th Lab and is required to be submitted by Lab 13 . The lab project will be given as a problem statement and students are expected to come up with a design and implementation of their programming solution. More details will be given within the project itself.

Vous aimerez peut-être aussi