Data Structures (COMP242) Course Outline – 2nd Semester 2022/2023 Course information: a. Course Code: COMP242 b. Course Name: Data Structures c. Prerequisite: Comp231 d. Co-requisite: none Course Description: This course introduces some basic data structures (arrays, linked lists, stacks, queues, trees and heaps) and algorithms (various sorting, searching, and hashing). We will also recover recursion in depth in this course. The use of data structures in programming languages and relevant aspects of data and file management will be illustrated using an object-oriented language. Course Goals: The primary goal of this course is to enhance students’ knowledge and understanding of algorithms and data structures and the associated design and analysis techniques. This course aims at developing the students’ ability to design and implement data structures and algorithms, analyze them for correctness and efficiency, and choose the right data structure/algorithm for a particular job. Course Outcomes: Upon successful completion of this course, the student will be able to: A. Knowledge and understanding 1. Understand the fundamental types of data structures (lists, stacks, queues, trees …) and their respective representations 2. Explain different operations for maintaining common data structures B. Intellectual/Cognitive skills 1. Analyze the complexity of simple algorithms to work out the order of magnitude of running time and space complexity 2. Design and apply appropriate data structures for solving computing problems C. Subject specific and practical skills 1. Apply advanced problem-solving techniques (e.g., recursion and data abstraction) to solve computing problems 2. Implement different types of data structures and sorting algorithms 3. Analyze various programming problems and use appropriate data structures/sorting algorithms D. General and transferable skills 1. Communication and oral skills by discussing the implementation of projects 2. Apply time-management skills 3. State conclusions that the evaluations and comparisons of different algorithms 1 Teaching and learning methods: A. Lectures – introduce new concepts and theory B. Class discussion for more understanding and examples C. Lab for practical experience of the data structures concepts Assessment methods based on outcomes: 1. Exams and quizzes to asses A1, A2, B1, B2, C1 2. Projects to assess B1, B2, C1, C2, C3, D1, D2, D3 3. Labs to assess A2, B1, B2, C1, C2, C3 Faculty: Lecture # Instructor Name 1 Mr. Iyad Jaber 2 Mr. Murad Njoum Lecture T, R 08:30 - 09:45 M, W 8:30 - 9:45 3 Dr. Abdallah Karakra M, W 11:25 - 12:40 4 Dr. Mamoun Nawahdah* S, M 08:00 - 09:15 Labs L1 [W @ 11:25] L2 [R @ 14:15] L3 [R @ 11:25] L4 [T @ 8:00] L5 [R @ 14:15] L6 [T @ 8:00] L7 [R @ 8:00] * Course Coordinator References: Data Structures and Algorithm Analysis in Java 3rd edition. Mark Allen Weiss, Pearson, 2011 Laboratory Work Book (COMP242) Grading Criteria: Lab work (Quizzes and Participation) Midterm exam Projects Final exam 15% 30% 20% 35% 2 Topics Covered in this Course: Description 1 2 3 4 5 6 7 8 9 10 11 12 13 Recursion Algorithm Analysis Lists, Linked Lists, Double Linked Lists, examples Cursor Implementation of Linked Lists, Stacks Implementation of Stacks, Examples, Queues Project 1 + discussion Trees, Implementation of Trees, Binary Trees Expression Trees, Binary Search Trees Midterm exam (30%) & Project 2 + discussion AVL Trees, Single and Double Rotation, Tree Traversals Splaying, B_Trees Hashing Project 3 + discussion Priority Queues ( Heaps ) Sorting, Design Techniques, Merge Sort, Analysis of Merge Sort Quick Sort , Analysis of Quick Sort, Linear Sorting Algorithm, Shell Sort, External Sort # of Lectures 2 4-5 2-3 2 3-4 2 2 2-3 1 2-3 3 2 3 Final Exam (35%) & Project 4 + discussion Lab Outline: Week 1 2 3 4 5 6 7 8 9 10 11 12 13 Title Lab0: Java revision Lab 1: Recursion Lab 2: Singly Linked List Implementation of the List ADT Lab 3: Doubly Linked List Implementation of the List ADT Lab 4: Cursor Implementation of List ADT Lab 5: Stack ADT Lab 6: Queue ADT Lab 7: Binary Search Tree Lab 8: AVL Tree Lab 9: Hash Tables Lab 10: Heaps Lab 11: Sorting 1 Lab 12: Sorting 2 Quizzes Q1 Q2 Q3 Q4 Special Regulations: - - Late/wrong assignments will NOT be accepted for any reason. Missing any exam/quiz/project without an acceptable excuse will result in a zero grade for that exam/quiz/project. Attendance is mandatory. University regulations will be strictly enforced. Academic honesty: o Individual HW assignments/project must be each student’s own work. o Cheating (even one line of code) will result in an official university disciplinary review. A good laptop computer is necessary for this course. Enjoy COMP242!!! 3