COURSE INFORMATION
Course Title: DATA STRUCTURES
Code Course Type Regular Semester Theory Practice Lab Credits ECTS
CEN 206 B 4 3 0 2 4 7
Academic staff member responsible for the design of the course syllabus (name, surname, academic title/scientific degree, email address and signature) NA
Lecturer (name, surname, academic title/scientific degree, email address and signature) and Office Hours: Ali Osman Topal , 09:00 - 11:00
Second Lecturer(s) (name, surname, academic title/scientific degree, email address and signature) and Office Hours: NA
Teaching Assistant(s) and Office Hours: NA
Language: English
Compulsory/Elective: Compulsory
Classroom and Meeting Time:
Course Description: Study of the basic data structures and their implementations: Arrays, matrices, stacks, queues, hash tables, trees, lists, and graphs. Programming techniques using recursion. Various searching and sorting methods such as insertion sort, merge sort, and quick sort. Basic analysis of algorithms.
Course Objectives: To get accustomed to and be able to use common algorithms used in programming. External memory algorithms and data structures for sorting and searching, advanced algorithms for graphs.
COURSE OUTLINE
Week Topics
1 Intro. to Course and Asymptotic Notations
2 Abstract data types, Recursion
3 Using Linked Lists
4 Stacks and Queues
5 Stacks and Queues
6 Trees, Binary Trees, Perfect and Complete binary trees
7 Binary Search Trees and AVL trees
8 MIDTERM EXAM
9 Tree Traversals, Red Black Trees
10 Sorting: Merge Sort, Heap Sort
11 Sorting: Quick Sort, Bucket Sort
12 Mapping, Hashing
13 Graph Data Structure
14 Prim`s Algorithm, Kruskal`s Algorithm, Dijkstra Algorithm
Prerequisite(s): To have a satisfactory level in a programming language. CEN 110/CEN213 or CEN215
Textbook: Data Structures and Algorithms in Java, 6th Edition, 2014
Other References: Pearson_ - Algorithms_ 4th ed. - _Sedgewick_ Wayne_
Laboratory Work: YES
Computer Usage: YES
Others: No
COURSE LEARNING OUTCOMES
1 Become accustomed to the description of algorithms in both functional and procedural styles;
2 Learn good principles of algorithm design: Data abstraction ability
3 Learn how to analyze algorithms and estimate their worst-case and average case behavior (in easy cases)
4 Become familiar with fundamental data structures
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution)
No Program Competencies Cont.
Bachelor in Computer Engineering (3 years) Program
1 Engineering graduates with sufficient theoretical and practical background for a successful profession and with application skills of fundamental scientific knowledge in the engineering practice. 5
2 Engineering graduates with skills and professional background in describing, formulating, modeling and analyzing the engineering problem, with a consideration for appropriate analytical solutions in all necessary situations 5
3 Engineering graduates with the necessary technical, academic and practical knowledge and application confidence in the design and assessment of machines or mechanical systems or industrial processes with considerations of productivity, feasibility and environmental and social aspects. 5
4 Engineering graduates with the practice of selecting and using appropriate technical and engineering tools in engineering problems, and ability of effective usage of information science technologies. 5
5 Ability of designing and conducting experiments, conduction data acquisition and analysis and making conclusions. 5
6 Ability of identifying the potential resources for information or knowledge regarding a given engineering issue. 5
7 The abilities and performance to participate multi-disciplinary groups together with the effective oral and official communication skills and personal confidence. 5
8 Ability for effective oral and official communication skills in foreign language. 5
9 Engineering graduates with motivation to life-long learning and having known significance of continuous education beyond undergraduate studies for science and technology. 5
10 Engineering graduates with well-structured responsibilities in profession and ethics. 5
11 Engineering graduates who are aware of the importance of safety and healthiness in the project management, workshop environment as well as related legal issues. 5
12 Consciousness for the results and effects of engineering solutions on the society and universe, awareness for the developmental considerations with contemporary problems of humanity. 5
COURSE EVALUATION METHOD
Method Quantity Percentage
Homework
5
2
Midterm Exam(s)
1
30
Project
1
20
Final Exam
1
40
Total Percent: 100%
ECTS (ALLOCATED BASED ON STUDENT WORKLOAD)
Activities Quantity Duration(Hours) Total Workload(Hours)
Course Duration (Including the exam week: 16x Total course hours) 16 6 96
Hours for off-the-classroom study (Pre-study, practice) 16 2 32
Mid-terms 1 15 15
Assignments 4 2 8
Final examination 1 20 20
Other 1 4 4
Total Work Load:
175
Total Work Load/25(h):
7
ECTS Credit of the Course:
7