COMP 2103 — Computer Programming 3 — Winter 2018


Dr. Jim Diamond (CAR 409, 585–1402)

Brief Description:

This course assumes a good knowledge of the topics covered in COMP 1113 and COMP 1123.  In this course, we will introduce shell script programming and the GNU/Linux operating system and we will cover the C programming language in considerable depth.

Detailed Course Description:

See comp2103.pdf for a detailed description of the course and other relevant information.  It is important for you to read this as soon as possible, as it points you to some introductory self-study material.

Assignments and notes:

Assignments and related materials are found here.

Notes are found here.

Other related materials are found here.

Laptop Information

In this course your laptop is an essential part of the learning environment. This section briefly discusses some of the issues.

Hardware Platform

You can participate in this course with any of the Acadia-recommended laptops, although some choices will make your life easier than others.  While non-recommended laptops are fine in some courses, you may have some difficulty if your laptop has low specifications.  In particular, do not expect to be able to use a netbook or a laptop with particularly low specifications (relative to a reasonable 2018 laptop, not relative to a reasonable laptop of the year it was manufactured).

Operating System: GNU/Linux

Lecture examples and exercises, as well as weekly assignments will use the Linux operating system.  If for some reason you plan on using a "Brand X" laptop, it is up to you to ensure that your chosen laptop will work well enough with Linux to complete the course requirements.  There are various web sites where you can find reports of how well a given laptop works with Linux; for example, do a web search such as "Linux Thinkpad X41" to find reports on information related to running Linux on a Lenovo Thinkpad X41.

Note that Linux itself is free, so you won't be paying for any of the software we will use in COMP 2103.  (In fact, you will find that there is a huge amount of high-quality software available for Linux for free; the biggest shortcoming from some students' perspective is the relatively limited number of games, although I am told that has improved considerably in the last few years.)

Installing Linux is easy enough if you know what you are doing.  If you have never done it before you may find it a bit daunting without the help of someone who knows the routine, but it's not really that hard.  For more information see Linux.html.

If you don't want to install Linux by yourself, help will be provided during the first week to those who need it.  Let me know ASAP if you want some help.  If you feel comfortable installing it yourself you should do so as soon as possible to develop some familiarity with Linux and the associated software.

Whether you do the installation yourself or get some help, you should back up the useful information on your computer before you install Linux, in case you accidentally do something to lose your data.

For the more adventurous and self-reliant who want to learn more of the ins and outs of how Linux systems work "under the hood", you may be interested in Slackware Linux, Arch Linux or Gentoo Linux.  The latter had been quite popular with some Acadia students in past years.  Gentoo and Arch require more effort than Slackware to get started, but they both have considerable documentation available aimed at new users.  Arch Linux has a very strong user community and good on-line documentation.  Having said that, less adventurous students may find it best to follow the advice in the above-mentioned Linux.html web page.


Virtually every Linux system comes with the bash command interpreter ("shell"), which we will use when we discuss shell script programming.  We also need the C development environment, including the gcc compiler and the make program.  Many Linux distributions come with the C development environment already installed, but virtually all Linux systems have this available for download and installation.

Prepared by J. Diamond — Last updated 2018-01-01.

Valid CSS! Valid XHTML 1.0 Strict