Pick a markdown and code style:

Installing Programming Languages Tools Without The Virtual Machine.

If you can't install my virtual machine, either because you have an ARM Mac or due to other reasons, you will have to install the tools needed for this class separately. We will look at many languages, but the languages you will definitely be asked to write programs in are:

We'll deal with other languages if the need arises.

Recommendation for PCs

If you have a PC but can't install my VM, my recommendation is to use VirtualBox or some other VM host such as Multipass to install a new Linux VM on top of Windows. I recommend Ubuntu since it's easy. Installing development tools in Linux is usually much easier than on Windows. For example, to install the SFML library for C++ in Debian or Ubuntu Linux, you just need to sudo apt-get install libsfml-dev.

Without a Linux VM, you will have to install the tools on Windows directly. The community edition of Visual Studio is free (be sure to install F# as well as C/C++/C#).

Recommendation for Macs

You can also install your own Linux virtual machine on top of MacOS with a non-VirtualBox VM host such as Multipass. However, since MacOS is also a Unix-based operating system, it's already very similar to Linux and so I don't think it would be much better than just installing the tools directly. You will certainly need Xcode. Download Mono, which comes with C#, and follow instructions for installing F#. You might have some languages installed already, such as Python.

C/C++ Compilers on Macs

There are two versions of C and of C++: ANSI C/C++ (clang/clang++) and Gnu C/C++ (gcc/g++). The gnu versions allow some extentions that we will be using in some programs. On a Mac, although you can run gcc/g++ once you've installed Xcode and the relevant command-line tools, these are NOT the genuine Gnu versions. For licensing reasons, gcc actually calls clang - clang and gcc are the same. To install the real gcc/g++, you can try to follow the instructions here. After you follow all the steps carefully, Gnu C/C++ will be available as gcc-13 and and g++-13. gcc/g++ will still refer to the ANSI versions.

Choosing a Development Enviornment

I believe that the best development environment for writing relatively small programs and experimenting with various languages is a simple editor and a command-line compiler. But you can use whatever you want. Macs and Linux already should have Vim and some other simple editors installed. All systems can run VS Code (not to be confused with full visual studio). For PCs, you can also choose a simpler editor such as Notepad++ and for Macs, Textmate. Be sure to use an editor designed for writing code (not notepad or wordpad) and do things like show line numbers and match parentheses and other brackets.

Lastly, please remember the following: although I will be happy to help you setup your computer if I can, ultimately you are responsible for preparing your computer to do the assignments for this class. Do not rely on me for tech support.