Sunteți pe pagina 1din 2

Course Outline CSC211 Data Structures & Algorithms

Instructor: Ammar Ajmal Contact Office: Communication and Signal Processing Lab Email: Ajmal@iqraisb.edu.pk Weekly Schedule Classes: Monday 08:00 AM 09:30 AM Wednesday 08:00 AM 09:30 AM Lab: Tue, Fri 02:4005:50 PM & 09:35AM 12:45 PM

Catalog Description This course is intended to present the data structures which may be used in computer storage to represent the information involved in solving problems (heaps, hash tables, B-trees). Emphasis will be placed on concepts of data abstraction and its implementation along with sorting and searching techniques. Learning Objectives Problem Solving Skills and Software Design Introduce the concepts of Abstract Data Types Be able to use and manipulate several core Data Structures including: Arrays, Linked Lists, Stacks, Queues, and Trees Study the efficiency of Algorithms Study advanced Structures such as Graphs and Hashing Learning Outcomes Upon completion of the course through examination and assignments, the students will be equipped with the tools of software engineering, abstract data types, searching and sorting, algorithm analysis and efficiency concepts. The course will be structured around a comprehensive set of computer assignments to enable students to get hands on experience. C++ will be the programming language used throughout the course. Prerequisites Object Oriented Programming along with a strong C/C++ programming skill set. If you do not meet the prerequisite requirements for this course, you should see the department manager. Course Webpage https://www.sites.google.com/site/dsfall2012 Text Book Data Abstraction and Problem Solving with C++ by Frank M. Carrano Reference Books Algorithms in C++ by Robert Sedgewick Object Oriented Programming in C++ by Robert Lafoare Let Us C++ by Yashavant Kanethkaar Pointers in C by Yashavant Kanetkar

Course Outline (tentative)

Review of C++ Programming Basics Review of Object Oriented Programming Pointers in C++ and Dynamic Memory Recursion and Abstraction Linked Lists (i.e., array-based and pointer-based) o Sorted Lists o Unsorted Lists Stacks (i.e., array-based and linked-list-based) Queues (i.e., array-based and linked-list-based) Algorithm Analysis Searching Sorting o Selection Sort, Bubble Sort, Insertion Sort o Radix Sort, Merge Sort, Quick Sort Trees Graphs o Searching (i.e., DFS and BFS) o Shortest Paths (i.e., Dijkstras and Bellman-Ford algorithms)

Advanced Topics (Optional) Range Trees kD-Trees Hash Tables Standard Template Library Grading
Assignments and Quizzes (10%): There will be 4 assignments comprising of programming and non-programming tasks and plenty of un-announced quizzes Exams (30% + 40%): There will be 2 Midterm and 1 Final Exam according to the university schedule Lab Work (10%): Lab performance will be marked on regular basis along with the attendance Project (10%): There will be a project at the end of the semester

Course Policies
Lecture slides, assignments, and other information will be posted on the course webpage. Regular attendance is highly recommended. If you miss a class, you are responsible for all material covered or assigned in class. Assignments which are too similar will receive a zero. No late programming assignments will be accepted.

S-ar putea să vă placă și