These general remarks apply to how the do the projects for csc421. Please abide
carefully.
Platform
Projects are programming projects, done in C on Unix.
All reasonable effort shall be made to make your code platform independent,
however your code must work on Ubuntu 22.04.2 LTS.
For OSX, use the builtin command line or install Multipass.
Multipass (it says on the webpage) also works for Windows.
In an Ubuntu shell, no matter how you get one, it might be make is not found.
To get your build tools, use
sudo apt-get install build-essential.
OSX is a combination of a Mach Kernel and the FreeBSD Operating System, both of which
are Open Source and the combo goes by the name of Darwin. However, the desktop and perhaps
management tools are proprietary. So opening up a terminal on Apple is unix.
For the terminal on Apple, for missing packages, use Brew.
Brew is a package manager, same as apt which is the package manager for Debian
derived unices, or yum, which is the package manager for Red Hat derived unices.
typedef structs with snake_case name mangled to end in _t.
Do not declare variables in the middle of a block.
Do not use variable length arrays (VLA).
Resolve all warnings.
The C++ // one-line comment style is ok. (Although it then distinguishes new-lines from other white-space.)
A program is written by one person and debugged by many people. The rational for programming style is consideration
by those that write for those that debug.