Using Programming Languages
in PHZ4390 



In this course I will introduce you to some programming tools that are similar to those used by particle physicists: python (a general programming language) and a computer algebra system such as wxMaxima or Sage . The tools are free (costly ones such as Mathematica Maple, etc. are also possible) and can run on all popular operating systems (Windows, Mac, Linux), although Sage needs special handling for Windows. I recommend You need to download both software packages and install them on your home/laptop computer. If you have other tools like Mathe, you are free to use those instead. Python is fullscale programming language (similar to C++ and Java) but has a much simpler syntax and runs directly without compiling (it's technically called a "scripting language"). Used extensively by physicists, Python has many libraries that extend its power. However, we will only use its most basic features in this course. You can download either the 2.7.x or the newer 3.x version since the differences are not that important at the elementary level. Python is a powerful tool for solving problems where one has to use conditional logic, loops and external routines.
wxMaxima (a graphical version of Maxima) is an advanced free tool that allows you to calculate symbolic or numerical expressions such as derivatives and definite or indefinite integrals; evaluate Taylor expansions to arbitrary order; sum finite or infinite series; solve equations and differential equations, plot expressions and functions, etc. Its documentation is not great, however, so I am providing you with tutorials that allow you to learn from examples, which is the way I learned it. Below are some resources that you will find useful to come up to speed in wxMaxima. I will also provide worksheets that you can evaluate to test your skills.
Sage is another possibility as a computer algebra system. It runs on top of Python and thus most of its commands use underlying Python syntax and constructs, a real plus when writing more than 1line functions. Below are links to some tutorials that you might find useful for learning the syntax and capabilities.
