## 6.00 Introduction to Computer Science and Programming

**6.00 Introduction to Computer Science and Programming (Fall 2008, MIT OCW)**. Instructors: Professor Eric Grimson and Professor John Guttag.
This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play
in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow
them to accomplish useful goals. The class will use the Python programming language.

(from **ocw.mit.edu**)

Lecture 01 - Introduction and Goals; Data Types, Operators, and Variables |

Lecture 02 - Branching, Conditionals, and Iteration |

Lecture 03 - Common Code Patterns: Iterative Programs |

Lecture 04 - Abstraction through Functions; Introduction to Recursion |

Lecture 05 - Floating Point Numbers, Successive Refinement, Finding Roots |

Lecture 06 - Bisection Methods, Newton/Raphson, Introduction to Lists |

Lecture 07 - Lists and Mutability, Dictionaries, Introduction to Efficiency |

Lecture 08 - Complexity: Log, Linear, Quadratic, Exponential Algorithms |

Lecture 09 - Binary Search, Bubble and Selection Sorts |

Lecture 10 - Divide and Conquer Methods, Merge Sort, Exceptions |

Lecture 11 - Testing and Debugging |

Lecture 12 - Debugging, Knapsack Problem, Introduction to Dynamic Programming |

Lecture 13 - Dynamic Programming: Overlapping Subproblems, Optimal Substructure |

Lecture 14 - Introduction to Object-oriented Programming |

Lecture 15 - Abstract Data Types, Classes and Methods |

Lecture 16 - Encapsulation, Inheritance, Shadowing |

Lecture 17 - Computational Models: Random Walk Simulation |

Lecture 18 - Presenting Simulation Results, Pylab, Plotting |

Lecture 19 - Biased Random Walks, Distributions |

Lecture 20 - Monte Carlo Simulations, Estimating pi |

Lecture 21 - Validating Simulation Results, Curve Fitting, Linear Regression |

Lecture 22 - Normal, Uniform, and Exponential Distributions |

Lecture 23 - Stock Market Simulation |

Lecture 24 - Course Overview; What Do Computer Scientists Do? |