We may earn an affiliate commission when you visit our partners.
Course image
Course image
Coursera logo

Advanced Data Structures, RSA and Quantum Algorithms

Sriram Sankaranarayanan

Introduces number-theory based cryptography, basics of quantum algorithms and advanced data-structures.

Read more

Introduces number-theory based cryptography, basics of quantum algorithms and advanced data-structures.

This course can be taken for academic credit as part of CU Boulder’s Masters of Science in Computer Science (MS-CS) degrees offered on the Coursera platform. This fully accredited graduate degree offer targeted courses, short 8-week sessions, and pay-as-you-go tuition. Admission is based on performance in three preliminary courses, not academic history. CU degrees on Coursera are ideal for recent graduates or working professionals. Learn more:

MS in Computer Science: https://coursera.org/degrees/ms-computer-science-boulder

Enroll now

What's inside

Syllabus

RSA Public Key Cryptography and Basics of Quantum Computing
This module covers a brief recap of elementary number theory, GCD, Euclid's algorithm, Bezout coefficients and presents the RSA public key cryptosystem. It then shows how the security of RSA relies on the supposed hardness of the factoring problem for numbers that are semi-primes
Read more
Quantum Computing: Qubits, Quantum Gates and Grover's Search Algorithm
This module covers the basics of quantum computing with an introduction to qubits, the concept of a superposition, the effect of measuring a qubit, elementary quantum gates, direct/tensor products, entanglements, quantum parallelism and ends with a presentation of Grover's search algorithm. We will have a brief introduction to IBM qiskit package for exploring quantum circuits.
Quantum Computing: Phase Estimation and Shor's Algorithm
We will describe Shor's algorithm and as part of Shor's algorithm show how Quantum Fourier Transform (a very useful operation for quantum systems) is computed. We will show how the power of quantum parallelism combines with the divide-and-conquer paradigm for algorithm design to yield exponential speedups for computing Quantum Fourier Transforms.
B-Trees and Tries
We will learn two important and interesting data structures to round off this course. The first data structure will be the widely used B-Tree data structure which is used in indexing and storing large amounts of data on a disk. Next, we will study algorithms on strings esp. string search algorithm. We will study the suffix trie data structure: a very useful data structure for fast searching over strings.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches in-depth understanding of cryptography and advanced data structures suitable for roles in system security engineering and algorithm design
Introduces quantum computing and demonstrates its potential to solve complex problems
Covers advanced topics in computer science, expanding capabilities in research or software development
Students without some prior background knowledge of cryptography, algorithms, and quantum theory may require extra effort to keep up
Understanding of the concepts and algorithms taught in this course requires significant intellectual rigor
Strongly recommended for students with a solid background in data structures, algorithms and number theory

Save this course

Save Advanced Data Structures, RSA and Quantum Algorithms to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Advanced Data Structures, RSA and Quantum Algorithms with these activities:
Review and practice foundational coding principles before starting on quantum algorithms.
Improved performance in the course by taking time in advance to review basic programming principles.
Browse courses on Coding
Show steps
  • Review basic programming concepts
  • Practice writing simple programs
  • Review data structures
Review mathematics prior to introduction of Quantum Fourier Transforms (QFT)
Refresher on Mathematics in advance of QFT can solidify a foundation in the materials and provide extra confidence for dealing with new, challenging materials.
Show steps
  • Review complex numbers and their operations
  • Practice matrix multiplication
Follow a tutorial on RSA Encryption
Enhance understanding of how RSA encryption works by completing tutorial on the topic.
Show steps
  • Find a recommended tutorial on RSA
  • Follow the tutorial
  • Test your understanding through in-tutorial quizzes
Five other activities
Expand to see all activities and additional details
Show all eight activities
Practice number theory with the Euclidean Algorithm
Further solidify understanding of the Euclidean Algorithm through repetitive drills to build familiarity with the concept.
Browse courses on Number Theory
Show steps
  • Identify two numbers to find GCD
  • Work through the Euclidean Algorithm
Review 'Quantum Computing for Computer Scientists' by Nielsen and Chuang
Expand knowledge of quantum computing and delve into advanced concepts through reviewing a recommended text.
Show steps
  • Obtain a copy of the book
  • Read the book
  • Take notes and highlight key concepts
  • Complete the exercises
Attend a workshop on Quantum Computing
Gain a deeper understanding of the basics and advanced concepts of quantum computing through an interactive workshop.
Browse courses on Quantum Computing
Show steps
  • Find a reputable workshop
  • Register for the workshop
  • Attend the workshop
  • Take notes and ask questions
Create a presentation on Grover's Search Algorithm
Solidify knowledge of Grover's Search Algorithm and improve communication skills through creating a presentation.
Show steps
  • Research Grover's Search Algorithm
  • Develop an outline for the presentation
  • Create engaging slides
  • Rehearse the presentation
  • Deliver the presentation
Contribute to the Qiskit community
Enhance practical knowledge of Quantum Computing and contribute to the broader community through open source contributions.
Browse courses on Qiskit
Show steps
  • Identify an area of Qiskit to contribute to
  • Fork the Qiskit repository
  • Make your changes
  • Submit a pull request
  • Collaborate with other contributors

Career center

Learners who complete Advanced Data Structures, RSA and Quantum Algorithms will develop knowledge and skills that may be useful to these careers:
Kvantuminformatikus
A Kvantuminformatikusok a kvantumfizika és a számítástechnika különböző aspektusait használják fel kvantumalkalmazások létrehozására. Ez a tanfolyam a kvantumszámítógépek alapjait és az olyan algoritmusokat tárgyalja, mint a Grover-keresés és a Shor-algoritmus, amelyek alapvető fontosságúak a kvantuminformatika területén.
Kvantumszámítógép-programozó
A Kvantumszámítógép-programozók szoftvereket fejlesztenek kvantumszámítógépekhez. Ez a tanfolyam segíthet a kvantumszámítógépek alapjainak és az olyan algoritmusoknak, mint a Shor-algoritmus, a megértésének megalapozásában, amelyek létfontosságúak a kvantumszámítógépek programozásához.
Kriptográfiai mérnök
A Kriptográfiai mérnökök biztonságos kommunikációs rendszereket és kódolási technológiákat terveznek, fejlesztenek, telepítenek és karbantartanak. Ez a tanfolyam segíthet az olyan alapvető kriptográfiai ismeretek megalapozásában, mint az RSA és a kvantumszámítógépek, amelyek létfontosságúak a biztonságos és megbízható rendszerek tervezéséhez.
Mesterséges intelligencia kutató
A Mesterséges intelligencia kutatók új mesterséges intelligencia elméleteket és technológiákat kutatnak és fejlesztenek. Ez a tanfolyam segíthet az olyan alapvető számítógép-tudományi ismeretek megalapozásában, mint az adatstruktúrák és algoritmusok, amelyek létfontosságúak a mesterséges intelligencia területén végzett kutatásokhoz.
Kiberbiztonsági elemző
A Kiberbiztonsági elemzők számítógépes rendszereket és hálózatokat vizsgálnak, hogy azonosítsák és megelőzzék a biztonsági fenyegetéseket. Ez a tanfolyam segíthet az olyan alapvető kriptográfiai ismeretek megalapozásában, mint az RSA, amelyek létfontosságúak a biztonságos és megbízható rendszerek védelméhez.
Informatikai kutató
Az Informatikai kutatók új számítógépes elméleteket és technológiákat kutatnak és fejlesztenek. Ez a tanfolyam segíthet az olyan alapvető számítógép-tudományi ismeretek megalapozásában, mint az adatstruktúrák és a kvantumszámítógépek, amelyek létfontosságúak a számítástechnika területén végzett kutatásokhoz.
Blockchain fejlesztő
A Blockchain fejlesztők blockchain alapú alkalmazásokat és szolgáltatásokat terveznek, fejlesztenek és karbantartanak. Ez a tanfolyam segíthet az olyan alapvető kriptográfiai ismeretek megalapozásában, mint az RSA, amelyek létfontosságúak a biztonságos és megbízható blockchain alapú rendszerek létrehozásához.
Adatbázis-adminisztrátor
Az Adatbázis-adminisztrátorok adatbázisokat hoznak létre, kezelnek és karbantartanak. Ez a tanfolyam segíthet az olyan alapvető adatstruktúrák és algoritmusok megértésének megalapozásában, amelyek létfontosságúak a hatékony és megbízható adatbázisok létrehozásához és kezeléséhez.
Adattudományos
Az Adattudományosok adatokat gyűjtenek, elemzik és értelmeznek, hogy betekintést nyerjenek belőlük. Ez a tanfolyam segíthet az adatstruktúrák és algoritmusok megértésének megalapozásában, ami létfontosságú az adatok hatékony tárolásához és kezeléséhez.
Szoftverfejlesztő
A Szoftverfejlesztők szoftveralkalmazásokat terveznek, fejlesztenek és karbantartanak. Ez a tanfolyam segíthet a fejlett adatstruktúrák és algoritmusok megértésének megalapozásában, ami létfontosságú a hatékony és megbízható szoftverek létrehozásához.
Adatmérnök
Az Adatmérnökök nagy adathalmazok gyűjtését, tárolását, elemzését és értelmezését végzik. Ez a tanfolyam segíthet az olyan alapvető számítógép-tudományi ismeretek megalapozásában, mint az adatstruktúrák és algoritmusok, amelyek létfontosságúak a nagy adatmennyiségek hatékony kezeléséhez.
Nagy teljesítményű számítógép-programozó
A Nagy teljesítményű számítógép-programozók szoftvereket fejlesztenek nagy teljesítményű számítógépekhez. Ez a tanfolyam segíthet az olyan alapvető adatstruktúrák és algoritmusok megértésének megalapozásában, amelyek létfontosságúak a hatékony és megbízható nagy teljesítményű számítógépes programok létrehozásához.
Cloud computing mérnök
A Cloud computing mérnökök terveznek, fejlesztenek és karbantartanak felhőalapú alkalmazásokat és szolgáltatásokat. Ez a tanfolyam segíthet az olyan alapvető adatstruktúrák és algoritmusok megértésének megalapozásában, amelyek létfontosságúak a hatékony és megbízható felhőalapú alkalmazások létrehozásához.
Kriptovaluta kereskedő
A Kriptovaluta kereskedők kriptovalutákkal kereskednek különböző tőzsdéken. Ez a tanfolyam segíthet a kriptográfia és a kvantumszámítógépek alapjainak megértésében, ami létfontosságú a kriptovaluták biztonságos és jövedelmező kereskedéséhez.
Informatikai tanár
Az Informatikai tanárok számítástechnikát tanítanak középiskolákban és egyetemeken. Ez a tanfolyam segíthet az olyan alapvető számítógép-tudományi ismeretek megalapozásában, mint az adatstruktúrák és algoritmusok, amelyek létfontosságúak a számítástechnika hatékony és érdekes tanításához.

Reading list

We've selected 15 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Advanced Data Structures, RSA and Quantum Algorithms.
Provides a deeper understanding of quantum algorithms and their applications in quantum systems, including quantum computation, quantum simulation, and quantum information theory.
Provides a gentle introduction to the basics of quantum computing. It covers various topics, including qubits, quantum gates, Shor's algorithm, and quantum Fourier transform. It will be a valuable resource if you are interested in learning more about quantum algorithms and their potential applications.
This textbook provides a rigorous introduction to quantum computer science, covering topics like quantum information, quantum algorithms, and quantum complexity. It is suitable for advanced undergraduate or graduate students.
Explores post-quantum cryptography, which offers potential solutions to the threat posed by quantum computers to current cryptosystems like RSA.
Provides a comprehensive introduction to quantum computing for students and researchers in various fields. It covers quantum information, quantum algorithms, and quantum hardware.
Offers a practical look at quantum computing, focusing on the current state of the field and potential applications. It is suitable for readers with a background in computer science or physics.
Provides a theoretical foundation for computer science, covering topics like finite automata, regular expressions, context-free grammars, and Turing machines. It valuable resource for understanding the theoretical underpinnings of algorithms and data structures.
Introduces the mathematical concepts and techniques used in number theory, including modular arithmetic, divisibility, prime numbers, and factorization. It valuable resource for understanding the theoretical foundations of cryptography.
Offers a clear and accessible introduction to quantum computing, suitable for readers with no prior knowledge of the subject. It covers quantum bits, quantum gates, quantum algorithms, and potential applications.
Provides a comprehensive overview of data structures and algorithms using Java, a language commonly used in industry and academia. It covers advanced data structures like B-trees and tries, which are topics in this course.
Covers advanced number theory algorithms used in cryptography, including primality testing, factoring, and computing discrete logarithms.
This handbook offers a comprehensive overview of quantum computing, covering topics like qubits, quantum gates, quantum algorithms, and error correction. It is suitable for readers with a background in physics or computer science.
Focuses on the fundamental concepts of cryptography and provides a broad overview of the field. It will help you better understand the RSA public key cryptosystem.
Teaches performance analysis techniques essential for understanding and improving computer systems, including topics like B-tree performance optimization, which relates to the B-trees covered in this course.
Provides a solid foundation in discrete mathematics, covering topics like number theory, combinatorics, and graph theory, which are relevant to the study of data structures and algorithms.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Advanced Data Structures, RSA and Quantum Algorithms.
Data Mining Methods
Most relevant
Dynamic Programming, Greedy Algorithms
Most relevant
Data Mining Pipeline
Most relevant
Data Mining Project
Most relevant
When to Regulate? The Digital Divide and Net Neutrality
Most relevant
Fundamentals of Data Visualization
Most relevant
Applications of Software Architecture for Big Data
Most relevant
Requirement Specifications for Autonomous Systems
Most relevant
Fundamentals of Software Architecture for Big Data
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser