CSCI 1120 (Low-Level Computing), Spring 2020:
Options for Doing Homework


Contents

Overview

This course is mostly about C programming, but not entirely: It's meant to also introduce you to other low-level concepts we think are important for CS students to know about, such as command-line tools for various things. So while you can do most of the homeworks using an IDE (some more easily than others), if you do that you're missing out on a key part of the course. Odds are that if you continue in computer science, at some point it will be a help to know how to use the command-line tools I use in this class, so I say make this an opportunity to get some practice with them.

Several of the homeworks also work best if you have access to a UNIX/Linux-like environment, since they're set up to use make, which we'll talk about later in the course and is among those concepts the course is supposed to introduce you to.

So I really encourage you to try to get access to a UNIX/Linux-like environment. This document is meant to describe various options for doing that.

Department machines

This is normally the best option in a lot of ways, but physical access to our classrooms and labs is more limited right now than usual, and many of you are not on campus anyway.

Remote access also may be easier -- or at least faster -- if you're on campus, and even if you're not, it does have the virtue of simplicity in that in that you don't have to install anything (other than optionally a VMWare client for using ITS's VDI).

In previous years it was not ideal for Windows users because setting up even a text-mode connection to a Linux system from Windows can be a pain.

However, all of you should now have access to a Linux virtual desktop via ITS's VDI. If you've used this interface before, you know how it works, but this year in addition to a Windows desktop you should have access to a Linux desktop. (If you don't, then we somehow didn't add you to the list of people with access; e-mail me and I'll get you added.) If you haven't, point a Web browser at vdi.trinity.edu; what to do from there should be fairly self-explnatory. You have the option of installing a local VMWare client or continuing with HTML. HTML is fine for initial or occasional use, but if you do this often it makes sense to install the client.

If you install a VMWare client, you can share files on your local machine with the virtual machine; when you start the client, go to Connection->Settings->Sharing and add the folders/directories you want to share; they will be accessible from the virtual desktop in directory tsclient.

Your own machine -- Linux

If you have access to a Linux machine, this is also an easy option: You may have to install some things, but that should be straightforward, since all the needed tools/programs should be available from your distribution's standard repositories. If you have any trouble installing what you need (vim, gcc, and make), e-mail me and ask. (Do tell me which distribution you use.)

Your own machine -- Mac OS X

The Mac Terminal application essentially provides something very much like what you get by opening a terminal window on a Linux machine. You may have to install the C compiler I use in class (gcc) and make. Local expert Dr. Hibbs reports that he recently acquired a new Mac laptop, and the first time he tried to use git he got a pop-up window offering to install “command-line tools”, and letting it do apparently also installed gcc and make. If you just get “command not found” you'll have to do more. (More details on request.)

After installation, you should have something that's close enough to Linux for the commands I show in the videos and class to work.

Your own machine -- Windows

Sadly, this is both the O/S most of you report using and the one where you have to do the most. Just installing a C compiler is probably not so very difficult (I've heard good reports about MinGW), but as noted earlier, for this course I don't think it's the best way. Options for getting a Linux-like environment on a Windows machine include:




2020-09-06