This module emphasizes recursive thinking and its applications in programming. Topics include:
Students will develop a deeper understanding of recursive problem-solving techniques.
This module introduces the overall structure and philosophy of the Introduction to Computer Science series at Stanford. Key aspects include:
This module focuses on the similarities between C++ and Java, covering essential programming concepts such as:
Examples of C++ code, including function definitions and loops, are explored to provide a clear understanding of programming principles.
This module delves into C++ libraries, particularly the standard libraries and CS106-specific libraries. Topics include:
Live coding examples demonstrate working with strings and file I/O.
This module continues the exploration of C++ console and file input/output operations, focusing on:
Students will gain hands-on experience through live coding sessions.
This module covers the concept of templates in C++, specifically focusing on:
Live coding examples demonstrate the practical application of these concepts.
This module focuses on additional containers in C++, including:
Students will learn about the versatility and differences of these data structures.
This module discusses the concept of treating functions as data in C++. Key topics include:
Students will understand how to utilize functions as first-class citizens in programming.
This module addresses common mistakes encountered in programming with C++, focusing on:
Live coding sessions will help clarify these concepts and improve programming skills.
This module emphasizes recursive thinking and its applications in programming. Topics include:
Students will develop a deeper understanding of recursive problem-solving techniques.
This module revisits permutation code and further explores the tree of recursive calls. Key points include:
Live coding examples will enhance understanding of these concepts.
This module introduces backtracking pseudocode through practical examples, covering:
Students will learn how to apply backtracking techniques to solve complex problems.
This module focuses on pointers in C++, including:
Students will gain hands-on experience with pointers and their significance in programming.
This module covers linked lists in depth, focusing on:
Live coding examples will enhance understanding of linked list operations and efficiency.
This module introduces sorting algorithms, including:
Live demos will illustrate the execution and performance of these algorithms.
This module explores the partitioning process for quicksort, addressing:
Students will understand the intricacies of the quicksort algorithm and its applications.
This module discusses sort templates with callbacks, emphasizing:
Students will learn how to design effective class structures in C++.
This module focuses on abstract data types (ADTs) in C++, covering:
Students will understand how to implement and utilize ADTs effectively.
This module outlines rules for template implementation in C++, including:
Students will learn best practices for effective template programming.
This module provides a recap of stack implementations, focusing on:
Live coding sessions will illustrate the practical applications of these concepts.
This module compares buffer implementations using vector and stack structures. Key topics include:
Students will gain insights into buffer management and data structure performance.
This module discusses the implementation of maps in C++, focusing on:
Live coding examples will enhance understanding of tree data structures.
This module provides a comprehensive overview of graphs in C++, including:
Students will gain practical experience through live coding sessions focused on graph algorithms.
This module compares different map implementations, covering:
Live coding examples will demonstrate the practical applications of hash tables.
This module presents a case study on lexicons, examining:
Students will explore patterns in word management and the final results of the DAWG implementation.
This final module encourages students to reflect on design choices made throughout the course, covering:
Students will solidify their understanding of programming principles and best practices.
This guest lecture provides insights into the C++ language, including:
Students will gain a broader understanding of C++ and its applications in modern programming.