Labs are an integral component of COSC1020 and you are expected to do them by their deadlines. Material covered in any of the labs can be on tests and exams.

With the exception of Lab#1, which must be done in Prism, you can do the labs either in a campus lab or at home. If you prefer to work on a home PC, you will need to set it up first so that you can have a home-based development environment, and the Lab Handbook has all the needed details to achieve that. Note that working at home should not be confused with a telnet remote connection since the latter does not support GUI programs like UniCon.

In order to compile and run Lab programs, you need a console that allows issuing commands. This is provided by an application called UniCon (a TYPE software) that is available on all platforms. If you use Unix or Linux, you can either use UniCon or the terminal window that comes naturally with these operating systems. On Windows machines, however, the console interface (known as the DOS command prompt) is cumbersome at best, and hence it is recommended that you use UniCon.

Lab #n must ideally be completed during week #n of the term but it is accepted if done during week #n+1. For example, Lab#3 can be eChecked until Sunday midnight at the end of week #4.

Each Lab ends with a section entitled CHECKING that poses one or more problems to be solved; e.g. in Lab #4, the checking problems are numbered 4A, 4B, and so on. To solve a problem like 4A, you will need to develop an application called Check04A; i.e. named Check, followed by the lab number zero-filled to two digits, followed by the problem number (A or B or ...). You compile and run your app repeatedly in UniCon (or some other console) until you are convinced it produces the desired output under a variety of input conditions. At that point, you use eCheck, a software bundled within UniCon, to check your app.

eCheck is a test harness that runs your app under several test cases that are semi randomly chosen. If the app failed to produce the expected output, eCheck displays both outputs (yours and the expected) and the input that caused the problem. You would then investigate, fix the problem, and retry. Otherwise, eCheck connects to York to record your name as having completed that Lab (assuming the deadline has not passed).

Important Notes on eChecking: