CNG315 ALGORITHMS

Course Code:3550315
METU Credit (Theoretical-Laboratory hours/week):3 (3.00 - 0.00)
ECTS Credit:6.0
Department:Computer Engineering
Language of Instruction:English
Level of Study:Undergraduate
Course Coordinator:Assist.Prof.Dr ŞÜKRÜ ERASLAN
Offered Semester:Fall Semesters.

Course Objectives

To introduce some important algorithms, basic algorithm design techniques and analysis of algorithms.


Course Content

Selected Computer algorithms: sorting, searching, string processing and graph algorithms. Algorithm design and analysis techniques. Time and CNGutational CNGlexities of algorithms. Introduction to NP-CN?leteness, parallelization of algorithms, linear and dynamic programming.


Course Learning Outcomes

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

  • Understand algorithm analysis methods, and understand how to analyse a given algorithm
  • Differentiate efficient vs. non-efficient algorithmic solutions
  • Understand and apply various known algorithms in the literature to a given computational problem.
  • Understand the behaviour of a given algorithm, and predicting the quality of the algorithm in terms of its efficiency
  • Check the correctness of a given algorithm in terms of solving the computational problem
  • Remember and use a large number of well-known algorithms and their computational complexities in the literature
  • Critique different algorithms in terms time and space efficiency and for the same problem
  • Interpret a computational problem specification and implement a solution in a programming language to solve that problem efficiently
  • Construct new algorithms for new problems and critique the algorithmic solutions in terms time and space efficiency
  • Modify an existing algorithm to a new problem to accommodate for extension and/or change of problem specifications
  • Design a modular solution to a problem by decomposing it into smaller sub-problems