Upload
ammar-ajmal
View
221
Download
0
Embed Size (px)
Citation preview
7/27/2019 Data Structures & Algorithm Course Outline.pdf
1/2
Course OutlineCSC211 Data Structures & AlgorithmsInstructor: Ammar AjmalContactOffice: Communication and Signal Processing Lab
Email:[email protected]
Weekly Schedule
Classes: Monday 08:00 AM 09:30 AMWednesday 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 Webpagehttps://www.sites.google.com/site/dsfall2012
Text BookData 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
mailto:[email protected]:[email protected]:[email protected]://www.sites.google.com/site/dsfall2012/http://www.goodreads.com/author/show/15721.Robert_Sedgewickhttp://www.goodreads.com/author/show/15721.Robert_Sedgewickhttp://www.goodreads.com/author/show/15721.Robert_Sedgewickhttps://www.sites.google.com/site/dsfall2012/mailto:[email protected]7/27/2019 Data Structures & Algorithm Course Outline.pdf
2/2
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 Listso Unsorted Lists
Stacks (i.e., array-based and linked-list-based) Queues (i.e., array-based and linked-list-based) Algorithm Analysis Searching Sorting
oSelection 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 andnon-programming tasks and plenty of un-announced quizzes
Exams (30% + 40%): There will be 2 Midterm and 1 Final Exam according to the universityschedule
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.