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
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:
- Open UNIX accounts
- Activate the account on student.agh.edu.pl
SSH access
ssh your_login@student.agh.edu.pl
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 – UNIX Tools and Development Environment
- Laboratory 2 – Structure of a C Program
- Laboratory 3 – Control Statements
- Laboratory 4 – Functions and Multi-file Programs
- Laboratory 5 – Arrays and Strings
- Laboratory 6 – Pointers
- Laboratory 7 – Dynamic Memory
- Laboratory 8 – Structures and typedef
- Laboratory 9 – Files
- Laboratory 10 – Linked Lists
- Laboratory 11 – Introduction to C++
- Laboratory 12 – Project / Summary