If you have a Windows laptop, there are UNIX emulators that make it possible to do the coding work for this class on your laptop. Similar capabilities are available on Apple machines as well, but since I don't have an Apple machine, I can only go into details on the Windows process.
A Unix emulator provides the capability of opening a terminal window on your laptop that looks and feels like a terminal window on a UNIX machine. You get a command line with a prompt where you can type commands. The response to those commands is typed back to the screen and another prompt appears. The default disk space in your UNIX emulator will be a sub-directory of your windows disk. That means that you can use either UNIX commands such as "ls" to list the contents of that directory, or you can use Windows Explorer to look at the same list of files. You can edit files using a windows editor such as Notepad, and those edits will be visible in your terminal window.
In a real UNIX terminal window, there are commands for tools such as editors or web browsers which open up full screen applications in separate windows. These commands will not work in a terminal emulator (without lots of extra effort which frankly is not worth it.) However, it is possible to run Windows commands from a UNIX emulator terminal window which run in full screen. For instance, there is a Windows version of gedit that you can install on Windows, and make available to the UNIX emulator so you can invoke gedit from the terminal emulator.
There are two good UNIX emulators that run in a Windows environment, Cygwin and git-bash. There may be other alternatives as well, such as Windows Subsystem, and there are always new software becoming available, but Cygwin and git-bash both have the advantage of being free to install, relatively easy to use and maintain, and which provide all the tools necessary to do work for this class.
The difference between Cygwin and git-bash is that Cygwin is bigger, more flexible, and more extendable, and more all-encompasing. git-bash is smaller, easier to install, but the native git-bash is not extendable, and so separate installations are required for extended capability. Because Cygwin is bigger and more flexible, you need to invest a little more time and effort up front to install and maintain Cygwin. If you are looking for a UNIX emulator you can use for the rest of your academic career, Cygwin might be the best answer. If you are looking for the quickest and easiest solution, go for git-bash. But to tell the truth, either Cygwin or git-bash work equally well, and installation efforts are not very different, so choose whichever you prefer.
The git-bash tool contains a very basic UNIX emulator. The primary purpose of git-bash is to enable Windows users to use the "git" tool, which is used to keep track of multiple versions of software projects. As you have seen, we use git to manage assignments, labs, and projects in this class, so getting git along with the UNIX emulator is very nice.
Since git-bash is relatively small, installing git-bash is pretty simple.
Note that git-bash does not include a full-screen editor (it does include "vi" which is a command line editor, but "vi" is not easy to use.)
Double click on the Git Bash icon to open a git-bash terminal window. git-bash will open a terminal window titled "MINGW64...", which stands for "Minimum Gnu for Windows 64 bit". Your "home" directory will be your standard Windows user directory, namely C:\Users\userid, where userid is your Windows user id.
You can use all the standard UNIX commands, such as ls, mkdir, cd, pwd, and cat. If you have Java installed on your laptop, you can also run javac and java commands. You can access your U drive (if you have it mounted) by using the specification "/u". You should also be able to use all the git commands such as git clone, git commit, git push, etc.
You can cut, copy, and paste from or to the git-bash terminal window, but the shortcut command Ctrl-C, Ctrl-X, and Ctrl-V will not work. The terminal emulator doesn't want UNIX cut copy and paste to get confused with Windows cut copy and paste. I always right mouse in the git-bash terminal window when I want to do a cut, copy, or paste instead of using shortcuts.
The git-bash terminal window is configurable. Go to the title bar that has a git-bash icon and says "MINGW64" on the left side, and right click on that icon to see the options you have. You can change the default size, fonts, background and foreground colors, etc. etc.
There are two major parts to Cygwin - a setup tool and the emulator itself. The setup tool is a full screen windows application that steps you through the process of configuring, downloading, and building the emulator itself. There are millions of configuration choices with Cygwin, so its nice to have a full-screen application to walk you through the process.
Note that if run the setup tools the first time to make the Cygwin emulation tool, and then realize you want to change some configuration choices, you can re-run the setup tool. The setup tool remembers your first choices and only downloads the new things it needs before rebuilding your Cygwin emulator.
On the "Select Package" screen, there is a "View" button with a pull-down list of options. I like to start with "Category" selected. If there is a "+" in the box next to "All", click on it, and you will get a list of categories. Then expand the "Devel" category. The only package you will need for this class is the "git" package, but you may want to install some other packages, or you may want to get a feel for things as they are, and if you need something later, you can always re-run the setup tool.
The Cygwin install process created (by default) a subdirectory on your Windows hard disk at "C:\cygwing64". You can look at this using Windows Explorer by going to "This PC", and then going to you C: disk, and then the "cygwin64" subdirectory.
Double click on the Cygwin64 Terminal icon (or Cygwin Terminal icon) to open a Cygwin terminal window. Your home directory will be on your windows drive "C:\cygwin64\home\userid", where userid is your Windows userid.
You can use all the standard UNIX commands, such as ls, mkdir, cd, pwd, and cat. If you have Java installed on your laptop, you can also run javac and java commands. You can access your U drive (if you have it mounted) by using the specification "/cygdrive/U". You should also be able to use all the git commands such as git clone, git commit, git push, etc.
You can cut, copy, and paste from or to the Cygwin terminal window, but the shortcut command Ctrl-C, Ctrl-X, and Ctrl-V will not work. The terminal emulator doesn't want UNIX cut copy and paste to get confused with Windows cut copy and paste. I always right mouse in the Cygwin terminal window when I want to do a cut, copy, or paste instead of using shortcuts.
The Cygwin terminal window is configurable. Go to the title bar that has a terminal icon and says "bash" on the left side, and right click on that icon to see the options you have. You can change the default size, fonts, background and foreground colors, etc. etc.
There are several different editors you can use in a Windows environment, all that can be invoked from a terminal emulator window if you have them set up correctly. Some of these are even packaged with Windows, so you don't need to install them. Your choices include the following (this is by no means a complete list, but these are the interesting ones I know of.):
I've installed and used all of these editors in my career, but would recommend gedit as the easiest, most intuitive, and sufficiently powerful and productive to do everything we need to do in this class.
The gedit editor is free software, one of the components of software built by the "gnome" organization (See https://www.gnome.org for more details.). Many of the UNIX based systems around campus use gnome software for a UNIX desktop and tool suite, so students are often familiar with the gedit editor.
Download the gedit install package by going to https://download.gnome.org/binaries/, and choosing the platform that matches your laptop, and then choosing the "gedit" folder. Download the ".msi" (Microsoft Install) file, and double click on it. This will take you through the gedit install process. This will not make a new desktop icon, but that's OK. We won't be invoking gedit from the desktop, but from our UNIX emulator terminal window via the command line.
In order to invoke from the command line, we need to tell Windows where to find our newly installed gedit command. In order to do this, we need to update the Windows "PATH" variable. Do this by:
Now you should be able to run "gedit filename" from the UNIX emulator terminal window.
One note... The first time you invoke gedit from a terminal window, make sure you add an ampersand (&) to the end of the command so that gedit can "run in the background"... in other words you can run the editor and the command line window at the same time.
Once gedit is up and running, the next time you invoke gedit for a different file, it does not start a new gedit window... it just sends your new file to the existing gedit window which is already running in the background. The existing gedit window will open a new tab for the new file. For this reason, you don't need to run the second invocation in the background (although runnning it in the background won't hurt anything.
When you close your editor, the next time the terminal window updates, you will see a message such as [1]+ Done gedit hello.c to indicate that the background job has finished.