CS 375 - Unix System Programming
Class Schedule: MWF 3, KC-267
Grades for this course will be posted
Due to COVID-19, all student meetings will be conducted one-on-one via
Zoom. See instructor's homepage for times set aside for office hour
appointments. Make an appointment online at
at least one hour in advance. Email for availability at
There is no final exam in this course. The Final Project is due no
later than 11:59 on Monday, November 3 (Reading/Study Day).
These are announcements made in class or via email currently in effect
for this course.
- Syllabus and Schedule
(PDF) - Fixed inconsistencies: exam is take-home and final project is due on Reading/Study Day
- Reading and video
references. Some are assigned as needed.
- All assignments will be submitted via the Submission System. The username for this class is your ACENET account followed by “-cs375”. E.g., dh27-cs375. The initial password is your student ID number (starting with 0).
Course software: All assignment for this class must be completed under Ubuntu 16.04LTS or newer.
- VirtualBox, a virtual
machine that can be used to run Linux on Windows. Note that
hardware virualization must be enabled in the BIOS of the host
machine. (In particular, HP machines have this disabled by
- 64-bit Ubuntu 18.04LTS VDI.
This file is a ZIP archive of a virtual disk image for VirtualBox
set up similarly to the UE Linux lab client and instructions on
how to create a VirtualBox VM from it.
- Create a new folder (e.g.
- Download/open this zipfile and extract files
virtual-box-instructions-2019-08.pdf) into the
new folder. Note that this zipfile is 3GB. The
extracted VDI file is 8GB and will grow larger as the
system is used to a maximum of 64GB.
- Follow the instructions to create a VirtualBox VM
- Install the g++ and make packages:
$ sudo apt install g++ make
Desktop install disk ISO image can be downloaded, if you need
to start from scratch (e.g., you have a 32-bit machine) and/or
want use the latest Ubuntu version (currently 20.04LTS). Here is a
Guide. Note that the ISO image must be burned to a DVD or a
bootable USB stick to install natively. For a VirtualBox
installation, only the image file is needed.
Once the installation is completed, do the following:
- Run system updates. The easiest way to do this is from a
terminal command line, type:
$ sudo apt update
$ sudo apt upgrade
$ sudo apt autoremove
- Install the following packages: clang, g++, ssh, make,
emacs and/or vim. Other packages will be installed as the
course progresses. The easiest way to do this is from a
terminal command line, type:
$ sudo apt install <list of packages>
- Click on the Devices menu, then on Insert Guest Additions
CD image... Run the CD program. This will allow the VM to run
in full screen mode.
- Reboot the VM
This is a list of documents posted for this class in reverse
chronological order. Some will be available in hard copy as well.
- Monday, September 21
- Friday, September 18
- Wednesday, September 16
- Lecture 10 (Slides)
- Project 2
Wednesday, September 23 extended to
Friday, September 25, by 11:59pm via the submission
- Monday, September 14
- Friday, September 11
- Wednesday, September 9
- Monday, September 7
- Lecture 6 (Slides)
- Project 1 (PDF)
- Due: Wednesday, September 16, by 11:59pm via
the submission system
- Friday, September 4
- Wednesday, September 2
- Monday, August 31
- Lecture 3 (Slides)
- Homework 2 (PDF) - Due: Monday, September 7, by 11:59pm via the submission system
- Friday, August 28
- Lecture 2 (Slides)
- Homework 1 (PDF) - Due: Wednesday, September 2, by 11:59pm via the submission system
- Wednesday, August 26