Course Instructor PHYS 91SI–Practical Computing for Scientists

Undergraduate, Stanford University, 2014

Physics 91SI – Practical Computing for Scientists

Description: This course teaches essential computer skills for researchers in the natural sciences, with a specific focus on physics. The goal is to provide students with the essential and most powerful tools used in modern research environments. The course will be taught primarily using the UNIX operating system and the Python programming language, but with an eye toward the different computing environments used in research situations.

By the end of this course, you should be a self­sufficient programmer and software user. This means that you will be able to:

  1. Navigate the UNIX operating system and use many of its powerful utilities, including shell scripting, version control, and distributed filesystems.

  2. Be confident using the Python program programming language, including advanced data structures, object­oriented programming, functional programming, and debugging tools.

  3. Use scientific analysis and plotting libraries and integrate Python with the operating system and data workflow.

  4. Plot and present data in an effective and informative manner.

  5. Autonomously find, incorporate and learn to use the best external libraries for the task at hand.

Schedule: 2 hour lectures held twice per week.

Lecture Format: First half of class is lecture with demos, second half of class is lab.

Curriculum: Unix, shell scripting, python programming basics, python data structures, debugging, numpy, scipy, matplotlib, object oriented programming, functional programming, C and Cython, Mathematica, Matlab, Parallel programming, machine learning.

Syllabus: Download Here

Instructor Responsibilities: Designing and giving lectures for the first half of class, designing laboratory exercises for the second half of class, curriculum design, grading, office hours.