Episodes

  • Diving into Operating Systems: Virtualization, Concurrency, and Persistence
    Jan 11 2025

    Join us to discuss about the book "Operating Systems: Three Easy Pieces" which teaches operating system concepts through a dialogue format between a professor and student. The excerpts cover various topics, including CPU and memory virtualization, concurrency, persistence (file systems and devices), scheduling algorithms (like MLFQ, lottery, and CFS), process management, memory management (paging, segmentation, allocation), and distributed systems. The book uses a combination of explanation, code examples, and figures to illustrate concepts, and includes homework assignments and references to seminal operating systems papers. It emphasizes the importance of understanding the underlying mechanisms of operating systems and the trade-offs involved in designing them.

    Show more Show less
    22 mins
  • Thinking Like a Computer Scientist: A Python Programming Journey
    Jan 4 2025

    This episode explores how to approach problem-solving through computer programming using Python. We'll learn about the core concepts in "Think Python," including variables, expressions, functions, and control structures, and how these elements work together to create effective programs. We'll focus on developing a "computer science" mindset, and using concepts like incremental development and debugging to tackle complex problems. We will also discuss data structures like lists and dictionaries, object-oriented programming, and file handling to write practical programs, with examples drawn from the textbook.


    Think Python 2nd edition: book


    Show more Show less
    18 mins
  • Structure and Interpretation: Exploring the Foundations of Computer Science
    Dec 28 2024

    Join us as we delve into the classic textbook, "Structure and Interpretation of Computer Programs" (SICP), exploring its key concepts and timeless principles. From abstraction and recursion to metacircular evaluators and logic programming, we unpack the ideas that have shaped generations of programmers. We’ll discuss how these ideas are still relevant today, drawing on concrete examples and explanations from the text and our own exploration. We will be referencing different concepts in the text, including Lisp as a language for describing processes, data abstraction, generic operations, message passing, stream processing and the implementation of evaluators, to fully understand this foundational text.

    Show more Show less
    11 mins
  • Logic, Proofs, and the Mathematics of Computation: From Simple Predicates to Complex Algorithms
    Dec 21 2024

    This episode explores the mathematical concepts underlying computer science. We'll begin with logic and proofs, examining predicates, propositional formulas, and truth tables. We'll then discuss induction, recursive definitions, and structural induction for analyzing data types. The podcast will cover state machines, the stable marriage problem, and how derived variables help in proving termination. We'll also touch on binary relations, generating functions, and basic probability. Finally, we'll delve into the connections between these concepts, random walks, and a simplified version of Turing's code, showing the link between math and cryptography. This episode is ideal for anyone wanting to grasp the mathematical side of computer science.


    Mathematics for Computer Science: https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-spring-2015/mit6_042js15_textbook.pdf


    Show more Show less
    34 mins
  • Unlocking the Power of Algorithms: A Deep Dive into Competitive Programming
    Dec 14 2024

    This episode delves into the fascinating world of competitive programming, exploring the crucial role of algorithms and their real-world applications.

    • Uncover the importance of time complexity in crafting efficient solutions, going beyond simple code to strategies that optimize performance.
    • Explore a variety of fundamental algorithms, from classic sorting techniques like binary search to powerful data structures like vectors, sets, and maps.
    • Gain insights into the art of complete search, a powerful approach to problem-solving that guarantees correct answers by systematically exploring all possibilities.
    • Journey into the realm of greedy algorithms, understanding how making the best choice at each step can lead to elegant and efficient solutions.
    • Discover dynamic programming, a technique that blends the thoroughness of complete search with the speed of greedy algorithms.

    Join us as we unravel the secrets of competitive programming and learn how to master the algorithms that power the digital world.


    Competitive Programmer’s Handbook: book

    Show more Show less
    27 mins
  • Mobile App Reliability: An SRE Perspective
    Dec 6 2024

    Mobile apps are complex systems with unique reliability challenges. Unlike servers, where engineers have complete control, mobile app reliability depends on billions of devices and user behaviors. This episode explores how Site Reliability Engineering (SRE) principles can be applied to build and manage reliable native mobile applications.


    Join us as we discuss:

    • Key concepts in engineering reliable mobile apps.
    • Unique challenges of mobile app reliability such as scale, control, monitoring, and change management.
    • Real-world case studies of mobile app outages at Google and the lessons learned.
    • Practical strategies for measuring and improving app availability, performance, and efficiency.
    • The impact of mobile app changes on server-side infrastructure.


    Whether you are a mobile app developer, an SRE, or just interested in learning about mobile app reliability, this episode has something for you.


    Book Engineering Reliable Mobile Applications: https://sre.google/resources/practices-and-processes/engineering-reliable-mobile-applications/

    Show more Show less
    19 mins
  • From Zero to Rust Hero: Exploring Google's Comprehensive Rust Course
    Nov 30 2024

    Join us as we explore Google's in-depth course, "Comprehensive Rust," a free resource designed to take you from Rust novice to proficient developer.


    • ​We'll discuss the course's structure, covering Rust fundamentals, specialized deep dives into Android, Chromium, and bare-metal development, and a full day dedicated to concurrency.


    • ​We'll highlight the course's hands-on approach, emphasizing practical examples and exercises that solidify your understanding of key concepts like memory management, ownership, borrowing, and error handling.


    • ​We'll also touch upon the course's focus on real-world applications, showcasing how Rust integrates with Android, Chromium, and embedded systems.


    • ​Whether you're a seasoned programmer or just starting your Rust journey, this episode will offer valuable insights and practical tips to accelerate your learning and empower you to build robust and efficient software with Rust.



    Comprehensive Rust course: https://google.github.io/comprehensive-rust


    Rust programming language: https://www.rust-lang.org

    Show more Show less
    17 mins
  • Kotlin Unlocked: Your Gateway to Modern Programming
    Nov 28 2024

    In this debut episode, we dive into the world of Kotlin, the modern programming language that’s taking the tech world by storm. Whether you’re a beginner or an experienced developer, Kotlin offers a fresh, efficient way to code—whether for Android apps, server-side development, or even multiplatform projects. We’ll explore what makes Kotlin unique, why it’s loved by developers worldwide, and how you can get started with it today. Tune in to learn about its concise syntax, powerful features, and why it’s the future of programming!


    Learn more about Kotlin: https://kotlinlang.org

    Show more Show less
    17 mins