التاريخ: 16/9/2007 - University of Kufa

advertisement
CS Department Module Descriptions 2010
University of Kufa
Faculty Mathematics and Computer Science
Computer Science Department
Academic Year 2010/2011
Course Information
Course Name: Data Structures
Prerequisite: ‫ح‬201
Course Code:
Level: 1
Lecturer Information
Name: Hind Rostom Mohmmed
Office Hours:
Academic rank:
Office No:
Email:hind_restem@yahoo.com
‫ح‬102
Credit Hours:3
Course module description
This course tends to give the student the concepts and applications of the data structures,
including Stacks, Queues, Linked List, Trees, Graphs, and the main Sorting techniques and
indexing. Object Oriented Programming Language (C++) is used to implement the required data
structures.
Course module objectives:
The choice of appropriate data structures is key in the development of efficient
algorithms. In fact, it is virtually impossible to create efficient algorithms without a
good understanding of a number of fundamental data structures. This module aims
1. To learn how the choice of data structures and algorithm design
methods impacts the performance of programs.
2. To learn object-oriented programming principles.
3. To study specific data structures such as linked lists, stacks, queues,
hash tables, binary trees, binary search trees, and graphs.
4. To study specific algorithm design method : divide and conquer
5. To gain experience writing programs in C++.
Course/ module components

Text Books (title , author (s), publisher, year of publication)
Mark Allen Weiss, “Data Structures and Algorithm Analysis in C++”, AddisonWesley,2006.
Teaching methods:
Duration: 30 weeks in first semester, 60 hours in total
Lectures: 30 hours, 2 per week
Labs: 30 hours
Learning outcomes:
 Knowledge and understanding
 understand basic ideas about algorithms and time complexity.
 understand the concepts of time and space complexity, worst case, average case
and best case complexities and the big-O notation
 know and understand the principles searching and sorting algorithms
1
University of Kufa /Faculty of Mathematics and CS- CS Department
CS Department Module Descriptions 2010
 Understand the principles of stacks, queues, linked list, trees, graphs, hashing
 Cognitive skills (thinking and analysis).
 be able to develop efficient algorithms for simple computational tasks
 understand the concepts of time and space complexity, worst case, average case
and best case complexities and the big-O notation
 be able to compute complexity measures of algorithms, including recursive
algorithms using recurrence relations
 be able to construct and use the data structures such as stacks, queues, linked lists,
trees, and hash tables.
 know and understand the principles searching and sorting algorithms
 Communication skills (personal and academic).
 Practical and subject specific skills (Transferable Skills).
 be able to construct and use the data structures such as stacks, queues, linked lists,
trees, and hash tables.
 know and understand the principles searching and sorting algorithms
 be able to write advanced programs in C++.
Assessment instruments
 Short reports and/ or presentations, and/ or Short research projects: One report after
10th week of the semester, 5 marks
 Quizzes. Two quizzes, 5 marks total.
 Home works: Five home works during the semester
 Final examination: 50 marks
Allocation of Marks
Assessment Instruments
Mark
First examination
15%
Second examination
20%
Final examination: 50 marks
50%
Reports, research projects, Quizzes, Home
15%
works, Projects
Total
100%
Course/module academic calendar
2
University of Kufa /Faculty of Mathematics and CS- CS Department
CS Department Module Descriptions 2010
week
(1)
Basic and support
material to be covered
Trees : Binary search tree,
binary expression tree, and
heap tree
Trees :Binary search tree,
binary expression tree, and
(2,3)
heap tree
Graph ADT
(4,5)
(6)
First
Exam
(8,9)
Sorting : Bubble sort,
selection sort, insertion sort,
Shell sort
Assignment: binary search of a Page 521,522,523
given element in a list of numbers
represented by a binary search
tree.
Tutorial : Implementation of the Page 526,527,528
Page 580,581,582,583,584
Assignment : Depth first search
and breadth first search
Tutorial :Write a program to sort Page 644,645,646
a list of numbers using a Bubble
sort.
A report to be prepared by Page 647,648,649
groups of three students about
the different sorting techniques.
Assignment : Use sequential and Page 650
binary search techniques to store
employees information
Searching: Sequential
(12,13)
Second
Exam
(14)
(15)
Page 518,519,520
A report to be prepared by Page 647,648,649
groups of three students about
the different sorting techniques.
Sorting : Heap sort
(10,11)
Tutorial: Implementation of the
binary tree ADT using a class
Homework
binary tree ADT using a class
Sorting : Quick sort
(7)
Homework/reports and their
due dates
search, Binary Search
Hashing : hash function
Specimen exam
(Optional)
Revision and applications
Final Exam
Tutorial
: hash function Page 651
examples
Applications on Data Structures
Expected workload:
On average students need to spend 3 hours of study and preparation for each 50-minute
lecture/tutorial.
Attendance policy:
Absence from lectures and/or tutorials shall not exceed 10%. Students who exceed the 10%
limit without a medical or emergency excuse acceptable to and approved by the Dean of the
relevant college/faculty shall not be allowed to take the final examination and shall receive
a mark of zero for the course. If the excuse is approved by the Dean, the student shall be
considered to have withdrawn from the course.
Module references
Books
3
University of Kufa /Faculty of Mathematics and CS- CS Department
CS Department Module Descriptions 2010
1. Robert L. Kruse and Alexander J. Ryba, “Data Structure and Programming
Design in C++”, Prentice Hall, 2005.
2. A. Michael Berman, “Data Structure via C++”, Oxford University Press, 1997.
3. N .Wirth, "Algorithms and data structures", prentice Nell dale," C++ plus data
structures", prentice hall,2003.
4. Robert L. Kruse and Alexander J. Ryba, “Data Structure and Programming
Design in C++”, Prentice Hall, 2005.
5. T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein. ,
Introduction to
Algorithms (3rd edition),2009.
6. Sandeep Sen1,Lecture Notes for Algorithm Analysis and
Design, October
8, 2009, 1Department of Computer Science and Engineering, IIT Delhi, New
Delhi 110016, India.
7. 4- A. Michael Berman, “Data Structure via C++”, Oxford
University Press, 1997.
8. Web page: http://www.win.tue.nl/~speckman/2IL05.html
http://www.cs.unt.edu/~rada/CSCE3110
Journals
Websites
www.cplusplus.com
4
University of Kufa /Faculty of Mathematics and CS- CS Department
Download