The course is aimed at students who have desire to understand computational approaches to problem solving. The primary knowledge the students will take away from this course is the art of computational problem solving.
John V. Guttag, Introduction to Computation and Programming Using Python, The MIT Press, 2013.
Learning Objectives
The students will learn to use the computer to solve problems. They will learn to apply computational modes of thoughts to frame problems and to guide the process of extracting information from data in a computational manner.
Prerequisites
The course is aimed at students with no prior programming experience.
Teaching Methods
The course focuses on breadth rather than depth, by introducing students to many topics, so that they will have an idea of how to use computation to accomplish a goal.
Type of Assessment
Homeworks and final project.
Course program
Introduction to Python. Simple numerical programs. Functions. Structured types. Testing and debugging. Exceptions and assertions. Classes and object-oriented programming. Algorithmic complexity. Algorithms and data structures. Plotting. Stochastic programs. Random walks and data visualization. Montecarlo simulation. Understanding experimental data. Statistics. Graph optimization problems. Dynamic programming. Machine learning.