CLICK HERE FOR THE COURSE SYLLABUS (.pdf)
|
Course Name
|
Code
|
Semester
|
Theory
(hour/week) |
Application/Laboratory
(hour/week) |
Local Credits
|
ECTS
|
|
Data Structures and Algorithms
|
CE 221
|
Fall
|
3
|
2
|
4
|
7
|
| Prerequisites |
|
||||||||
| Course Language |
English
|
| Course Type |
Required
|
| Course Level |
First Cycle
|
| Course Coordinator | |
| Course Lecturer(s) | |
| Course Assistants | |
| Course Objectives | The objective of this course is to teach students the notion of an abstract data type (ADT) which is central to the design and analysis of computer algorithms. This course introduces abstract data types, and presents algorithms and data structures for implementing several ADTs. It emphasizes the efficiency of algorithms as evaluated by asymptotic analysis of running time. Topics include linear ADTs, heaps, binary trees, AVL trees and sorting. The programming assignments will be given in the same programming language as the one taught in CS 116. |
| Course Learning Outcomes |
The students who succeeded in this course;
|
| Course Content | The course covers algorithm analysis, linear data structures, trees, priority queues and sorting. |
| Week | Subjects | Related Preparation |
| 1 | Introduction: Mathematics Review and Recursion | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 1.1, 1.2, 1.3) |
| 2 | Programming Hints | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 1.4, 1.5, 1.6, 1.7) |
| 3 | Algorithm Analysis (basic concepts of algorithms, modeling runtimes, recurrences, BigOh notations) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 2.1, 2.2, 2.3) |
| 4 | Algorithm Analysis (Running Time Calculations) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 2.4) |
| 5 | Linear Data Structures: (Pointers, Linked Lists) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 3.1, 3.2, 3.3, 3.4, 3.5) |
| 6 | Linear Data Structures (Stacks) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 3.6) |
| 7 | Linear Data Structures (Queues) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 3.7) |
| 8 | Ara sınav / Midterm | |
| 9 | Trees (Binary trees) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 4.1, 4.2) |
| 10 | Trees (Binary search trees) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 4.3) |
| 11 | Trees (AVL Trees) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 4.4) |
| 12 | Priority Queues: Binary Heaps | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 6.1, 6.2, 6.3) |
| 13 | Sorting (Insertion Sort, Shellsort) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 7.1, 7.2, 7.3, 7.4) |
| 14 | Sorting (Heapsort, Mergesort ) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 7.5, 7.6) |
| 15 | Sorting (Quicksort) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 7.7) |
| 16 | Review of the Semester |
| Course Notes / Textbooks | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 |
| References |
| Semester Requirements | Number | Percentage of Grade |
| Attendance/Participation | ||
| Laboratory |
10
|
30
|
| Application | ||
| Field Work | ||
| Special Course Internship (Work Placement) | ||
| Quizzes/Studio Critics | ||
| Homework Assignments | ||
| Presentation/Jury | ||
| Project | ||
| Seminar/Workshop | ||
| Midterms/Oral Exams |
1
|
30
|
| Final/Oral Exam |
1
|
40
|
| Total |
| PERCENTAGE OF SEMESTER WORK | 60 |
|
| PERCENTAGE OF FINAL WORK | 40 |
|
| Total |
|
Course Category |
Core Courses |
X
|
| Major Area Courses | ||
| Supportive Courses | ||
| Media and Managment Skills Courses | ||
| Transferable Skill Courses |
|
#
|
Program Qualifications / Outcomes |
* Level of Contribution
|
||||
1 |
2 |
3 |
4 |
5 |
||
| 1 | Be able to define problems in real life by identifying functional and nonfunctional requirements that the software is to execute | |||||
| 2 | Be able to design and analyze software at component, subsystem, and software architecture level | X | ||||
| 3 | Be able to develop software by coding, verifying, doing unit testing and debugging | X | ||||
| 4 | Be able to verify software by testing its behaviour, execution conditions, and expected results | |||||
| 5 | Be able to maintain software due to working environment changes, new user demands and the emergence of software errors that occur during operation | |||||
| 6 | Be able to monitor and control changes in the software, the integration of software with other software systems, and plan to release software versions systematically | |||||
| 7 | To have knowledge in the area of software requirements understanding, process planning, output specification, resource planning, risk management and quality planning |
|||||
| 8 | Be able to identify, evaluate, measure and manage changes in software development by applying software engineering processes | |||||
| 9 | Be able to use various tools and methods to do the software requirements, design, development, testing and maintenance | X | ||||
| 10 | To have knowledge of basic quality metrics, software life cycle processes, software quality, quality model characteristics, and be able to use them to develop, verify and test software | X | ||||
| 11 | To have knowledge in other disciplines that have common boundaries with software engineering such as computer engineering, management, mathematics, project management, quality management, software ergonomics and systems engineering | X | ||||
| 12 | Be able to grasp software engineering culture and concept of ethics, and have the basic information of applying them in the software engineering | X | ||||
| 13 | Be able to use a foreign language to follow related field publications and communicate with colleagues |
X | ||||
*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest
| Activities | Number | Duration (Hours) | Total Workload |
| Course Hours (Including Exam Week: 16 x Total Hours) |
16
|
3
|
|
| Laboratory |
15
|
2
|
|
| Application | |||
| Special Course Internship (Work Placement) | |||
| Field Work | |||
| Study Hours Out of Class |
15
|
3
|
|
| Presentations / Seminar | |||
| Project | |||
| Homework Assignments |
16
|
2
|
|
| Quizzes |
5
|
2
|
|
| Midterms / Oral Exams |
1
|
15
|
|
| Final / Oral Exam |
1
|
20
|
|
| Total Workload |
CLICK HERE FOR THE COURSE SYLLABUS (.pdf)