Section outline

  • Welcome Letter

    Dear Students

    Welcome to the Algorithm (CSE 213)  course, I, Ferdousur Rahman Sarker will be your co-pilot in this online journey of learning.

    I care about your success in these courses. I'm glad you are here.

    Md. Ferdousur Rahman Sarker
    Lecturer, Department of Computer Science and Engineering
    Daffodil International University






    Instructor

    Ferdousur Rahman Sarker

    Lecturer, Department of CSE
    Daffodil International University

    www.frsarker.com

    Office: Room: 109, Daffodil Tower 5

    Email: ferdousur.cse0299.c@diu.edu.bd

    Phone: +8801714072380




    Course Rationale

    Algorithms deals with efficient ways to solve different mathematical and real-life problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve computational problems. This course emphasizes the relationship between algorithms and programming and explores algorithms from the programmer’s perspective for solving problems efficiently using various programming languages.




    Course Objective

    This course introduces students to the analysis and design of computer algorithms. Upon completion of this course, students will be able to do the following:

    • Analyse the asymptotic performance of algorithms.
    • Demonstrate familiarity with major algorithms and data structures.
    • Apply important algorithmic design paradigms and methods of analysis.
    • Synthesize efficient algorithms in common engineering design situations.




    Course Outcomes (CO’s)

    CO1
    Analyze and calculate time complexity and space complexity of various algorithms or any written code using mathematical formula and comparison of algorithms.
    CO2
    Generate and interpret the output of iterative and recursive codes with the analysis of the problem definition.
    CO3
    Identify which algorithm listed under which algorithmic paradigm. Compare among various algorithms/implemented codes and choose the efficient one.
    CO4
    Break down and describe the simulation of various algorithms for different input values.
    CO5
    Design and apply appropriate algorithms to solve real-life problems. 



    Text Books

    1.
    Introduction to Algorithms
    by Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, Clifford Stein
    2.
    Algorithms (4th Edition)
    by Robert Sedgewick and Kevin Wayne
    3.
    Algorithm Design
    by Jon Kleinberg, Eva Tardos



    Assessment Plan (Theory)

    Final Exam
    40
    Mid-term Exam
    25
    Avg. of 3 Class Tests
    15
    Attendance
    07
    Assignment
    05
    Presentation
    08
    Total
    100


    • Google Classroom Code (Section O5): resb64t
  • WEEK 1 Preparing Background





    • Topics of Discussion:

      • Introduction and importance of Algorithm and its application
      • Function and Recursion, Euclid’s Greatest Common Divisor(GCD) Algorithm


      Expected Learning Outcomes:

      • Gain knowledge about the importance of algorithm
      • Perform exercise on function and recursion function



    • Week 1 - Class Material & Recordings

  • WEEK 2 Notation and Complexity Analysis





    • Topics of Discussion:

      • Introduction with the Asymptotic Notation 
      • Discussion on the Complexity of Algorithms
      • Importance of Complexity for designing an Algorithm


      Expected Learning Outcomes:

      • Gain knowledge about the importance of algorithm
      • Find out the Asymptotic Notation from an Algorithm
      • Find out the complexity from any code or algorithm


      Resources of Learning:


  • WEEK 3 Searching and Sorting Algorithm





    • Topics of Discussion:

      • Introduction to brute force techniques.
      • Introduction to the searching Algorithm.
      • Introduction to the sorting Algorithm
      • Quiz #01


      Expected Learning Outcomes:

      • Knowledge about the Linear Search algorithm and its complexity
      • Knowledge about the Insertion sort algorithm and its complexity
      • Knowledge about the Bubble sort algorithm and its complexity
      • Knowledge about the Selection sort algorithm and its complexity
      • Exercise the Sorting and searching Algorithm with some additional problems.

  • WEEK 4 Searching and Sorting Algorithm





    • Topics of Discussion:

      • Introduction to Divide and Conquer Approach.
      • Introduction to the searching Algorithm based on Divide and Conquer Approach. 
      • Introduction to the Sorting Algorithm based on Divide and Conquer Approach. 


      Expected Learning Outcomes:

      • Knowledge about the Binary Search algorithm and its complexity
      • Knowledge about the Merge sort algorithm and its complexity
      • Knowledge about the Quicksort algorithm and its complexity
      • Exercise the Sorting and searching Algorithm with some additional problems.



  • WEEK 5 Introduction to Greedy Approach





    • Topics of Discussion:

      • Introduction to Greedy Approach
      • Discussion on Coin Change Problem
      • Discussion on Bin packing Problem
      • Discussion on Knapsack Problem
      • Discussion on Hoffman coding
      • Assignment-01


      Expected Learning Outcomes:

      • Solve the Coin Change Problem based on Greedy Method
      • Solve the Knapsack Problem based on Greedy Method
      • Solve the Hoffman coding based on Greedy Method
      • Solve the  Bin packing Problem based on Greedy Method
      • Exercise the Sorting Algorithm with some additional problems in the Lab.



  • WEEK 6 Introduction to Dynamic Programming





    • Topics of Discussion:

      • Introduction to Dynamic Programming (DP)
      • Discussion on Fibonacci Numbers Problem
      • Discussion on Coin Change Problem (DP)
      • Discussion on Knapsack Problem (0/1)
      • Quiz #02


      Expected Learning Outcomes:

      • Solve the Coin Change Problem based on DP
      • Solve the Knapsack Problem based on DP
      • Solve the Fibonacci Numbers Problem based on DP
      • Exercise the Bin-packing Algorithm with some additional problems in the Lab.


  • Highlighted
    WEEK 7 Mid-Term Examination





  • WEEK 8 Shortest Path Algorithm





  • WEEK 9 Introduction to Graph And Graph Traversal





    • Topics of Discussion:

      • Introduction to Graph
      • Graph Representation
      • Discussion on Graph Traversal


      Expected Learning Outcomes:

      • Solve the Breadth-First Search (BFS) algorithm
      • Solve the Depth First Search (DFS) algorithm

  • WEEK 10 Knapsack Problem





    • Topics of Discussion:

      • Knapsack Problem
      • 0/1 Knapsack Problem
      • Greedy Algorithm
      • Dynamic Programming on 0/1 Knapsack Problem


      Expected Learning Outcomes:

      • Understanding the 0/1 Knapsack & Frictional Knapsack
      • Applying Greedy Algorithm on Knapsack Problem
      • Problems on Greedy Algorithm on 0/1 Knapsack
      • Optimal Solution to 0/1 Knapsack Problem using Dynamic Programming


  • WEEK 13 Review & Revisit all memories






  • WEEK 14 Final Examination