Big O notation: Python to Rust is a hands-on algorithmic complexity course for engineers transitioning from Python to Rust who want to reason rigorously about how their code scales. You will learn Big O, Big Theta, and Big Omega notation; analyze the time and space complexity of common operations on Python and Rust data structures (list/Vec, dict/HashMap, set/HashSet, tuple, slice, BTreeMap); and compare measured performance in both languages on identical workloads. The course covers amortized analysis, recursion and master theorem, worst case versus expected case, the cost of allocation and borrowing, and how Rust's ownership model affects real-world constants even when asymptotic complexity is identical. You will profile Python code with cProfile and timeit, profile Rust code with criterion and perf, and translate Python algorithms (search, sort, hashing, graph traversal, dynamic programming) into idiomatic Rust while keeping or improving complexity guarantees. By the end of the course, you will be able to predict performance, choose appropriate data structures, justify rewrites from Python to Rust on quantitative grounds, and communicate trade-offs to a team. Part of the Rust for Data Engineering specialization.
Set the foundation: define what "complexity" actually means as a claim, and meet the three modes of proof — analytical, empirical, and structural — you'll use to defend complexity claims throughout the course. Learn to recognize falsifiable vs. unfalsifiable performance claims and build the worked-example habit you'll need in later modules.
涵盖的内容
3个视频7篇阅读材料
显示有关单元内容的信息
3个视频•总计4分钟
1.1.1 What Complexity Means And Three Modes•1分钟
1.2.1 Reading A Complexity Claim•1分钟
1.3.1 Depyler Transpiler Shortcut•1分钟
7篇阅读材料•总计70分钟
About This Course•10分钟
Key Terms: What "Complexity" Means + Three Modes of Proof•10分钟
Reflection: What "Complexity" Means + Three Modes of Proof•10分钟
Key Terms: Reading a Complexity Claim — Falsifiability•10分钟
Reflection: Reading a Complexity Claim — Falsifiability•10分钟
Key Terms: Depyler — the Transpiler Shortcut•10分钟
Reflection: Depyler — the Transpiler Shortcut•10分钟
Empirical Wins — Speed You Can Measure
第 2 单元•小时 后完成
单元详情
Empirical proof in practice: measure runtime with reproducible benchmarks. Three head-to-head Python→Rust translations — list comprehension to iterator, dict lookup to HashMap, and sorted() to sort_unstable — let you read benchmark output, control for noise, and decide when measured speedups are real and when they're artifacts.
涵盖的内容
3个视频6篇阅读材料
显示有关单元内容的信息
3个视频•总计4分钟
2.1.1 List Comp To Iterator•1分钟
2.2.1 Dict Lookup To Hashmap•1分钟
2.3.1 Sorted To Sort Unstable•1分钟
6篇阅读材料•总计60分钟
Key Terms: List Comprehension → Iterator•10分钟
Reflection: List Comprehension → Iterator•10分钟
Key Terms: x in dict → HashMap Lookup•10分钟
Reflection: x in dict → HashMap Lookup•10分钟
Key Terms: sorted() → sort_unstable•10分钟
Reflection: sorted() → sort_unstable•10分钟
Structural Wins — Correctness via Types
第 3 单元•小时 后完成
单元详情
Structural proof in practice: use the type system to make incorrect programs impossible to compile. Translating Optional[T] to Option<T>, try/except to Result<T,E>, and ad-hoc state machines to Rust enums turns runtime errors into compile-time errors — a structural guarantee no benchmark can refute.
涵盖的内容
3个视频6篇阅读材料
显示有关单元内容的信息
3个视频•总计3分钟
3.1.1 Optional To Option•1分钟
3.2.1 Try Except To Result•1分钟
3.3.1 Mutable Default To Ownership•1分钟
6篇阅读材料•总计60分钟
Key Terms: Optional[T] → Option<T>•10分钟
Reflection: Optional[T] → Option<T>•10分钟
Key Terms: try/except → Result<T, E>•10分钟
Reflection: try/except → Result<T, E>•10分钟
Key Terms: Mutable Default Arg → Ownership•10分钟
Reflection: Mutable Default Arg → Ownership•10分钟
Translation with Runtime Consequences
第 4 单元•小时 后完成
单元详情
Translation with runtime consequences: each translation in this module replaces a Python construct (generators, subprocess calls, parallel loops) with a Rust equivalent that carries different runtime guarantees — memory profile, error surface, parallelism model — not just "the same thing, but faster."
涵盖的内容
3个视频6篇阅读材料
显示有关单元内容的信息
3个视频•总计3分钟
4.1.1 Generator To Iterator•1分钟
4.2.1 Subprocess To Command•1分钟
4.3.1 Threading To Rayon•1分钟
6篇阅读材料•总计60分钟
Key Terms: Generator → Iterator•10分钟
Reflection: Generator → Iterator•10分钟
Key Terms: Subprocess → Command•10分钟
Reflection: Subprocess → Command•10分钟
Key Terms: Threading → Rayon•10分钟
Reflection: Threading → Rayon•10分钟
Capstone — The Three-Mode Playbook End to End
第 5 单元•小时 后完成
单元详情
Capstone: bring all three modes of proof together on a real translation. Two case studies — a three-mode playbook end to end, and a deliberate "when NOT to translate" example — train your judgment about when a Python→Rust port pays off and when it would just add cost without measurable benefit.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.