Course Code: | SWE209 | ||||
Course Name: | Data Structures and Algorithms | ||||
Semester: | Fall | ||||
Course Credits: |
|
||||
Language of instruction: | English | ||||
Course Condition: | |||||
Does the Course Require Work Experience?: | No | ||||
Type of course: | Compulsory Courses | ||||
Course Level: |
|
||||
Mode of Delivery: | Face to face | ||||
Course Coordinator: | Dr. Öğr. Üy. MUHAMMED DAVUD | ||||
Course Lecturer(s): | Assist. Prof. Dr. Muhammed Davud | ||||
Course Assistants: |
Course Objectives: | This course covers a range of topics, including basic data structures such as arrays, linked lists, stacks, queues, trees, and graphs, as well as more complex data structures such as hash tables and heaps. Students will also learn about algorithm analysis and design, including sorting and searching algorithms. Additionally, students will gain knowledge of algorithmic problem-solving techniques, algorithmic complexity, and the big-O notation. Throughout the course, students will be required to complete programming assignments and projects that apply the concepts covered in lectures and readings. |
Course Content: | This course covers a range of topics, including basic data structures such as arrays, linked lists, stacks, queues, trees, and graphs, as well as more complex data structures such as hash tables and heaps. Students will also learn about algorithm analysis and design, including sorting and searching algorithms. Additionally, students will gain knowledge of algorithmic problem-solving techniques, algorithmic complexity, and the big-O notation. Throughout the course, students will be required to complete programming assignments and projects that apply the concepts covered in lectures and readings. |
The students who have succeeded in this course;
1) Understand and apply the fundamental concepts of data structures and algorithms. 2) Understand and apply algorithm analysis and design techniques, including sorting and searching algorithms. 3) Analyze algorithmic problems and implement appropriate solutions using the concepts learned in the course. 4) Understand and apply algorithmic complexity and big-O notation to analyze and compare different algorithms. 5) Develop efficient and optimized algorithms for solving programming problems. |
Week | Subject | Related Preparation |
1) | Introduction | |
2) | Complexity Analysis of Algorithms | |
3) | Recursion | |
4) | Stacks | |
5) | Queues | |
6) | Lists | |
7) | Sorting Algorithms | |
8) | Midterm Exam | |
9) | Searching Algorithms | |
10) | Trees | |
11) | Heaps | |
12) | Graphs | |
13) | Graphs | |
14) | Hashing |
Course Notes / Textbooks: | Ellis Horowitz, Sartaj Sahni and Dinesh Mehta, Fundamentals of Data Structure in C++, W.H.Freeman |
References: | Lecture notes |
Course Learning Outcomes | 1 |
2 |
3 |
4 |
5 |
---|---|---|---|---|---|
Program Outcomes |
No Effect | 1 Lowest | 2 Average | 3 Highest |
Program Outcomes | Level of Contribution |
Semester Requirements | Number of Activities | Level of Contribution |
Quizzes | 1 | % 10 |
Midterms | 1 | % 40 |
Final | 1 | % 50 |
total | % 100 | |
PERCENTAGE OF SEMESTER WORK | % 50 | |
PERCENTAGE OF FINAL WORK | % 50 | |
total | % 100 |
Activities | Number of Activities | Workload |
Course Hours | 13 | 39 |
Laboratory | 13 | 26 |
Study Hours Out of Class | 14 | 60 |
Quizzes | 4 | 8 |
Midterms | 1 | 3 |
Final | 1 | 3 |
Total Workload | 139 |