CENG213 DATA STRUCTURES

Course Code:5710213
METU Credit (Theoretical-Laboratory hours/week):4 (3.00 - 2.00)
ECTS Credit:6.0
Department:Computer Engineering
Language of Instruction:English
Level of Study:Undergraduate
Course Coordinator:Assist.Prof.Dr HAKAN YILDIZ
Offered Semester:Fall Semesters.

Course Objectives

This course aims to introduce the abstract concepts for data organization and manipulation, show how these concepts are useful in problem solving and how the abstractions can be made concrete by using a programming language. At the end of this course, students are expected to be able to use appropriate data structures for the solution of a given problem. Students will also be able to design and implement abstract data types which use efficient algorithms to manipulate these data structures. Various concepts such as searching, sorting, and algorithm analysis are also introduced.This course aims to introduce the abstract concepts for data organization and manipulation, show how these concepts are useful in problem solving and how the abstractions can be made concrete by using a programming language. At the end of this course, students are expected to be able to use appropriate data structures for the solution of a given problem. Students will also be able to design and implement abstract data types which use efficient algorithms to manipulate these data structures. Various concepts such as searching, sorting, and algorithm analysis are also introduced.


Course Content

Classification of data structures, space and time considerations. Linked lists, stacks and queues,priority queues . Array and pointer based implementations.Heaps and Tree structures, binary search trees,balanced AVL and red-black trees. Fundamentals of sorting and searching. Hash-tables and collision handling.Representation of graphs and introduction to graph algorithms. Prerequisite: CENG 140


Course Learning Outcomes

At the end of this course, students will be able to:

  • Learn C++ language and implement data structures in C++
  • Understand basic mechanisms for algorithm analysis and apply them for algorithm analysi
  • Understand comparison based sorting algorithms and analyze them.
  • Understand and analyze the functionalities of lists, stacks, queues, trees, hashing, priority queues and graphs
  • Compare and assess lists, stacks, queues, trees, hashing, priority queues and graphs for a given problem.
  • Develop algorithms involving the use of lists, stacks, queues, trees, hashing, priority queues or graphs

Program Outcomes Matrix

Contribution
#Program OutcomesNoYes
1An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
2An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors
3An ability to communicate effectively with a range of audiences
4An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts
5An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives
6An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions
7An ability to acquire and apply new knowledge as needed, using appropriate learning strategies