Computer Engineering Department

Algorithms And Data Structures(INF224)

Course Code Course Name Semester Theory Practice Lab Credit ECTS
INF224 Algorithms And Data Structures 3 3 0 2 3 4
Prerequisites INF103
Admission Requirements INF103
Language of Instruction French
Course Type Compulsory
Course Level Bachelor Degree
Course Instructor(s) Gülfem ALPTEKİN gulfem@gmail.com (Email) Özgün PINARER opinarer@gsu.edu.tr (Email)
Assistant
Objective The main aim of the course is to enable the student to select the most suitable data structure for various data types, to use these data structures within algorithms, to perform performance analyzes of written algorithms and to encode data structures and related algorithms in a selected computer language.
The course content can be summarized as follows:
- Different types of data examples are shown to students, the differences are emphasized.
- Ability to think of an algorithm as a function.
- It is taught to compare two given algorithms in terms of performance.
- Students learn to make different data structures in computer language.
- Students learn to visualize data structures visually.
- Students learn to use the data structures they learn in algorithms.
Content Week 1: Algorithm analysis.
Week 2: Principal data structures (arrays, linked lists, queues, stacks).
Week 3: Tree structures, binary search tree, tree taversal
Week 4: AVL tree, splay tree structure
Week 5: Priority queue, heaps
Week 6: Dynamic arrays, aggregate method
Week 7: Disjoint sets
Week 8: Hashing, hash tables, hash functions.
Week 9: Midterm
Week 10: Graph data structure.
Week 11: Graph algorithms (shortest path, minimum spanning tree).
Week 12: Search algorithms.
Week 13: Sorting algorithms.
Week 14: Coding algorithms.
Course Learning Outcomes Students who successfully complete this course:
1. Can show the differences between the various data structures.
2. Can choose the most suitable data structure according to the data and constraints it has.
3. Can use these data structures in the algorithms used to solve problems.
4. Can compare different algorithms according to time and resource expenditure criteria and choose the most appropriate one among them.
5. Can implement data structures and various algorithms in a selected programming language.
Teaching and Learning Methods Lecture, Discussion, Demonstration, Case Study, Problem Solving, Cooperative Learning, Project, Brainstorming
References 1. M.A. Weiss, Data Structures & Algorithm Analysis in C++, 1999, Addison Wesley.
2. A.M. Tanenbaum, Data Structures using C, 1989, Prentice Hall.
3. A. Drozdek, Data Structures and Algorithmss in C++, 2004, Course Technology.
4. R. Sedgewick, Algorithms in C, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching, 1997, Addison-Wesley.
5. Olcay Taner Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi University Press, 2013.
Print the course contents
Theory Topics
Week Weekly Contents
1 Overview, algorithm analysis
2 Principal data structures (arrays, linked lists, queues, stacks)
3 Tree structures, binary search tree, tree traversal
4 AVL tree, splay tree structure
5 Priority queue, heaps
6 Dynamic arrays, aggregate method
7 Disjoint sets
8 Hashing, hash tables, hash functions
9 Midterm
10 Graph data structure
11 Graph algorithms (shortest path, minimum spanning tree)
12 Searching algorithms
13 Sorting algorithms
14 Project presentations
Practice Topics
Week Weekly Contents
1 Overview
2 Applications of principal data structures
3 Applications of tree structures, binary search tree
4 Applications of AVL tree
5 Applications of priority queue, heaps
6 Applications of dynamic arrays, aggregate method
7 Applications of disjoint sets
8 Applications of hashing, hash tables, hash functions
9 Midterm
10 Applications of graph data structure
11 Applications of graph algorithms (shortest path, minimum spanning tree)
12 Applications of searching algorithms
13 Applications of sorting algorithms
14 Project presentations
Contribution to Overall Grade
  Number Contribution
Contribution of in-term studies to overall grade 1 60
Contribution of final exam to overall grade 1 40
Toplam 2 100
In-Term Studies
  Number Contribution
Assignments 0 0
Presentation 0 0
Midterm Examinations (including preparation) 1 15
Project 1 15
Laboratory 8 15
Other Applications 0 0
Quiz 1 15
Term Paper/ Project 0 0
Portfolio Study 0 0
Reports 0 0
Learning Diary 0 0
Thesis/ Project 0 0
Seminar 0 0
Other 0 0
Toplam 11 60
No Program Learning Outcomes Contribution
1 2 3 4 5
1 Matematik, fizik ve mühendislik bilimlerine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinin modellenmesi ve çözümünde kullanabilme becerisi. X
2 Karmaşık bilgisayar mühendisliği problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. X
3 Yazılımsal veya donanımsal karmaşık bir sistemi, süreci veya donanımı gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. X
4 Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. X
5 Analitik düşünce ile bir sistemi, sistem bileşenini ya da süreci analiz etme, modelleme, deney tasarlama ve yapma, veri toplama, çözüm algoritmaları üretebilme, uygulamaya alma ve geliştirme becerileri. X
6 Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. X
7 Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az iki yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, yazılım ve donanım tasarımını, gerekirse teknik resim metotları kullanarak raporlayabilme, etkin sunum yapabilme becerisi. X
8 Bilgiye erişebilme ve bu amaçla kaynak araştırması yapabilme, veri tabanları ve diğer bilgi kaynaklarını kullanabilme becerisi X
9 Yaşam boyu öğrenmenin gerekliliği bilinci; kendini sürekli yenileme becerisi. X
10 Mesleki etik ilkelerine uygun davranma, mesleki sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi.
11 Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi.
12 Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi. X
13 Bilgisayar mühendisliği uygulamalarının hukuki ve etik boyutları konusunda farkındalık.
Activities Number Period Total Workload
Class Hours 14 3 42
Working Hours out of Class 14 1 14
Midterm Examinations (including preparation) 1 6 6
Project 1 8 8
Laboratory 12 2 24
Final Examinations (including preparation) 1 10 10
Total Workload 104
Total Workload / 25 4,16
Credits ECTS 4
Scroll to Top