LEC # | TOPICS | KEY DATES |
---|---|---|

1 | Goals of the course; what is computation; introduction to data types, operators, and variables | Problem set 0 out |

2 | Operators and operands; statements; branching, conditionals, and iteration |
Problem set 0 due Problem set 1 out |

3 | Common code patterns: iterative programs |
Problem set 1 due Problem set 2 out |

4 | Decomposition and abstraction through functions; introduction to recursion |
Problem set 2 due Problem set 3 out |

5 | Floating point numbers, successive refinement, finding roots | |

6 | Bisection methods, Newton/Raphson, introduction to lists |
Problem set 3 due Problem set 4 out |

7 | Lists and mutability, dictionaries, pseudocode, introduction to efficiency | |

8 | Complexity; log, linear, quadratic, exponential algorithms | Problem set 4 due |

Quiz 1 | Problem set 5 out | |

9 | Binary search, bubble and selection sorts | |

10 | Divide and conquer methods, merge sort, exceptions |
Problem set 5 due Problem set 6 out |

11 | Testing and debugging | |

12 | More about debugging, knapsack problem, introduction to dynamic programming |
Problem set 6 due Problem set 7 out |

13 | Dynamic programming: overlapping subproblems, optimal substructure |
Problem set 7 due Problem set 8 out |

14 | Analysis of knapsack problem, introduction to object-oriented programming | |

15 | Abstract data types, classes and methods | |

16 | Encapsulation, inheritance, shadowing |
Problem set 8 due Problem set 9 out |

Quiz 2 | Problem set 9 due | |

17 | Computational models: random walk simulation | Problem set 10 out |

18 | Presenting simulation results, Pylab, plotting |
Problem set 10 due Problem set 11 out |

19 | Biased random walks, distributions | |

20 | Monte Carlo simulations, estimating pi |
Problem set 11 due Problem set 12 out |

21 | Validating simulation results, curve fitting, linear regression | |

22 | Normal, uniform, and exponential distributions; misuse of statistics | |

23 | Stock market simulation | Problem set 12 due |

24 | Course overview; what do computer scientists do? |