CSCI 162: lab exercises

Sample solutions

Labs will consist of a mix of written exercises and coding problems/experiments.

There are six labs, worth 6% each, for a total of 36% of the course grade.
You must pass the labs to pass the course.

Labs will be distributed and submitted using git, with the process to be discussed in lectures and labs in weeks 1 and 2. (There is a Git Submit FAQ in the department tutorials.)
No labs will be accepted by any other mechanism (neither email nor paper submissions will be accepted, no exceptions).

Labs submitted up to 24 hours late will be penalized 10% of the total possible mark,
labs submitted 24-48 hours late will be penalized 25%,
labs submitted 48-72 hours late will be penalized 40%,
no submissions will be accepted more than 72 hours late.

Assessment Lab dates Topic(s) Due date
Lab 1 Jan. 16, 23 git/linux, data representation 5pm Tue. Jan. 29
Lab 2 Jan. 30, Feb. 6 Digital logic (logisim) 5pm Fri. Feb. 15
Lab 3 Feb. 13, 20 Assembly language (Marie) 5pm Tue. Mar. 5
Study week (week of Feb. 25-Mar. 1)
Lab 4 Mar. 6, 13 Functional programming: lisp 5pm Tue. Mar. 19
Lab 5 Mar. 20, 27 Logic programming: prolog 5pm Tue. Apr. 2
Lab 6 Apr. 3, 10 Theory of computation, analysis of algorithms 5pm Fri. Apr. 12

Recap of our use of git for labs/assignments:

In lab 1 we'll walk through the process of setting up and using your git repository. This section is just an overview of what will be happening.

There is a special server that will hold the git repositories the instructor supplies for each lab/assignment/project.

Students will also set up their own space on this server to hold their solutions for the labs/assignments/projects. These are created using a "fork" command, sent to the server using ssh. The command to do so looks like:

   ssh csci fork csci162/lab1 csci162/$USER/lab1
(in this case assuming it is called lab1, for the course csci162).

Once students have their space set up on the server, they can copy (clone) the repository to their linux account where they can actually work on the files:

   git clone csci:csci162/$USER/lab1
Once students have completed their work, they can update their git repository to make note of all the changes and copy the results back to the server using:
   git add .
   git commit -m "complete lab1"
   git push
(note these three steps must be done in order - leaving out any step will mean some of your changes don't make it back to the server)

The instructor is then able to copy your work from the server for marking.