Alexandros Paramythis

Home    News    Research    Publications    Teaching 


353.027, Praktikum: Programmiersprache C
Summer semester 2007

General course facts


Content outline (order may change)

  • Introduction (quick overview)
  • Basic I/O in C
  • Pointers, Arrays and Strings
  • Structures, Enums and Unions
  • The Standard C Library
  • Threads
  • Sockets

Programming assignments

  • Six or seven, depending on course schedule
  • Some individual assignments
  • Some group assignments (2 people)
    • Group rotation policy
  • Plagiarism from colleagues or the web will not be tolerated


  • End of course, open books, no preparatory questions

Mark distribution

  • 50% from assignments
  • 50% from final exam

Reading materials

  • Only course notes required
  • Auxiliary on-line materials will be made available
  • Books will be recommended


  • Not required, but strongly recommended


On-line materials

We will be using WeLearn for the course:

If you don’t have an account on this server, one will be created for you. If you have not received an email regarding your account one week after the first meeting, please let me know.

If you have never used WeLearn before:

  • Login with your assigned user name and password.
  • Before doing anything else, change your password. Note that WeLearn only stores passwords in encrypted form, so it cannot send you your password back if you lose / forget it. If you do forget your password, you will have to notify me and I will arrange that you get a new one from the server's administrator.
  • Once logged in, follow the link "Courses" in the top bar.
  • Select the the link "KV Programmiersprache C SS05" from the courses' menu.
  • You are now in the course's workspace.

We will be using WeLearn for: distribution of course materials (course notes, auxiliary reading materials, software, links, etc.), assignment submission and discussions.


Programming environment


The official compiler for this course will be the C compiler of the GNU Compiler Collection (GCC, This means that the source code of all assignments that you submit will be compiled with this compiler (on an x86 machine, either on Windows or on Linux). If you choose to use a different compiler (or a version of the C standard libraries other than the one that comes with GCC), you will need to compile and run your program with GCC before submitting it to ensure that: (a) it does compile without problems under GCC, and (b) that the run-time behaviour of the GCC-compiled executable is the expected one.

Those of you developing on Linux (or Unix, FreeBSD, etc.) should normally have GCC installed as part of the core installation. If not, you will have to use the package management tool of your preference to install the relevant packages (you will definitely need GCC and the standard C libraries; the installation additional utilities - e.g., the GDB text-mode debugger - is up to you).

Those working on Windows will need to install Cygwin on their machine. You can do this by going directly to, downloading and running the setup program, and selecting the packages that you want to install. A probably safer alternative is to download the file '' from the course's site on WeLearn (under 'Software/Windows'), unpack it and select to install from the locally downloaded packages when running the setup program. The packages included should contain all the tools and utilities that you will require throughout the course.

Editors and IDEs

Eclipse (IDE, all platforms): If you are already familiar with the Eclipse IDE (, you may be interested in the Eclipse CDT (C/C++ Development Tools) Project ( Their current release includes: C/C++ Editor (basic functionality, syntax highlighting, code completion etc.); C/C++ Debugger (APIs & Default implementation, using GDB); C/C++ Launcher (APIs & Default implementation, launches and external application); Parser; Search Engine; Content Assist Provider; and, Makefile generator.

Bloodshed Dev-C++ (IDE, Windows): Bloodshed Dev-C++ ( is a full-featured IDE for C and C++. It uses the Mingw port of GCC by default, but can also be used in combination with Cygwin or any other GCC based compiler. Features: Support GCC-based compilers; Integrated debugging (using GDB); Project Manager; Customizable syntax highlighting editor; Class Browser; Code Completion; Function listing; Profiling support; Quickly create Windows, console, static libraries and DLLs; Support of templates for creating your own project types; Makefile creation; Edit and compile Resource files; Tool Manager; Print support; Find and replace facilities; CVS support.

Anjuta (IDE, Linux): Anjuta ( is a versatile IDE for C and C++ on GNU/Linux. It has been written for GTK/GNOME and features a number of advanced programming facilities. These include project management, application wizards, an on-board interactive debugger, and a powerful source editor with source browsing and syntax highlighting.

SciTE (Editor, Windows & Linux): The SCIntilla based Text Editor (SciTE, is a nice, simple, yet quite powerful text editor with syntax highlighting and folding for a large variety of languages (including C of course). Although far from being anything close to an IDE, it does allow one to configure options that make compilation and debugging easy.

Emacs (Editor / IDE, all platforms): GNU Emacs ( can handle C development very well through "modes", of which there are quite a few around. If you are an emacs user already and would like to use it for development, try out the default "c-mode". If you are not already an emacs user, you may be better off installing and trying a less complex environment for your development.

The above are just a few pointers to get you started. There are literaly hundreds of editors and IDEs (both commercial and free) that support C in various levels of sophistication. A visit to Google should give you a feeling of the breadth of options available to you.


Last modified:
Quick-access links (Alt-Q):
Header (Alt-H) | Navigation (Alt-N) | Content (Alt-C) | Footer (Alt-F)