Program studiów
Architektura komputerów
Przedmiot „Architektura komputerów” koncentruje się na zasadach projektowania i organizacji komponentów współczesnych systemów komputerowych. Jego głównym celem jest zaznajomienie studentów z funkcjonowaniem procesorów, pamięci operacyjnej, magistral oraz urządzeń peryferyjnych, a także wprowadzenie do programowania w języku C.
W trakcie zajęć omawiane są binarne i heksadecymalne systemy liczbowe oraz sposoby wykonywania operacji arytmetycznych. Studenci poznają podstawy algebry Boole’a, funkcje logiczne i boolowskie, ich reprezentację, metody minimalizacji oraz zastosowanie map Karnaugh. Szczegółowo analizowana jest budowa i organizacja procesorów, w tym struktura rdzeni, rejestrów, pamięci podręcznej oraz zasady działania systemów wielordzeniowych. Porównywane są architektury CISC i RISC, a także omawiane pojęcie pracy potokowej.
Kurs porusza również tematykę pamięci komputerowych, ich strukturę, hierarchię, organizację oraz sposoby dostępu. W ramach wykładów poruszane są również zagadnienia związane z magistralami i komunikacją między komponentami systemu. Studenci mają okazję zapoznać się z podstawami systemów wbudowanych i Internetu Rzeczy (IoT), poznając ich specyfikę, typy procesorów oraz przykładowe zastosowania. Przedstawiany jest także przegląd nowoczesnych rozwiązań sprzętowych, w tym układów dedykowanych dla zastosowań związanych ze sztuczną inteligencją.
Zajęcia laboratoryjne mają charakter praktyczny, obejmują ćwiczenia z zakresu systemów liczbowych, operacji arytmetycznych na liczbach binarnych, stałoprzecinkowych i zmiennoprzecinkowych. Studenci uczą się pracy z funkcjami boolowskimi, przeprowadzają minimalizację logiczną i projektują proste układy cyfrowe. Poznają środowisko programistyczne języka C, proces kompilacji, linkowania i uruchamiania aplikacji. Ćwiczenia obejmują także operacje bitowe, obsługę wskaźników, zarządzanie pamięcią dynamiczną oraz implementację podstawowych struktur danych, takich jak listy, stosy czy kolejki.
Przedmiot łączy solidne podstawy teoretyczne z praktycznymi umiejętnościami programistycznymi, przygotowując studentów do pracy z systemami niskopoziomowymi i programowaniem bliskim sprzętowi.