Physics 212, 2019: Computational Modeling For Scientists And Engineers

From Ilya Nemenman: Theoretical Biophysics @ Emory
Revision as of 10:34, 28 January 2019 by Ilya (talk | contribs) (Lecture Notes and Detailed Schedule)
Jump to: navigation, search
Emory Logo

Back to the main Teaching page.

Back to Physics 212, 2019: Computational Modeling.

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:

  1. To learn to translate a descriptive formulation of a scientific problem into a mathematical / computational model.
  2. 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.
  3. 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 11:30-1:00 (subject to change), and by appointment, MSC N240 or N117A if too many people.
TA: Qihan Liu -- Friday, 2:00-3:00, MSC N117E
TA: Jian Wang -- Wednesday, 2:00-3:00, MSC N118D
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 notes and scripts that we have written for the class. I will strive to post / update these notes before classes, but no promises.
Module 1
Jan 16: Lecture 1, Introduction, and beginning of Lecture 2, Introduction to the Modeling Process. Reading: Chapter 1 of the Python Student Guide. Intro to Python.
Labs 1, Jan 17-18: Chapter 1 of the Python Student Guide; installing Anaconda. Chapter 2 of the Python Student Guide.
Jan 23: Lecture 3, First steps in Python. Reading: Chapters 1 and 2 of the Python Student Guide.
Don't forget to submit your work at the end of the class using the Coding Snippet assignment on Canvas.
Labs 2, Jan 24-25: 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).
Scripts for this Module:
Jan 28: Lecture 2, First project in Python: Newton method for solving algebraic equations. More Python. Reading: Chapters 2 and 3 of the Python Student Guide.
Jan 30: Lecture 4. More Python, Jupyter notebooks Reading: Chapters 2, 3 and Appendix B of the Python Student Guide.
Module 2
Scripts for this Module:
Module 3
Scripts for this Module:
Module 4
Scripts for this Module:
Module 5
Scripts for this Module:

Projects

Available projects for each class module will be listed here about one class before you need to start working on them. If multiple projects are offered, you will need to choose the project for your group and email me for approval.

Class Module 1

Class Module 2

Class Module 3

Class Module 4

Class Module 5

Quizzes

Quiz 1
Quiz 2
Quiz 3
Quiz 4
Quiz 5