Elementarne wprowadzenie do podstaw programowania. W trakcie kursu przedstawione zostaną podstawowe zagadnienia programowania, takie jak algorytm, kod źródłowy, program oraz podstawowe umiejętności pisania i debugowania programu.
Podczas kursu wprowadzony zostanie język C/C++, który będzie podstawowym narzędziem do implementacji poruszanych zagadnień.
Omawiane w czasie wykładu i laboratoriów tematy będą ilustrowane rzeczywistymi problemami programistycznymi, takimi jak: algorytmy wyszukiwania i sortowania, operacje na macierzach, całkowanie numeryczne, geometria wektorowa, symulacje fizyczne, analiza tekstu czy metody statystyczne. 
Podczas zajęć będzie wykorzystywany system linux i pakiet kompilatorów GCC.


Zakres treści:
1. Wstęp i omówienie języka, przegląd.
2. Pojęcie zmiennej i typu, sposoby reprezentacji liczb całkowitych i zmiennoprzecinkowych, rzutowanie zmiennych, idea wyrażenia w  języku C/C++.
3. Instrukcje sterujące (warunkowe, wyboru, iteracji, skoku).
4. Funkcje - definiowanie i użycie.
5. Tablice - automatyczne tablice jedno- i wielo-wymiarowe.
6. Operacje bitowe.
7. Wprowadzenie do algorytmów, sortowanie, wyszukiwanie, rekurencja, porównanie złożoności czasowej.
8. Obsługa napisów - podstawowe operacje przeprowadzane na łańcuchach znakowych.
9. Wskaźniki - operatory adresu i dereferencji, arytmetyka wskaźników, wskaźniki a funkcje.
10. Dynamiczna alokacja i zarządzanie pamięcią.
11. Dynamiczne tablice wielowymiarowe.
12. Biblioteka standardowa (funkcje matematyczne, liczby pseudolosowe, funkcje czasu i daty).
13. Struktury - implementacja podstawowych struktur danych.
14. Biblioteka wejścia/wyjścia (obsługa plików tekstowych i binarnych).
15. Sposoby projektowania i debugowania kodu, błędy kompilacji i wykonania.

Nauka podstaw programowania na przykładzie języka C/C++.

Przedmiot koncentruje się na podstawowych metodach i algorytmach generacji grafiki komputerowej 2D i 3D.
Pierwsza część obejmuje algorytmy grafiki rastrowej (linia bresenhama, filtry splotowe, histogram obrazu).
W drugiej części przedstawione zostaną podstawy programowalnego potoku graficznego 3D realizowanego na przykładzie biblioteki OpenGL/GLSL.
Głównym językiem/technologią będą C++/Qt/OpenGL.
Formą zaliczenia będzie zrealizowanie projektu.