Karta Przedmiotu

Politechnika Białostocka Wydział Informatyki
Kierunek studiów Cyberbezpieczeństwo Poziom i forma
studiów
pierwszego stopnia
stacjonarne
Grupa przedmiotów /
specjalność
Profil kształcenia ogólnoakademicki
Nazwa przedmiotu Podstawy programowania E Kod przedmiotu CYB1PPR
Rodzaj zajęć obowiązkowy
Formy zajęć i liczba godzin W Ć L P Ps T S Semestr 1
30 45 Punkty ECTS 6
Program obowiązuje od 2026/2027
Przedmioty wprowadzające
Cele przedmiotu Zapoznanie studentów z podstawowymi konstrukcjami programowania oraz mechanizmami działania programów komputerowych, ze szczególnym uwzględnieniem organizacji pamięci i sposobu wykonywania programu. Przedstawienie sposobów reprezentacji i przetwarzania danych w programach oraz zależności między strukturą programu a jego działaniem w pamięci. Wykształcenie umiejętności analizy działania prostych programów oraz identyfikacji typowych błędów, w szczególności związanych z zarządzaniem pamięcią. Wprowadzenie do wykorzystania języków skryptowych w automatyzacji zadań oraz przetwarzaniu danych. Zapoznanie z podstawowymi zastosowaniami programowania w analizie danych i ruchu sieciowego.

Odniesienia do frameworka edukacyjnego mikrokompetencji SFIA:
Programowanie / rozwój oprogramowania PROG – poziom 2
Analiza danych DTAN – poziom 1
Rozwiązywanie problemów PBMG – poziom 2
Testowanie oprogramowania TEST – poziom 1
Bezpieczeństwo informacji SCTY – poziom 1
Ramowe treści programowe Podstawowe pojęcia programowania: struktura programu, zmienne, typy danych, instrukcje sterujące oraz funkcje. Model pamięci programu: tablice, wskaźniki, dynamiczna alokacja pamięci, różnice między pamięcią stosu i sterty. Struktury danych w językach programowania oraz ich reprezentacja w pamięci. Podstawy operacji wejścia/wyjścia oraz przetwarzania danych z wykorzystaniem plików. Wprowadzenie do języka wysokiego poziomu jako narzędzia do przetwarzania i analizy danych. Wprowadzenie do analizy pakietów sieciowych z wykorzystaniem wybranych bibliotek programistycznych.
Inne informacje o przedmiocie przedmiot ma związek z prowadzoną na Uczelni działalnością naukową
przedmiot kształtuje umiejętności praktyczne
Wyliczenie: Nakład pracy studenta związany z: Godzin
ogółem
W tym
kontaktowych
W tym
praktycznych
udziałem w wykładach 30 30
udziałem w innych formach zajęć 45 45 45
przygotowaniem do bieżących zajęć o charakterze praktycznym 30 30
wykonaniem projektu 35 35
przygotowaniem do egzaminu 10
Razem godzin: 150 75 110
Razem punktów ECTS: 6 3.0 4.4
Zakładane kierunkowe efekty uczenia się Wiedza Umiejętności Kompetencje
społeczne
CYB1_W02 CYB1_U02 CYB1_K01
CYB1_W03 CYB1_U03 CYB1_K02
H1_K03
Cele i treści ramowe sformułował(a) dr inż. Anna Łupińska-Dubicka Data: 08/04/2026
Realizacja w roku akademickim 2026/2027
 
Treści programowe
Wykład
1. Struktura programu, proces kompilacji i reprezentacja danych (C)
2. Model pamięci programu: stos, sterta, czas życia zmiennych (C)
3. Analiza działania programu w pamięci (C)
4. Wskaźniki: adresy, dereferencja, podstawowe operacje (C)
5. Wskaźniki w praktyce: operacje na pamięci, zależności z tablicami (C)
6. Tablice, struktury oraz dynamiczna alokacja pamięci (C)
7. Błędy pamięci i ich konsekwencje (C)
8. Operacje na danych binarnych i plikach (C)
9. Podstawy języka Python: składnia, typy, instrukcje sterujące (Python)
10. Struktury danych i operacje na danych (Python)
11. Przetwarzanie danych i operacje na plikach (Python)
12. Korzystanie z bibliotek i tworzenie prostych skryptów (Python)
13. Podstawy programowania obiektowego: klasy, obiekty, metody (Python / C++)
14. Porównanie modelu pamięci i programowania w C i Pythonie
15. Zastosowania programowania w cyberbezpieczeństwie (przegląd)
Pracownia specjalistyczna
1. Środowisko programistyczne, kompilacja i uruchamianie programów (C)
2. Zmienne, typy danych i operacje na danych (C)
3. Analiza pamięci programu: stos i zakresy zmiennych (C)
4. Wskaźniki - podstawowe operacje na adresach (C)
5. Wskaźniki i tablice - zależności i zastosowania (C)
6. Struktury i organizacja danych w pamięci (C)
7. Dynamiczna alokacja pamięci(C)
8. Błędy pamięci i ich analiza (C)
9. Podstawy języka Python oraz struktury danych (Python)
10. Przetwarzanie danych, operacje na plikach i automatyzacja zadań (Python)
11. Korzystanie z bibliotek i tworzenie skryptów (Python)
12. Definiowanie klas i wykorzystanie obiektów (Python / C++)
13. Definiowanie klas i wykorzystanie obiektów (Python / C++)
14. Zadanie integracyjne: analiza danych lub budowa prostego narzędzia (Python)
15. Prezentacja projektów, wystawienie ocen
Metody dydaktyczne
(realizacja stacjonarna)
W wykład problemowy; wykład informacyjny; wykład z prezentacją multimedialną
Ps programowanie z użyciem komputera
Metody dydaktyczne
(realizacja zdalna)
W wykład problemowy; wykład informacyjny; wykład z prezentacją multimedialną
-
Forma zaliczenia
W egzamin pisemny
Ps sprawdziany, ocena wybranych programów realizowanych na zajęciach, większy program/projekt realizowany poza zajęciami
Warunki zaliczenia
W Uzyskanie min. 30% punktów z każdego efektu uczenia się z zakresu wiedzy, a po spełnieniu tego warunku ostateczna ocena wynika z sumy uzyskanych punktów.
Kryteria oceny:
[ 0 – 50]% punktów – 2.0
(50 – 60]% punktów – 3.0
(60 – 70]% punktów – 3.5
(70 – 80]% punktów – 4.0
(80 – 90]% punktów – 4.5
(90 – 100]% punktów – 5.0
Ps Minimalne wymagania odnośnie efektów uczenia się:
E2 - implementacja co najmniej 3 programów w języku C, wykorzystujące funkcje, pamięć alokowaną dynamicznie oraz operacje wejścia/wyjścia.
E3 - uzyskanie co najmniej 30% punktów z zadań sprawdzających analizę działania programów, obejmujących identyfikację i wyjaśnienie błędów, w tym co najmniej jednego związanego z zarządzaniem pamięcią
E4, E5 - realizacja projektu na na poziomie min. 50% punktów

Ocena końcowa składa się z trzech części:
- krótkie sprawdziany: 2 po 10 pkt,
- zadania realizowane w czasie zajęć: 9 zadań po 2 pkt,
- projekt - 10 pkt. + 20% za dokumentację (w sumie max. 12 pkt.)

Po spełnieniu powyższych warunków oraz zsumowaniu uzyskanych punktów:
[ 0 – 50]% punktów – 2.0
(50 – 60]% punktów – 3.0
(60 – 70]% punktów – 3.5
(70 – 80]% punktów – 4.0
(80 – 90]% punktów – 4.5
(90 – 100]% punktów – 5.0
Symbol efektu Zakładane efekty uczenia się Odniesienie do efektów uczenia się zdefiniowanych dla kierunku studiów
Wiedza Umiejętności Kompetencje
społeczne
Wiedza: student zna i rozumie
E1 podstawowe konstrukcje programowania oraz sposoby reprezentacji i przetwarzania danych w programach komputerowych, w szczególności zależności między strukturą programu a jego działaniem w pamięci
Umiejętności: student potrafi
E2 tworzyć oraz analizować proste programy komputerowe, stosując podstawowe konstrukcje językowe, struktury danych oraz mechanizmy zarządzania pamięcią
E3 analizować działanie programów oraz identyfikować i diagnozować typowe błędy, w szczególności związane z nieprawidłowym wykorzystaniem pamięci
E4 wykorzystywać język wysokiego poziomu oraz jego biblioteki do tworzenia prostych skryptów służących do przetwarzania danych oraz automatyzacji zadań
Kompetencje społeczne: student jest gotów do
E5 krytycznej oceny tworzonych rozwiązań programistycznych oraz odpowiedzialnego doboru metod i narzędzi, z uwzględnieniem poprawności działania, efektywności oraz racjonalnego wykorzystania zasobów obliczeniowych, w tym w kontekście zrównoważonego rozwoju
Symbol efektu Sposób weryfikacji efektu uczenia się Forma zajęć na której zachodzi weryfikacja
E1 egzamin pisemny W
E2 krótkie sprawdziany, zadania realizowane na zajęciach Ps
E3 krótkie sprawdziany, zadania realizowane na zajęciach, projekt Ps
E4 zadania realizowane na zajęciach, projekt Ps
E5 zadania realizowane na zajęciach, projekt Ps
Literatura podstawowa
1. B. W. Kernighan, Język ANSI C: programowanie, Helion, 2020
2. R. Reese, Wskaźniki w języku C. Przewodnik, Helion, 2014
3. R. C. Seacord, Efektywny C. Wprowadzenie do profesjonalnego programowania, Helion, 2022
4. https://en.cppreference.com/w/c
5. M. Gorelick, Wysoko wydajny Python : efektywne programowanie w praktyce, Wydanie III, Gliwice, 2023
Literatura uzupełniająca
1. R. J. Deitel, H.M. Deitel, Język C : solidna wiedza w praktyce. Wydanie VIII, Helion, 2021
2. A. Łupińska-Dubicka, M. Tabędzki, Podstawy programowania w języku C. Zadania z rozwiązaniami, Oficyna Wydawnicza Politechniki Białostockiej, 2022
3. K. Amini, Ekstremalny kod w języku C. Współbieżność i programowanie zorientowane obiektowo, Helion, 2019
4. D. M. Beazley, Python : zwięzłe kompendium dla programisty, Helion, 2023
5. A. Łupińska-Dubicka, A. Chmielewski, Podstawy programowania w języku Python w przykładach z rozwiązaniami, Oficyna Wydawnicza Politechniki Białostockiej, 2023
6. M. Lutz, Python. Wprowadzenie, Helion, 2025
7. https://www.iso-9899.info/wiki/The_Standard
Koordynator przedmiotu: dr inż. Anna Łupińska-Dubicka Data: 08/04/2026