CNG213 DATA STRUCTURES

Course Code:3550213
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 MERYEM ERBİLEK
Offered Semester:Fall or Spring Semesters.

Course Objectives

Having successfully completed this course, the student will be able to:

1) Apply advance C programming techniques such as pointers, dynamic memory allocation, structures to developing solutions for particular problems;

2) Design and implement abstract data types such as linked list, stack, queue and tree by using C as the programming language using static or dynamic implementations;

3) Analyze, evaluate and choose appropriate abstract data types and algorithms to solve particular problems;

4) Design and implement C programs that apply abstract data types.


Course Content

Classification of data structures, space and time considerations. Linked lists, stacks and queues. Tree structures, binary search trees. Array and pointer based implementations. Recursive applications. Sorting and searching.


Course Learning Outcomes

Satisfies the following student outcomes (SOs) via the following Performance Indicators:

  • SO -1 – PI-a1.
    • Analyze the computational complexity of algorithms by using discrete mathematics
  • SO -2 – PI-c2.
    • Evaluate and adapt standard algorithms, e.g. sorting, searching, string processing, graph processing, and parsing, for realistic tasks.
  • SO -2 – PI-c3.
    • Design and implement algorithms, heuristics and supporting data structures as packaged components.
  • SO -7 – PI-i2.
    • Explore topics not covered in lectures.
  • SO -1-2-6 – PI-k1.
    • Use a widely accepted high-level programming language, e.g. Java, C# and C++.

 


Program Outcomes Matrix

Level of Contribution
#Program Outcomes0123
1Employ knowledge of mathematics, science and engineering to formulate solution to real life computing problems
2Design and conduct experiments, as well as analyze, evaluate and interpret data
3Design systems, components, and/or processes by specifying the requirements and determining the realistic constraints such as ethical and environmental
4Judge professional and ethical principles and integrate them in the working environment
5Have the ability to communicate effectively
6Recognize the need for, and an ability to engage in life-long learning

0: No Contribution 1: Little Contribution 2: Partial Contribution 3: Full Contribution