MSIT 5214 - Algorithms: Learning Materials
Get Ready For Your College Courses
To best prepare for your future studies, please review the below preparation resources. We encourage you to use the time before starting your first term, to get a taste of the topics of your upcoming courses. There’s no better time to start than now! Good luck with your studies!
Learn Principles of Databases
Course Overview
The need for efficient algorithms arises in nearly every area of computer science. But the type of problem to be solved, the notion of what algorithms are "efficient,'' and even the model of computation can vary widely from area to area. In this second class in algorithms, we will survey many of the techniques that apply broadly in the design of efficient algorithms and study their application in a wide range of application domains and computational models.
The goal is for the class to be broad rather than deep. Our plan is to touch upon the following areas. This is a tentative list of topics that might be covered in the class; we will select material adaptively based on the background, interests, and rate of progress of the students.
Preparation Resources
- Erickston, J. (2019). Algorithms (1st ed.). CC BY-NC-SA. 4.0. http://jeffe.cs.illinois.edu/teaching/algorithms/.
- Sedgwick, R. & Wayne, K. (2019). Algorithms, (4th ed.). Princeton University. https://algs4.cs.princeton.edu/home/
MSIT 5214 Algorithms - Course Schedule and Topics:
This course will cover the following topics in eight learning sessions, with one Unit per week.
Week 1: Unit 1 - The Role of Algorithms in Computing
Week 2: Unit 2 - Growth of Functions and Asymptotic Analysis of Algorithms
Week 3: Unit 3 - Divide and Conquer
Week 4: Unit 4 - Analysis of Sorting Algorithms
Week 5: Unit 5 - Data Structures and Algorithms
Week 6: Unit 6 - Hash Tables and their Applications
Week 7: Unit 7 - Graphs and Algorithms
Week 8: Unit 8 - String Matching Algorithms