-
Course Home
-
Members
-
Forum
-
Dashboard
- Lessons
-
Goals of the course; what is computation; introduction to data types, operators, and variables
-
Operators and operands; statements; branching, conditionals, and iteration
-
Common code patterns: iterative programs
-
Decomposition and abstraction through functions; introduction to recursion
-
Floating point numbers, successive refinement, finding roots
-
Bisection methods, Newton/Raphson, introduction to lists
-
Lists and mutability, dictionaries, pseudocode, introduction to efficiency
-
Complexity; log, linear, quadratic, exponential algorithms
-
Binary search, bubble and selection sorts
-
Divide and conquer methods, merge sort, exceptions
-
Testing and debugging
-
More about debugging, knapsack problem, introduction to dynamic programming
-
Dynamic programming: overlapping subproblems, optimal substructure
-
Analysis of knapsack problem, introduction to object-oriented programming
-
Abstract data types, classes and methods
-
Encapsulation, inheritance, shadowing
-
Computational models: random walk simulation
-
Presenting simulation results, Pylab, plotting
-
Biased random walks, distributions
-
Monte Carlo simulations, estimating pi
-
Validating simulation results, curve fitting, linear regression
-
Normal, uniform, and exponential distributions; misuse of statistics
-
Stock market simulation
-
Course overview; what do computer scientists do?
|
Assignments
|