# Difference between revisions of "Physics 212, 2020: Computational Modeling For Scientists And Engineers"

(→Introduction) |
(→Logistics) |
||

Line 19: | Line 19: | ||

*Office Hours | *Office Hours | ||

:Professor: Ilya Nemenman -- Monday and Thursday 12:00-1:00 (subject to change), and by appointment, MSC N240 or N117A if too many people. | :Professor: Ilya Nemenman -- Monday and Thursday 12:00-1:00 (subject to change), and by appointment, MSC N240 or N117A if too many people. | ||

− | :TA: Qihan Liu | + | :TA: Qihan Liu (Thursday lab), Office hour Monday 1:00-2:00 |

− | :TA: Emma Dawson | + | :TA: Emma Dawson (Friday lab), Office hour Wednesday 2:30-3:30, N302 |

*[[Physics 212, 2020: Syllabus|Syllabus]] -- I will try to keep close to the syllabus in the course of the semester, but some deviations are possible. | *[[Physics 212, 2020: Syllabus|Syllabus]] -- I will try to keep close to the syllabus in the course of the semester, but some deviations are possible. | ||

*[https://www.anaconda.com/download/ Anaconda Python distribution] (install Python v 3.X) | *[https://www.anaconda.com/download/ Anaconda Python distribution] (install Python v 3.X) |

## Revision as of 23:39, 13 January 2020

Back to the main Teaching page.

Back to Physics 212, 2020: Computational Modeling.

## Contents

## News

- Welcome to the class!

## About the class

Computation is one of the pillars of modern science, in addition to experiment and theory. In this course, various computational modeling methods will be introduced to study specific examples derived from physical, biological, chemical, and social systems. We will study how one makes a model, implements it in computer code, and learns from it. We will focus on modeling deterministic dynamics, dynamics with randomness, on comparison of mathematical models to data, and, at the end, on high performance computing. Students will learn Python programming language and will work on computational modeling projects in groups.

There are three goals that I have for students in the class:

- To learn to translate a descriptive formulation of a scientific problem into a mathematical / computational model.
- To learn how to solve such models using computers, and specifically using the Python programming language. This includes learning how to verify that the solution you produced is a correct solution.
- To learn basic algorithms used in computational science.

In addition, a minor goal of the class is to improve the students' ability to communicate their process of thinking and their results to others. To this extent, the class will require writing project reports, which will be graded on their clarity and completeness.

## Logistics

- Class Hours: M, W 10:00-11:15; MSC N 304
- Labs: Thu or Fri 2:30-5:30; MSC N303
- Office Hours

- Professor: Ilya Nemenman -- Monday and Thursday 12:00-1:00 (subject to change), and by appointment, MSC N240 or N117A if too many people.
- TA: Qihan Liu (Thursday lab), Office hour Monday 1:00-2:00
- TA: Emma Dawson (Friday lab), Office hour Wednesday 2:30-3:30, N302

- Syllabus -- I will try to keep close to the syllabus in the course of the semester, but some deviations are possible.
- Anaconda Python distribution (install Python v 3.X)
**Main Textbook**: J Kinder and P Nelson,*Student Guide to Python for Physical Modeling, 2nd edition*, http://press.princeton.edu/titles/10644.html

- This tutorial is not a complete textbook. I will post additional lecture notes online as needed, or will direct you to additional chapters in other textbooks.
- See also Computational Modeling and Visualization of Physical Systems with Python by J Wang and Computational Physics by Giordano and Nakanishi.
- The bible of scientific computing is Numerical Recipies by Press et al.

- At the end of each class where we do coding, please
**submit your work**using a*Coding Snippet*assignment submission on Canvas.

## Lecture Notes and Detailed Schedule

- Class schedule is available in the syllabus.
- Below I will post Python notebooks for this class. I will strive to post changes to these notebooks before classes, but no promises.
- The Notebooks will also have project assignments for you to work on.

### Introduction

Download or view the Chapter 1 notebook from the Lecture Textbook repository.

- Labs 1, Jan 16-17
- Instal Anaconda.
- Do all exercises in Chapter 1 of the Python Student Guide and in the Chapter 1 Jupyter Notebook above.
- Start working on exercises in Chapter 2 of the Python Student Guide.
- Reading
- Chapters 1 and 2 of the Python Student Guide.

### Module 1

- Lecture 3, First steps in Python.

- Labs 2, Jan 23-24
- Chapters 1 and 2 in the Student Guide. Finish all of the exercises from the class -- make sure to pay attention to exceptions, like division by zero and roots of negative numbers. Then if time permits, move to Appendix B (Jupyter notebooks).
- Reading
- Chapters 1 and 2 of the Python Student Guide.
- Additional reading
- Numerical Recipes book, Chapter 9, talks about finding roots of nonlinear functions, including the Newton-Raphson method and, in Section 9.6, the multidimensional version of it. Those interested, should read the
*general considerations*in Section 9.0, and then whichever additional sections you find interesting.