Home > Courses > Course Details
Introduction to Computer Science and Programming Course

Introduction to Computer Science and Programming

Eric Grimsom
John Guttag
MIT

Course Description

Lectures

  1. Introduction and Goals of the Course Lecture favorites

    Lecture 1 - Introduction and Goals of the Course

    Goals of the course; what is computation; introduction to data types, operators, and variables

  2. Operators and operands Lecture favorites

    Lecture 2 - Operators and operands

    Operators and operands; statements; branching, conditionals, and iteration

  3. Common code patterns Lecture favorites

    Lecture 3 - Common code patterns

    Common code patterns: iterative programs

  4. Decomposition and abstraction through functions Lecture favorites

    Lecture 4 - Decomposition and abstraction through functions

    Decomposition and abstraction through functions; introduction to recursion

  5. Floating point numbers Lecture favorites

    Lecture 5 - Floating point numbers

    Floating point numbers, successive refinement, finding roots

  6. Bisection methods Lecture favorites

    Lecture 6 - Bisection methods

    Bisection methods, Newton/Raphson, introduction to lists

  7. Lists and mutability Lecture favorites

    Lecture 7 - Lists and mutability

    Lists and mutability, dictionaries, pseudocode, introduction to efficiency

  8. Complexity Lecture favorites

    Lecture 8 - Complexity

    Complexity; log, linear, quadratic, exponential algorithms

  9. Binary search Lecture favorites

    Lecture 9 - Binary search

    Binary search, bubble and selection sorts

  10. Divide and conquer methods Lecture favorites

    Lecture 10 - Divide and conquer methods

    Divide and conquer methods, merge sort, exceptions

  11. Testing and debugging Lecture favorites

    Lecture 11 - Testing and debugging

    Testing and debugging

  12. Knapsack problem Lecture favorites

    Lecture 12 - Knapsack problem

    More about debugging, knapsack problem, introduction to dynamic programming

  13. Dynamic programming Lecture favorites

    Lecture 13 - Dynamic programming

    Dynamic programming: overlapping subproblems, optimal substructure

  14. Introduction to object-oriented programming Lecture favorites

    Lecture 14 - Introduction to object-oriented programming

    Analysis of knapsack problem, introduction to object-oriented programming

  15. Abstract data types Lecture favorites

    Lecture 15 - Abstract data types

    Abstract data types, classes and methods

  16. Encapsulation Lecture favorites

    Lecture 16 - Encapsulation

    Encapsulation, inheritance, shadowing

  17. Computational models Lecture favorites

    Lecture 17 - Computational models

    Computational models: random walk simulation

  18. Presenting simulation results Lecture favorites

    Lecture 18 - Presenting simulation results

    Presenting simulation results, Pylab, plotting

  19. Biased random walks Lecture favorites

    Lecture 19 - Biased random walks

    Biased random walks, distributions

  20. Monte Carlo simulations Lecture favorites

    Lecture 20 - Monte Carlo simulations

    Monte Carlo simulations, estimating pi

  21. Validating simulation results Lecture favorites

    Lecture 21 - Validating simulation results

    Validating simulation results, curve fitting, linear regression

  22. Normal, uniform, and exponential distributions Lecture favorites

    Lecture 22 - Normal, uniform, and exponential distributions

    Normal, uniform, and exponential distributions; misuse of statistics

  23. Stock market simulation Lecture favorites

    Lecture 23 - Stock market simulation

    Stock market simulation

  24. Course overview: What do computer scientists do? Lecture favorites

    Lecture 24 - Course overview: What do computer scientists do?

    Course overview; what do computer scientists do?