Main page

Last updated: 2005-04-28

Solutions to exercises for various courses we take (Computer Science major)


  1. Why we do it
  2. Required libraries and software
  3. How to use the packages
  4. Packages for the 1st semester
  5. Packages for the 2nd semester
  6. Packages for the 3rd semester
  7. Packages for the 4th semester

Why we do it

All the solutions use only open source / free software (i.e., software bundled with most GNU/Linux distributions; see and The files are packaged by course into gzipped tar-balls (`.tar.gz' files).

The reason for doing this is that we want to help someone get started using GNU/Linux in their studies. Amazingly enough, it has become possible to run demonstrations of programs designed for GNU/Linux on the university's computers.

First option is to use local GNU/Linux installations -- computers in some laboratories are dual-booted into MS Windows or GNU/Linux. Next, starting in September 2003, a public GNU/Linux server is available for students (try localnet.elf or, although it provides very limited resources -- 10Mb disk space would not be so bad if not for the 100 inodes limit.

We ourselves are using university's computers only for demonstration purposes, and do all the development using our home boxes. But it might be possible to use university's computers for the development, though a few important things will be lacking (such as TeX / METAPOST and some documentation).

Required libraries and software

The packages were developed and tested using the following GNU/Linux distros:

All packages can be managed using GNU Make (except packages for the 1st semester).

Mostly, the programs were written in C and compiled using gcc bundled with one of the above distros.

A few assembler sources were compiled using nasm (the Netwide Assembler).

Some programs use graphics library svgalib (

Some use GTK (, which in turn uses X Window.

For documentation, we used TeX and METAPOST (teTeX distribution).

How to use the packages

Assume the package's name is: package.tar.gz.

After downloading, untar the package using the command

tar xzvf package.tar.gz

This should create package directory. Change into it. If there are lower level tar-balls, you can get them untared by running

make install

Now run


to build all sources, or

make <progname>

to build just <progname> program. Check out Makefile for other options you have. See also notes on specific packages below.

Packages for the 1st semester

PC Architecture - download

Programming I - download

Packages for the 2nd semester

BZhD - download
Contains two term papers for BZhD

Programming II - download

Conference Paper - download
This is a paper Oleg had prepared for Math & Computer Science Conference which took place around April 2003

Packages for the 3rd semester

Computer Graphics - download

Operating Systems - download1 download2
Although the Operating SystemS [sic] course was based on MS Windows, we managed to get through with Linux for the exception of these programs:

One program for this course matched another for the Software Design I course, so you can find it there (`clockgtk')

Software Design I - download
This package has a link to a directory in Computer Graphics, so you'll also need to download and install that to be able to compile (some) programs in this package

Programming III - download

Theory of Programming - download

Packages for the 4th semester

Software Design II - download

System Programming - download
One exercise, namely a program utilizing C++ classes, can be taken from Computer Graphics course (triangulate)

Ukrainian - download
Contains some papers we had to write for Ukrainian classes (in Ukrainian and Russian)

Main page