(INF224-B)
| Course Code | Course Name | Semester | Theory | Practice | Lab | Credit | ECTS |
|---|---|---|---|---|---|---|---|
| INF224-B | 3 | 2 | 0 | 2 | 3 | 5 |
| Prerequisites | INF112/INF114 |
| Admission Requirements | INF112/INF114 |
| Language of Instruction | French |
| Course Type | Compulsory |
| Course Level | Bachelor Degree |
| Course Instructor(s) | Günce Keziban ORMAN korman@gsu.edu.tr (Email) |
| Assistant | Musa Şervan ŞAHİN mssahin@gsu.edu.tr (Email) |
| Objective | The aim of the course is to equip student with skills of choosing the most appropriate data structure, using these data structures into different types of algorithms, analyzing the performance of proposed algorithms and choosing the most efficient one and programming these algorithms in C. |
| Content |
Week 1 — Introduction to Data Structures and Algorithms; C language review Week 2 — Arrays, pointers, linked lists, queues, stacks, recursive calls Week 3 — Linked lists; complexity, Big-O notation, running time, computability Week 4 — Search Methods and Trees 1: sequential search, binary search Week 5 — Search Methods and Trees 2: Red-Black Trees, AVL trees, n-ary trees Week 6 — Sorting Algorithms: Bubble sort, Quick sort, Insertion sort, Merge sort Week 7 — Heap sort and heap trees; Bucket/Radix sort; hash tables; Huffman coding Week 8 — Midterm Exam Week 9 — Graphs: multidimensional arrays, graphs with pointers, undirected and directed graphs Week 10 — Graphs: graph traversal (DFS, BFS), Kruskal, Prim, and Dijkstra algorithms Week 11 — Dynamic Programming 1: Bellman–Ford and Floyd–Warshall algorithms Week 12 — Matching Algorithms Week 13 — End-of-term research presentations / individual performance evaluation Week 14 — End-of-term research presentations / individual performance evaluation |
| Course Learning Outcomes |
At the end of this course, students obtain the following information: • Having deep knowledge on each data structure. • Choosing the most appropriate data structure in respect to the available data. • Using the data structures in different algorithms. • Analyzing the performance of algorithms. |
| 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 Üniversitesi Yayınevi, 2013. |
Theory Topics
| Week | Weekly Contents |
|---|---|
| 1 | Introduction to Data Structures and Algorithms; C language review |
| 2 | Arrays, pointers, linked lists, queues, stacks, recursive calls |
| 3 | Linked lists; complexity, Big-O notation, running time, computability |
| 4 | Search Methods and Trees 1: sequential search, binary search |
| 5 | Search Methods and Trees 2: Red-Black Trees, AVL trees, n-ary trees |
| 6 | Sorting Algorithms: Bubble sort, Quick sort, Insertion sort, Merge sort |
| 7 | Heap sort and heap trees; Bucket/Radix sort; hash tables; Huffman coding |
| 8 | Midterm Exam |
| 9 | Graphs: multidimensional arrays, graphs with pointers, undirected and directed graphs |
| 10 | Graphs: graph traversal (DFS, BFS), Kruskal, Prim, and Dijkstra algorithms |
| 11 | Dynamic Programming 1: Bellman–Ford and Floyd–Warshall algorithms |
| 12 | Matching Algorithms |
| 13 | End-of-term research presentations / individual performance evaluation |
| 14 | End-of-term research presentations / individual performance evaluation |
Practice Topics
| Week | Weekly Contents |
|---|---|
| 1 | Introduction to Data Structures and Algorithms; C language review |
| 2 | Arrays, pointers, linked lists, queues, stacks, recursive calls |
| 3 | Linked lists; complexity, Big-O notation, running time, computability |
| 4 | Search Methods and Trees 1: sequential search, binary search |
| 5 | Search Methods and Trees 2: Red-Black Trees, AVL trees, n-ary trees |
| 6 | Sorting Algorithms: Bubble sort, Quick sort, Insertion sort, Merge sort |
| 7 | Heap sort and heap trees; Bucket/Radix sort; hash tables; Huffman coding |
| 8 | Midterm Exam |
| 9 | Graphs: multidimensional arrays, graphs with pointers, undirected and directed graphs |
| 10 | Graphs: graph traversal (DFS, BFS), Kruskal, Prim, and Dijkstra algorithms |
| 11 | Dynamic Programming 1: Bellman–Ford and Floyd–Warshall algorithms |
| 12 | Matching Algorithms |
| 13 | End-of-term research presentations / individual performance evaluation |
| 14 | End-of-term research presentations / individual performance evaluation |
Contribution to Overall Grade
| Number | Contribution | |
|---|---|---|
| Contribution of in-term studies to overall grade | 14 | 60 |
| Contribution of final exam to overall grade | 1 | 40 |
| Toplam | 15 | 100 |
In-Term Studies
| Number | Contribution | |
|---|---|---|
| Assignments | 0 | 0 |
| Presentation | 0 | 0 |
| Midterm Examinations (including preparation) | 1 | 20 |
| Project | 1 | 25 |
| Laboratory | 10 | 5 |
| Other Applications | 0 | 0 |
| Quiz | 2 | 10 |
| 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 |
| Make-up | 0 | 0 |
| Toplam | 14 | 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. | X | ||||
| 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. | X | ||||
| 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. | |||||
| 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 | 2 | 28 |
| Assignments | 3 | 4 | 12 |
| Presentation | 0 | 0 | 0 |
| Midterm Examinations (including preparation) | 1 | 6 | 6 |
| Project | 0 | 0 | 0 |
| Laboratory | 2 | 14 | 28 |
| Other Applications | 0 | 0 | 0 |
| Final Examinations (including preparation) | 1 | 10 | 10 |
| Quiz | 0 | 0 | 0 |
| Term Paper/ Project | 0 | 0 | 0 |
| Portfolio Study | 0 | 0 | 0 |
| Reports | 0 | 0 | 0 |
| Learning Diary | 0 | 0 | 0 |
| Thesis/ Project | 0 | 0 | 0 |
| Seminar | 0 | 0 | 0 |
| Other | 0 | 0 | 0 |
| Make-up | 0 | 0 | 0 |
| Yıl Sonu | 0 | 0 | 0 |
| Hazırlık Yıl Sonu | 0 | 0 | 0 |
| Hazırlık Bütünleme | 0 | 0 | 0 |
| Total Workload | 126 | ||
| Total Workload / 25 | 5.04 | ||
| Credits ECTS | 5 | ||


