12.010 | Fall 2011 | Undergraduate

Computational Methods of Scientific Programming



TH: Tom Herring

CH: Chris Hill

1 Introduction: Problem formulation, algorithm development, algorithm implementation, and algorithm verification. Structure and documentation TH  
2 CH  
3 Fortran: “Formula Translation”. Program creation, compilation and linking, variables and parameters, flow control, subroutines and functions. Structure and documentation. Use of libraries, internal and external communication, and interaction with other languages. Fortran: Implementation issues: Compilation errors, segmentation violations, Not-a-Number (NaN), Input/Output (IOSTAT) errors, Runtime errors. Transportable code, standard extensions. Fortran 90 differences and similarities to Fortran 77 CH  
4–7 TH Homework 1 due in Lec #7

C for Scientific uses. Representation of data through arrays, pointers, and data structures. Function calls, argument passing and scoping rules, IO, profiling, system calls, and signals

C++ objects. Encapsulation and inheritance, polymorphic operators


Mathematica. What it is and what it can do; structure of Mathematica; symbols, exact numbers, and machine numbers; lists, vectors, and matrices.

Working with Mathematica: numerical calculations, symbolic calculations, and graphics. Importing and exporting information.


Homework 2 due in Lec #13


MATLAB®. “Matrix Laboratory”. MATLAB syntax, workspace, variables. Script M-files, IO, control flow, debugging, and profiling tools. Object-oriented programming

MATLAB applications, polynomials, interpolation, integration, differentiation, ODE. Graphics, 2-D, 3-D, Graphical User Interface (GUI)

TH Homework 3 due in Lec #17
18–19 Python scripting language program TH  
20 Advanced graphics in MATLAB, 3-D representation and exportable animations TH

Homework 4 due in Lec #20

Group pairs and project descriptions due in Lec #20

21 Ordinary differential equation (ODE) solutions used MATLAB and Mathematica TH  

Advanced Topics: Parallel computing with large memory and large numbers of CPUs

Advanced topics: Parallel MATLAB

Discussion of final projects

Order of the presentations will be decided in the last class

CH Homework 5 due in Lec #23
  Final Project Presentations All Final Project due

Course Info

Learning Resource Types
assignment_turned_in Problem Sets with Solutions
notes Lecture Notes
group_work Projects
assignment_turned_in Programming Assignments with Examples