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 | ||||||||||||||||||||||||