Syllabus of CTIS 152 - Algorithms and Data Structures
Department: Information Systems and Technologies
Credits: Bilkent 4, ECTS 6,5
Course Coordinator: Serpil Tın
Semester: 2024-2025 Spring
Section: 001
Instructor(s): Serpil Tın
Office & Office Hours:
Course Schedule:
Mon. Tue Wed Thu Fri Sat Sun
08:30 09:20 C-CTISL1
09:30 10:20 C-CTISL1
10:30 11:20 CE-104
11:30 12:20 CE-104
12:30 13:20
13:30 14:20 C-CTISL1
14:30 15:20 C-CTISL1
15:30 16:20 CE-104
CE-104
16:30 17:20
(S)
17:30 18:20
18:30 19:20
19:30 20:20
20:30 21:20
21:30 22:20
Online/Hybrid Lecture Face-to-Face Lab/Studio
Face-to-Face Lecture Online Lab/Studio
Recitation
S : Spare Hour
Contact Hours: 3 hours of lecture per week, 4 hours of Lab/Studio/Others per week
Textbook and Other Required Material:
Required - Textbook: C: How to Program, Paul Deitel, Harvey Deitel, 2023, Global Edition (9th Edition) , Pearson Educati
ISBN-13: 978-1-292-43707-3 ISBN-10: 1-292-43707-3
Catalog Description:
Implementation of abstract data types and structures. Dynamic data structures. Strings, stacks, queues, linked lists, trees and graphs
Multidimensional structures. Recursion. Implementation of basic searching and sorting methods. Binary File I/O.
Prerequisite(s): CTIS 151
GenAI Policy: -
Assessment Methods:
Type Label Count Total Contribution
1 Quiz Lecture Quiz 1 5
2 Midterm Midterm Exam 1 15
3 Lab exam Lab Exam-1 1 15
4 Lab exam Lab Exam-2 1 15
5 Lab exam Lab Final Exam 1 20
6 Performance Class and Lab Performance 1 5
7 Final Final Exam 1 25
Minimum Requirements to Qualify for the Final Exam:
Students: [Get at least 17 points from the Lab Exams plus the Lab Final Exam weighted average and at least 8 points from the Lect
Quiz plus Midterm Exam] AND [Don't miss more than 10 hours. from the lesson] Otherwise, students will receive FZ.
Course Learning Outcomes:
Course Learning Outcome Assessment
Analyze a problem to implement a solution by using data structures. Midterm Exam
Final Exam
Demonstrate algorithmic thinking. Midterm Exam
Final Exam
Use a high-level programming language for problem solving with data structures. Lab Exam-1
Lab Exam-2
Lab Final Exam
Weekly Syllabus:
1. Information about the course: Objective, Textbook, And Grading. Pointers: Declaration, pointer expressions, and pointer
arithmetic.
2. Pointers: Pointers as function parameters. Pointers with one-dimensional and two-dimensional arrays. Dynamic memory
allocation and sizeof operator.
3. Structures: Initialization, member access, assignment. Array of structures. Nested structures.
4. Structures: Structures as function parameters. Exercises.
5. Strings: Initialization, I/O of strings, character handling library. String library functions. Exercises.
6. Sorting and Searching: Bubble Sort, Binary Search, exercises.
7. Recursion: versus iteration, exercises (Factorial, Fibonacci, Binary Search, Bubble sort, ...)
8. Binary files: Interactive vs. batch mode, fread, fwrite, fopen. Exercises.
9. Stacks: Functions (initialization, isempty, isfull, pop, push). Exercises.
10. Queues: Functions (initialization, isempty, isfull, remove, insert). Exercises. Stacks & Queues mix exercises
11. Linked Lists: Dynamic Memory Allocation (DMA), memory heap, malloc, free, getnode().
12. Linked Lists: Operations (search, insert, delete, copy, destroy, concatenate). Hash Table with linked list, Exercises.
13. Stack & Queue & Linked List: Exercises.
14. Tree and Graph Data Structures: Tree, Binary Search Tree and traversals. Graphs, Depth and Breath First Traversal. Genera
Review.
ECTS - Workload Table:
Activities Number Hours Workload
Preperation for Quiz 6 3 18
Preparation for Midterm exam 1 10 10
Lab Final exam 1 2 2
Laboratory (including preparation) 14 4 56
Preperation for Final exam 1 20 20
Individual or group work 14 1 14
Final exam 1 2 2
Quiz 6 2 12
Course hours 14 3 42
Midterm exam 1 2 2
Preperation for Lab Final exam 1 20 20
Total Workload: 198
Total Workload / 30: 198 / 30
6.6
ECTS Credits of the Course: 6,5
Type of Course: Exercise Course - Independent Studies - Laboratory Work - Lecture - Practical
Course Material: PC - Written
Teaching Methods: Assignment - Exercises - Independent study - Lecture - Practical session