One of the goals of this class is to provide you with some experience developing software in a Unix-like environment. I invite you to experiment with the possibilities. Because access tp Unix/Linux on campus is limited — and because Java is itself platform-independent — I will not require you to use Unix/Linux, but I will give you several avenues for exploration. In class, my lectures/demonstrations will use MacOS (which is part of the broad Unix family), relying mainly on the Terminal/command-line and the vim editor (which dates back to 1976 but remains a remarkably popular development environment). This is the only development environment in which I guarantee I will be able to help you with technical problems.
There are essentially three ways to get access to vim:
vi
or
vim
at the command prompt. If you have a machine running MacOS or GNU/Linux, you already have vim; you may also choose to install MacVim, a version of vim especially designed for MacOS.
vim is quite different from other editing tools you may have used: that's mainly because it is organized on the idea that the main thing programmers do is change existing text rather than enter new text. this 36-minute video is a nice introduction to this way of thinking (even if you don't watch the whole thing). Here is a guide for learning how to be an effective vim user (it also links to the video, at the end). In particular, the recommendation about spending some time with the vimtutor
application is a good one. If you prefer a book-like introduction, A Byte of Vim is well-done (and free).
Once you have a basic idea of how vim works, this quick reference (from the official documentation) is a condensed listing of the many things you can do; here is another, more mobile-friendly cheat sheet.
If you've already taken a course in Java (which is a prerequisite for this course), you should be familiar with the Java Development Kit (JDK); if you have access to a computer, you probably have already installed a JDK on it. In order to make sure we're all using the same version of the language, please go to this page to install the latest version of Java SE 11.
For this class, we will mainly be using three Java-related commands: javac
to compile Java programs, java
to run programs, and, perhaps, jdb
to debug programs. If you are using a GUI-based Java IDE like DrJava, that's fine, but please note I will not be able to help you with anything related to those tools.
Here is a short tutorial on using Java on the Windows command line; if you're using a Mac, watch this short video instead.