(click here to download the complete description of the course
)
King Saud University
Riyadh Community College
Department of Computer Science
Semester: 2nd 1429/1430
|
|
Course Syllabus |
|
|
Course code: 243 COMP |
Course Title: Data Structures |
|
Course prerequisite: 231 Comp (Computer Programming II) |
Course Level: Fourth |
|
Credit hours: 3 |
Lecture Time: Sunday(10:00-11:50)
Wednesday(10:00-11:50) |
| |
|
|
|
|
|
|
Academic Staff Specifics |
|
|
|
E-mail Address |
Office Hours |
Office Number and Location |
Rank |
Name |
|
mamoon@ksu.edu.sa
|
Saturday(10:00 – 11:00)
Sunday(3:00 – 4:00)
Monday(10:00 – 11:00)
Tuesday(3:00 – 4:00)
Wednesday(11:00 – 12:00) |
112 – Seventh Flour- Building 1 |
Assistant Prof. |
Dr. Mohammed Amoon |
Course module description:
This course provides an introduction to the general data structures used in computer science. The course includes the following topics: Review of C++ and Object-Oriented Programming, algorithm analysis and design, arrays, stacks and queues using arrays, linked lists, stacks and queues using linked lists, trees, binary search trees, sorting algorithms, and searching algorithms.
Course module objectives:
At the end of the course students should
· have a good understanding of the fundamental data structures used in computer science such as arrays, stacks, queues, and trees.
· have a good understanding of how several fundamental algorithms work, particularly those concerned with sorting, searching and trees.
· Be able to implement in C++ the fundamental data structures and algorithms.
· be able to analyze the time efficiency of most algorithms.
· be able to design new algorithms or modify existing ones for new applications and reason about the efficiency of the result.
Course/ module components
· Books (title , author (s), publisher, year of publication)
M. A. Wiess, Data Structures and Problem Solving using C++, Second Edition Addison-Wesley, 2000.
· Additional references
- M. A. Wiess, Data Structures and Algorithm Analysis in C++, Third Edition Addison-Wesley, 2005.
- Alfred V. Aho, Jeffrey D. Ullman, John E. Hopcroft, Data Structures and Algorithms, Sams, 2000.
- Deitel & Deitel, C++ how to program, Prentice Hall, 2001.
- D.S. Malik, C++ Programming: From Problem Analysis to Program Design, Fourth Edition, Course Technology Ptr, 2006.
· Support material (s) (vcs, acs, etc).
· Study guide (s) (if applicable)
· Homework and laboratory guide (s) if (applicable).
Websites
Book's author homepage.
Data Structures tutorials.
Data Structures and Algorithms web book.
Data structures implementations using C++.
Data Structures with C++ Using STL.
Algorithms and Data Structures Exercises.
Data Structures and Algorithms: Exercises
Teaching methods:
- Lectures.
- Discussion groups.
- Tutorials.
- Problem solving in Labs.
Learning outcomes:
· Knowledge and understanding
1. Knowing and understanding different types of basic data structures such as arrays, linked lists, stacks, queues, and trees.
2. Knowing and understanding different algorithms for sorting and searching.
3. Knowing and understanding how to design new algorithms and how to analyze algorithms.
4. Knowing and understanding how to apply basic data structures and sorting and searching algorithms in computer science field.
· Cognitive skills (thinking and analysis).
1. Knowing how to program basic data structures and algorithms of sorting and searching using C++ OOP.
2. Knowing how to implement algorithms and basic data structures using different programming techniques.
3. Knowing how to modify these structures and algorithms to improve time and space usage.
4. Knowing the data structures used in the market place.
5. knowing how to evaluate different data structures and algorithms.
· Communication skills (personal and academic).
Communication between students and teacher is done through:
1. Lectures.
2. Lab.
3. Office hours.
4. E-mail.
5. Dept. web site.
6. Teacher web site in which student can find slides of lectures, course syllabus, announcements for students, exams dates, students results, and office hours.
7. Also, alumni can communicate with the teacher through the same methods above.
· Practical and subject specific skills (Transferable Skills).
Making visits to some market places that may use data structures in developing projects related to computer science.
Assessment instruments.
· Single and group reports and short research reports.
· Quizzes.
· Home works
· Presentations for reports.
· Periodical and final exams for theoretical studies and labs.
|
Allocation of Marks |
|
Mark |
Assessment Instruments |
|
10 |
First exam |
|
10 |
Second exam |
|
30 |
Lab |
|
40 |
Final exam |
|
10 |
Reports, research reports, Quizzes, Home works |
|
100 |
Total |
|
Grade scale |
|
Average |
Grade |
|
95–100% |
A+ |
|
90-94% |
A |
|
85-89% |
B+ |
|
80–84% |
B |
|
75–79% |
C+ |
|
70–74% |
C |
|
65–69% |
D+ |
|
60-64% |
D |
|
00–59% |
F |
Documentation and academic honesty
Students must be honest in making their research reports, home works, and implementation of algorithms. This can be achieved by the following:
- Students must write references they use.
- Students must not make copies for Copyrighted books or software CDs.
- Students must not cheat during exams.
- Students must not share answers for home works and research reports.
Course/module academic calendar
|
week |
Basic and support material to be covered |
Homework/reports and their due dates |
|
(1) and (2) |
Review of C++ and OOP
(Arrays, Structures, Recursion, Classes, Encapsulation, Inheritance, Polymorphism, overriding, and Overloading). |
|
|
(3) and (4) |
· What are algorithms?
· What is algorithm analysis?
· General Big-Oh rules.
· Examples for some algorithms. |
Homework (1)
|
|
(5) and (6) |
· Templates for functions.
· Templates for calsses. |
|
|
(7) and (8)
First exam |
· Stacks.
· Queues. |
Homework (2)
|
|
(9)
|
· Introduction to dynamic data structures.
· Linear Lists, Linked Lists, Circular linked lists |
|
|
(10) |
· Stacks and Queues implementation using dynamic data structures concepts. |
Homework (3)
|
|
(11) and (12) |
· Trees.
· Binary Trees.
· Binary Search Trees(BST).
· Tree Traversal.
· Implementation and analysis of BST algorithms. |
Homework (4)
|
|
(13) and (14)
Second exam |
Sorting algorithms
· Bubble, Insertion, Selection, and Quick sort
· Analysis and comparison between sorting algorithms |
|
|
(15) |
Searching algorithms
· Linear Search
· Binary Search |
Homework (5)
|
|
(16)
Final Exam |
Final exam
|
|
Expected workload:
On average students need to spend 2 hours of study and preparation for each 50-minute lecture/tutorial.
Attendance policy:
Absence from lectures and/or labs shall not exceed 25%. Students who exceed the 25% 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 exam 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.