This course provides an integrated introduction to electrical engineering and computer science, including modern software engineering, linear systems analysis, electronic circuits, and decision-making. The lecture videos provide an overview of each topic, while the recitation videos are designed to…
Uniform cost search takes into account the cost associated with an action, and can be implemented with a priority queue. Heuristics extimate the cost of the remaining path to the goal; the Manhattan distance is an example of an admissible heuristic.
Discussion of imperative, functional, and object-oriented programming styles. State machines are introduced, using a turnstile as an example.
Two search algorithms are introduced, depth-first search and breadth-first search. Pruning rules (including dynamic programming) are also considered, so that the same state is not visited repeatedly.
Introduction to probability theory, with the goals of making precise statements about uncertain situations and drawing reliable inferences from unreliable observations. A hidden Markov model is then applied to robot navigation.
Introduction to the four modules of 6.01 (software engineering, signals and systems, circuits, probability and planning). The lecture then introduces object-oriented programming in Python, and ends with a discussion of environments.
Circuit design is complicated by interactions among elements, but these interactions can be reduced or eliminated by using an op-amp as a buffer. This lecture covers how to analyze and design op-amp circuits.
System functions provide a summary of information that help optimize the design of a control system. Poles are discussed further, based on their location on the unit circle.
This lecture covers other ways of achieving modularity in circuit design. If a circuit only contains linear elements, then it can be represented by a Thevenin or Norton equivalent circuit, and superposition can be used.
Introduction to poles, which provide a way to characterize the behavior of a system in terms of a mathematical description as a system function.
Introduction to circuits, including several methods for analyzing circuits (Kirchoff's current and voltage laws, node voltages, and loop currents) and common patterns that simplify analysis.
Introduction to signals and systems, focusing on multiple representations of discrete-time systems: difference equations, block diagrams, and operator representations.
Recitation video covering dynamic programming, costs, and heuristics.
Recitation video covering the basics of search.
Recitation video covering the basics of probability.
Recitation video covering state estimation.
Recitation video covering Thevenin/Norton equivalence and superposition.
Recitation video covering the NVCC method of solving circuits, including a sample problem.
Recitation video covering circuit representations, Kirchhoff's voltage law, and Kirchhoff's current law.
Recitation video covering more information about poles, solving pole problems, and looking at unit sample responses and graphing poles on the unit circle.
Recitation video covering how to solve for poles, and how properties of the dominant pole affect the unit sample response.
Recitation video introducing discrete linear time-invariant systems, including several ways they can be represented.
Recitation video covering system equivalences and geometric sequences.
Recitation video covering state machines, using a public transit turnstile as an example.
Recitation video covering notable aspects of programming in Python, including functional programming, lambdas and list manipulation, and mutability.
Recitation video covering inheritance in Python.
Recitation video covering object-oriented programming in Python.