Course Preliminaries Course Objectives Course Objectives Students’ Learning Outcomes Students’ Learning Outcomes Grading Policy Grading Policy Course Resources Course Resources Course Outline Course Outline 0.1CSC 301: Data Structures
Course Objectives The objectives of this course are to: The objectives of this course are to: Introduce students to fundamental data structures; their algorithms, implementations and applications. 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. 0.2CSC 301: Data Structures
Students’ Learning Outcomes After completion of this course, the student shall be able to: After completion of this course, the student shall be able to: Apply object oriented concepts (inheritance, polymorphism, design patterns, etc.) in software design. Implement various data structures and their algorithms, and apply them in implementing simple applications. To analyze simple algorithms and determine their efficiency using big-O notation. To apply the knowledge of data structures to other application domains like data compression and memory management. 0.3CSC 301: Data Structures
Grading Policy Grading is based on the standard University guidelines: 40% CA, 60% Exams Grading is based on the standard University guidelines: 40% CA, 60% Exams The CA scores will be earned through The CA scores will be earned through A written test Several programming assignments Additional marks can be earned through dedication and quality work! Additional marks can be earned through dedication and quality work! 0.4CSC 301: Data Structures
Course Resources Reference Textbooks: Reference Textbooks: “Data Structures and Algorithms in Java”, 2 nd Edition, Adam Drozdek, Thomson Learning, ISBN “Data Structures and Algorithms with Object Oriented Design Patterns in Java”, Bruno R. Preiss, John Wiley & Sons, Inc., Electronic Copy also available PowerPoint Slides These textbooks are available in the departmental library These textbooks are available in the departmental library 0.5CSC 301: Data Structures
Course Outline Topics of CoverageNumber of Lectures Lecture Slides & Text Book References Review & Introduction to Design Patterns 2Lectures 1-2, Preiss Chapter 5 Introduction to Algorithm Analysis 2Lectures 3-4, Preiss Chapter 3, Drozdek Chapter 2 Review of Linked Lists2Lectures 5-6, Preiss Chapter 4, Drozdek Chapter 3 Review of Stacks & Queues2Lectures 7-8, Preiss Chapter 6, Drozdek Chapter 4 Recursion and Recursive Algorithms 4Lectures 9-12, Slides, Drozdek Chapter 5 0.6CSC 301: Data Structures
… Course Outline Topics of CoverageNumber of Lectures Lecture Slides & Text Book References Tree Structures and their Applications 8Lectures 13-20, Preiss Chapter 9, Drozdek Chapter 6 and 7, Heap Sort (Drozdek pg 484) Graphs and Graph Algorithms7Lectures 21-27, Preiss Chapter 16, Drozdek Chapter 8 Hashing Techniques3Lectures , Preiss Chapter 8 Data Compression2Lectures , Slides, Drozdek Chapter 10 Memory Management & Garbage Collection 2Lectures 33-34, Preiss Chapter 13, Drozdek Chapter CSC 301: Data Structures