Skip to content

This repository contains resources for IPN's Analysis and Design of Algorithms course, focusing on algorithm selection, complexity analysis, and design strategies. Topics include deterministic and non-deterministic methods, plus an introduction to complexity theory. Key texts include "Introduction to Algorithms" and "The Algorithm Design Manual."

Notifications You must be signed in to change notification settings

Pinedah/ESCOM_analysis-and-design-of-algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Analysis and Design of Algorithms

This repository contains course materials, assignments, and resources for the Analysis and Design of Algorithms course, part of the Data Science Bachelor's program at IPN (Instituto Politécnico Nacional).

Course Overview

The primary goal of this course is to equip students with the knowledge and skills necessary to determine the most suitable algorithm for solving a given problem, based on design strategies and algorithmic complexity.

Course Contents

Unit I: Contextualization and Notations

  • Role of Algorithms in Computing
    • Basic concepts of algorithms and analysis
  • Complexity Types
    • Time complexity
    • Space complexity
  • Asymptotic Notations
    • Θ (Theta) Notation
    • O (Big-O) Notation
    • Ω (Omega) Notation
    • o (Little-o) Notation
    • ω (Little-omega) Notation
  • Functions Describing Asymptotic Growth

Unit II: Deterministic Design Strategies

  • Divide and Conquer Strategy
    • Maximum subarray problem
    • Strassen's algorithm
  • Recurrence Equations
    • Substitution method
    • Iteration method
    • Master theorem and its proof
  • Dynamic Programming
    • Rod cutting problem
    • Matrix chain multiplication
    • Key elements and applications
  • Greedy Strategy
    • Activity selection problem
    • Huffman coding
    • Matroids and greedy strategy

Unit III: Non-deterministic Design Strategies

  • Probabilistic Analysis and Randomized Algorithms
    • Activity selection problem
  • Amortized Analysis
    • Aggregate analysis
    • Accounting method
    • Potential method
    • Dynamic tables

Unit IV: Introduction to Complexity Theory

  • Algorithmic Complexity
  • Complexity Classes
    • P vs NP
    • NP-Completeness
  • Strategies to Handle NP-Class Problems

Learning Methods

  • Inductive and Deductive Learning
  • Case Studies and Problem-Based Learning
  • Project-Oriented Learning

Assessment

  • Diagnostic Evaluations
  • Case Solutions
  • Project Reports
  • Practical Reports
  • Written Exams

Recommended Reading

  • Introduction to Algorithms by Cormen, Leiserson, and Rivest
  • Algorithms by Dasgupta et al.
  • Algorithmics: The Spirit of Computing by Harel and Feldman
  • The Algorithm Design Manual by Skiena
  • Algorithms by Sedgewick and Wayne

Contact Information

For any questions or discussions, feel free to open an issue or contact the course instructors.


Instituto Politécnico Nacional

Data Science Program

Semester: III

Credits: 7.5 (TEPIC) / 6.3 (SATCA)

About

This repository contains resources for IPN's Analysis and Design of Algorithms course, focusing on algorithm selection, complexity analysis, and design strategies. Topics include deterministic and non-deterministic methods, plus an introduction to complexity theory. Key texts include "Introduction to Algorithms" and "The Algorithm Design Manual."

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published