Math@UNC Virtual Machine

The Math@UNC virtual machine is an Arch Linux environment that can be run in the VirtualBox application available for all major operating systems (Windows, MacOS, Linux).

Packaging public domain software in a virtual machine avoids time-consuming installation and configuration of individual applications. Also, students and instructors work in the same standard environment making it easy to learn computational mathematics concepts and techniques.

This introductory lesson presents the basics of working in the Math@UNC environment.

1.Working at the command line

Many computer operating systems and individual applications provide a graphical user interface (GUI). Prior to the development of GUIs, applications were invoked in a character-based terminal using what is known as a Command Line Interface (CLI).

1.1.Terminal application

A CLI is available in Math@UNC through the Terminal application. It is often more efficient to work in a CLI, and learn to use some basic commands.

Directory commands

Files are organized in a hierarchical tree of directories in Linux. Your home directory is /home/student and common directory commands include:

pwd

Print working directory

ls

List files in current directory, ls -al lists all information about files

mkdir

Make a new directory

rmdir

Remove a directory

File commands

Common commands:

rm

Remove (erase) a file

cp

Copy a file

1.2.Subversion application

Subversion is a version management application that is used to deliver up-to-date course material in Math@UNC. Subversion has many commands, but the main one used in coursework is

svn update executed in a course directory to download the most recent course material.

1.3.Midnight Commander

Midnight commander is a character-based file manager that allows browsing the directory tree, and manipulating files and directories.

1.4.Octave

Octave is a scientific computation application available both at the CLI and at the GUI. It can be used as a quick calculator or to develop complex applications. Octave usage is introduced during coursework.

1.5.Maxima

Maxima is a symbolic computation package available both at the CLI and at the GUI. It carries out operations encountered in calculus, algebra, geometry.

2.Graphical User Interface

Math@UNC uses the XFCE4 GUI under Arch Linux. The main applications used in coursework are listed below.

2.1.TeXmacs

TeXmacs is a scientific editing platform that allows efficient composition of mathematical text, and can also contain sessions from other software applications such as Octave or Maxima. This allows the production of “live” documents in which students can immediately experiment with mathematical concepts presented in the document.

2.2.Octave

The GUI version of Octave adds on sophisticated plotting, editing, and debugging to the capabilities of the CLI version.

2.3.wxMaxima

This is the GUI version of Maxima, and allows construction of notebooks that combine multiple analytical, graphical and numeric computations into a single document

2.4.JupyterLab

JupyterLab is a web-based application that runs in a browser (e.g., the Firefox browser), and provides a notebook interface to Octave, Python, Julia, and Sage. Python is a general-purpose interpreted language, Julia is a high-performance interpreted language meant to provide better performance than Octave/Matlab, and Sage is a complete system that combines several public-domain mathematics packages into a common interface glued together with Python.