Goals of the course; what is computation; introduction to data types, operators, and variables
Introduction to Computer Science and Programming
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.
24 Lectures
-
-
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
-
Course overview; what do computer scientists do?
-
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