Physics 20 Reading List #3
This week we have readings about good graphing practice, about the practicalities of working with emacs and with three graphing applications (xmgrace, gnuplot, and Mathematica; pick one), about Python's history and style, and some references to C++.
1. Beautiful graphing according to Tufte
A good reference for graphing style is E. R. Tufte's book, The Visual Display of Quantitative Information, which we have in the lab. Most of Tufte's book is summarized in J. P. Boyd's The Gospel According to Tufte, a chapter of a future (very promising) book (here are the other chapters). Even this summary is a bit long, so for the purpose of this week's assignment I would like you to concentrate on Secs. 2.1 (the five laws) and 2.4 (small multiples). How can you apply these principles to the graphs you will be producing for this week's assignment?
2. Emacs
The best emacs tutorial comes with the program itself (just type 'CTRL-h' and then 't'). But see also the emacs wiki, and this tutorial. We have also a good emacs book in the physlab library, Learning GNU Emacs, by D. Cameron, B. Rosenblatt, E. S. Raymond (O'Reilly, Sebastopol, CA, 1996).
3. Graphing
This weeks assignment will introduce you to some graphing tools. The first tool, xmgrace has a useful and intuitive menu-driven interface. The second, gnuplot, has a command-line interface and is somewhat easier to automate the generation of a set of similar graphs. The third tool is our old friend Mathematica, which has a full range of graphing capabilities as well as access to a huge set of functions. See this link for some information on all these tools and some hints on how to use them.
3a. Graphing with xmgrace
This is the tool I use to create 2D graphs in my research. It is very powerful and has easy-to-use menus that can produce high-quality graphs with little effort. Its documentation is somewhat incomplete, but its possible to figure out much just by playing around with the menus. See the tutorial and the user's guide at the Grace homepage, and also see this link for some hints.
3b. Graphing with gnuplot
Don't waste time with the gnuplot manual, whose logic is counterintuitive at the best. See instead this tutorial from IBM; for tricks (which will be become necessary almost immediately; such is the nature of the tool), see this (Not so) FAQ.
3c. Graphing with Mathematica
The chief tool to plot data with Mathematica is ListPlot[]; the entire section 1.9 of the manual is also relevant. Mathematica can be a very powerful environment for graphics programming, where you write code to map your data structures directly into graphics primitives. For further information, look at section 2.10 of the manual.
4. Python's history and style
Links to Python manuals and tutorials are posted on the physics 20 web site, in the Resources section. This week I'm asking you to read two short book prefaces (here and here) by Python creator Guido van Rossum, who talks about the history and development of the language.
You should also start reading the Python style guide for guidance on writing your programs. Some of this will refer to Python constructs that you don't know yet, so you should return to the style guide occasionally.
5. C++ references
For this week's (and future) assignments, you may use either Python or C++. I recommend Python for those of you who know neither of these languages because of Python's easier learning curve. For those of you who choose C++, a tutorial can be found here. Bjarne Stroustroup, the creator of C++, has a C++ FAQ that you may find helpful. An extremely useful book on C++ style and techniques is Effective C++ by Scott Meyers.
1. Beautiful graphing according to Tufte
A good reference for graphing style is E. R. Tufte's book, The Visual Display of Quantitative Information, which we have in the lab. Most of Tufte's book is summarized in J. P. Boyd's The Gospel According to Tufte, a chapter of a future (very promising) book (here are the other chapters). Even this summary is a bit long, so for the purpose of this week's assignment I would like you to concentrate on Secs. 2.1 (the five laws) and 2.4 (small multiples). How can you apply these principles to the graphs you will be producing for this week's assignment?
2. Emacs
The best emacs tutorial comes with the program itself (just type 'CTRL-h' and then 't'). But see also the emacs wiki, and this tutorial. We have also a good emacs book in the physlab library, Learning GNU Emacs, by D. Cameron, B. Rosenblatt, E. S. Raymond (O'Reilly, Sebastopol, CA, 1996).
3. Graphing
This weeks assignment will introduce you to some graphing tools. The first tool, xmgrace has a useful and intuitive menu-driven interface. The second, gnuplot, has a command-line interface and is somewhat easier to automate the generation of a set of similar graphs. The third tool is our old friend Mathematica, which has a full range of graphing capabilities as well as access to a huge set of functions. See this link for some information on all these tools and some hints on how to use them.
3a. Graphing with xmgrace
This is the tool I use to create 2D graphs in my research. It is very powerful and has easy-to-use menus that can produce high-quality graphs with little effort. Its documentation is somewhat incomplete, but its possible to figure out much just by playing around with the menus. See the tutorial and the user's guide at the Grace homepage, and also see this link for some hints.
3b. Graphing with gnuplot
Don't waste time with the gnuplot manual, whose logic is counterintuitive at the best. See instead this tutorial from IBM; for tricks (which will be become necessary almost immediately; such is the nature of the tool), see this (Not so) FAQ.
3c. Graphing with Mathematica
The chief tool to plot data with Mathematica is ListPlot[]; the entire section 1.9 of the manual is also relevant. Mathematica can be a very powerful environment for graphics programming, where you write code to map your data structures directly into graphics primitives. For further information, look at section 2.10 of the manual.
4. Python's history and style
Links to Python manuals and tutorials are posted on the physics 20 web site, in the Resources section. This week I'm asking you to read two short book prefaces (here and here) by Python creator Guido van Rossum, who talks about the history and development of the language.
You should also start reading the Python style guide for guidance on writing your programs. Some of this will refer to Python constructs that you don't know yet, so you should return to the style guide occasionally.
5. C++ references
For this week's (and future) assignments, you may use either Python or C++. I recommend Python for those of you who know neither of these languages because of Python's easier learning curve. For those of you who choose C++, a tutorial can be found here. Bjarne Stroustroup, the creator of C++, has a C++ FAQ that you may find helpful. An extremely useful book on C++ style and techniques is Effective C++ by Scott Meyers.

0 Comments:
Post a Comment
<< Home