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: | Prof.Dr. FEHİME NİHAN ÇİÇEKLİ |
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 Outcomes | No | Yes | ||
1 | An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics | ✔ | |||
2 | An 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 | ✔ | |||
3 | An ability to communicate effectively with a range of audiences | ✔ | |||
4 | An 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 | ✔ | |||
5 | An 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 | ✔ | |||
6 | An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions | ✔ | |||
7 | An ability to acquire and apply new knowledge as needed, using appropriate learning strategies | ✔ |