# Computing¶

It is possible to do all of the work for this class from any modern operating system (e.g. Windows, OSX, Linux); however since I primarily have expertise with Linux and OSX, some of the following resources will be specific to those systems. Windows users may always follow the instructions below for installing a Linux Virtual Machine if desired.

## Linux¶

It is recommended that you install a Linux Virtual Machine on your personal computer, so that you can do all of your computing work for this class on your own schedule. Follow this link for instructions on setting up a Linux Virtual Machine that should contain all of the requisite software for this class.

Alternately, if you already use a Debian-based linux distribution (Ubuntu, Mint, BunsenLabs, etc.), you can try using this script to install the necessary packages for this course.

Additionally, you should familiarize yourself with the Linux command line. Follow this link for a tutorial on using Linux.

## C++:¶

The recommended C++ compiler for this class is the GNU C++ compiler, g++, that is typically installed by default on Linux systems (as well as in the Linux VM referenced above). Newer OS X operating systems use the clang++ compiler (and create shortcuts so that g++ redirects to clang++) – this should be fine for all work in this class, but since I do not use clang++ I do not know for certain. In addition, our computing work in this course will rely on a custom C++ matrix class, that implements a high-level and object-oriented (Matlab-like) approach to dense linear algebra computations in C++.

## IDEs and Editors¶

Computer programs may be written in any text editor (e.g. Notepad or Textedit, or even Microsoft Word when saved as plain text). However unlike man, not all editors are created equal. Here I list some recommended programming editors (perform syntax highlighting, etc.) and Integrated Desktop Environments (IDEs) that combine the text editor with compilers, debuggers and documentation.

Recommended C++ IDEs
IDE Windows OSX Linux Free?
Code::Blocks Y Y Y Y
QT Creator Y Y Y Y
Codelite Y Y Y Y
Eclipse Y Y Y Y
Netbeans Y Y Y Y
Xcode N Y N Y
Visual Studio Y N N N
KDevelop N Y Y Y

Of these, Code::Blocks and Eclipse are installed on zeno (run codeblocks or eclipse at the command line).

Recommended C++/Python editors
Editor Windows OSX Linux Free?
Sublime Text Y Y Y S
Emacs Y Y Y Y
Vim Y Y Y Y
GEdit Y Y Y Y
Geany Y N Y Y
TextMate N Y N Y
Of these, Emacs, Vim, GEdit and Geany are installed on zeno (run emacs, vim, gedit or geany at the command line). Sublime text is by far the most popular among SMU’s C.S. students; it is free but a fee is required to remove ads.