Section outline

    • Welcome to Algorithm and Algorithm Lab Course.............

    • Header

    • Instructor              : Tanzina Afroz Rimi


      Destination            : Lecturer
      Office                     : Room #103 (1st floor), Daffodil Tower-5, Daffodil International University, 102,                                                              Subhanbagh, Dhanmondi, Dhaka-1207
      Office Hour            : Sunday (14.00/16.00), Wednesday(14.00/16.00) or by appointment
      Contact Number    : +8801716405475
      E-mail                     : tanzinaafroz.cse@diu.edubd
      Appointment in the Google Calendar: Click here

    • 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. 


    • Grading Scheme

      Theory Class                                                                                                Lab Class
      Attendance: 7%                                                                                           Attendance: 10%                        
      Class Tests/Quizzes: 15%                                                                           Lab performance Test: 40%      
      Assignment: 5%                                                                                           Lab problem Solving: 25%
      Presentation (using video/ppt): 8%                                                          Lab Submission: 25%
      Midterm Exam: 25%
      Final Exam: 40%

    • Text Book:
      a.    Introduction to Algorithms, (3rd Edition, MIT Press, 2009) ISBN: 9780262033848. Authors:                     Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein

      Course Outline

      Reference Books:
      a. Algorithms (4th Edition)
              Author: Robert Sedgewick and Kevin Wayne
      b. Algorithm Design
              Author: Jon Kleinberg, Eva Tardos
      c. Data Structures And Algorithms Made Easy In JAVA Author: Narasimha Karumanchi

      Useful Web Links:

      Additional Support for Students

      ·         Student Portal: http://studentportal.diu.edu.bd/

      ·         Academic Guidelines https://daffodilvarsity.edu.bd/article/academic-guidelines

      ·         Rules and Regulations of DIU https://daffodilvarsity.edu.bd/article/rules-and-regulation

      ·         Career Development Center: https://cdc.daffodilvarsity.edu.bd/

      ·         For general queries: http://daffodilvarsity.edu.bd/


    • Please let me know what do you want to learn from this course

    • Google Classroom Code: 

    • How to submit code using Pastebin


    • What's app group:

      O-9 section

      O-11 Section

    • Calendar


    • Calendar


    • Topics of discussion

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

      Expected Learning Outcome

      1. Gain knowledge about the importance of algorithm
      2. Perform exercise on function and recursion function


      Week-01 Plan
      week planTopicsMaterials                 
      Week-01 Lecture-01          
      • Video on Lecture 
      • PPT on Lecture
      Introduction, Motivation
      Course logistics

      Week-01 Lecture-02
      • Video on Lecture 
      • PPT on Lecture

      Function and Recursion
       Euclid’s Greatest Common
       Divisor(GCD) Algorithm       

       Week-01 Lab
      • Video on Lab
      • Manual on Lab

      A decision on structures and loop,  
      Array, String, Function, Recursion


    • Discuss on Week-01 content if you have any problem and confusion. 

      Conditional Statement 

      Loop

      Break & continue

      Array

    • assign icon
      String/Function Assignment
      Not available unless: You belong to CSE_214_O_11
    • Topics of discussion

      1. Introduction with the Asymptotic Notation 
      2. Discussion on the Complexity of Algorithms
      3.  Importance of Complexity for designing an Algorithm

      Expected Learning Outcome

      1. Gain knowledge about the importance of algorithm
      2. Find out the Asymptotic Notation from an Algorithm
      3. Find out the complexity from any code or algorithm


      Week-02 Plan
      week planTopicsMaterials
       Week-02 Lecture-01
      • Video on Lecture 
      • PPT on Lecture
      Asymptotic Notation

      Week-02 Lecture-02
      • Video on Lecture 
      • PPT on Lecture

       Complexity Analysis

       Week-02 Lab
      • Video on Lab
      • Manual on Lab

      problems with Array, String,
       Function, Recursion


    • Discuss on Week-02 content if you have any problem and confusion. 

    • Time Complexity


    • assign icon
      String/Function -O-9 Assignment
      Not available unless: You belong to Section_O_9
    • Topics of discussion

      1. Introduction to brute force techniques.
      2. Introduction to the searching Algorithm.
      3.  Introduction to the sorting Algorithm
      4. Quiz #01

      Expected Learning Outcome

      1. Knowledge about the Linear Search algorithm and its complexity
      2. Knowledge about the Insertion sort algorithm and its complexity
      3. Knowledge about the Bubble sort algorithm and its complexity
      4.  Knowledge about the Selection sort algorithm and its complexity
      5.  Exercise the Sorting and searching Algorithm with some additional problems.

      Week-03 Plan
      week planTopicsMaterials
       Week-03 Lecture-01                 
      • Video on Lecture 
      • PPT on Lecture

      Brute Force algorithm                          
      Linear Search
      Insertion Sort

      Week-03 Lecture-02
      • Video on Lecture 
      • PPT on Lecture

      Bubble Sort,
      Selection Sort

       Week-03 Lab
      • Video on Lab
      • Manual on Lab

      Linear Search


    • Discuss on Week-02 content if you have any problem and confusion. 

    • Linear Search


    • Selection Sort



    • Insertion Sort


    • Quiz Syllabus:

      • Function and Recursion
      • Euclid’s Greatest Common Divisor(GCD) Algorithm
      • Asymptotic Notation 
      • Complexity Analysis
      • Searching: Linear Search and brute force techniques.
      • Sorting: Insertion Sort

    • assign icon
      Linear Search & Insertion Sort Assignment
      Not available unless: You belong to CSE_214_O_11
    • assign icon
      Linear Search & Insertion Sort - O9 Assignment
      Not available unless: You belong to Section_O_9
    • assign icon
      Bubble sort & Selection Sort Assignment
      Not available unless: You belong to CSE_214_O_11
    • assign icon
      Bubble sort & Selection Sort Assignment
      Not available unless: You belong to Section_O_9
    • Topics of discussion

      1. Introduction to Divide and Conquer Approach.
      2.  Introduction to the searching Algorithm based on Divide and Conquer Approach. 
      3. Introduction to the Sorting Algorithm based on Divide and Conquer Approach. 

      Expected Learning Outcome

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


      Week-04 Plan
      week planTopicsMaterials
       Week-04 Lecture-01                                  
      • Video on Lecture 
      • PPT on Lecture


      Binary Search
      Merge Sort
      Divide and Conquer Approach                    

      Video Link
      PPT link

      Week-04 Lecture-02
      • Video on Lecture 
      • PPT on Lecture

      Quick Sort

      Video Link
      PPT link

       Week-04 Lab
      • Video on Lab
      • Manual on Lab


      Bubble Sort
      Insertion Sort
      Binary Search

       Video Link  
      Manual Link


    • Merge Sort

       

    • Binary Search


    • Discuss on Week-04 content if you have any problem and confusion. 

    • assign icon
      Recursion Assignment
      Not available unless: You belong to CSE_214_O_11
    • Topics of discussion

      1. Introduction to Greedy Approach
      2. Discussion on Coin Change Problem
      3. Discussion on Bin packing Problem
      4. Discussion on Knapsack Problem
      5. Discussion on Hoffman coding
      6. Assignment-01

      Expected Learning Outcome

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


      Week-05 Plan
      week planTopicsMaterials
       Week-05 Lecture-01          
      • Video on Lecture 
      • PPT on Lecture

      Coin Change (Greedy Method)                      
      Bin-Packing Problem

      Week-05 Lecture-02
      • Video on Lecture 
      • PPT on Lecture

      Greedy Partial Knapsack
      Greedy Huffman Coding

       Week-05 Lab
      • Video on Lab
      • Manual on Lab

      Selection Sort
      Merge Sort
      Quick Sort


    • assign icon
      Lab implementation Assignment
      Not available unless: You belong to CSE_214_O_11
    • assign icon
      Lab implementation Assignment
      Not available unless: You belong to Section_O_9
    • Bin packing 


    • Submit Your Assignment on...

    • Discuss on Week-05 content if you have any problem and confusion. 

    • Topics of discussion

      1.  Introduction to Dynamic Programming (DP)
      2. Discussion on Fibonacci Numbers Problem
      3. Discussion on Coin Change Problem (DP)
      4. Discussion on Knapsack Problem (0/1)
      5. Quiz #02


      Expected Learning Outcome

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

      Week-06 Plan
      week planTopicsMaterials
       Week-06 Lecture-01                 
      • Video on Lecture 
      • PPT on Lecture

      Dynamic Programming                          
      Fibonacci Numbers Problem

      Week-06 Lecture-02
      • Video on Lecture 
      • PPT on Lecture

      DP: Coin Change 
      DP: 0/1 Knapsack

       Week-06 Lab
      • Video on Lab
      • Manual on Lab

      Bin Packing
      Lab performance-01


    • Quiz Syllabus:

      • Binary Search
      • Bubble Sort
      • Selection Sort
      • Merge Sort
      • Quick Sort
      • Coin Change (Greedy Based)
      • Bin-Packing
      • Partial Knapsack

    • Discuss on Week-06 content if you have any problem and confusion. 

    • Topics of discussion

      1. Introduction to Dynamic Programming (DP)
      2. Discussion on longest Common Subsequence and Edit Distance Problem
      3. Discussion on longest Increasing Subsequence (DP)

      Expected Learning Outcome

      1. Solve the Longest Common Subsequence (LCS) Problem based on DP
      2. Solve the Longest Increasing Subsequence (LIS)
      3. Exercise the Bin-packing, LCS, LIS Algorithm with some additional problems in the Lab.


      Week-08 Plan
      week planTopicsMaterials
       Week-08 Lecture-01                 
      • Video on Lecture 
      • PPT on Lecture

      Longest Common Subsequence (LCS)                         

      Week-08 Lecture-02
      • Video on Lecture 
      • PPT on Lecture

      Longest Increasing Subsequence(LIS)

       Week-08 Lab
      • Video on Lab
      • Manual on Lab

      Bin Packing,  LCS, LIS


    • Discuss on Week-08 content if you have any problem and confusion. 

    • Topics of discussion

      1. Introduction to Graph
      2. Graph Representation
      3. Discussion on Graph Traversal
      4. Assignment-02


      Expected Learning Outcome

      1. Solve the Breadth-First Search (BFS) algorithm
      2. Solve the Depth First Search (DFS) algorithm


      Week-09 Plan
      week planTopicsMaterials
       Week-09 Lecture-01                 
      • Video on Lecture 
      • PPT on Lecture

      Graph and Graph Representation                         

      Week-09 Lecture-02
      • Video on Lecture 
      • PPT on Lecture

      BFS, DFS

       Week-09 Lab
      • Video on Lab
      • Manual on Lab

      DFS


    • Discuss on Week-09 content if you have any problem and confusion. 

    • assign icon
      Coin-change & knapsack Assignment
      Not available unless: You belong to CSE_214_O_11
    • Topics of discussion

      1. DFS Application
      2. Quiz #03


      Expected Learning Outcome

      1. Full Tree Traversal
      2. Cycle Finding
      3. Component FInding
      4. Topological Sort (TS)
      5. Strongly Connected Component (SCC)



      Week-10 Plan
      week planTopicsMaterials
       Week-10 Lecture-01                 
      • Video on Lecture 
      • PPT on Lecture

      Full Tree Traversal
      Cycle Finding
      Component Finding                         


      Week-10 Lecture-02
      • Video on Lecture 
      • PPT on Lecture

      Ts, SCC

       Week-10 Lab
      • Video on Lab
      • Manual on Lab

      DFS, MST
      Lab performance-02


    • Quiz Syllabus:

      • DP: Coin Change
      • DP: 0/1 Knapsack
      • Dp: LCS
      • DP: LIS
      • Graph representation
      • BFS
      • DFS

    • Discuss on Week-10 content if you have any problem and confusion. 

    • Topics of discussion

      1. Discussion on Minimum Spanning Tree (MST)
      2. Discussion on Single Source Shortest Path

      Expected Learning Outcome

      1. Solve MST using Kruskal’s Algorithm
      2. Solve MST using Prim’s Algorithm
      3. Single-Source Shortest Path(SSSP) by Dijkstra’s Algorithm


      Week-11 Plan
      week planTopicsMaterials
       Week-11 Lecture-01                 
      • Video on Lecture 
      • PPT on Lecture

      MST: Kruskal’s Algorithm          
      MST: Prim’s Algorithm
                      


      Week-11 Lecture-02
      • Video on Lecture 
      • PPT on Lecture

      SSSP: Dijkstra’s Algorithm

       Week-11 Lab
      • Video on Lab
      • Manual on Lab

       MST, Dijkstra’s Algorithm


    • Discuss on Week-11 content if you have any problem and confusion. 

    • Topics of discussion

      1. Discussion on All Pair Shortest Path Algorithm

      Expected Learning Outcome

      1. Solve SSSP using Bellmen Ford Algorithm
      2. All Pairs Shortest Path: Floyd–Warshall algorithm


      Week-12 Plan
      week planTopicsMaterials
       Week-12 Lecture-01                 
      • Video on Lecture 
      • PPT on Lecture

      SSSP: Bellman-Ford Algorithm     
                      


      Week-12 Lecture-02
      • Video on Lecture 
      • PPT on Lecture

      Floyd–Warshall algorithm

       Week-12 Lab
      • Video on Lab
      • Manual on Lab

       Floyd–Warshall algorithm


    • Lab Project Submission Link

    • Discuss on Week-12 content if you have any problem and confusion. 

    • Presentation Slide/Videos Submission Link

      Lab Final.


    • Discuss on Week-13 on Final Presentation and Lab Final.



    • Final

    • Discuss on Final Exam content if you have any confession or question

    • End of the Semester.