DATA
CZAS
IMIENINY
FAZA KSIĘŻYCA
STAFLOTA ⊕ SEKTOR ALFA · BITEDU STATION
INF 04 – teoria do egzaminu
INF.04 · Technik programista

Przewodnik przed egzaminem INF04

INF.04 to nie jest tylko „napisz aplikację”. Egzamin sprawdza projektowanie, programowanie, testowanie i dokumentowanie aplikacji: desktopowych, webowych oraz mobilnych. Uczeń musi rozumieć kod, architekturę, interfejs, testy, dokumentację i sposób oceniania pracy przez egzaminatora.

część pisemna: 40 pytań / 60 minut część praktyczna: 180 minut desktop · web · mobile kod · testy · dokumentacja

Po co ta strona?

Ten materiał ma być mapą powtórki. Nie zastępuje arkuszy praktycznych, ale pokazuje, co trzeba rozumieć, zanim uczeń usiądzie do zadania. Największy błąd w nauce do INF.04 to ćwiczenie samych rozwiązań bez rozumienia kryteriów oceny. Egzaminator nie ocenia „czy coś wygląda podobnie”, tylko czy konkretne elementy zostały wykonane, udokumentowane i uruchomione.

W praktyce pojawia się zwykle aplikacja konsolowa oraz drugi wariant aplikacji: desktopowej, webowej albo mobilnej. Do tego dochodzą testy, komentarze w kodzie, zrzuty ekranu i plik dokumentacji. W teorii natomiast mogą pojawić się również BHP, systemy liczbowe, UML, Git, Scrum, bezpieczeństwo, testowanie i zasady czystego kodu.

Najważniejsza myśl dla ucznia: na egzaminie nie wystarczy „działa u mnie”. Trzeba umieć pokazać działanie, zachować zgodność z treścią arkusza, nazwać elementy sensownie, zrobić zrzuty ekranu i opisać użyte środowisko.

Jak wygląda INF.04?

01 / teoria

Część pisemna

Test jednokrotnego wyboru. Pytania sprawdzają nie tylko składnię języków programowania, ale też projektowanie, dokumentację, BHP, testowanie, UML i podstawy informatyki.

Warto robić quizy w trybie nauki: po odpowiedzi uczeń powinien dopisać sobie jedno zdanie wyjaśnienia, dlaczego wybrana odpowiedź jest poprawna.

02 / praktyka

Aplikacja konsolowa

Najczęściej sprawdza algorytmikę i programowanie obiektowe: klasy, pola, metody, konstruktory, dziedziczenie, kolekcje, pętle, warunki i komunikację z użytkownikiem.

Egzaminator patrzy także na czytelność kodu: wcięcia, znaczące nazwy zmiennych, sensowne typy danych i próbę uruchomienia programu.

03 / praktyka

Aplikacja z interfejsem

Druga aplikacja może być desktopowa, webowa albo mobilna. Uczeń musi odtworzyć układ, kontrolki, kolory, zdarzenia i działanie zgodnie z treścią zadania.

Nawet jeśli wygląd nie jest idealny, punkty często dają konkretne rzeczy: poprawne kontrolki, obsługa kliknięcia, pobieranie danych, wyświetlanie wyniku i zrzut ekranu.

Obowiązkowe zagadnienia do opanowania

Programowanie obiektowe i algorytmy

Programowanie obiektowe polega na dzieleniu programu na klasy i obiekty, które mają własne dane oraz zachowania. Na INF.04 trzeba znać hermetyzację, dziedziczenie, polimorfizm i abstrakcję, ale przede wszystkim umieć zastosować je w prostym zadaniu.

  • klasa, obiekt, pole, metoda, konstruktor, modyfikatory dostępu: private, public, protected;
  • dziedziczenie, klasa bazowa i potomna, wywołanie metody klasy nadrzędnej;
  • przeciążanie metod, przesłanianie metod, interfejsy i klasy abstrakcyjne;
  • pętle, instrukcje warunkowe, tablice, listy, słowniki, operacje na napisach;
  • algorytmy wyszukiwania, sortowania, zliczania, filtrowania i przetwarzania danych z pliku;
  • obsługa wyjątków i komunikaty zrozumiałe dla użytkownika.

Aplikacje desktopowe

Aplikacja desktopowa działa lokalnie na komputerze użytkownika, zwykle jako program okienkowy. Na egzaminie uczeń powinien rozumieć, że interfejs składa się z okna, kontrolek i zdarzeń, a logika programu powinna być możliwie oddzielona od samego wyglądu.

W praktyce najczęściej pojawiają się technologie Windows Forms lub WPF. WinForms opiera się na formularzach i kontrolkach ustawianych w projektancie, a WPF wykorzystuje XAML do opisu interfejsu i dobrze współpracuje z mechanizmem wiązania danych.

  • okno aplikacji, tytuł okna, etykiety, przyciski, pola edycyjne, listy, obrazy, kontrolki tabelaryczne;
  • zdarzenia: Click, Load, FormClosing, zdarzenia klawiatury i myszy;
  • właściwości kontrolek: tekst, kolor, rozmiar, margines, wyrównanie, widoczność, tryb wielowierszowy;
  • dialogi modalne i niemodalne, okno wyboru lub zapisu pliku;
  • zapis i odczyt plików tekstowych, CSV, JSON; podstawy lokalnej bazy SQLite;
  • oddzielenie logiki od interfejsu: metoda licząca wynik nie powinna być ukryta wyłącznie w obsłudze przycisku.

Aplikacje webowe

Aplikacja webowa działa w przeglądarce i zwykle składa się z interfejsu użytkownika oraz logiki po stronie klienta albo serwera. Na INF.04 ważne jest rozumienie komponentów, zdarzeń, pętli generujących widok, formularzy, stylowania i podstaw komunikacji HTTP.

W zadaniach praktycznych webowych często pojawia się Angular albo React. Uczeń musi wiedzieć, że nowoczesna aplikacja webowa nie polega na ręcznym manipulowaniu DOM przez getElementById, tylko na stanie komponentu, danych i deklaratywnym renderowaniu widoku.

  • HTML, CSS, JavaScript/TypeScript, komponent, stan komponentu, props/binding;
  • Angular: komponent, szablon, *ngFor, *ngIf, (click), [(ngModel)];
  • React: komponent, state, map(), warunkowe renderowanie, onClick, onChange;
  • Bootstrap: siatka, klasy przycisków, formularze, karty, responsywność;
  • REST API, metody HTTP: GET, POST, PUT, PATCH, DELETE; kody odpowiedzi 200, 201, 400, 401, 403, 404, 500;
  • bezpieczeństwo: XSS, SQL Injection, CSRF, JWT, CORS, HTTPS/TLS, walidacja danych wejściowych.

Aplikacje mobilne

Aplikacja mobilna jest projektowana pod mały ekran, dotyk i konkretne systemy urządzeń. Na egzaminie trzeba rozumieć układy ekranu, kontrolki, zdarzenia kliknięcia lub dotknięcia, pobieranie danych z pól oraz uruchomienie aplikacji w emulatorze.

W zadaniach pojawia się Android Studio, Kotlin/Java albo .NET MAUI/Xamarin. W MAUI interfejs opisuje się często w XAML, a logikę w C#, natomiast w Androidzie interfejs może być opisany XML-em lub tworzony w Kotlinie/Java.

  • układy: pionowe i poziome, np. LinearLayout, StackLayout, VerticalStackLayout;
  • kontrolki: Label/TextView, Entry/EditText, Button, Image, Switch, Slider, lista;
  • zdarzenia: kliknięcie przycisku, zmiana wartości, dotknięcie elementu listy;
  • cykl życia aktywności: onCreate, onStart, onResume, onPause, onStop, onDestroy;
  • nawigacja między ekranami, przekazywanie danych, uprawnienia, manifest aplikacji;
  • SQLite/Room, zasoby graficzne, emulator, przygotowanie zrzutu ekranu z uruchomionej aplikacji.

Testowanie i dokumentowanie

Testowanie polega na sprawdzeniu, czy program działa zgodnie z wymaganiami. Dokumentacja wyjaśnia, co zrobiono, w jakim środowisku, jak program uruchomić i jak potwierdzono jego działanie.

  • test jednostkowy, integracyjny, regresyjny, wydajnościowy, akceptacyjny;
  • techniki testowania: wartości brzegowe, klasy równoważności, testy czarnoskrzynkowe i białoskrzynkowe;
  • asercje: porównanie wyniku otrzymanego z wynikiem oczekiwanym;
  • UML: diagram klas, diagram przypadków użycia, diagram aktywności, relacje dziedziczenia, agregacji i kompozycji;
  • dokumentacja techniczna, dokumentacja użytkownika, instrukcja instalacji i uruchomienia;
  • zrzuty ekranu z widocznym środowiskiem, paskiem zadań i uruchomioną aplikacją.

Przykładowy arkusz oceny egzaminatora

Poniższa karta jest przykładową listą kontrolną wzorowaną na opublikowanych zasadach oceniania INF.04. Nie jest oficjalną punktacją CKE, ale dobrze pokazuje, na co egzaminator zwykle patrzy podczas sprawdzania pracy.

Obszar Co sprawdza egzaminator Co powinien zrobić uczeń
R.1 Implementacja i uruchomienie Czy kod jest czytelny, ma wcięcia, znaczące nazwy, sensowne typy danych i czy podjęto próbę uruchomienia. Stosuj jedną konwencję, nie nazywaj zmiennych x, foo, tablica bez sensu, zrób zrzut kompilacji lub uruchomienia.
R.2 Aplikacja konsolowa Czy klasy, metody, pętle, algorytm i komunikaty są zgodne z poleceniem. Najpierw napisz wersję działającą w konsoli, potem dopiero przenoś logikę do aplikacji z interfejsem.
R.3 Aplikacja desktopowa Czy okno ma wymagany tytuł, kontrolki, kolory, układ, zdarzenia i wynik działania. Odtwórz kontrolki z obrazka, obsłuż kliknięcia, pobieraj dane z pól, wyświetl wynik i zapisz plik, jeśli wymaga tego arkusz.
R.3 Aplikacja webowa Czy aplikacja używa Angular/React, komponentów, pętli, warunków, zdarzeń i stanu zamiast ręcznej manipulacji DOM. Używaj mechanizmów frameworka: *ngFor, *ngIf, (click), map(), state, onClick.
R.3 Aplikacja mobilna Czy układ ekranu, kolory, obrazy, kontrolki, zdarzenia i emulator są zgodne z arkuszem. Zadbaj o XAML/XML, podpowiedzi w polach, ograniczenie wpisywania danych, kliknięcia przycisków i zrzut z emulatora.
R.4 Testy Czy istnieją testy z asercjami, dane wejściowe, wynik oczekiwany i potwierdzenie uruchomienia. Napisz testy przed końcem egzaminu. Jeden dobry test z asercją bywa cenniejszy niż kolejna kosmetyczna poprawka UI.
R.4 Dokumentacja Czy dokumentacja zawiera system operacyjny, środowiska, języki, emulator, zrzuty i komentarze nagłówkowe metod. Przygotuj plik egzamin zgodnie z poleceniem. Wpisz realne narzędzia, których użyłeś, a nie ogólniki.
Ważne: w zasadach oceniania często pojawia się informacja, że jeśli aplikacja nie uruchamia się z powodu błędów w plikach źródłowych ucznia, kryteria działania aplikacji nie są spełnione. Dlatego warto zostawić sobie czas na kompilację, test i zrzuty ekranu.

Dokumentacja aplikacji: dokładny wzór

Dokumentacja nie ma być wypracowaniem. Ma szybko potwierdzić, że uczeń wie, co zrobił, jakiego środowiska użył, jak uruchomił aplikację i jak sprawdził jej działanie. Najlepiej przygotować ją jako uporządkowany plik tekstowy lub dokument zgodny z poleceniem arkusza.

1. Dane ogólne

  • Numer zdającego: wpisany zgodnie z arkuszem.
  • Nazwa kwalifikacji: INF.04 Projektowanie, programowanie i testowanie aplikacji.
  • Nazwa zadania lub krótki opis aplikacji.

2. Wykorzystane oprogramowanie

  • System operacyjny, np. Windows 10/11 lub inny użyty na stanowisku.
  • Środowisko programistyczne, np. Visual Studio, Visual Studio Code, Android Studio.
  • Język programowania, np. C#, JavaScript/TypeScript, Kotlin, Java, Python.
  • Framework lub biblioteka, np. Windows Forms, WPF, Angular, React, .NET MAUI.
  • Emulator lub przeglądarka, jeśli aplikacja była mobilna albo webowa.

3. Opis działania aplikacji

  • Co robi aplikacja po uruchomieniu.
  • Jakie dane podaje użytkownik.
  • Co dzieje się po kliknięciu przycisku lub zmianie pola.
  • Jaki wynik jest wyświetlany albo zapisywany.

4. Nagłówek metody w komentarzu

W wielu arkuszach wymagany jest komentarz opisujący metodę. Powinien być zgodny z realnym kodem: jeśli metoda ma dwa parametry, dokumentacja musi wymienić dwa parametry; jeśli nic nie zwraca, wpisujemy void albo „brak”.

/************************************************
nazwa funkcji: szyfruj
opis funkcji: przesuwa litery tekstu o podany klucz i zwraca zaszyfrowany napis
parametry: tekst - napis wprowadzony przez użytkownika
           klucz - liczba określająca przesunięcie w alfabecie
zwracany typ i opis: string - zaszyfrowany tekst
autor: 00000000000
************************************************/

5. Przypadki testowe

Nr Dane wejściowe Wynik oczekiwany Wynik otrzymany Status
1 tekst: abc, klucz: 3 def def zaliczony
2 tekst: xyz, klucz: 3 abc abc zaliczony
3 puste pole lub niepoprawna liczba komunikat albo bezpieczna obsługa błędu wpisać po uruchomieniu do sprawdzenia

6. Zrzuty ekranu

  • Zrzut uruchomionej aplikacji konsolowej lub kompilacji.
  • Zrzut uruchomionej aplikacji desktopowej, webowej albo mobilnej.
  • Zrzut testów, jeśli arkusz wymaga testów jednostkowych.
  • Na zrzucie powinno być widoczne środowisko, w którym powstała aplikacja, oraz cały obszar ekranu, jeśli wymaga tego arkusz.

Plan nauki przed egzaminem:

Przejrzyj zakładki Teoria 1, Teoria 2, Teoria 3

Algorytmy, OOP, desktop, web, mobile

Po każdym błędzie dopisz hasło do listy powtórkowej. Jeżeli mylisz pojęcie klasy, obiektu, metody i konstruktora, wróć do podstaw OOP przed rozwiązywaniem arkuszy.

UML, testowanie, dokumentacja

To dział, który bezpośrednio pomaga w części praktycznej. Uczeń powinien umieć opisać metodę, rozpoznać diagram i przygotować przypadek testowy.

BHP, podstawy, zespół, bezpieczeństwo

Tu są punkty, które łatwo zdobyć, ale łatwo je zaniedbać. Powtarzaj ergonomię, systemy liczbowe, Git, Scrum, SOLID, licencje i bezpieczeństwo aplikacji.

Ostatnia lista przed egzaminem

  • Umiem napisać klasę z polami prywatnymi, konstruktorem i metodami.
  • Umiem użyć pętli do przetwarzania tablicy/listy i zakończyć wyszukiwanie po znalezieniu wyniku.
  • Umiem zrobić prosty formularz desktopowy, webowy albo mobilny z obsługą kliknięcia.
  • Umiem pobrać dane z kontrolki i wyświetlić wynik w innej kontrolce.
  • Umiem zrobić zrzut ekranu z uruchomionej aplikacji i testów.
  • Umiem opisać metodę komentarzem: nazwa, działanie, parametry, zwracana wartość, autor.
  • Wiem, czym różnią się testy jednostkowe, integracyjne, regresyjne i akceptacyjne.
  • Rozumiem podstawy UML, Git, Scrum, BHP, bezpieczeństwa webowego i systemów liczbowych.