Pełen przewodnik: struktura arkusza, 4 obszary tematyczne, typy zadań, kryteria oceniania CKE, strategia rozwiązywania, najczęstsze pułapki. Plus Egzamin Live — pełna symulacja 210-minutowego arkusza z edytorem kodu CodeMirror (C++/Python/SQL), plikami danych do pobrania, schematami baz danych i oceną AI według tych samych kryteriów co prawdziwa matura.
Egzamin maturalny z informatyki w Formule 2023+ to 210 minut intensywnej pracy na komputerze z arkuszem zawierającym 7–15 zadań ułożonych częściowo w wiązki (po 2–4 podzadania na wspólnym kontekście — jeden plik z danymi, jedna baza danych). Zadania podzielone są na 4 obszary tematyczne: algorytmika i programowanie (NAJWIĘKSZY, 26 pkt = 52%), teoria + systemy liczbowe + bezpieczeństwo (3 pkt = 6%), arkusz kalkulacyjny i analiza danych (11 pkt = 22%), bazy danych i SQL (10 pkt = 20%). Łącznie do zdobycia 50 punktów.
Informatyka jest przedmiotem dodatkowym i można ją zdawać tylko na poziomie rozszerzonym. Nie ma progu zdawalności — wynik liczy się do rekrutacji na studia informatyczne (Politechnika Warszawska, Wrocławska, AGH, Uniwersytet Wrocławski, Jagielloński, AMU Poznań), cyberbezpieczeństwo, sztuczna inteligencja, data science, bioinformatyka, robotyka. Egzamin sprawdza umiejętności złożone: analizę i implementację algorytmów (rekurencja, iteracja, złożoność obliczeniowa), programowanie w wybranym języku (C++, Python, Pascal — opcjonalnie Java), operacje na strukturach danych (tablice, łańcuchy znaków, słowniki), zapytania SQL w relacyjnych bazach danych z 2–3 tabelami oraz analizę danych w arkuszu kalkulacyjnym (agregacje, tabele przestawne, wykresy).
Arkusz zawiera różnorodne materiały źródłowe: pliki z danymi (50–500 wierszy w formacie TSV/CSV — liczby, napisy, daty, pomiary), schematy relacyjnych baz danych (2–3 tabele z polami, kluczami głównymi i obcymi), pseudokod algorytmów do analizy, fragmenty kodu z błędami do identyfikacji. Ok. 85% punktów pochodzi z zadań otwartych i praktycznych — dlatego kluczowa jest umiejętność pełnej implementacji: napisanie działającego kodu (lub poprawnego pseudokodu), uruchomienie go na danych z pliku, podanie obliczonego wyniku jako odpowiedzi. Dla zapytań SQL — sformułowanie poprawnego logicznie zapytania ORAZ podanie wyniku jego wykonania.
Egzamin zorganizowany jest wokół 4 obszarów informatyki. Algorytmika i programowanie to ponad połowa punktów. Zadania praktyczne wymagają operacji na plikach z danymi lub w bazie danych — w naszej aplikacji symulujemy to edytorem kodu i schematami SQL.
Analiza algorytmów, pseudokod, programy na plikach z danymi
NAJWIĘKSZY obszar arkusza (52% wszystkich punktów). Śledzenie wykonania algorytmów rekurencyjnych i iteracyjnych, ocena złożoności obliczeniowej (O(n), O(n²), O(n log n)), wyprowadzanie wzorów na liczbę operacji. Pisanie pseudokodu i kodu w C++/Python. Zadania PRAKTYCZNE z plikami danych: wyszukiwanie podciągów (najdłuższy spójny niemalejący, podciąg o największej sumie), operacje na liczbach (palindromy, podzielność, systemy pozycyjne), operacje na napisach (antypalindromy, częstość znaków, szyfry podstawieniowe), geometria (przedziały, łańcuchy zawierania).
ABCD z terminologii, konwersje binarne/szesnastkowe
NAJMNIEJSZY obszar (6% punktów). Pytania ABCD z terminologii informatycznej (VPN, NFC, Bluetooth, WiMAX, streaming, HTTPS, TLS, keylogger, malware, hash, klucz publiczny/prywatny, certyfikat SSL). Konwersje między systemami liczbowymi (binarny, szesnastkowy, trójkowy, ósemkowy). Dodawanie pisemne liczb w systemach niedziesiętnych z uzupełnianiem brakujących cyfr. Pojęcia związane z sieciami komputerowymi i protokołami.
Symulacje, agregacje, statystyki, wykresy
WIĄZKA podzadań na jednym wspólnym zestawie danych (100–500 wierszy w pliku TSV/CSV). Tematyka: symulacje procesów (zamówienia w magazynie, wydobycie surowców, pomiary z urządzeń, zużycie energii), statystyki (suma, średnia, max/min, liczność z warunkiem), agregacje (tabele przestawne, SUMA.JEŻELI, LICZ.JEŻELI), filtrowanie wielokryterialne, obliczenia warunkowe (JEŻELI z wieloma poziomami), opis wykresów (typ wykresu kolumnowy/słupkowy/liniowy/kołowy, etykiety osi, tytuł). User opisuje metodę rozwiązania i podaje wyniki.
SELECT, JOIN, GROUP BY, podzapytania
WIĄZKA 5 zapytań SQL na wspólnym schemacie bazy danych (2–3 tabele połączone relacjami jeden-do-wielu). Tematyka: SELECT z filtrowaniem (WHERE, BETWEEN, LIKE) i sortowaniem (ORDER BY ASC/DESC), JOIN-y (INNER vs LEFT — krytyczna różnica!), DISTINCT dla unikalności, agregacje (COUNT, SUM, AVG, MAX, MIN), GROUP BY + HAVING dla warunków po grupowaniu, podzapytania w SELECT/WHERE/FROM, NOT IN dla wykluczeń, łączenie 3 tabel. Akceptujemy różne dialekty SQL (MySQL, PostgreSQL, MS Access, SQLite).
5–10 pkt (~15% wyniku). A/B/C/D, P/F (4 stwierdzenia), uzupełnij tabelę śledzenia algorytmu, uzupełnij brakujące cyfry w systemach liczbowych. Ocena natychmiastowa i deterministyczna.
40–45 pkt (~85% wyniku). Algorytmy (pseudokod/kod), programy praktyczne z plikami danych, zapytania SQL, zadania arkuszowe, analiza kodu. Ocena AI według CKE z etapami punktacji.
Największy obszar arkusza (52% punktów). Wymaga biegłości w analizie algorytmów (śledzenie wykonania, ocena złożoności), pisaniu pseudokodu i kodu w C++/Python oraz praktycznej implementacji programów operujących na plikach z danymi. Tematyka: podciągi, rekurencja, napisy, systemy liczbowe, geometria obliczeniowa.
Najczęstsze zadanie zamknięte: wypełnij tabelę śledzenia dla podanych danych. Dla funkcji rekurencyjnej rotuj(247) podaj wynik (472) i liczbę wywołań (1). Dla rotuj(584172936) — wynik 841729365 i 3 wywołania. Kluczowe: prześledź każdy krok rekurencji, zlicz wywołania (każde wywołanie funkcji to +1 do licznika).
Pesymistyczna złożoność: KWADRATOWA O(n²) — sortowanie przez wstawianie/bąbelkowe w najgorszym przypadku, naiwne wyszukiwanie podciągów. LINIOWA O(n) — przejście tablicy raz, algorytm Kadane na największą sumę podciągu. LOGARYTMICZNA O(log n) — wyszukiwanie binarne. n log n — sortowanie szybkie, scalanie.
Analiza funkcji rekurencyjnych: określenie przypadku bazowego, prześledzenie wywołań, obliczenie zwracanej wartości. Konwersja rekurencji na iterację — typowe zadanie (procedura W → pętla z akumulacją wyniku). Zachowanie poprawnego porządku operacji: w której kolejności wykonują się instrukcje przed i po wywołaniu rekurencyjnym.
Segment = spójny podciąg co najmniej 1-elementowy. Liczba segmentów w tablicy n-elementowej = n(n+1)/2. Najdłuższy spójny niemalejący — jedna pętla z akumulacją. Spójny podciąg o największej sumie — ALGORYTM KADANE w O(n): jeśli ost_suma ≥ 0, dodaj t[i]; inaczej zacznij od nowa od t[i].
Palindrom — napis czytany od przodu i od tyłu identyczny. ANTYPALINDROM — dla każdego i: s[i] ≠ s[n-i+1] (każde dwa symetryczne znaki różne). Sprawdzenie palindromu w O(n/2). Częstość znaków — tablica liczników 26-elementowa. Szyfr podstawieniowy — odszyfrowanie przez analizę częstotliwości (porównanie z typową częstotliwością języka polskiego).
Konwersja między systemami: dzielenie przez podstawę z resztą (np→2: kolejne reszty z dzielenia przez 2). Liczba p-MINIMALNA — napis zawiera cyfrę p-1 i nie zawiera większych. Suma cyfr w systemie p. Antypalindrom w systemie pozycyjnym. Liczba cyfr przy zmianie podstawy: dla p=q^k, k cyfr w sys.q = 1 cyfra w sys.p.
Poprawność wyrażenia: sprawdzenie balansu nawiasów licznikiem (open++, close-- — jeśli kiedykolwiek <0 LUB końcowo ≠0, niepoprawne). Głębokość wyrażenia = maksymalna wartość licznika podczas przebiegu. Stos jako struktura pomocnicza dla bardziej złożonych nawiasów. Notacja ONP (odwrotna polska) — kalkulacja przy użyciu stosu.
Przedziały domknięte [a,b]: długość = b-a+1, zawieranie P⊆Q gdy Q.pocz ≤ P.pocz ≤ P.kon ≤ Q.kon. Łańcuch zawierania: ciąg przedziałów P₁⊂P₂⊂...⊂Pk. Najdłuższy łańcuch — sortowanie po długości, dynamiczne programowanie (dla każdego przedziału licz max łańcuch kończący się na nim).
Algorytm Kadane (max suma):
maks = ost_suma = t[0]
dla i = 1 do n-1:
jeśli ost_suma ≥ 0:
ost_suma += t[i]
inaczej:
ost_suma = t[i]
jeśli maks < ost_suma:
maks = ost_suma Złożoność O(n)
Sortowanie przez wstawianie:
dla i = 2 do n:
v = A[i]; j = i
dopóki j>1 i v<A[j-1]:
A[j] = A[j-1]
j = j-1
A[j] = v Pesym. O(n²), opt. O(n)
Sprawdzenie palindromu:
pal = true
dla i = 0 do n/2-1:
jeśli s[i] ≠ s[n-1-i]:
pal = false
przerwij
zwróć pal Złożoność O(n)
Konwersja dziesiętnie→binarnie:
wynik = "" dopóki n > 0: wynik = (n mod 2) + wynik n = n div 2
Złożoność O(log n)
Sprawdzenie nawiasów:
balans = 0
dla c w s:
jeśli c == '[': balans++
inaczej:
balans--
jeśli balans < 0: BŁĄD
zwróć balans == 0 Złożoność O(n)
Liczba nieuporządkowanych par:
ile = 0
dla i = 0 do n-2:
dla j = i+1 do n-1:
jeśli t[i] > t[j]:
ile++ Złożoność O(n²)
Wiązka 5 zapytań SQL na wspólnej bazie danych z 2–3 tabelami połączonymi relacjami jeden-do-wielu. Tematyka: SELECT z filtrowaniem i sortowaniem, JOIN (krytyczna różnica INNER vs LEFT!), DISTINCT dla unikalności, agregacje (COUNT, SUM, AVG) z GROUP BY i HAVING, podzapytania, łączenie 3 tabel.
SELECT pole1, pole2 FROM tabela WHERE warunek ORDER BY pole [ASC/DESC]. Operatory: =, <, >, <=, >=, <>, BETWEEN a AND b, LIKE '%wzorzec%', IN (lista), IS NULL. Sortowanie wielokolumnowe: ORDER BY pole1 ASC, pole2 DESC. Najczęściej za 1–2 pkt — proste zadanie wstępne.
INNER JOIN — tylko rekordy które mają parę w obu tabelach. LEFT JOIN — wszystkie z lewej tabeli + dopasowania z prawej (NULL gdy brak). Gdy zadanie mówi „uwzględnij też tych co nie mają X" → ZAWSZE LEFT JOIN. Najczęstszy błąd: użycie INNER gdy potrzeba LEFT (np. klienci bez samochodów nie pojawiają się w wyniku).
SELECT DISTINCT pole FROM tabela. Wymagane gdy zadanie mówi „każdy raz", „unikalna lista", „bez powtórzeń". Brak DISTINCT przy zadaniu wymagającym unikalności = -1 pkt. Alternatywa: SELECT pole FROM ... GROUP BY pole. Sprawdza się też z JOIN-ami gdy w drugiej tabeli są duplikaty.
COUNT(*), COUNT(pole), SUM(pole), AVG(pole), MAX(pole), MIN(pole). GROUP BY grupuje wiersze i agreguje. SELECT klient, COUNT(*) FROM zamowienia GROUP BY klient. Wszystkie pola w SELECT muszą być albo agregatami, albo w GROUP BY.
Warunek na ZAGREGOWANEJ wartości (COUNT, SUM itp.) idzie do HAVING, nie do WHERE. Kolejność: WHERE filtruje wiersze → GROUP BY grupuje → HAVING filtruje grupy → SELECT → ORDER BY. „Klienci z więcej niż 2 zamówieniami" → ... GROUP BY klient HAVING COUNT(*) > 2.
SELECT ... FROM tabela1 JOIN tabela2 ON ... JOIN tabela3 ON .... Często w zadaniach najtrudniejszych (2 pkt). Np. „Autorzy książek wypożyczonych przez czytelników z wydziału Informatyka" — JOIN Książki ⨝ Wypożyczenia ⨝ Czytelnicy + WHERE wydzial='Informatyka' + DISTINCT autor.
SELECT ... FROM tabela WHERE pole IN (SELECT pole FROM innej_tabeli WHERE ...). Podzapytanie SKORELOWANE — wewnętrzny SELECT odwołuje się do zewnętrznego. NOT IN dla wykluczeń: „klienci, którzy NIE złożyli zamówienia" — WHERE id NOT IN (SELECT id_klienta FROM zamowienia).
AS dla aliasów: SELECT COUNT(*) AS liczba_klientow FROM .... Czytelność zapytania (dla CKE liczy się też przejrzystość): wcięcia, jednorodne wielkie/małe litery dla słów kluczowych, każdy fragment w osobnej linii (SELECT na 1 linii, FROM na 2, WHERE na 3 itp.).
SELECT imie, nazwisko FROM klienci WHERE wydzial = 'IT' ORDER BY nazwisko;
SELECT DISTINCT marka FROM samochody WHERE rok BETWEEN 2010 AND 2020 AND moc > 100 ORDER BY marka;
SELECT k.imie, k.nazwisko, COUNT(s.id) AS ile FROM klienci k LEFT JOIN samochody s ON k.id = s.wlasciciel GROUP BY k.id, k.imie, k.nazwisko ORDER BY ile DESC;
SELECT k.nazwisko, k.imie FROM klienci k JOIN wypozyczenia w ON k.id = w.klient WHERE w.data_zwrotu IS NULL GROUP BY k.id, k.nazwisko, k.imie HAVING COUNT(*) > 2 ORDER BY k.nazwisko;
SELECT DISTINCT k.autor FROM ksiazki k JOIN wypozyczenia w ON k.id = w.ksiazka JOIN czytelnicy c ON w.czytelnik = c.id WHERE c.wydzial = 'Informatyka' ORDER BY k.autor;
SELECT obszar, SUM(masa) AS total FROM pomiary WHERE glebokosc <= 100 GROUP BY obszar ORDER BY total DESC LIMIT 1;
Obszar 3 to wiązka 4–5 podzadań arkuszowych na wspólnym pliku danych (100–500 wierszy w formacie TSV/CSV) — symulacje, statystyki, agregacje, wykresy. Obszar 2 to mały zestaw zadań zamkniętych: terminologia informatyczna i konwersje systemów liczbowych.
SUMA, ŚREDNIA, MAX, MIN, LICZBA, MEDIANA, ODCH.STANDARDOWE. Najczęstszy typ zadania: oblicz łączną masę, średnią ocenę, najwyższy wynik. Filtry warunkowe: SUMA.JEŻELI(zakres_warunku; "kryterium"; zakres_sumowania), LICZ.JEŻELI(zakres; ">5"), ŚREDNIA.JEŻELI. Tolerancja ±1% dla liczb zmiennoprzecinkowych.
JEŻELI(warunek; jeśli_prawda; jeśli_fałsz) — najczęstsza funkcja. Zagnieżdżone JEŻELI (do 7 poziomów) dla wielu progów. JEŻELI.BŁĄD dla obsługi dzielenia przez 0. ORAZ, LUB jako kombinacje warunków. WYBIERZ(numer; opcja1; opcja2; ...) dla wyboru z listy. Wymagana umiejętność zaprojektowania logiki warunkowej.
Najpotężniejsze narzędzie analizy danych w arkuszu. Wiersze, kolumny, wartości (sumy/zliczenia/średnie), filtry. Zastępują SUMA.JEŻELI dla wielu kategorii. Najczęściej w zadaniach typu „dla każdego miesiąca/regionu/kategorii podaj X". Trzeba opisać metodę: „użyłem tabeli przestawnej, w wierszach miesiąc, w wartościach suma masy".
Typy: KOLUMNOWY (porównanie wartości między kategoriami — najczęstszy), LINIOWY (zmiany w czasie), KOŁOWY (procentowy udział w całości), SŁUPKOWY (poziomy odpowiednik kolumnowego). Wymagane elementy: tytuł, opis osi X, opis osi Y, legenda. User opisuje słownie co byłoby na wykresie — bez fizycznego rysowania.
Najtrudniejsze zadania arkuszowe (2–3 pkt). Symuluj proces w czasie: stan magazynu (wczoraj + produkcja − transport), bilans (przychody − wydatki), wzrost populacji. Wymagane kolumny pomocnicze. Często z wieloma warunkami modyfikującymi (np. produkcja +30% gdy zamówienie > połowa stanu).
MIESIĄC(data), DZIEŃ.TYG(data), ROK(data) — wydobywanie składowych. RÓŻNICA.DAT lub ".differ" do obliczania odstępów czasowych w dniach. Formaty daty: DD/MM/RRRR vs RRRR-MM-DD. Najczęściej w zadaniach na agregację po miesiącach lub latach.
VPN — wirtualna sieć prywatna, tunelowanie szyfrowane przez sieć publiczną. NFC — bezprzewodowa wymiana danych do 20 cm. Bluetooth — krótkozasięgowa bezprzewodowa do 10 m. WiMAX — bezprzewodowy internet o dużym zasięgu. Streaming — przesyłanie strumieniowe. HTTPS = HTTP + TLS/SSL (szyfrowanie i uwierzytelnianie).
KEYLOGGER — przechwytywanie naciśniętych klawiszy. MALWARE — złośliwe oprogramowanie. RANSOMWARE — szyfruje pliki i żąda okupu. PHISHING — wyłudzanie danych przez podszywanie się. HASH — funkcja jednokierunkowa (SHA-256, MD5). KLUCZ PUBLICZNY vs PRYWATNY — kryptografia asymetryczna (RSA, ECC). CERTYFIKAT SSL — uwierzytelnia tożsamość serwera.
Binarny ↔ szesnastkowy (4 cyfry bin = 1 hex), trójkowy ↔ dziewiętny (2 cyfry bazy 3 = 1 cyfra bazy 9). Dodawanie pisemne z uzupełnianiem brakujących cyfr. Zapis ujemnych w U2 (uzupełnienie do 2). Bit znaku w systemie binarnym. Liczba reprezentowalnych wartości na n bitach: 2ⁿ. Maks. liczba dodatnia w U2: 2^(n-1) - 1.
Backend obsługuje pełną gamę typów zadań CKE: od prostych zamkniętych A/B/C/D, przez tabele śledzenia algorytmów, aż po zaawansowane zadania praktyczne z plikami danych, schematami baz SQL i analizą kodu. Każdy typ ma swoje kryteria oceny.
Ocena natychmiastowa, deterministyczna. 4–8 zadań, 5–10 pkt łącznie (~15% wyniku).
Wybór jednej odpowiedzi z 4 opcji. Klasyczny typ dla teorii — np. wybór protokołu sieciowego, definicji pojęcia, charakterystyki algorytmu.
4/4 poprawne = 2 pkt, 3/4 = 1 pkt, ≤2/4 = 0 pkt. Dotyczy najczęściej analizy algorytmów: czy złożoność jest liniowa, czy funkcja zwraca określoną wartość dla podanych argumentów.
Wypełnij wartości zmiennych po wykonaniu algorytmu dla podanych danych. Najczęściej dla funkcji rekurencyjnych: dla n=247 podaj wynik i liczbę wywołań. Stopniowane punkty: wszystko = max, 80%+ = max-1, połowa = max/2.
W systemie binarnym/szesnastkowym/trójkowym uzupełnij brakujące cyfry w dodawaniu pisemnym tak, aby wynik był poprawny. Wymaga znajomości pozycyjnych systemów i logiki przeniesień.
Połącz nazwy z opisami (np. VPN ↔ tunelowanie szyfrowane, Bluetooth ↔ komunikacja krótkiego zasięgu, NFC ↔ wymiana danych na 20 cm).
Ocena AI według kryteriów CKE. 7–12 zadań, 40–45 pkt (~85% wyniku). SEDNO informatyki rozszerzonej.
NAJWAŻNIEJSZY TYP. Napisz algorytm rozwiązujący problem w pseudokodzie lub C++/Python. Etapy oceny: inicjacja zmiennych (1 pkt), poprawna pętla z warunkiem stopu (1 pkt), poprawne ciało pętli (1 pkt), poprawny wynik (1 pkt). Akceptujemy różne implementacje — kluczowa jest LOGIKA.
Napisz program operujący na pliku z danymi (50–500 wierszy) i podaj OBLICZONY WYNIK. Kod (50%) i odpowiedź (50%) oceniane osobno. Nieoptymalny kod O(n³) jest OK jeśli daje poprawny wynik. Tematyka: palindromy, najdłuższe podciągi, łańcuchy przedziałów, analiza częstotliwości znaków.
Napisz SELECT (z JOIN, WHERE, GROUP BY, ORDER BY, DISTINCT) i podaj wynik zapytania. Akceptujemy różne dialekty SQL. Kluczowe pułapki: INNER vs LEFT JOIN (uwzględnij wszystkich), DISTINCT przy duplikatach, HAVING vs WHERE po agregacji.
Wskaż wynik i opisz słownie metodę rozwiązania (jakich funkcji arkusza użyłeś, jakie filtry, jakie tabele przestawne). Główne kryterium: POPRAWNOŚĆ WYNIKU (±1% dla liczb zmiennoprzecinkowych). Opis metody wspiera punkty.
Opisz co robi algorytm krok po kroku, jaka jest jego złożoność (O(n), O(n²), O(log n)), wskaż ewentualne błędy. Akceptujemy synonimy: „liniowa" = O(n), „kwadratowa" = O(n²).
Krótkie zadanie obliczeniowe lub teoretyczne. Np. „Podaj liczbę segmentów w tablicy n-elementowej" → n(n+1)/2. „Ile cyfr ma liczba w systemie o podstawie 9 jeśli w systemie 3 ma 20 cyfr?" → 10.
Maturzyści, którzy zdobywają 50–70% (powyżej średniej krajowej 30–45%), stosują ten sam schemat. Najpierw zamknięte, potem SQL i arkusz (deterministyczne wyniki), na końcu algorytmy i programy praktyczne.
Otwórz arkusz, przeskocz przez WSZYSTKIE 4 obszary. Sprawdź ile zadań w algorytmice, ile podzadań w SQL, ile w arkuszu. Otwórz pliki z danymi (zobacz ile wierszy, jaki format). Plan czasowy: ile na każdy obszar.
ABCD, P/F, tabela śledzenia algorytmu, uzupełnianie cyfr w systemach liczbowych. Łatwiejsze i deterministyczne punkty (5–10 pkt). NIE zostawiaj pustych — nawet zgadywanie ABCD daje 25%. Tabela śledzenia: prześledź krok po kroku.
Wiązki SQL i arkuszowe (21 pkt). Determinizm wyników (jest jedna poprawna odpowiedź). Otwórz bazę danych w MS Access/MySQL. Pliki danych w Excelu. Cel: 15+ pkt z 21. Sprawdź każde zapytanie czy zwraca POPRAWNĄ liczbę rekordów.
Najtrudniejszy obszar (26 pkt). Najpierw analiza (śledzenie, złożoność, P/F). Potem pseudokod i programy. Programy uruchom na danych z pliku — sprawdź czy dają wynik. Cel: 12+ pkt z 26. Pamiętaj: kod i wynik = 50/50.
Buforowy czas. Uruchom WSZYSTKIE programy jeszcze raz — sprawdź czy nadal dają te same wyniki. Sprawdź SQL: czy każde zapytanie ma poprawny JOIN (INNER vs LEFT?), DISTINCT gdzie trzeba. Wróć do pominiętych zadań.
Średnia krajowa na rozszerzeniu z informatyki wynosi 30–45%. Te błędy popełnia większość maturzystów. Świadomość = punkty.
Najczęstszy błąd na maturze SQL. Zadanie: „Podaj listę klientów wraz z liczbą posiadanych samochodów (uwzględnij też klientów bez samochodu)". Uczeń pisze INNER JOIN — i POMIJA klientów bez samochodu (oni nie pojawiają się w wyniku w ogóle). Trzeba LEFT JOIN, żeby zachować wszystkich klientów (z liczbą = 0 dla tych bez samochodów). CKE traktuje to jako istotny błąd logiczny.
✓ Jak unikać: Gdy zadanie mówi „UWZGLĘDNIJ TEŻ tych co nie mają X" → LEFT JOIN (lub LEFT OUTER JOIN). Gdy zadanie pyta tylko o tych co mają relację → INNER JOIN. Test: jeśli usunięcie warunku po stronie powiązanej tabeli zmieni liczbę wierszy, to znaczy że potrzebujesz LEFT JOIN. Zawsze sprawdź: czy mój wynik zawiera wszystkich z głównej tabeli?
Zadanie: „Podaj listę MAREK samochodów (rocznik 2010–2020, moc > 100 KM). Każda marka tylko raz". Uczeń pisze SELECT marka FROM samochody — ale w bazie jest 5 Toyot, 3 Hondy itp. Wynik zawiera duplikaty: „Toyota, Toyota, Toyota, Honda, Honda...". Trzeba DISTINCT, żeby unikalne. CKE: −1 pkt za brak DISTINCT, gdy zadanie wymaga unikalności.
✓ Jak unikać: Słowa kluczowe w zadaniu: „każdy raz", „unikalna lista", „bez powtórzeń", „lista różnych" → SELECT DISTINCT. Albo SELECT marka FROM ... GROUP BY marka (równoważne). Bez DISTINCT mamy WSZYSTKIE wystąpienia — to często niezgodne z poleceniem.
Zadanie: „Klienci którzy mają WIĘCEJ niż 2 samochody". Uczeń pisze: SELECT klient, COUNT(*) FROM ... WHERE COUNT(*) > 2 GROUP BY klient. BŁĄD — WHERE filtruje PRZED agregacją, nie znając jeszcze COUNT. Trzeba HAVING (filtr PO agregacji): WHERE → GROUP BY → HAVING → ORDER BY. WHERE dla warunków na wierszach, HAVING dla warunków na grupach.
✓ Jak unikać: Test: jeśli warunek używa funkcji agregującej (COUNT, SUM, AVG, MAX, MIN) → HAVING. Jeśli warunek odnosi się do pojedynczej kolumny tabeli (np. wiek > 25, cena < 100) → WHERE. Można łączyć: WHERE filtruje wiersze, GROUP BY grupuje, HAVING filtruje grupy. Kolejność: WHERE → GROUP BY → HAVING → SELECT → ORDER BY.
Najczęstszy błąd w pseudokodzie. Pętla „dla i od 1 do n" vs „dla i od 0 do n-1" — różne języki indeksują różnie (Python, C++ od 0; pseudokod CKE czasem od 1). Skutek: tablica o indeksach 0..n-1, ale pętla iteruje 1..n → wyjście poza tablicę (segfault lub IndexError). Albo gorzej — czytanie/zapis sąsiedniej zmiennej. Czasem mylenie indeksu PIERWSZEGO z OSTATNIM elementem.
✓ Jak unikać: Przed napisaniem pętli ustal jasno: a) jaki jest pierwszy indeks tablicy (0 czy 1?), b) jaki ostatni (n-1 czy n?), c) jakie ELEMENTY chcesz przejść. Zapisz to JAWNIE w komentarzu. Test: dla n=3, indeksy to {0,1,2} → pętla „od 0 do n-1" = i=0,1,2 ✓. „od 1 do n" = i=1,2,3 → indeks 3 nie istnieje! W zadaniach CKE — przeczytaj DOKŁADNIE numerację tablicy w treści.
Zadanie: „Jaka jest złożoność algorytmu znajdowania największej sumy spójnego podciągu?". Naiwny algorytm (3 zagnieżdżone pętle) to O(n³). Dwuwymiarowa pętla (każda para początek-koniec) to O(n²). Algorytm Kadane (jedna pętla z akumulacją) to O(n). Uczeń myli, bo nie liczy POZIOMÓW zagnieżdżenia. Inny błąd: O(log n) dla wyszukiwania binarnego — często myli się z liniowym.
✓ Jak unikać: Licz zagnieżdżone pętle: 1 pętla `for i from 1 to n` = O(n). Pętla w pętli (j=i+1 to n) = O(n²) — choć w praktyce n(n-1)/2, asymptotycznie O(n²). 3 zagnieżdżone = O(n³). Algorytm dzielenia problemu na 2 (każda iteracja zmniejsza dane o połowę) = O(log n). Sortowanie szybkie = O(n log n) — typowy wynik dla efektywnych algorytmów sortujących.
Zadanie: „Liczba w systemie trójkowym ma 20 cyfr. Ile cyfr w systemie 9-tkowym?". Uczeń liczy 20/2 = 10 (intuicja: skoro 9=3², to długość się halffuje). I rzeczywiście odpowiedź to 10 — ALE wymaga uzasadnienia: każde 2 cyfry trójkowe = 1 cyfra dziewiętna (00,01,02=0; 10,11,12=1; 20,21,22=2... w sys.9). Bez analizy łatwo wpaść w pułapkę przy innej podstawie (np. trójkowy → szesnastkowy nie ma czystego przeliczenia).
✓ Jak unikać: Zapamiętaj: jeśli p = q^k (k całkowite), to k cyfr w sys.q = 1 cyfra w sys.p. Trójkowy → dziewiętny (9=3²): 2 cyfry trójkowe = 1 cyfra dziewiętna. Binarny → szesnastkowy (16=2⁴): 4 cyfry binarne = 1 cyfra hex. Dla podstaw bez czystej relacji potęgowej (np. 3→7) trzeba konwertować przez wartość liczbową. Zawsze sprawdź na małym przykładzie: 20₃ = 6₁₀ = 6₉ (1 cyfra dla małej liczby).
Edytor kodu CodeMirror 6 z podświetlaniem składni (C++/Python/SQL/pseudokod), pliki danych do pobrania, schematy baz danych z przykładowymi wierszami, edytor zapytań SQL, opisowe pola arkuszowe. Timer wall-clock, autosave, ocena AI według CKE.
Klikasz „Rozpocznij egzamin". System ładuje 7–15 zadań w 4 obszarach. Timer 210 minut startuje. Pasek u góry: czas + progres przez wszystkie zadania.
Edytor kodu CodeMirror z wyborem języka (C++/Python/Java/pseudokod). Numerowanie linii, podświetlanie składni, motyw OneDark. Pliki danych do pobrania jako .txt. Skacz między zadaniami w nawigatorze.
Schematy baz danych z tabelami, PK, FK i przykładowymi wierszami. Dedykowany edytor SQL z dialektem MySQL/PostgreSQL. Pola na wyniki obliczeń arkuszowych + rozbudowane pole opisu metody.
Klikasz „Zakończ". Zamknięte: ocena natychmiast. Otwarte (algorytmy, programy, SQL, arkusz): Claude Sonnet wg etapów CKE w 1–3 min. Osobna ocena kodu i odpowiedzi liczbowej dla zadań praktycznych.
347 525 121 989 714 ...
count = 0 max_p = 0 with open('liczby.txt') as f: for line in f: n = int(line) if n // 100 == n % 10: count += 1 if n > max_p: max_p = n print(count, max_p)
Odpowiedzi (wyniki obliczeń)
Profesjonalny edytor z podświetlaniem składni dla C++, Python, Java, SQL i pseudokodu. Numerowanie linii, autouzupełnianie tabulacji, motyw OneDark. Wybór języka w przełączniku przy każdym zadaniu. Liczbik linii i znaków na żywo. Bez execution — czysta edycja, taki sam interfejs jak na prawdziwym egzaminie CKE.
Każde zadanie praktyczne MA realistyczny plik z danymi (50–500 wierszy) — podgląd inline ORAZ przycisk „Pobierz" do pracy w lokalnym IDE (Code::Blocks, PyCharm, VS Code). Generowane przez backend z deterministycznych seedów. Dane charakterystyczne pozwalające obliczyć konkretną odpowiedź liczbową.
Dla każdego zadania SQL widzisz pełny schemat: tabele z polami, typami, kluczami głównymi (PK) i obcymi (FK), opisy relacji („jeden klient — wiele samochodów"). Plus 3–5 przykładowych wierszy z każdej tabeli żeby zwizualizować dane.
Dla zadań typu spreadsheet — osobne pola na każdy wynik liczbowy/tekstowy plus rozwinięte pole opisu metody (formuły SUMA.JEŻELI, LICZ.JEŻELI, tabele przestawne, filtry, sortowanie). Możesz wkleić formułę z Excela/LibreOffice/Google Sheets.
Czas leci nawet gdy zamkniesz przeglądarkę. Auto-zapis kodu i odpowiedzi co 30 sekund. Sticky pasek u góry: zegar + progress przez wszystkie 7–15 zadań. Ostrzeżenia przy 15 i 5 minutach do końca. Standardowa długość egzaminu CKE.
Każda linia kodu, każde zapytanie SQL, każda odpowiedź zapisywane w tle. Padnie WiFi, zamkniesz kartę, ktoś wyłączy komputer — wszystko czeka po powrocie. Resume z dokładnie tego samego zadania, ten sam stan edytora kodu.
Zadania zamknięte (ABCD, P/F, tabela śledzenia): ocena natychmiast. Otwarte (algorytmy, programy, SQL, arkusz, analiza): Claude Sonnet wg etapów CKE. Dla algorytmów: osobno inicjacja, pętla, ciało, wynik. Dla programów: kod (50%) i wynik (50%) osobno. Dla SQL: poprawność logiczna zapytania niezależnie od dialektu. Akceptuje różne implementacje dające ten sam efekt.
System generuje nowe arkusze według blueprintu zgodnego z informatorem CKE 2024/2025. Każdy oryginalny — różne algorytmy do analizy, inne struktury danych, inne schematy baz danych, różne pliki z danymi. Tematyka: rekurencja, podciągi, palindromy, systemy liczbowe, sortowanie, kryptografia, geometria obliczeniowa.
Bez karty kredytowej · 3 pełne arkusze gratis · pełna ocena AI
12 najczęstszych pytań od maturzystów wybierających informatykę rozszerzoną.
Egzamin trwa 210 minut i składa się z 7–15 zadań (część w wiązkach po 2–4 podzadania na wspólnym kontekście — np. jednym pliku danych lub jednej bazie SQL) podzielonych na 4 obszary: Algorytmika i programowanie (~26 pkt, NAJWIĘKSZY, 52%), Teoria/systemy liczbowe/bezpieczeństwo (~3 pkt, 6%), Arkusz kalkulacyjny i analiza danych (~11 pkt, 22%), Bazy danych i SQL (~10 pkt, 20%). Łącznie 50 punktów. Zadania zamknięte/deterministyczne: 4–8 (5–10 pkt, ~15%), otwarte/praktyczne: 7–12 (40–45 pkt, ~85%). Informatyka jest TYLKO przedmiotem dodatkowym — nie ma progu zdawalności.
NIE. Informatyka jest przedmiotem dodatkowym i można ją zdawać TYLKO na poziomie rozszerzonym. Wybór informatyki oznacza automatycznie zdawanie rozszerzenia. Wynik liczy się do rekrutacji na studia — głównie kierunki informatyczne (Politechnika Warszawska, Wrocławska, AGH, Uniwersytet Wrocławski, Jagielloński, Adama Mickiewicza), Cyberbezpieczeństwo, Sztuczna Inteligencja, Inżynieria Oprogramowania, Data Science, Matematyka i Informatyka (MISMaP/MISH), Robotyka, Automatyka. Na wielu kierunkach informatyka jest równorzędna z fizyką lub matematyką rozszerzoną.
Lista CKE: KOMPUTER ze środowiskiem programistycznym (zdający wybiera język spośród C++, Python, Pascal — w niektórych OKE też Java), pakiet biurowy z arkuszem kalkulacyjnym (Excel/LibreOffice Calc), system bazodanowy (MS Access, MySQL Workbench lub LibreOffice Base), pliki z danymi otrzymane w arkuszu. Bez kalkulatora — wszystkie obliczenia robisz w arkuszu lub własnym programie. Bez tablic matematycznych (jak w fizyce). Zdający ma 210 min na pisemną część TEORETYCZNĄ + zadania PRAKTYCZNE rozwiązywane na komputerze. W naszej aplikacji symulujemy tą część komputerową edytorem kodu CodeMirror.
Wiązka to 2–4 podzadania na WSPÓLNYM kontekście — najczęściej: jeden plik z danymi (np. „dane6.txt" — 200 napisów do analizy) lub jedna baza danych (3 tabele połączone relacjami). Numeracja: 6.1, 6.2, 6.3 oznacza wiązkę z trzema podzadaniami. Każde podzadanie można rozwiązać niezależnie, ale wszystkie korzystają z tego samego źródła danych. Typowe wiązki: 1) plik z liczbami → kilka pytań (palindromy, suma, największa wartość); 2) plik z napisami → analiza częstości znaków, znajdowanie antypalindromów, deszyfrowanie; 3) baza danych biblioteki → 5 zapytań SQL (filtrowanie, JOIN, GROUP BY, podzapytanie).
CKE akceptuje C++, Python, Pascal (Free Pascal/Lazarus) oraz pseudokod. Niektóre OKE dopuszczają też Java. W naszej aplikacji backend ocenia rozwiązania w C++, Python i Java. Pseudokod jest akceptowany dla zadań typu „zapisz algorytm" (info_algorithm). DO PROGRAMÓW PRAKTYCZNYCH (info_programming) wymagany jest prawdziwy kod — nie pseudokod. AI ocenia POPRAWNOŚĆ LOGICZNĄ niezależnie od języka — drobne błędy składniowe (brak ;, niepełna składnia pseudokodu) NIE odejmują punktów. Liczy się czy algorytm robi to co powinien.
Zadanie typu „Zapisz w pseudokodzie/wybranym języku" (3–5 pkt) wymaga przedstawienia algorytmu rozwiązującego problem. Schemat oceny CKE: a) INICJACJA zmiennych (zerowanie liczników, ustawienie wartości startowych) — 1 pkt, b) POPRAWNA PĘTLA z warunkiem stopu (for/while z odpowiednim zakresem) — 1 pkt, c) POPRAWNE CIAŁO PĘTLI (operacje wykonywane w każdej iteracji) — 1 pkt, d) POPRAWNY WYNIK (zwracana wartość, akumulacja) — 1 pkt. Drobne błędy składni — bez kary. Błędy logiczne (off-by-one, brak warunku stopu) — kara proporcjonalna.
Zadanie praktyczne (info_programming) ma DWIE oceniane części: KOD (50% punktów) i ODPOWIEDŹ LICZBOWA (50% punktów) — oceniane OSOBNO. Za 4 pkt: 4 = poprawny kod + poprawna odpowiedź, 3 = poprawny kod + drobny błąd w odpowiedzi (np. literówka), 2 = działający kod z drobnym błędem logicznym (ale daje sensowny wynik), 1 = poprawny kod ale błędna odpowiedź LUB poprawna odpowiedź bez kodu, 0 = brak rozwiązania. WAŻNE: nieoptymalny kod O(n³) zamiast O(n) jest OK jeśli daje POPRAWNY wynik — CKE akceptuje. Liczy się efekt, nie efektywność.
Top tematy: 1) PODCIĄGI — najdłuższy spójny niemalejący, podciąg o największej sumie (Kadane), nieuporządkowane pary, segmenty; 2) REKURENCJA — analiza wywołań, śledzenie wartości, zamiana na iterację; 3) NAPISY — palindromy, antypalindromy, częstość znaków, szyfry podstawieniowe (analiza częstotliwości); 4) SYSTEMY LICZBOWE — konwersje, p-minimalne liczby, suma cyfr; 5) GEOMETRIA OBLICZENIOWA — przedziały, łańcuchy zawierania, długości segmentów; 6) SORTOWANIE — sortowanie przez wstawianie, bąbelkowe, analiza złożoności. Zadania ZAWSZE dają plik z danymi (50–500 wierszy) i pytają o KONKRETNĄ wartość liczbową obliczoną na tych danych.
TAK. Każdy arkusz Egzamin Live jest oryginalny — Claude Sonnet pisze całe zadania od zera według blueprintu zgodnego z informatorem CKE 2024/2025. Pliki z danymi (50–500 wierszy) generowane są z deterministycznych seedów PRZED wygenerowaniem zadania — backend „wykonuje" algorytm mentalnie na danych i zapisuje oczekiwaną odpowiedź. Schematy baz danych są wymyślane na nowo (biblioteka, samochody, łaziki marsjańskie, zamówienia w sklepie, dane medyczne). System pamięta poprzednie arkusze i nigdy nie powtarza tych samych algorytmów na tych samych danych.
AI używa kryteriów oceniania CKE (Formuła 2023+) z dodatkowymi regułami dla informatyki: dla ALGORYTMÓW — etapowa ocena (inicjacja, pętla, ciało, wynik), akceptacja różnych implementacji dających ten sam efekt, pseudokod = język programowania pod względem oceny. Dla PROGRAMÓW PRAKTYCZNYCH — kod (50%) i odpowiedź (50%) niezależnie, nieoptymalny kod O(n³) bez kary jeśli daje poprawny wynik. Dla SQL — różne dialekty akceptowane, sprawdzanie LOGIKI zapytania (czy zwróci ten sam wynik co wzorcowe), wymagane DISTINCT/JOIN typ jeśli zadanie tego żąda. AI bywa SUROWE w wymaganiach formalnych (brak DISTINCT, INNER zamiast LEFT) — to dobrze, bo CKE też sprawdza dokładnie. Każde zadanie dostaje szczegółowy feedback po polsku.
Top 6: 1) INNER vs LEFT JOIN w SQL — pomijanie rekordów które powinny być uwzględnione z licznością 0; 2) Pominięcie DISTINCT — duplikaty w wyniku gdy zadanie wymaga unikalnych; 3) WHERE vs HAVING — warunek COUNT(*) > 2 w WHERE zamiast HAVING; 4) OFF-BY-ONE w pętlach — indeksy od 1 vs od 0, n vs n-1; 5) ZŁA ZŁOŻONOŚĆ — mylenie O(n²) z O(n), nieliczenie zagnieżdżonych pętli; 6) KONWERSJE SYSTEMÓW — błędne przeliczenie liczby cyfr między systemami pozycyjnymi. Średnia krajowa na informatyce rozszerzonej wynosi 30–45% — informatyka jest jednym z najtrudniejszych przedmiotów obok fizyki i chemii rozszerzonej.
TAK, jeśli planujesz studia: a) INFORMATYCZNE (Politechnika Warszawska, Wrocławska, AGH, Uniwersytet Wrocławski/Jagielloński/AMU/UAM Poznań — wszystkie wymagają matematyki + informatyki LUB matematyki + fizyki); b) CYBERBEZPIECZEŃSTWO; c) SZTUCZNA INTELIGENCJA, MACHINE LEARNING, DATA SCIENCE; d) MISMaP/MISH (interdyscyplinarne); e) MATEMATYKA TEORETYCZNA z elementami informatyki; f) ROBOTYKA, AUTOMATYKA (politechniki); g) BIOINFORMATYKA, INŻYNIERIA BIOMEDYCZNA. Informatyka rozszerzona ma WYSOKIE PRZELICZNIKI na rekrutacji (typowo x2 lub x3 dla kierunków informatycznych) — często traktowana jako równorzędna z matematyką PR. Studenci ze zdaną informatyką PR mają zdecydowanie LATWIEJ na pierwszym roku studiów IT.
Pełne arkusze 50-punktowe według CKE. Edytor kodu CodeMirror (C++/Python/SQL), pliki danych do pobrania, schematy baz danych, dedykowane edytory dla każdego typu zadania. Ocena AI z konkretnym feedbackiem.
Załóż konto za darmo →Bez karty · 3 arkusze gratis · pełna ocena CKE
Wybierz, które kategorie plików cookies akceptujesz. Zgodę możesz zmienić w dowolnym momencie.
Sesja, bezpieczeństwo, podstawowa funkcjonalność (logowanie, koszyk subskrypcji, zabezpieczenia reCAPTCHA). Bez nich serwis nie działa.
Google Analytics 4 — anonimowe statystyki użycia serwisu. Pomaga nam poprawiać aplikację na podstawie tego, które funkcje są faktycznie używane.
Google Ads — remarketing i pomiar skuteczności reklam. Dzięki temu możemy pokazywać Ci trafniejsze reklamy i finansować rozwój darmowej wersji.
Zapamiętywanie preferencji (motyw ciemny/jasny, wybrane przedmioty, ustawienia sesji).
Dopasowywanie treści do Twoich zainteresowań (rekomendacje pytań, spersonalizowane powiadomienia o powtórkach).