Programming

The focus of this course is on data structures, algorithms, algorithm analysis, and problem solving techniques in Computer Science, and not on programming, much less programming in a particular language. Programming is, however, a valuable part of the course as it helps us solidify the abstract concepts we study. We will use C++ as the primary programming language. Submissions will be in the form of packaged, well documented, C++ 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.

Programming Environment and Tools: You are free to choose details such as operating system, development environment, and editor based on your preferences. However, no matter what you use, the submission should be a source-code package that works in a standard C++ environment. Further details on the C++ environment, packaging, submission, and testing procedure will be provided in class and on the newsgroup.

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. The use of any specific literate-programming or documentation tool is neither necessary nor sufficient for this requirement.

Class Accounts: Although the use of official class accounts, on department computers, is not strictly required, it is a good idea for everyone to have accounts on both our main Unix host (aturing) and the cluster of PCs. Among other uses, these accounts will permit testing that code submissions work correctly in a reference environment. Class accounts will be generated based on enrollment information soon after the first class meeting. You should be able to access your aturing account from anywhere on the Internet, including the labs in Neville Hall and elsewhere on campus, by using ssh to connect to aturing.umcs.maine.edu. On most Unix hosts, the command ssh -l username aturing.umcs.maine.edu should suffice. For Windows hosts, the freely available Putty program works well: http://www.chiark.greenend.org.uk/~sgtatham/putty/.