601.229 (S20): Resources

This page has links to useful resources.

Information

This section has links to some information resources you might find useful.

x86-64 assembly programming resources

Exercises and practice problems

This section links to exercises, practice problems, and similar resources.

Software

This section covers the software you’ll be using in working on programming assignments.

Linux

For the programming assignments, you will need to use a recent x86-64 (64 bit) version of Linux.

Any of the computers that are part of the Ugrad net will work reasonably well, although the compiler versions will not necessarily be the same ones that Gradescope uses. You can use ssh to connect to one of these computers via the network.

If you are planning to use your own computer for development, we highly recommend using some flavor of Ubuntu 18.04. If your computer is running Windows or MacOS, and you would still like to do development on your own machine, one excellent option is to install VirtualBox on your computer, and then download one of the following Virtual Machine images:

Ubuntu MATE 18.04 for CSF.ova (3.6 GB download: username csf, password csf)

Lubuntu 18.04 for CSF.ova (2.6 GB download: username csf, password csf)

The second (Lubuntu) image is configured with a smaller virtual hard disk, and might work better if your disk space is limited.

The above VM images have all of the software you will need to work on assignments in CSF, and they more or less exactly match the environment used by Gradescope autograders.

After you’ve downloaded one of the images above, use FileImport Appliance within VirtualBox, select the .ova file, wait for the import to complete, then you should be able to start and run the VM. Note that VirtualBox will require that your CPU’s hardware virtualization features are enabled. If you see a message about CPU virtualization not being enabled, you should be able to reboot your computer, enter the BIOS configuration, and enable the CPU virtualization features.

Tools

Some of the tools you’ll want to have are:

All of these are available by default on the Ugrad computers.

To install on an Ubuntu-based system:

sudo apt-get install gcc g++ make ruby valgrind git

To install on a Fedora system:

sudo yum install gcc g++ make ruby valgrind git