Rozkład materiału - INF.04
Tematy lekcji dla kwalifikacji INF.04 Projektowanie, programowanie i testowanie aplikacji z powiązaniem do efektów kształcenia podstawy programowej.
Podstawa prawna: Dz.U. 2019 poz. 991 (formuła 2019)
Godziny: 810 godz. (BHP 15 · Podstawy informatyki 30 · Projektowanie oprogramowania 75 · Programowanie obiektowe 150 · Aplikacje desktopowe 120 · Aplikacje mobilne 150 · Zaawansowane webowe 150 · Testowanie i dokumentowanie 60 · Język obcy 60)
Egzamin: Część pisemna: 40 zadań zamkniętych, 60 minut, próg zaliczenia 50%. Część praktyczna: model „dk" (dokumentacja przy komputerze), 180 minut, próg zaliczenia 75%.
Liczby godzin jednostek pochodzą z minimalnej liczby godzin w podstawie programowej; podział na działy i tematy lekcji to propozycja dydaktyczna do adaptacji. Jednostka INF.04.2 (Podstawy informatyki) nie jest powtarzana, jeśli była realizowana wcześniej (np. w INF.03). Jednostki INF.04.10 (kompetencje personalne i społeczne) oraz INF.04.11 (organizacja pracy małych zespołów) nie mają osobnej puli godzin i są realizowane przekrojowo przy warsztatach i projektach. System kontroli wersji Git jest w INF.04 elementem podstawy (kryterium INF.04.3.5), więc nie występuje jako temat ponad PP. W jednostce INF.04.7 podstawy języka JavaScript i biblioteki React są przenoszone z INF.03 - tu realizowane są treści zaawansowane i integracja frameworków (ASP.NET Core, Django, Angular, React.js, Node.js), a jQuery ujęto jako technologię zastaną. W jednostce INF.04.4 dodano porównanie języków programowania obiektowego oraz orientacyjne wprowadzenie do języka Java (oznaczone jako ponad PP) - podstawa nie wymienia Javy w tej jednostce, lecz wymaga jej w aplikacjach desktopowych (INF.04.5) i mobilnych (INF.04.6), więc uczeń powinien mieć o niej pojęcie wcześniej.
To otwarte materiały dla nauczycieli: analiza podstawy programowej i gotowa propozycja rozkładu materiału (podział na działy, tematy i godziny). Minimalne godziny jednostek pochodzą wprost z podstawy i są wiążące; podział na tematy lekcji to nasza propozycja oparta na efektach kształcenia - każdy temat wskazuje powiązany efekt w kolumnie Efekty (np. INF.04.7.3). INF.04.2 (podstawy informatyki) nie jest powtarzana, jeśli była realizowana wcześniej (np. w INF.03).
Rozkład rozróżnia poziom wymagań, żeby było jasne, co jest obowiązkowe, a co naszą propozycją:
- Kod efektu w kolumnie Efekty (np.
INF.04.7.3) - minimum z podstawy programowej, twardy wymóg. - ponad PP - świadome rozszerzenie poza literę podstawy, uzasadnione zawodowo (np. wprowadzenie do Javy) - wartościowe, ale nieobowiązkowe.
- Nazwy konkretnych technologii i narzędzi w tytułach (np. Kotlin, React, WPF, Retrofit; albo aktualne wersje: WCAG 2.1/2.2 zamiast 2.0 z PP, .NET MAUI zamiast wygaszonego Xamarina) - proponowana współczesna realizacja efektu, nie litera podstawy; podstawa podaje je przykładowo („np.") lub dopuszcza odpowiednik, więc można wybrać inne.
Kryterium INF.04.7.2 wprost wymienia frameworki ASP.NET Core, Django, Angular, React.js, Node.js oraz bibliotekę jQuery „lub jej odpowiednik". Rozkład realizuje je nie jako osobne kursy „od podstaw", lecz integracyjnie - jako spójny ekosystem do budowy aplikacji pełnostosowych:
- Podstawy języka JavaScript i Reacta są w INF.03; w INF.04 wchodzimy od razu na poziom zaawansowany: hooki, routing, zarządzanie stanem, konsumpcja REST API, uwierzytelnianie.
- Backend pokrywają trzy stosy: Node.js/Express, Django (Python, ORM, DRF) i ASP.NET Core (C#, EF, Identity) - uczeń uczy się dobierać stos do wymagań.
- Frontend SPA: React (zaawansowany) i Angular (TypeScript, serwisy, formularze reaktywne) - z naciskiem na łączenie z dowolnym backendem REST.
- jQuery jako technologia zastana (legacy) - jak w INF.03; kryterium wymienia go z nazwy, więc jest pokryty bez osobnych godzin nauki.
- Dział E (52 godz.) to łączenie wszystkiego: SPA + API + baza, logowanie i kontrola dostępu end-to-end, realne funkcjonalności (e-sklep, portal, serwis rezerwacyjny) i zespołowy projekt pełnostosowy.
Podstawa wymienia tylko trzy wzorce projektowe (INF.04.3.8: Metoda szablonowa, Fasada, Kompozyt), ale w praktyce uczeń styka się z nimi szerzej, dlatego rozkład prowadzi jeden spójny wątek zamiast oderwanych pojęć:
- Przegląd wzorców GoF (INF.04.3, Dział E) - kategorie kreacyjne, strukturalne i czynnościowe z przykładami (Singleton, Fabryka, Obserwator, Strategia, Adapter, Dekorator); trzy wzorce z PP omawiane jako warsztat doboru.
- Wzorce architektoniczne (INF.04.3, Dział D) - kluczowa obserwacja: MVC, MVT/MTV i MVVM to ta sama idea (rozdzielenie danych, logiki i prezentacji), tylko różnie nazwana: MVC w ASP.NET Core, MVT/MTV w Django, MVVM w WPF i Angularze.
- Wątek wraca w jednostkach praktycznych jako konkretne realizacje wspólnego wzorca: MVC/MTV przy Django i ASP.NET (INF.04.7), MVVM przy WPF (INF.04.5).
Podstawa w jednostce programowania obiektowego nazywa wprost tylko C++, C# i Python (kryterium INF.04.4.4 dopuszcza też „inny język"), natomiast Java pojawia się dopiero w aplikacjach desktopowych (INF.04.5) i mobilnych (INF.04.6) - gdzie uczeń ma jej używać (Android), nie poznawszy podstaw. Dlatego do działu A dodano:
- porównanie języków obiektowych (C++, C#, Java, Python) - w ramach kryterium
INF.04.4.1; - wprowadzenie do Javy w dwóch tematach (8 godz.): JVM, składnia i struktury sterujące oraz Java obiektowo (klasy, dziedziczenie, różnice względem C#/C++) - oba oznaczone ponad PP, bo jednostka
INF.04.4nie wymienia Javy z nazwy. Cel: uczeń wchodzi w mobilki i desktop z realnym fundamentem Javy.
Podstawa wymaga aplikacji w jednym z systemów (INF.04.6.2: „iOS lub Android"), więc rozkład wybiera ścieżkę Android (najszerszy rynek pracy, darmowe narzędzia):
- Język: Kotlin i Java - Java jest wprost w PP, Kotlin to jej współczesny odpowiednik na JVM; obie bazują na fundamencie obiektowym z INF.04.4.
- Stos Android: Android Studio + SDK, komponenty (Activity, Fragment, Intent), layouty XML, listy (RecyclerView), dane lokalne (SQLite/Room), sieć (REST/JSON, Retrofit), lokalizacja i powiadomienia, publikacja w Google Play (APK/AAB).
- Kryterium XAML (
INF.04.6.2) pokrywa wariant wieloplatformowy .NET MAUI (C# + XAML) jako alternatywa; Xamarin tylko jako kontekst historyczny (wygaszony przez Microsoft w 2024).
W INF.04 Git jest wprost w kryterium INF.04.3.5 („korzysta z systemu kontroli wersji, np. Git"), więc - inaczej niż w INF.03 - nie jest tematem ponad PP; realizujemy go w jednostce projektowania oprogramowania jako warsztat pracy zespołowej z repozytorium.
INF.04.10 (kompetencje personalne i społeczne) oraz INF.04.11 (organizacja pracy małych zespołów) nie mają osobnej puli godzin - realizowane są w ramach tematów jednostek rdzeniowych, w szczególności:
- INF.04.10 - etyka zawodowa, planowanie i odpowiedzialność za zadanie, kreatywność, radzenie sobie ze stresem, komunikacja interpersonalna, praca w zespole - przy wszystkich warsztatach i projektach (INF.04.3-8).
- INF.04.11 - planowanie i kierowanie pracą zespołu, dobór osób do zadań, harmonogram i ocena jakości - przy projektach zespołowych (aplikacja obiektowa, desktopowa, mobilna oraz pełnostosowa aplikacja webowa w INF.04.7).
| Lp. | Temat lekcji | Godz. | Efekty |
|---|---|---|---|
INF.04.1 - Bezpieczeństwo i higiena pracy | |||
| A. Zagrożenia i ochrona na stanowisku programisty | |||
| 1 | Wprowadzenie do BHP. Czynniki szkodliwe, fizyczne i psychofizyczne; choroba zawodowa i wypadek przy pracy | 2 | INF.04.1.1 |
| 2 | Skutki czynników niebezpiecznych i uciążliwych; profilaktyka zdrowotna | 1 | INF.04.1.1 |
| 3 | Środki ochrony indywidualnej i zbiorowej w pracy biurowej | 2 | INF.04.1.2 |
| 4 | Ergonomia stanowiska komputerowego: oświetlenie, temperatura, mikroklimat | 2 | INF.04.1.2 |
| B. Pierwsza pomoc przedmedyczna | |||
| 5 | Ocena sytuacji, zabezpieczenie miejsca, wzywanie służb, pozycja bezpieczna | 2 | INF.04.1.3 |
| 6 | Resuscytacja krążeniowo-oddechowa (RKO) na fantomie wg wytycznych PRR/ERC | 3 | INF.04.1.3 |
| 7 | Pierwsza pomoc w stanach urazowych (krwotok, złamanie, oparzenie, amputacja) | 2 | INF.04.1.3 |
| 8 | Pierwsza pomoc w stanach nieurazowych (omdlenie, zawał, udar) | 1 | INF.04.1.3 |
INF.04.2 - Podstawy informatyki | |||
| A. Sprzęt i architektura systemu komputerowego | |||
| 9 | Parametry urządzeń techniki komputerowej; dobór do wymagań stanowiska | 2 | INF.04.2.1 |
| 10 | Jednostki pojemności pamięci, przeliczanie | 1 | INF.04.2.1 |
| 11 | Architektura systemu komputerowego: procesor, pamięć operacyjna, magistrale | 3 | INF.04.2.2 |
| B. Systemy informatyczne i dostępność cyfrowa | |||
| 12 | Systemy informatyczne i ich funkcjonalność (PESEL, e-dziennik, bankowość elektroniczna) | 2 | INF.04.2.3 |
| 13 | Przechowywanie informacji (serwer, chmura, nośniki); systemy w biznesie (e-commerce, e-faktura) | 2 | INF.04.2.3 |
| 14 | Dostępność cyfrowa wg wytycznych WCAG 2.1/2.2 (podstawa wskazuje WCAG 2.0) dla osób z niepełnosprawnościami | 2 | INF.04.2.4 |
| C. Sieci komputerowe | |||
| 15 | Topologie sieci, model TCP/IP i protokoły komunikacji | 2 | INF.04.2.5 |
| 16 | Sieci przewodowe i bezprzewodowe; przepustowość; transmisja synchroniczna i asynchroniczna | 2 | INF.04.2.5 |
| 17 | Bezpieczeństwo w sieci, komunikatory, netykieta | 2 | INF.04.2.5 |
| D. Systemy liczbowe | |||
| 18 | Pozycyjne systemy liczbowe: dwójkowy, ósemkowy, szesnastkowy, dziesiętny; konwersje | 3 | INF.04.2.6 |
| 19 | Kod uzupełnieniowy do dwóch; działania logiczne i arytmetyczne na liczbach binarnych | 3 | INF.04.2.6 |
| E. Cyberbezpieczeństwo, normy i prawo | |||
| 20 | Szkodliwe oprogramowanie, ataki hakerskie i środki zabezpieczeń | 2 | INF.04.2.7 |
| 21 | Ochrona danych osobowych, prywatność i tożsamość cyfrowa; bezpieczne transakcje | 2 | INF.04.2.7 |
| 22 | Normalizacja: normy i procedury oceny zgodności | 2 | INF.04.2.8 |
INF.04.3 - Projektowanie oprogramowania | |||
| A. Typy danych | |||
| 23 | Proste typy danych: liczbowe stało- i zmiennoprzecinkowe, logiczny, znakowy, łańcuchowy | 4 | INF.04.3.1 |
| 24 | Złożone typy danych: tablice jedno- i dwuwymiarowe, dynamiczne, asocjacyjne | 4 | INF.04.3.2 |
| 25 | Rekordy (struktura, unia), typ plikowy i wskaźnikowy | 2 | INF.04.3.2 |
| 26 | Kolekcje: listy, kolejki, stosy, wektory, iteratory; projektowanie zestawów danych | 2 | INF.04.3.2 |
| B. Algorytmika | |||
| 27 | Metody zapisu algorytmów: schematy blokowe, lista kroków, pseudokod, drzewa decyzyjne | 2 | INF.04.3.3 |
| 28 | Algorytmy iteracyjne, tekstowe, szyfrowania i tablicowe | 2 | INF.04.3.3 |
| 29 | Algorytmy rekurencyjne; problemy i metody (heurystyczne, problem komiwojażera) | 2 | INF.04.3.3 |
| 30 | Złożoność obliczeniowa algorytmów | 2 | INF.04.3.3 |
| 31 | Algorytmy sortowania: bąbelkowe, przez wstawianie, szybkie, dziel i zwyciężaj | 2 | INF.04.3.4 |
| 32 | Algorytmy wyszukiwania dla tablic, list, kolejek i stosów | 2 | INF.04.3.4 |
| C. Zarządzanie projektem programistycznym | |||
| 33 | Narzędzia zarządzania projektem (Jira, Trello); diagram Gantta | 4 | INF.04.3.5 |
| 34 | System kontroli wersji Git - repozytorium, gałęzie, praca zespołowa (warsztat) | 4 | INF.04.3.5 |
| 35 | Cykl życia projektu informatycznego, cel i fazy realizacji | 2 | INF.04.3.7 |
| 36 | Metodyki zarządzania: kaskadowa, przyrostowa, prototypowa, zwinne (Agile: Scrum/Kanban/Lean) | 4 | INF.04.3.7 |
| D. Projektowanie aplikacji i architektura | |||
| 37 | Analiza wymagań klienta i przełożenie ich na specyfikację techniczną | 4 | INF.04.3.6 |
| 38 | Projektowanie interfejsu użytkownika i wyglądu aplikacji; dostosowanie do platform | 4 | INF.04.3.6 |
| 39 | Architektura aplikacji: klient-serwer, podział na warstwy, paradygmaty (strukturalny, obiektowy) | 2 | INF.04.3.6 |
| 40 | Wzorce architektoniczne: MVC, MVT/MTV i MVVM - wspólna idea (rozdzielenie danych, logiki i prezentacji), różne nazwy (ASP.NET, Django, WPF/Angular) | 4 | INF.04.3.6 |
| 41 | Projektowanie struktur danych i funkcjonalności aplikacji | 2 | INF.04.3.6 |
| 42 | Planowanie systemu zabezpieczeń aplikacji | 2 | INF.04.3.6 |
| 43 | Projekt aplikacji - warsztat zespołowy (analiza, harmonogram, organizacja prac) | 4 | INF.04.3.6INF.04.3.7 |
| E. Wzorce projektowe i prawo autorskie | |||
| 44 | Przegląd wzorców projektowych GoF: kategorie kreacyjne, strukturalne i czynnościowe; przykłady (Singleton, Fabryka, Obserwator, Strategia, Adapter, Dekorator) | 4 | INF.04.3.8 |
| 45 | Wzorce z podstawy w praktyce obiektowej: Metoda szablonowa, Fasada, Kompozyt | 4 | INF.04.3.8 |
| 46 | Dobór wzorca projektowego do zadania programistycznego (warsztat) | 3 | INF.04.3.8 |
| 47 | Prawo autorskie w programowaniu: prawa osobiste i majątkowe, własność intelektualna, licencje | 4 | INF.04.3.9 |
INF.04.4 - Programowanie obiektowe | |||
| A. Środowisko, języki i podstawy programowania | |||
| 48 | Kompilatory i interpretery; etapy kompilacji i interpretacji kodu | 2 | INF.04.4.1 |
| 49 | Przegląd i porównanie języków programowania obiektowego: C++, C#, Java, Python (model wykonania, składnia, typowe zastosowania) | 2 | INF.04.4.1 |
| 50 | Język Java - maszyna wirtualna JVM, składnia, typy danych i struktury sterujące (wprowadzenie pod aplikacje mobilne i desktopowe) | 4 | ponad PP |
| 51 | Java obiektowo - klasy, obiekty, dziedziczenie i pakiety; różnice względem C# i C++ (warsztat) | 4 | ponad PP |
| 52 | Środowisko programistyczne, debugger, biblioteki; kompilacja i uruchamianie programów | 4 | INF.04.4.1 |
| 53 | Analiza błędów w kodzie za pomocą debuggera (warsztat) | 2 | INF.04.4.1 |
| 54 | Podział programu na funkcje i metody; rekurencja | 4 | INF.04.4.2 |
| 55 | Implementacja algorytmów w programie | 4 | INF.04.4.2 |
| B. Typy, wyrażenia i instrukcje | |||
| 56 | Proste i złożone typy danych; deklarowanie własnych typów i zmiennych | 4 | INF.04.4.3 |
| 57 | Operacje na zmiennych: wejścia/wyjścia, arytmetyczne, logiczne; typy złożone | 4 | INF.04.4.3 |
| 58 | Operatory: arytmetyczne, przypisania, porównania, logiczne, bitowe, łańcuchowe | 4 | INF.04.4.4 |
| 59 | Priorytety operatorów i budowanie wyrażeń | 2 | INF.04.4.4 |
| 60 | Instrukcje warunkowe i instrukcja wyboru | 4 | INF.04.4.4 |
| 61 | Instrukcje pętli | 4 | INF.04.4.4 |
| 62 | Biblioteki języka (C++/C#/Python): standardowa, matematyczna, algorytmy | 2 | INF.04.4.4 |
| C. Programowanie obiektowe | |||
| 63 | Podejście obiektowe; pojęcia: klasa, obiekt, metoda, pole | 4 | INF.04.4.5 |
| 64 | Dziedziczenie, hermetyzacja, polimorfizm - wprowadzenie | 4 | INF.04.4.5 |
| 65 | Podział zagadnienia na klasy; powoływanie obiektów | 4 | INF.04.4.5 |
| 66 | Definiowanie pól klasy i kwalifikatorów dostępu | 4 | INF.04.4.6 |
| 67 | Metody klasy; konstruktory (w tym kopiujący) i destruktor | 6 | INF.04.4.6 |
| 68 | Implementacja funkcjonalności klasy; odwołania obiektu do składowych | 6 | INF.04.4.6 |
| 69 | Składniki statyczne klasy i metody do ich obsługi | 4 | INF.04.4.6 |
| 70 | Klasy dziedziczone i zaprzyjaźnione; funkcje zaprzyjaźnione | 4 | INF.04.4.6 |
| 71 | Hierarchia dziedziczenia; klasy bazowe i pochodne | 6 | INF.04.4.7 |
| 72 | Metody wirtualne i klasy abstrakcyjne | 6 | INF.04.4.7 |
| 73 | Warsztat OOP: projekt z hermetyzacją, dziedziczeniem i polimorfizmem | 6 | INF.04.4.5INF.04.4.7 |
| D. Szablony i obsługa wyjątków | |||
| 74 | Szablony (wzorce) klas dla prostych typów liczbowych | 4 | INF.04.4.8 |
| 75 | Obsługa wyjątków: szkielet try/catch, instrukcja throw | 6 | INF.04.4.9 |
| 76 | Lista możliwych błędów wykonania i definiowanie ich obsługi | 4 | INF.04.4.9 |
| 77 | Warsztat: aplikacja konsolowa OOP z obsługą wyjątków | 6 | INF.04.4.9 |
| E. Projekt zaliczeniowy - aplikacja obiektowa | |||
| 78 | Projekt aplikacji obiektowej - analiza i model klas | 6 | INF.04.4.5INF.04.4.6 |
| 79 | Projekt - implementacja warstwy logiki i hierarchii klas | 8 | INF.04.4.6INF.04.4.7 |
| 80 | Projekt - obsługa danych i wyjątków | 8 | INF.04.4.3INF.04.4.9 |
| 81 | Projekt - refaktoryzacja, testy i prezentacja | 4 | INF.04.4.2INF.04.4.9 |
INF.04.5 - Programowanie aplikacji desktopowych | |||
| A. Środowisko i framework desktopowy | |||
| 82 | Środowisko IDE/RAD dla aplikacji desktopowych (Visual Studio) | 4 | INF.04.5.1 |
| 83 | Narzędzia wykorzystywane w procesie tworzenia aplikacji desktopowych | 2 | INF.04.5.1 |
| 84 | Pojęcie frameworka; frameworki desktopowe (WPF, Qt) | 4 | INF.04.5.2 |
| 85 | Język opisu interfejsu XAML - podstawy | 4 | INF.04.5.3 |
| 86 | Pierwsza aplikacja okienkowa z użyciem frameworka | 6 | INF.04.5.2INF.04.5.3 |
| B. Interfejs użytkownika i kontrolki | |||
| 87 | Elementy interfejsu: okna, dialogi modalne i niemodalne, kontrolki | 4 | INF.04.5.3 |
| 88 | Projektowanie okien aplikacji w XAML | 6 | INF.04.5.3 |
| 89 | Kontrolki i ich właściwości | 6 | INF.04.5.3 |
| 90 | System menu aplikacji i paski narzędzi | 4 | INF.04.5.3 |
| 91 | Okna dialogowe aplikacji | 4 | INF.04.5.3 |
| 92 | Układ (layout), wiązanie danych (data binding) i wzorzec MVVM w WPF | 4 | INF.04.5.3 |
| C. Logika aplikacji i obsługa danych | |||
| 93 | Obsługa zdarzeń myszy i klawiatury | 6 | INF.04.5.3 |
| 94 | Język programowania desktopu (C#/Java/Python) - logika aplikacji | 6 | INF.04.5.3 |
| 95 | Walidacja danych i obsługa błędów w interfejsie | 4 | INF.04.5.3 |
| 96 | Operacje na plikach i danych w aplikacji desktopowej | 4 | INF.04.5.3 |
| 97 | Połączenie aplikacji desktopowej z bazą danych | 4 | INF.04.5.3 |
| D. Projekt aplikacji desktopowej | |||
| 98 | Projekt - analiza wymagań i makieta interfejsu | 8 | INF.04.5.1INF.04.5.3 |
| 99 | Projekt - budowa interfejsu użytkownika | 12 | INF.04.5.3 |
| 100 | Projekt - logika aplikacji i obsługa zdarzeń | 12 | INF.04.5.3 |
| 101 | Projekt - integracja z danymi i bazą danych | 8 | INF.04.5.3 |
| 102 | Projekt - testy, dopracowanie i prezentacja | 8 | INF.04.5.3 |
INF.04.6 - Programowanie aplikacji mobilnych | |||
| A. Środowisko i platforma Android | |||
| 103 | Platformy mobilne: Android (główny nurt) i iOS; architektura systemu Android | 2 | INF.04.6.1 |
| 104 | Android Studio i Android SDK; IDE/RAD, emulator i urządzenie fizyczne | 4 | INF.04.6.1 |
| 105 | Narzędzia ekosystemu Android: Gradle, debugger, profiler | 4 | INF.04.6.1 |
| 106 | Pierwsza aplikacja Android (Kotlin/Java): struktura projektu i uruchomienie | 6 | INF.04.6.1INF.04.6.2 |
| B. Język i interfejs aplikacji Android | |||
| 107 | Język Androida: Kotlin i Java - składnia w kontekście Androida (na bazie obiektówek z INF.04.4) | 6 | INF.04.6.2 |
| 108 | Komponenty aplikacji: Activity, Fragment, cykl życia, Intent | 6 | INF.04.6.2 |
| 109 | Budowa interfejsu: layouty XML, widoki i kontrolki | 6 | INF.04.6.2 |
| 110 | Listy danych (RecyclerView) i nawigacja między ekranami | 4 | INF.04.6.2 |
| 111 | Grafika, animacje, dźwięk i zasoby aplikacji | 4 | INF.04.6.2 |
| 112 | Wariant wieloplatformowy: .NET MAUI (C# + XAML) jako alternatywa dla natywnego Androida; Xamarin jako kontekst historyczny | 2 | INF.04.6.2 |
| 113 | Warsztat: interfejs aplikacji Android | 4 | INF.04.6.2 |
| C. Dane, sieć i funkcje urządzenia | |||
| 114 | Przechowywanie danych: SharedPreferences i preferencje użytkownika | 6 | INF.04.6.2 |
| 115 | Lokalna baza danych: SQLite i biblioteka Room | 8 | INF.04.6.2 |
| 116 | Komunikacja z internetem: REST/JSON (Retrofit/HTTP), pobieranie i wysyłanie danych | 8 | INF.04.6.2 |
| 117 | Lokalizacja (GPS), czujniki i powiadomienia (notifications) | 6 | INF.04.6.2 |
| 118 | Uprawnienia aplikacji i bezpieczeństwo danych na Androidzie | 4 | INF.04.6.2 |
| 119 | Proste aplikacje Android: zegar, kalendarz, formularz, powiadomienia | 4 | INF.04.6.2 |
| D. Testowanie, publikacja i projekt aplikacji Android | |||
| 120 | Dostosowanie aplikacji do urządzeń: smartfon, tablet, wersje Androida | 6 | INF.04.6.2 |
| 121 | Uruchamianie i testowanie na emulatorze i urządzeniu fizycznym | 6 | INF.04.6.2 |
| 122 | Przygotowanie do publikacji w Google Play: podpis, format APK/AAB, listing sklepu | 6 | INF.04.6.2 |
| 123 | Projekt aplikacji Android - analiza i projekt interfejsu | 12 | INF.04.6.1INF.04.6.2 |
| 124 | Projekt - implementacja logiki i obsługi danych (Kotlin/Java) | 16 | INF.04.6.2 |
| 125 | Projekt - integracja z siecią i bazą danych, testy | 12 | INF.04.6.2 |
| 126 | Projekt - publikacja i prezentacja | 8 | INF.04.6.2 |
INF.04.7 - Programowanie aplikacji zaawansowanych webowych | |||
| A. Architektura i środowisko aplikacji webowych | |||
| 127 | Architektura nowoczesnych aplikacji webowych: SPA, SSR, REST API, model klient-serwer | 4 | INF.04.7.1INF.04.7.3 |
| 128 | Środowiska IDE/RAD dla web (Visual Studio, JetBrains, VS Code) i narzędzia | 2 | INF.04.7.1 |
| 129 | Ekosystem i menedżery pakietów (npm, pip, NuGet), narzędzia build i konteneryzacja | 4 | INF.04.7.1 |
| 130 | jQuery jako technologia zastana (legacy) - rozpoznawanie i utrzymanie kodu | 2 | INF.04.7.2 |
| 131 | Mechanizmy wspólne: HTTP, sesje, ciasteczka, uwierzytelnianie, CORS | 2 | INF.04.7.3 |
| B. Backend w Node.js (Express) | |||
| 132 | Node.js i Express: serwer, routing, middleware | 4 | INF.04.7.1INF.04.7.3 |
| 133 | REST API w Node.js: kontrolery, walidacja, obsługa błędów | 4 | INF.04.7.3 |
| 134 | Sesje, ciasteczka, JWT; logowanie i kontrola dostępu | 4 | INF.04.7.3 |
| 135 | Integracja z bazą danych (SQL/NoSQL) | 4 | INF.04.7.3 |
| 136 | Warsztat: REST API backendu w Node.js | 4 | INF.04.7.3 |
| C. Frontend SPA: React (zaawansowany) i Angular | |||
| 137 | React zaawansowany (na bazie podstaw z INF.03): hooki, routing, zarządzanie stanem | 6 | INF.04.7.2INF.04.7.3 |
| 138 | React: konsumpcja REST API, uwierzytelnianie po stronie klienta | 6 | INF.04.7.2INF.04.7.3 |
| 139 | Angular: architektura, komponenty, moduły, TypeScript | 6 | INF.04.7.2 |
| 140 | Angular: serwisy, HttpClient, routing, formularze reaktywne | 6 | INF.04.7.2INF.04.7.3 |
| 141 | Integracja SPA (React/Angular) z backendem REST - pełny przepływ danych | 8 | INF.04.7.2INF.04.7.3 |
| D. Backend w Django i ASP.NET Core | |||
| 142 | Django: wzorzec MTV (odpowiednik MVC), modele, ORM i migracje | 6 | INF.04.7.2INF.04.7.3 |
| 143 | Django: widoki, szablony, formularze, sesje i uwierzytelnianie | 6 | INF.04.7.2INF.04.7.3 |
| 144 | Django REST Framework: API dla aplikacji SPA | 4 | INF.04.7.2INF.04.7.3 |
| 145 | ASP.NET Core: wzorzec MVC (ten sam model co MTV w Django), Razor, kontrolery, Entity Framework | 6 | INF.04.7.1INF.04.7.2 |
| 146 | ASP.NET Core Web API: endpointy, Identity, autoryzacja | 6 | INF.04.7.2INF.04.7.3 |
| 147 | Porównanie i dobór stosu (Node.js / Django / ASP.NET Core) do wymagań projektu | 4 | INF.04.7.1INF.04.7.2 |
| E. Łączenie technologii - aplikacja pełnostosowa | |||
| 148 | Projektowanie aplikacji pełnostosowej: SPA + API + baza danych | 8 | INF.04.7.1INF.04.7.3 |
| 149 | Dynamiczne formularze i walidacja po stronie klienta i serwera | 4 | INF.04.7.3 |
| 150 | System logowania, role i kontrola dostępu end-to-end | 6 | INF.04.7.3 |
| 151 | Funkcjonalności e-sklepu: katalog, koszyk, zamówienia, płatności | 8 | INF.04.7.3 |
| 152 | Funkcjonalności portalu społecznościowego / serwisu ogłoszeniowego / rezerwacyjnego | 8 | INF.04.7.3 |
| 153 | Integracja frontend-backend-baza: REST/JSON, sesje, bezpieczeństwo | 8 | INF.04.7.3 |
| 154 | Projekt zespołowy - aplikacja łącząca wybrane technologie (warsztat) | 10 | INF.04.7.1INF.04.7.2INF.04.7.3 |
INF.04.8 - Testowanie i dokumentowanie aplikacji | |||
| A. Walidacja i jakość kodu | |||
| 155 | Narzędzia i środowiska do testowania programów | 2 | INF.04.8.1 |
| 156 | Wykrywanie i poprawa błędów w tworzonych programach i skryptach | 4 | INF.04.8.1 |
| 157 | Optymalizacja kodu źródłowego | 4 | INF.04.8.1 |
| 158 | Warsztat: walidacja i poprawa kodu | 4 | INF.04.8.1 |
| B. Dokumentowanie aplikacji | |||
| 159 | Komentarze w kodzie źródłowym i dokumentacja kodu | 4 | INF.04.8.2 |
| 160 | Dokumentacja i instrukcja użytkownika; pomoc programu | 4 | INF.04.8.2 |
| 161 | Dokumentacja wdrożenia projektu | 4 | INF.04.8.2 |
| 162 | Dokumentacja z wykonanych testów | 2 | INF.04.8.2 |
| 163 | Warsztat: dokumentacja aplikacji | 4 | INF.04.8.2 |
| C. Testowanie aplikacji | |||
| 164 | Metodyki testowania; testy funkcjonalne i niefunkcjonalne | 4 | INF.04.8.3 |
| 165 | Testy niefunkcjonalne: wydajnościowe, obciążeniowe, bezpieczeństwa, użyteczności, zgodności | 4 | INF.04.8.3 |
| 166 | Testy interfejsu i testowanie prototypu projektu interfejsu | 4 | INF.04.8.3 |
| 167 | Planowanie i pisanie scenariuszy testowania aplikacji | 4 | INF.04.8.3 |
| 168 | Systemy raportowania błędów (BugZilla, JIRA) | 4 | INF.04.8.3 |
| 169 | Automatyzacja procesu testowania | 4 | INF.04.8.3 |
| 170 | Warsztat: testowanie aplikacji, raportowanie i weryfikacja zgodności z wymaganiami | 4 | INF.04.8.3 |
INF.04.9 - Język obcy zawodowy | |||
| A. Słownictwo zawodowe i rozumienie wypowiedzi | |||
| 171 | Słownictwo: stanowisko pracy, narzędzia i środowiska programistyczne | 4 | INF.04.9.1 |
| 172 | Słownictwo: technologie programistyczne, frameworki, bazy danych | 4 | INF.04.9.1 |
| 173 | Słownictwo: dokumentacja, procesy i usługi IT | 4 | INF.04.9.1 |
| 174 | Rozumienie wypowiedzi ustnych: instrukcje, prezentacje, materiały instruktażowe | 6 | INF.04.9.2 |
| 175 | Rozumienie tekstów: dokumentacja techniczna, instrukcje, opisy API | 6 | INF.04.9.2 |
| B. Tworzenie wypowiedzi i interakcja zawodowa | |||
| 176 | Tworzenie wypowiedzi ustnych: opis działania, instrukcja, komunikat | 4 | INF.04.9.3 |
| 177 | Tworzenie tekstów: e-mail zawodowy, CV, list motywacyjny, dokumentacja | 6 | INF.04.9.3 |
| 178 | Rozmowa zawodowa: z klientem, zespołem, rozmowa telefoniczna | 6 | INF.04.9.4 |
| 179 | Negocjacje, wyrażanie i uzasadnianie opinii, formy grzecznościowe | 4 | INF.04.9.4 |
| 180 | Prezentacja techniczna w języku obcym | 4 | INF.04.9.4 |
| C. Mediacja językowa i strategie | |||
| 181 | Zmiana formy przekazu; informacje z materiałów wizualnych i audiowizualnych | 4 | INF.04.9.5 |
| 182 | Mediacja językowa: przekazywanie informacji język polski - język obcy | 4 | INF.04.9.5 |
| 183 | Strategie językowe: słowniki, kontekst, internacjonalizmy, kompensacja | 4 | INF.04.9.6 |