EE441 DATA STRUCTURES
Course Code: | 5670441 |
METU Credit (Theoretical-Laboratory hours/week): | 3 (3.00 - 0.00) |
ECTS Credit: | 5.0 |
Department: | Electrical and Electronics Engineering |
Language of Instruction: | English |
Level of Study: | Undergraduate |
Course Coordinator: | Assist.Prof.Dr SERKAN SARITAŞ |
Offered Semester: | Fall Semesters. |
Course Objectives
This course primarily aims to acquaint the student with basic data structures frequently used in software engineering and programming practices. Concepts of object-oriented programming, abstract data types, dynamic memory management and algorithm complexity are given. Searching and sorting algorithms are also discussed.
Course Content
Arrays, stacks, queues, linked lists, trees, hash tables, graphs: Algorithms and efficiency of access. Searching and sorting algorithms. Problem complexity, computational complexity
Course Learning Outcomes
i. Create awareness of and experience in object-oriented programming discipline.
- Understand the meaning of and the usage of object oriented programming
- Learn basics of object oriented programming and class definition.
- Learn recursive algorithms and argument passing
ii. Create awareness of and experience in dynamic memory management.
- Understand the meaning of and the usage of memory and dynamic memory.
- Learn to create and delete dynamic memory.
- Use dynamic memory in various data structures.
iii. Learn fundamental data structures with their searching, insertion and deletion
capabilities.
- Learn array data structure.
- Learn stack and queue data structure.
- Learn linked list and tree data structure.
- Learn graph data structure.
- Learn hash coding.
- Learn searching, insertion and deletion in the covered data
iv. Learn fundamental sorting algorithms with their complexity analysis.
- Understand the meaning of sorting.
- Learn sorting algorithms (selection sort, bubble sort, quick sort, radix sort).
- Compare the algorithms in terms of their complexity.
v. Create awareness of and experience in algorithm complexity.
- Understand the meaning of algorithm complexity.
- Learn Big-O, Ω, Θ complexity analysis details.
- Perform complexity analysis for various algorithms.
vi. Create awareness of and experience in computational complexity.
- Understand the meaning of computational complexity
- Learn decisison problems, P, NP, NP complete, NP hard problem classes, relation betwwen these classes and problem reduction
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 | ✔ |