Data Structures
Weekly outline
-
Course Rules:
Website:
- When you sign up, please use the same name you have in your AASTMT records, and include your AASTMT ID. This how I can migrate your grades to the AASTMT system.
- Login often to follow up with assignment deadlines and announcements. Its your responsibility to keep up with the course. Failure to receive emails or notifications is no excuse. Everything is announced in class and then published in moodle.
Academic Honesty:
- Please confirm with the AASTMT policies regarding plagiarism and cheating. A zero grade for the violating submission will be given the first time, then reported to the department for further action.
- Please ask questions in the online forum to allow everyone to join and benefit from the discussions, and avoid private emails to the lecturers and TAs. Contact the teachers privately only about your personal grades or circumstances, not about the course content.
How to score A+ in this course?
- Please do all practicals and assignments and study regularly. In case of problems, please ask questions. Accumulating problems will make things worse as the semester goes by.
The course tackles the difference between static data type and dynamic data types. The concept of pointers & dynamic memory allocation is discussed allowing students to experience practical programming using dynamic structures.
Learning Outcomes:
The student will be able to:
- Understand the data types and static data structures pointers, dynamic data structures: stack queues linked lists, trees and graphs.
- Define the difference between static data type and dynamic data types and introduce the concept of pointers & dynamic memory allocation.
- Acquire programming experiences using dynamic structures.
Course Topics:
- Introduction to static Vs dynamic data structures
- Stack data type
- Implementation of stack in different applications
- Queue data type
- Introduction to dynamic programming using pointers
- Linked lists
- Double & circular linked lists
- Introduction to tree structures
- Tree traversals
- Threaded tree
- Graphs representation and traversals
- Graphs minimum spanning tree & shortest path
TEXT BOOK
Mark Weiss and Benjamen Cummings, “Data structures and algorithm analysis”.
PREREQUISITE: CC 213
Grading Scheme:
Week 7 Quizes 5% Lab Submissions 2.5% Assignments 2.5% Midterm 1 20% Week 12 Quizes 5% Lab Submissions 2.5% Assignments 2.5% Midterm 2 10% Project 10% Final Exam 40%
-
Week 1:
Chapter 1: Programming
Chapter 2: Algorithm Analysis
Learning Objectives
- Introduction to Algorithms Correctness, Performance and Data Structures
- Concrete Vs. Abstract Data Types
- Static Vs. Dynamic Data Structures
-
Week 2: Pointers (review and examples)
Learning Objectives:
- Revise pointers and memory allocations
- Arrays and Structures.
-
Eid Al- Adha Holidays
-
Week 3: Chapter 3: Linked Lists:
Learning Objectives:
- Show how to efficiently perform operations on lists
- Understand how linked lists perform vs. Array Based list implementation
-
1. Write a member function to display the maximum item (int) inside the LinkedList.
2. Write a member function to display all the items inside the LinkedList in reverse order.
-
Week 4: Stack Data Type (Chapter 3)
Learning Objectives:
- Define stacks as abstract data type.
- Demonstrate how to implement stacks as arrays and linked data structures.
- Explain, with code examples, the algorithms for initializing, pushing, popping, and checking for a full/empty stack.
-
Week 5: Queue Data Type (Chapter 3)
Learning Objectives:
- Define and contrast queues as abstract data types.
- Demonstrate how to implement queues as arrays and linked data structures.
- Explain, with code examples, the algorithms for initializing, enqueueing, dequeuing, and checking for a full/empty queue.
-
Week 6: Stack Applications
-
Week 7 Midterm
-
Week 8: Tree Data Structures
Learning Objectives:
- Study Tree Data Structures and operations and processing complexity.
-
Week 9: Tree Traversals
Learning Objectives:
- Understand, Implement, trace and apply the different tree traversal methods
-
Week 10: Balanced Binary Trees
Learning Objectives:
- Study a balanced Binary Tree ADT such as AVL Trees
-
Week 11: Hashing
Learning Objectives:
- Understand Hash Tables ADT and processing complexity
- Hash Function Design
- Collision Resolution Techniques Pros and Cons.
-
Week 12: Midterm 2
-
Week 13: Graph ADT
-
Go to Graph Representation and Graph Searches Animations
-
-
Week 14: Graph Traversals
-
Week 15: Happy New Year and Merry Christmas, Find Final Exam Review Questions Below, Good Luck
-
Please Submit your project files here if you want your project marks included in your course total