Course Page

Introduction to Programming Languages

Course information, working environment, assessment rules, laboratory organization, and links to all laboratory materials.

C programming UNIX / Linux student.agh.edu.pl Laboratories + Exam

Course Overview

General information about the course.

This course introduces students to procedural programming in C and selected basic elements of C++. The laboratories are designed to develop practical programming skills in a UNIX/Linux environment.

  • Main language: C
  • Additional topics: selected basic elements of C++
  • Working environment: student.agh.edu.pl
  • Programming tools: gcc, nano, indent, man
Important: Lectures are not mandatory according to the study regulations.

Course Structure

Lectures, laboratories, and the general learning path.

  • Lectures: 28 hours
  • Laboratories: 28 hours

The course begins with the UNIX/Linux environment, development tools, and the compilation pipeline. Later laboratories introduce progressively more advanced topics such as:

  • structure of C programs, variables and types,
  • formatted input and output,
  • control statements,
  • functions and multi-file programs,
  • arrays and strings,
  • pointers and dynamic memory,
  • structures and typedef,
  • files, linked lists, and selected elements of C++.

Working Environment

Recommended technical setup for laboratory work.

During the course we will use the AGH UNIX server:

student.agh.edu.pl

To use the server, activate your UNIX account in the AGH network services panel:

https://panel.agh.edu.pl

After logging in to the panel:

  1. Open UNIX accounts
  2. Activate the account on student.agh.edu.pl

SSH access

ssh your_login@student.agh.edu.pl
Access from outside the AGH network may require the AGH VPN (OpenVPN).
The first laboratory includes configuration of the English locale, nano, and indent, so no advanced setup is required before the class.

Assessment and Grading Rules

Rules for partial tests, laboratories, and the final exam.

Partial Tests During Lectures

Two partial tests are organized during the lecture time slots.

To be exempt from the final exam, a student must:

  • obtain at least 50% from each partial test, and
  • obtain at least 70% from both tests combined.
Combined percentage from partial tests Grade
70% – <80%4.0
80% – <90%4.5
≥90%5.0

Laboratory Grade

Laboratory work is based on programming tasks checked during subsequent classes. A task must work correctly, meet the requirements, and be fully understood by the student.

Percentage Grade
50% – <60%3.0
60% – <70%3.5
70% – <80%4.0
80% – <90%4.5
≥90%5.0

Final Course Grade

The final course grade is calculated as the arithmetic mean of:

  • the percentage result from laboratories, and
  • the percentage result from the final exam, or from the partial tests if the student is exempt from the exam.

The final result is then rounded up to the nearest integer and converted into the final grade.

Laboratory Pages

Each laboratory has its own dedicated page with tasks and step-by-step instructions.

Laboratory 1 introduces the UNIX/Linux environment, code formatting, compilation stages, and the difference between header files and libraries.