Programming

This is a course on programming languages and will cover a few in detail and more in less detail, from a list that includes C, C++, Python, Java, Standard ML, and Prolog. The only fully supported platform is Debian (stable) GNU/Linux, so everyone should ensure that they have such a machine (real or virtual) that they own and fully control. Most of what we need is likely to work on a variety of other platforms too but support for those will be increasingly limited with increasing difference from the main platform. (For example, Debian derivatives like Ubuntu will almost certainly be fine; Windows, MacOS much less so.) The reason is simple: We wish to spend more time on the core topics and less on debugging arcane systems issues related to quirks of a platform or installation. Submissions will be in the form of packaged, well documented source files. Proper documentation and packaging of source code and other material is a crucial component of assigned work and submissions failing in this regard will receive no credit.

Literate Programming: All submitted work must use a literate programming style: Your programs must be designed with a human as the intended reader, although they must also compile and run correctly. Programs that do not meet this requirement are likely to receive a zero score with no further consideration. Details will be discussed in class.

Class accounts: Shell accounts will be generated on the host aturing.umcs.maine.edu based on registration records. These accounts are important for successful completion of homeworks and other assignments. You should be able to access your accounts from anywhere on the Internet by using ssh. On most Unix-like hosts (GNU/Linux, Mac OS), the command ssh -l username aturing.umcs.maine.edu should suffice. For Windows hosts, the freely available Putty program works well.