BBS516 - DATA STRUCTURES and ALGORITHMS

Course Name Code Semester Theory
(hours/week)
Application
(hours/week)
Credit ECTS
DATA STRUCTURES and ALGORITHMS BBS516 Any Semester/Year 3 0 3 6
PrequisitesIntroduction to Programming
Course languageTurkish
Course typeElective 
Mode of DeliveryFace-to-Face 
Learning and teaching strategiesLecture
Problem Solving
 
Instructor (s)Mustafa Ege 
Course objectiveProviding solid foundations in the basic concepts of programming, choosing and designing data structures that are appropriate for a problem and comparing the considered algorithms. 
Learning outcomes
  1. Upon successful completion of this course, students will be able to:
  2. ? determine space and time complexity of some basic algorithms.
  3. ? learn the basic concepts for recursive algorithms
  4. ? specialize in matrix storage(sparse, band, lower/upper triangular matrix)
  5. ? learn how to use some essential data structures such as stack, queue, singly/doubly linked list
  6. ? design the efficient algorithms in converting and evaluating infix,prefix,postfix expressions
  7. ? implement an array-based or a pointer-based linked list
  8. ? convert recursive algorithms to iterative ones. ? design the data structures for representing graphs ? assess how the choice of data structures affects the performance of algorithms ? solve problems using data structures such as binary tree, binary search tree, threaded tree, heap, priority queues, sets, generalized list ? learn graph algorithms and use them to solve practical problems.
Course ContentSpace and time complexity, matrix storage, stack, queue, singly/doubly linked lists, trees, generalized lists, heaps, graphs, sorting 
References1. Horowitz E., Sahni S., Anderson S.,??Fundamentals of Data Structures in C?, Computer Scince Press, New York, 1993
2. Horowitz E., Sahni S., Mehta D.,?Fundamentals of Data Structures in C++?, Computer Scince Press, New York, 1995
 

Course outline weekly

WeeksTopics
Week 1Basic concepts for data structures, performance analysis, space and time complexity
Week 2Representation of multidimensional arrays, lower/upper triangular, band matrix storage
Week 3Sparse matrix storage, stacks and queues on array
Week 4Evaluation of expressions, infix,postfix and prefix forms, multiple stacks and queues
Week 5Array-based linked list, singly/doubly linked lists using dynamic memory management
Week 6Midterm exam
Week 7Binary trees, binary tree traversals, binary search tree
Week 8Generalized lists, threaded binary tree
Week 9Heap, priority queues, set representation
Week 10Graph representation, minimum cost spanning tree, shortest path
Week 11Midterm exam
Week 12Avtivity on vertex/edge networks, topological order, critical path method
Week 13Selection,insertion, bubble, counting
Week 14Quick,merge,heap, radix sorting algorithms and their analyses
Week 15
Week 16Final exam

Assesment methods

Course activitiesNumberPercentage
Attendance120
Laboratory00
Application00
Field activities00
Specific practical training00
Assignments410
Presentation00
Project00
Seminar00
Midterms240
Final exam150
Total100
Percentage of semester activities contributing grade succes1850
Percentage of final exam contributing grade succes150
Total100

WORKLOAD AND ECTS CALCULATION

Activities Number Duration (hour) Total Work Load
Course Duration (x14) 12 3 36
Laboratory 0 0 0
Application000
Specific practical training000
Field activities000
Study Hours Out of Class (Preliminary work, reinforcement, ect)51260
Presentation / Seminar Preparation000
Project000
Homework assignment4624
Midterms (Study duration)21530
Final Exam (Study duration) 13030
Total Workload2466180

Matrix Of The Course Learning Outcomes Versus Program Outcomes

D.9. Key Learning OutcomesContrubition level*
12345
1. Has detailed knowledge about Information Systems (IS).   X 
2. Understands the interaction of theory and practice and the links between them.    X
3. Has a good understanding of common concepts such as abstraction, complexity, security, concurrency, software lifecycle and applies their expertise to the effective design, development and management of IS.   X 
4. Has the ability to think at different levels of abstraction and detail; understands that an IS can be considered in different contexts, going beyond narrowly identifying implementation issues.   X 
5. Solves any technical or scientific problem independently and presents the best possible solution; has the communication skills to clearly explain the completeness and assumptions of their solution.    X
6. Completes a project on a larger scale than an ordinary course project in order to acquire the skills necessary to work efficiently in a team.  X  
7. Recognises that the field of informatics is rapidly evolving. Follows the latest developments, learns and develops skills throughout their career.   X 
8. Recognises the social, legal, ethical and cultural issues related to informatics practice and conduct professional activities in accordance with these issues. X   
9. Can make oral presentations in English and Turkish to different audiences face-to-face, in writing or electronically.  X  
10. Recognises that informatics has a wide range of applications and opportunities. X   
11. Is aware that informatics interacts with different fields, can communicate with experts from different fields and can learn necessary field knowledge from them.   X 
12. Define a research problem and use scientific methods to solve it.     X

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest