To operate the Blended Learning Center(BLC) at optimal level, maintenance will be performed every day at 8:30 AM and at 5:00 PM regularly which can take up to 30 minutes. Please consider scheduling your activity in the BLC platform accordingly.
Topic outline
- Welcome to Algorithms & Algorithms Lab
Welcome to Algorithms & Algorithms Lab
"For me, great algorithms are the poetry of computation"
-- Francis Sullivan
Dear Students
Welcome to the Algorithms (CSE 214) & Algorithms Lab (CSE 215) courses. Algorithms are used in every part of computer science. They form the field's backbone. In computer science, an algorithm gives the computer a specific set of instructions,
which allows the computer to do everything, be it running a calculator or running a rocket. I am Zabirul Islam 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. Zabirul Islam
Lecturer, Department of Computer Science and Engineering
Daffodil International University
Welcome Note from Instructor
Instructor
Md. Zabirul Islam
Lecturer, Department of CSE
Daffodil International University
Office: Room: 112, Daffodil Tower 5
Email: zabirul.cse@diu.edu.bd
Phone: +8801521307471
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.
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.
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.
1.
Introduction to Algorithms, (3rd Edition, MIT Press, 2009) ISBN: 9780262033848.
by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
2.
Algorithms (4th Edition)
by Robert Sedgewick and Kevin Wayne
3.
Algorithm Design
by Jon Kleinberg, Eva Tardos
4.
Data Structures And Algorithms Made Easy In JAVA
by Narasimha Karumanchi
-
Quick Guide
Weeks
Assessments
-
Lesson Objective:
- To appreciate the role of algorithm in problem solving and importance of complexity analysis for algorithms
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 2
Notation and Complexity Analysis
Lesson Objective:
- To appreciate the role of algorithm in problem solving and importance of complexity analysis for algorithms
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
-
week 3
Searching and Sorting Algorithm
Lesson Objective:
- To introduce with brute force type problems in searching & sorting domains
Topics of Discussion:
- Introduction to brute force techniques.
- Introduction to the searching Algorithm.
- Introduction to the sorting Algorithm
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
Lesson Objective:
- To teach the main strategy of divide & conquer and the examples/ problems those are typically solved by this strategy and the complexity analysis of those problems
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
- Knowledge about the Selection sort algorithm and its complexity
- Exercise the Sorting and searching Algorithm with some additional problems.
-
week 5
Introduction to Greedy Approach
Lesson Objective:
- To teach the basic methodology of greedy algorithm and the examples/ problems those are typically solved by this methodology and the complexity analysis of those problems
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
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
Lesson Objective:
- To teach the strategy of dynamic programming and the examples/ problems those are typically solved by this strategy and the complexity analysis of those problems
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.
Class Video Resources
Lesson 1 (K)
Lesson 1 (L)
Lesson 2 (K)
Lesson 2 (L)
Reading Materials
Lesson 1 Slide
Additional Video Resources
Lesson 1
Interactive Contents
Dynamic Algorithm
Quiz (Dynamic Algorithm)
You are expected to give at least one post under each discussion topic
-
week 7
Mid-Term Examination
Dear Student
Please help me improve the course by answering the following to provide feedback about the course. Please try to make your answer as candid and specific as possible. This will help me to determine what steps can be taken to make your learning more effective.
You will be asked to complete a different survey at the end of the semester. that will be used for the evaluation of teaching and contents.
The survey is anonymous and you can be sure that your privacy will be maintained.
Please complete the survey by 3 July 2021 within 5 pm
.
Thank you.
Midterm Exam Syllabus
1. Algorithm Analysis.
2. Searching and Sorting Algorithms.
3. Greedy Algorithm.
Midterm Question CSE214 (K) Assignment
Restricted Not available unless: You belong to CSE214-K
CSE214 Midterm Exam Question paper
1. Submit your answer in time. Otherwise, there will be a penalty for every single minute.
2. For the answer script, use a sample answer template.
Midterm Question CSE214 (L) Assignment
Restricted Not available unless: You belong to CSE214-L
CSE214 Midterm Exam Question paper
1. Submit your answer in time. Otherwise, there will be a penalty for every single minute.
2. For the answer script, use a sample answer template.
-
week 8 Introduction to Graph And Graph Traversal
Lesson Objective:
- To teach how graphs and trees play an important role in solving many of our real life problems and writing corresponding algorithms to solve the problems
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 9 Shortest Path Algorithm
Lesson Objective:
- To teach how graphs and trees play an important role in solving many of our real life problems and writing corresponding algorithms to solve the problems
Topics of Discussion:
- Discussion on Single Source Shortest Path
- Discussion on All Pair Shortest Path Algorithm
Expected Learning Outcomes:
- Single-Source Shortest Path(SSSP) by Dijkstra’s Algorithm
- All Pair Shortest Path Algorithm by Floyd–Warshall algorithm
Class Video Resources
Lesson 1 (K)
Lesson 1 (L)
Lesson 2 (K)
Lesson 2 (L)
Reading Materials
Lesson 1 Slide
Additional Video Resources
Lesson 1
Interactive Contents
BFS/DFS
BFS/DFS (Quiz
)
You are expected to give at least one post under each discussion topic
-
week 10
Graph and Dynamic Problem
Lesson Objective:
- To teach the strategy of dynamic programming and the examples/ problems those are typically solved by this strategy and the complexity analysis of those problems.
- To teach the basic methodology of greedy algorithm and the examples/ problems those are typically solved by this methodology and the complexity analysis of those problems
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
Class Video Resources
Lesson 1 (K) [Your class video unfortunately corrupted,Here is another section video]
Lesson 1 (L)
Lesson 2 (K)
Lesson 2 (L)
Reading Materials
Lesson 1 Slide
Additional Video Resources
Lesson 1
Interactive Contents
Graph
Graph (Quiz
)
You are expected to give at least one post under each discussion topic
-
week 11
Review & Revisit all memories
-
week 12
Final Examination
Final Exam
All topics of Mid Term [From Week - 1 to Week - 5]
Dynamic Programing:
Introduction, Coin Change, 0/1 Knapsack, LCS
Graph Application
Graph Introduction and Representation,
BFS-DFS, Applications of DFS,
Minimum Spanning Tree (MST): Kruskal’s and Prim’s,
Dijkstra’s Algorithm
Dear Student
Please help me improve the course by answering the following to provide feedback about the course. Please try to make your answer as candid and specific as possible. This will help me to determine what steps can be taken to make your learning more effective.
You will be asked to complete a different survey at the end of the semester. that will be used for the evaluation of teaching and contents.
The survey is anonymous and you can be sure that your privacy will be maintained.
Please complete the survey by 25 August 2021 within 5 pm
.
Thank you.
Final Question CSE214 (K) Assignment
Restricted Not available unless: You belong to CSE214-K
CSE214 Final Exam Question paper
1. Submit your answer in time. Otherwise, there will be a penalty for every single minute.
2. For the answer script, use a sample answer template.
Final Question CSE214 (L) Assignment
Restricted Not available unless: You belong to CSE214-L
CSE214 Final Exam Question paper
1. Submit your answer in time. Otherwise, there will be a penalty for every single minute.
2. For the answer script, use a sample answer template.
-
Topics:
1. Algorithm Analysis.
2. Linear and Binary Search.
3. All Sorting Algorithm.
-
Online problem solving assignment (L)
Restricted Not available unless: You belong to CSE214-L
Assignment Topics:
1. Greedy Algorithm
2. Dynamic programming
3. Graph Algorithm
Submit your assignment with a video presentation like (lab task) and also submit the question of the online problem with solution here. You can also provide a drive link after uploading all the necessary files.
Note: Online problems must be unique for everyone.
Online problem solving assignment (K)
Restricted Not available unless: You belong to CSE214-K
Assignment Topics:
1. Greedy Algorithm
2. Dynamic programming
3. Graph Algorithm
Submit your assignment with a video presentation like (lab task) and also submit the question of the online problem with solution here. You can also provide a drive link after uploading all the necessary files.
Note: Online problems must be unique for everyone.
-
Submit your video presentation (k) Assignment
Restricted Not available unless: You belong to CSE214-K
Make a video presentation and slide on the below topics using the following way and submit it before the deadline:
Topics no = Last 2 digits of your ID % 10
Topics no = 0 [Merge sort]
Topics no = 1 [Quick sort]
Topics no = 2 [Insertion sort]
Topics no = 3 [Selection sort ]
Topics no = 4 [Coin Exchange Problem + Bin Packing [just 1 example]]
Topics no = 5 [Fractional Knapsack]
Topics no = 6 [0-1 Knapsack]
Topics no = 7 [BFS]
Topics no = 8 [DFS]
Topics no = 9 [Binary Search]
[Note: Also explain coding implementation in this presentation]
Submit your video presentation (L) Assignment
Restricted Not available unless: You belong to CSE214-L
Make a video presentation and slide on the below topics using the following way and submit it before the deadline:
Topics no = Last 2 digits of your ID % 10
Topics no = 0 [Merge sort]
Topics no = 1 [Quick sort]
Topics no = 2 [Insertion sort]
Topics no = 3 [Selection sort ]
Topics no = 4 [Coin Exchange Problem + Bin Packing[just 1 example]]
Topics no = 5 [Fractional Knapsack]
Topics no = 6 [0-1 Knapsack]
Topics no = 7 [BFS]
Topics no = 8 [DFS]
Topics no = 9 [Binary Search]
[Note: Also explain coding implementation in this presentation]
- Discussion & Interactive content
Discussion & Interactive content
You are expected to give at least one post under each discussion topic
- Topic 18
- Topic 19