Python for Physics and Astronomy: Difference between revisions

From AstroEdWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 57: Line 57:
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_examples Examples]
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_examples Examples]
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_assignments Assignments]
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_assignments Assignments]
#Data acquisition and processing
##Real world interfacing
##Numerical data from images
##Fourier Transforms
##Spectra
##Probability and statistics
##Examples
##Assignments
#User interfaces
#User interfaces
##Command line and the operating system  
##Command line and the operating system  
Line 71: Line 62:
##Examples
##Examples
##Assignments
##Assignments
These topics may be added for a longer version of this course
#Real world interfacing
##Instrumentation and communication
##Serial ports
##USB
##TCPIP
##Threading
##Incorporating manufacturer's code
#Working with the web
#Working with the web
##HTTP servers
##HTTP servers
Line 78: Line 79:
##Using Python with CGI  
##Using Python with CGI  
##Programming for server-side processing
##Programming for server-side processing
##Examples
#Python and  other languages
##Assignments
#Comparing Python to other languages
##Bash scripting in Unix-like systems
##Bash scripting in Unix-like systems
##Very simple C
##Very simple C
Line 86: Line 85:
##Android for web development
##Android for web development
##LabVIEW for instrument control and data analysis
##LabVIEW for instrument control and data analysis
##Java for astronomical calculations: AstroCC
##Java for astronomical calculations: AstroCC and AstroImageJ
##Java for astronomical image processing and photometry: AstroImageJ

Revision as of 19:33, 28 February 2013

The Python programming language is a widely used tool for basic research and engineering. Its rapid rise in popularity is supported by comprehensive, largely open-source, contributions from scientists who use it for their own work. This short course offers an introduction to Python with examples drawn from physics and astronomy as part of a full semester Research Methods class.

The examples are collected here.

All the assignments are here.

Homework should be uploaded here.

The topics and examples covered are --

  1. Why program? Choosing a language.
  2. Very simple Python
    1. Installing it on your computer
    2. Using it in real time
    3. Using code as a standalone program
    4. Examples
    5. Assignments
  3. Elements of Python programming
    1. Input and output
    2. Data types: numbers and strings
    3. Lists, tuples, dictionaries, and statements
    4. Examples
    5. Assignments
  4. Solving problems with Python
    1. Flow control
    2. Functions
    3. Iteration
    4. Examples
    5. Assignments
  5. Graphics with Python
    1. Installation of matplotlib
    2. Learning the basics of 2D data and function plotting
    3. A little 3d plotting
    4. Examples
    5. Assignments
  6. NumPy, SciPy and SciKits
    1. Numpy
      1. Arrays
      2. Indexing
      3. Functions
      4. Matrix and vector math
      5. Fourier Transforms
    2. SciPy and SciKits
      1. Interpolation
      2. Integration
      3. Differentiation
      4. Statistics
    3. Examples
    4. Assignments
  7. Image processing with Python and SciPy
    1. Python Imaging Library - PIL
    2. Images with NumPy and SciPy
    3. Astronomical FITS files with PyFITS
    4. Other processing
    5. SciKits
    6. Examples
    7. Assignments
  8. User interfaces
    1. Command line and the operating system
    2. Graphical user interfaces in Python (GUI)
    3. Examples
    4. Assignments

These topics may be added for a longer version of this course

  1. Real world interfacing
    1. Instrumentation and communication
    2. Serial ports
    3. USB
    4. TCPIP
    5. Threading
    6. Incorporating manufacturer's code
  2. Working with the web
    1. HTTP servers
    2. Getting data from servers
    3. Sending data to servers
    4. Common gateway interface - CGI
    5. Using Python with CGI
    6. Programming for server-side processing
  3. Python and other languages
    1. Bash scripting in Unix-like systems
    2. Very simple C
    3. Using Python with other code
    4. Android for web development
    5. LabVIEW for instrument control and data analysis
    6. Java for astronomical calculations: AstroCC and AstroImageJ