Preview this course in the non-credit experience today!
Start working toward program admission and requirements right away. Work you complete in the non-credit experience will transfer to the for-credit experience when you upgrade and pay tuition. See How It Works for details.
Course Type: Pathway | Breadth
Specialization: Advanced Data Structures, RSA and Quantum Algorithms
Instructor: Dr. Sriram Sankaranarayanan, Professor of Computer Science
Prior knowledge needed: You must understand all concepts covered in Dr. Sankaranarayanan's non-credit Algorithms for Searching, Sorting, and Indexing and Trees and Graphs: Basics courses to succeed in this course. We highly recommend successfully completing those two courses in the non-credit experience before starting this course; they are a great option to refresh your skills and ensure you're ready. Note that you cannot apply credit from either of these courses toward MS-CS graduation requirements. Completion of previous courses. Calculus, probability theory: distributions, expectations and moments. Some programming experience with Python.
Mathematical Background
We expect that the student is comfortable with basic mathematics at the level of a US College first year STEM student. This includes basic notions such as
-
Sets and Functions: Properties of sets, definition and properties of functions.
-
Logarithms and Exponentials: and their properties.
-
Basic series summations: arithmetic and geometric series summations.
-
Probability theory: basic definition of probability, independence of events, probability distributions and expectations.
CLRS has a helpful appendix but a student unfamiliar with these concepts can find numerous high quality explanations online.
Programming Background
The course involves solving programming assignments in Python. You must be comfortable with python programming.
-
Basic control structures in python: conditional branches, for loops and recursion.
-
Functions: defining and calling functions, and recursion.
-
In-built data structures: Lists and Dictionaries
-
Classes
Our use of python will get more sophisticated as the course progresses to accommodate some learning of python.
Course Decription
This course introduces number-theory based cryptography, basics of quantum algorithms and advanced data-structures.
Learning Outcomes
Course Grading Policy
Assignment |
Percentage of Grade |
---|---|
Graded Assignments |
33% (11 assignments; 3% each) |
Programming Assignments |
52% (4 assignments; 13% each) |
Final Exam |
15% |
Course Content
2022 Coursera Innovation Award Winner. Learn more.