## Introduction to Computer Science and Programming | MIT Video Course

Ikut menyaksikan kuliah di MIT, mengapa tidak? đź™‚ Yang lebih penting sebetulnya adalah kesempatan tambahan pilihan untuk belajar dengan lebih nyaman. Hampir bisa dikatakan, kapan saja & di mana saja. Bisa diulang-ulang sampai paham apa yang dibicarakan pengajar dan bisa belajar dengan bebas merdeka.

## Course Description

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.

## Lectures

## Lecture 1 – Introduction and Goals of the Course

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

## Lecture 2 – Operators and operands

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

## Lecture 3 – Common code patterns

Common code patterns: iterative programs

## Lecture 4 – Decomposition and abstraction through functions

Decomposition and abstraction through functions; introduction to recursion

## Lecture 5 – Floating point numbers

Floating point numbers, successive refinement, finding roots

## Lecture 6 – Bisection methods

Bisection methods, Newton/Raphson, introduction to lists

## Lecture 7 – Lists and mutability

Lists and mutability, dictionaries, pseudocode, introduction to efficiency

## Lecture 8 – Complexity

Complexity; log, linear, quadratic, exponential algorithms

## Lecture 9 – Binary search

Binary search, bubble and selection sorts

## Lecture 10 – Divide and conquer methods

Divide and conquer methods, merge sort, exceptions

## Lecture 11 – Testing and debugging

Testing and debugging

## Lecture 12 – Knapsack problem

More about debugging, knapsack problem, introduction to dynamic programming

## Lecture 13 – Dynamic programming

Dynamic programming: overlapping subproblems, optimal substructure

## Lecture 14 – Introduction to object-oriented programming

Analysis of knapsack problem, introduction to object-oriented programming

## Lecture 15 – Abstract data types

Abstract data types, classes and methods

## Lecture 16 – Encapsulation

Encapsulation, inheritance, shadowing

## Lecture 17 – Computational models

Computational models: random walk simulation

## Lecture 18 – Presenting simulation results

Presenting simulation results, Pylab, plotting

## Lecture 19 – Biased random walks

Biased random walks, distributions

## Lecture 20 – Monte Carlo simulations

Monte Carlo simulations, estimating pi

## Lecture 21 – Validating simulation results

Validating simulation results, curve fitting, linear regression

## Lecture 22 – Normal, uniform, and exponential distributions

Normal, uniform, and exponential distributions; misuse of statistics

## Lecture 23 – Stock market simulation

Stock market simulation

## Lecture 24 – Course overview: What do computer scientists do?

Course overview; what do computer scientists do?

## Leave a Reply