Data Structures and Algorithms Course Syllabus, Lecture notes of Algorithms and Programming

This course focuses on how data structures and algorithms impact the computational complexity of programs. Learners will be able to define data structures, explain how to use them in modeling a given problem, and design algorithms to solve a given problem. The course covers topics such as essential data structures, algorithms and algorithm strategies, and run time analysis. The required textbook is Introduction to Algorithms, Third Edition, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. The course requires a time commitment of about 5 to 7 hours per module, and participants must pass the final exam with an 80% or better.

Typology: Lecture notes

2022/2023

Uploaded on 05/11/2023

jannine
jannine 🇺🇸

4.9

(15)

239 documents

1 / 4

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Data Structures and Algorithms Prerequisite (Non-credit version)
Course Syllabus
Data Structures and Algorithms
Course Description
The focus of this course is how data structures and algorithms impact the computational
complexity (time and space) of programs. It is assumed that you have some familiarity with the
data structures of stacks, queues, linked lists, and binary search trees (BSTs). This course
additionally covers the data structures of heaps, hash tables, balanced variants of BSTs (for
example, red-black, 2-3, or splay trees), and graphs (undirected and directed, weighted and
unweighted). Algorithmic techniques covered include divide-and-conquer, dynamic
programming, and greedy. While most algorithms are analyzed in the worst or average case,
also of interest are lower bounds, and amortized and probabilistic analyses.
Specific topics covered include:
Introduction to Essential Data Structures
Implementation of Data Structures
Introduction to Algorithms and Algorithm Strategies
Introduction to Run Time Analysis and Big-O
Analysis of Algorithms
Implementation of Algorithms
Learning Outcomes
Learners completing this course will be able to:
Define data structures such as heaps, balanced trees, and hash tables.
Explain how to use a specific data structure in modeling a given problem.
Identify, construct, and clearly define a data structure that is useful for modeling a given
problem.
State some fundamental algorithms such as merge sort, topological sort, Prim’s and
Kruskal’s algorithm, and algorithmic techniques such as dynamic programming and
greedy algorithms.
Use a specific algorithmic technique in solving a given problem.
Design an algorithm to solve a given problem.
Define the notions of worst-, best-, and average-case running times of algorithms.
Analyze and compare different asymptotic running times of algorithms.
Analyze a given algorithm and determine its asymptotic running time.
Combine fundamental data structures and algorithmic techniques in building a complete
algorithmic solution to a given problem.
pf3
pf4

Partial preview of the text

Download Data Structures and Algorithms Course Syllabus and more Lecture notes Algorithms and Programming in PDF only on Docsity!

Course Syllabus

Data Structures and Algorithms

Course Description

The focus of this course is how data structures and algorithms impact the computational complexity (time and space) of programs. It is assumed that you have some familiarity with the data structures of stacks, queues, linked lists, and binary search trees (BSTs). This course additionally covers the data structures of heaps, hash tables, balanced variants of BSTs (for example, red-black, 2-3, or splay trees), and graphs (undirected and directed, weighted and unweighted). Algorithmic techniques covered include divide-and-conquer, dynamic programming, and greedy. While most algorithms are analyzed in the worst or average case, also of interest are lower bounds, and amortized and probabilistic analyses. Specific topics covered include: ● Introduction to Essential Data Structures ● Implementation of Data Structures ● Introduction to Algorithms and Algorithm Strategies ● Introduction to Run Time Analysis and Big-O ● Analysis of Algorithms ● Implementation of Algorithms

Learning Outcomes

Learners completing this course will be able to: ● Define data structures such as heaps, balanced trees, and hash tables. ● Explain how to use a specific data structure in modeling a given problem. ● Identify, construct, and clearly define a data structure that is useful for modeling a given problem. ● State some fundamental algorithms such as merge sort, topological sort, Prim’s and Kruskal’s algorithm, and algorithmic techniques such as dynamic programming and greedy algorithms. ● Use a specific algorithmic technique in solving a given problem. ● Design an algorithm to solve a given problem. ● Define the notions of worst-, best-, and average-case running times of algorithms. ● Analyze and compare different asymptotic running times of algorithms. ● Analyze a given algorithm and determine its asymptotic running time. ● Combine fundamental data structures and algorithmic techniques in building a complete algorithmic solution to a given problem.

● Create several algorithmic solutions to a given problem and choose the best one among them according to given requirements on time and space complexity.

Time Commitment Per Week

● About 5 to 7 hours per module ● 30 to 60 minutes per practice quiz ● 2 hours for Practice Final Exam ● 2 hours for Final Exam

Required Textbook

Introduction to Algorithms, Third Edition, By Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. c 2009 by Massachusetts Institute of Technology.ISBN 978- 0 - 262 - 03384 - 8. This textbook is your primary resource for this course. It is an industry standard and authoritative text on the subject. It is strongly recommended that you should read the first six sections (first 26 chapters) of this textbook page for page. While the text will work as a reference book, its value as such is will be severely limited if you are not fluent in the material covered in the previous sections and chapters. Your success on the Final Exam will be directly related to your fluency with the topics covered in this text. In addition to the required text, there are many very good resources available online. Wikipedia is one excellent recourse for technical information regarding specific data structures and algorithms and data structures and algorithms in general. Participants in this course are highly encouraged to seek out and use additional resource - both books, and online materials - as they build their mastery of the topics.

Course Completion

You will need to pass the final exam with an 80% or better, and successfully pass proctoring requirements for the final exam.

Course Outline with Assignments

Module 1: Introduction to Essential Data Structures

1.0: Overview 1.1: Getting Started 1.2: Quick Tour of Fundamental Data Structures 1.3: Visualizing Data Structures 1.4: Summary

Course Completion

Final Exam Proctoring Setup Final Exam - Proctored