Algorithms and Data Structures 1
مخترع الخوازمات هو ابو عَبد الله مُحَمَّد بن مُوسىً الخَوارِزمي عالم رياضيات وفلك وجغرافيا مسلم
كل علوم الخوارزمات التي تدرسها هي نتيجة لجهد عالم مسلم من اوزبكستان في العهد العباسي.
ثق في نفسك بانك تستطع ان تفهم هذه المادة وتستطيع ان تظيف عليها الكثير لتخدم نفسك ووطنك
Announcements
About the course
The course aims to introduce the students to the principles of efficient algorithms to enhance their programming skills. Data Structures (Stacks, queues, strings, and trees) are described as abstract data types with their methods by training extensive examples and applications. Designing and analyzing different searching and sorting algorithms are objectives to improve the student’s skills. A brief introduction to binary trees and graphs is also covered.
Instructor
Dr. Mshabab Alrizah
Location: TBA
Office hourse: TBA
Lectures
Monday: TBA
Tusday: TBA
Teaching Assistants
TBA
Office Location: nan
Office hours: nan
Email: nan
Prerequisites
Computer Programming – II (113 CSM-4)
Programing Language: JAVA
Textbook(s)
- Data Structure and Algorithms in Java , (4rd Edition), Adam Drozdek.Cengage Learning 2013
Extra books ( not required )
- Introduction to Algorithms, (3rd Edition). Thomas H. Cormen , MIT Press.
- Algorithm Design, Jon Kleinberg and Eva Tardos, Addison-Wesley, 2005.
- Algorithms (1st Edition), Sanjoy Dasgupta, Christos H. Papadimitriou, and Umesh V. Vazirani.
More resours
TBA
Homework and programming assignments
Assignments #1:
Assignment #2:
Evaluation and grade
Assignments: 5% (each one 2.5%)
Quizzes: 5%
Lab Activities: 5%
Two Midterm exams: 20% (First exam 10%, second exam 10%)
Final exam: 50%
Attendance: 5%
Final Lab exam: 10%
Schedule
This schedule is subject to change depending on how the course progresses.
Week | Topic | Slides | Assignment/ HW out | Assignment/ HW Due |
---|---|---|---|---|
1 | Course Overview: Data structure, Types of data structures, Arrays and Vectors in JAVA, Abstract data types | |||
Complexity Analysis : Algorithm and its properties, Computational and Asymptotic Complexity, Complexity Notations – Big-Omega(?) and Theta(?) Notations, The Best, Average and Worst Case Analysis. | ||||
2 | Complexity Analysis : Algorithm and its properties, Computational and Asymptotic Complexity, Complexity Notations – Big-Omega(?) and Theta(?) Notations, The Best, Average and Worst Case Analysis. | |||
Linked Lists: Introduction | Assignment 1 | |||
3 | Linked Lists: Singly Linked List and its basics operations –Insertion | |||
Linked Lists: Singly Linked List and its basics operations –Insertion | Assignment 1 | |||
4 | Linked Lists: Deletion and Search | |||
Linked Lists: Circular Linked Lists | ||||
5 | Linked Lists: Case Study | Quiz 1 | ||
Stacks: Introduction to Stack | ||||
6 | Stacks: Basic Operations on Stacks – clear, push and pop. | |||
Stacks: Basic Operations on Stacks – clear, push and pop. Applications of Stack. | ||||
7 | Stacks: Applications of Stack , Case Study. | |||
Mid 1 | Mid 1 | |||
8 | Stacks: Case Study. | |||
Queues: Introduction to Queue, Basic operations on Queue – clear, endeque, dequeue. Applications of Queue, Priority Queues. | Assignment 2 | |||
9 | Queues: Basic operations on Queue – clear, endeque, dequeue. | |||
Queues: Applications of Queue, Priority Queues. | Assignment 2 | |||
10 | Queues: Applications of Queue, Priority Queues. | Quiz 2 | ||
Searching: Sequential and Binary Search | ||||
11 | Searching: Sequential and Binary Search | |||
Searching: Introduction to Binary Tree and Graph | ||||
12 | Searching: Introduction to Binary Tree and Graph | |||
Mid 2 | Mid 2 | |||
13 | Sorting: Sorting Techniques | |||
Sorting: Insertion Sort, Bubble Sort | ||||
14 | Sorting: Quick Sort and Merge Sort | |||
Lab exam | Lab Exam | |||
15 | Sorting: Case Study | |||
Review | ||||
16 | Final Exam | Final |