Introduction to Algorithms

Jul 12, 2024

Introduction to Algorithms

Course Overview

  • Target audience: CS engineering students
  • Importance: Core subject in the syllabus, crucial for theoretical exams, competitive exams, and programming contests
  • Common challenges: Difficulties in understanding complex topics, lack of clarity in approach and logic development
  • Goal: Simplify the subject for better understanding, practice, and retention
  • Coverage: Basics to advanced levels, ensuring students can answer any type of question
  • Feedback: Important for improving the lecture quality

Definitions

  • Algorithm: Step-by-step procedure for solving a computational problem
  • Program: Also a step-by-step procedure but implemented in a programming language

Differences between Algorithms and Programs

  • Phases: Algorithms are written during the design phase, programs during the implementation phase
  • Purpose: Algorithms outline the procedure in simple English or mathematical notations; programs are coded in programming languages
  • Authors: Algorithms can be written by domain experts, while programs are typically written by programmers
  • Language: Algorithms can use any readable language or notation; programs use specific programming languages (e.g., C, C++, Java, Python)
  • Dependency: Algorithms are hardware and OS independent; programs depend on hardware and OS
  • Analysis: Algorithms are analyzed for efficiency (time and space); programs are tested for functionality

Practical Notes

  • Algorithms are designed to be easily understandable and are often written in a language familiar to both designers and programmers
  • In practice, C language syntax is often used for algorithm notation because of its wide familiarity among students and programmers