Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 22 października 2025 15:22
  • Data zakończenia: 22 października 2025 15:41

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

W jakim przypadku należy umieścić poszkodowanego w pozycji bocznej bezpiecznej?

A. w sytuacji urazu pleców, gdy osoba jest świadoma
B. w przypadku omdlenia, gdy osoba jest przytomna
C. gdy wystąpi omdlenie i brak tętna
D. w przypadku urazu kręgosłupa
Ułożenie poszkodowanego w pozycji bocznej bezpiecznej w przypadku uszkodzenia kręgosłupa jest niewłaściwe, ponieważ taka pozycja może wywołać dodatkowe obrażenia u osoby z urazem. Stabilizacja kręgosłupa jest kluczowa, aby uniknąć potencjalnych uszkodzeń rdzenia kręgowego, co może prowadzić do poważnych komplikacji zdrowotnych. W przypadku omdlenia i braku tętna, ułożenie w pozycji bocznej bezpiecznej również jest nieodpowiednie, ponieważ nie zapewnia natychmiastowej interwencji, jakiej wymaga nagłe zatrzymanie krążenia. Zamiast tego, konieczne jest przystąpienie do resuscytacji krążeniowo-oddechowej (RKO) oraz wezwanie pomocy medycznej. W sytuacji urazu pleców, kiedy osoba jest przytomna, również nie zaleca się pozycji bocznej bezpiecznej, ponieważ może to wywołać ból i dyskomfort, a także pogorszyć stan pacjenta. W takich przypadkach istotne jest, aby osoba pozostała w stabilnej pozycji, a ratownicy zabezpieczyli ją do czasu przybycia służb medycznych, tak aby uniknąć możliwych konsekwencji urazów.

Pytanie 2

Który z wymienionych elementów NIE stanowi części instrukcji dla użytkownika programu?

A. Opis testów jednostkowych
B. Rozwiązywanie problemów związanych z użytkowaniem aplikacji
C. Opis metody instalacji aplikacji
D. Instrukcje dotyczące obsługi poszczególnych funkcji aplikacji
Opis testów jednostkowych to element dokumentacji technicznej, który koncentruje się na jakości kodu i poprawności działania poszczególnych komponentów aplikacji, ale nie jest częścią instrukcji użytkownika końcowego. Instrukcje obsługi aplikacji skupiają się na funkcjonalności z punktu widzenia użytkownika, a nie na szczegółach testowania. Rozwiązywanie problemów z obsługą aplikacji często znajduje się w instrukcji użytkownika jako sekcja FAQ, jednak sama procedura testów jednostkowych jest skierowana głównie do deweloperów i zespołów QA.

Pytanie 3

Co to jest JWT (JSON Web Token)?

A. Biblioteka JavaScript do manipulacji danymi JSON
B. Protokół transferu plików JSON między serwerami
C. Otwarty standard do bezpiecznego przekazywania danych w formacie JSON
D. Format kompresji danych JavaScript i HTML w aplikacjach webowych
JWT (JSON Web Token) to otwarty standard, który pozwala na bezpieczne przesyłanie danych między stronami jako obiekt JSON. Token ten składa się z trzech części: nagłówka (header), ładunku (payload) oraz podpisu (signature). Nagłówek określa typ tokenu i używany algorytm szyfrowania, ładunek zawiera dane, które chcemy przekazać, a podpis zapewnia integralność i autentyczność danych. JWT jest powszechnie wykorzystywany w autoryzacji i wymianie informacji między serwerem a klientem, na przykład w aplikacjach webowych, gdzie po zalogowaniu użytkownik otrzymuje token, który może być użyty do uzyskania dostępu do chronionych zasobów. Dzięki temu mechanizmowi, serwer nie musi przechowywać sesji, co zwiększa jego wydajność. Ważnym aspektem JWT jest jego bezstanowość oraz możliwość łatwego skalowania aplikacji, co czyni go popularnym rozwiązaniem w architekturze mikroserwisów. Dobrą praktyką jest stosowanie JWT w połączeniu z HTTPS, aby zapewnić dodatkową warstwę bezpieczeństwa przy przesyłaniu tokenów.

Pytanie 4

Które z poniższych jest podstawowym rodzajem testów używanych w testowaniu jednostkowym?

A. Testy akceptacyjne
B. Testy integracyjne
C. Testy systemowe
D. Testy jednostkowe
Testy jednostkowe są kluczowym elementem procesu testowania oprogramowania, szczególnie w kontekście metodologii programowania zwinnego. Polegają one na testowaniu pojedynczych najmniejszych części programu, takich jak funkcje czy metody, w izolacji od reszty systemu. Dzięki temu możemy szybko wykryć błędy i upewnić się, że dany fragment kodu działa zgodnie z oczekiwaniami. W praktyce, testy jednostkowe są często automatyzowane i stanowią podstawę dla procesu ciągłej integracji (CI). Przykładem zastosowania testów jednostkowych może być sprawdzenie, czy funkcja dodająca dwie liczby zwraca poprawny wynik dla różnych zestawów danych wejściowych. Dzięki testom jednostkowym programiści mogą z większą pewnością modyfikować i rozwijać kod, mając pewność, że nie wprowadzają nowych błędów. To właśnie testy jednostkowe pozwalają na szybkie wykrywanie regresji i są fundamentem dla bardziej zaawansowanych form testowania, takich jak testy integracyjne czy systemowe. Dbanie o dobrze zdefiniowany zestaw testów jednostkowych jest uznawane za dobrą praktykę w branży IT i podnosi jakość oprogramowania.

Pytanie 5

Jakie działanie powinno się wykonać w pierwszym kroku, oceniając stan osoby poszkodowanej?

A. Zadbać o własne bezpieczeństwo
B. Rozpocząć resuscytację krążeniowo-oddechową
C. Wezwać ambulans
D. Sprawdzić, czy występuje krwawienie
Bezpieczeństwo to naprawdę ważna sprawa, kiedy oceniamy stan kogoś, kto uległ wypadkowi. Jak nie zadbamy o siebie, to możemy się sami narazić i to jeszcze bardziej skomplikować całą akcję ratunkową. Ruch uliczny, prąd, jakieś toksyczne substancje... to wszystko może być niebezpieczne. Dopiero jak mamy pewność, że jest ok w okolicy, możemy zająć się poszkodowanym i myśleć o dalszych krokach ratunkowych.

Pytanie 6

Która z poniższych nie jest poprawną metodą HTTP?

A. POST
B. DELETE
C. SEARCH
D. GET
Wybór metod GET, POST oraz DELETE jako odpowiedzi nie jest poprawny, ponieważ wszystkie one są uznawane za standardowe metody HTTP, zdefiniowane w specyfikacjach IETF. GET jest najczęściej używaną metodą, która umożliwia pobranie zasobów z serwera, co czyni ją podstawowym narzędziem w budowie interfejsów API i aplikacji webowych. Metoda POST służy do przesyłania danych na serwer, co jest kluczowe w przypadku formularzy internetowych czy operacji tworzenia nowych zasobów. DELETE z kolei opiera się na koncepcji RESTful, gdzie pozwala na usuwanie zasobów na serwerze. Zrozumienie tych metod oraz umiejętność ich właściwego wykorzystywania jest kluczowe dla każdego programisty zajmującego się tworzeniem aplikacji webowych. Pojawienie się niektórych błędnych odpowiedzi może wynikać z mylenia pojęć związanych z metodami HTTP oraz ich zastosowaniem w praktyce. Wiele osób mylnie sądzi, że każda metoda, którą zna, musi być standardem, co prowadzi do nieporozumień i błędnych wniosków. Dobrą praktyką jest na bieżąco rozwijać swoją wiedzę na temat protokołu HTTP oraz jego metod, co ułatwi pracę i zapewni lepsze zrozumienie architektury aplikacji webowych.

Pytanie 7

Jaki numer telefonu należy wybrać, aby skontaktować się z pogotowiem ratunkowym w Polsce?

A. 112
B. 998
C. 113
D. 997
Numer 112 to europejski numer alarmowy, który działa we wszystkich krajach Unii Europejskiej, w tym w Polsce. Jego wybór pozwala na natychmiastowe połączenie się z dyspozytorem służb ratunkowych (pogotowie ratunkowe, straż pożarna, policja). Jest to uniwersalny numer, który można wybrać z dowolnego telefonu komórkowego lub stacjonarnego, nawet jeśli urządzenie nie ma karty SIM. Dzięki tej uniwersalności jest to najczęściej rekomendowany numer w nagłych wypadkach.

Pytanie 8

Z analizy złożoności obliczeniowej różnych algorytmów sortowania na dużych zbiorach danych (przekraczających 100 elementów) wynika, że najefektywniejszą metodą jest algorytm sortowania

sortowanie bąbelkoweO(n2)
sortowanie przez wstawianieO(n2)
sortowanie przez scalanieO(n log n)
sortowanie przez zliczanieO(n)
sortowanie kubełkoweO(n2)
A. przez scalanie
B. kubełkowego
C. bąbelkowego
D. przez zliczanie
Sortowanie bąbelkowe, mimo że jest łatwe do zrozumienia i zaimplementowania, ma złożoność czasową O(n²), co czyni je nieefektywnym dla dużych zbiorów danych, takich jak ponad 100 elementów. Działa poprzez wielokrotne przechodzenie przez listę, porównując sąsiednie elementy i zamieniając je miejscami, jeśli są w niewłaściwej kolejności. To powoduje, że algorytm ten staje się wolny przy większej ilości danych. Sortowanie przez scalanie, choć bardziej wydajne niż bąbelkowe, z złożonością O(n log n), nadal nie dorównuje szybkością sortowaniu przez zliczanie w specyficznych warunkach, gdzie zakres wartości jest ograniczony. Jest to metoda rekurencyjna, która dzieli listę na mniejsze części, sortuje je, a następnie scala w jedną posortowaną listę. Natomiast sortowanie kubełkowe, podobnie jak przez zliczanie, korzysta z dodatkowych struktur danych, lecz jego efektywność zależy od tego, jak elementy są równomiernie rozmieszczone w kubełkach, co może prowadzić do złożoności O(n²) w przypadku złej dystrybucji. Typowe błędy myślowe polegają na przecenianiu prostoty implementacji ponad złożoność czasową, a także niedocenianiu specyfiki danych wejściowych, co jest kluczowe dla wyboru odpowiedniego algorytmu sortującego. Przy rozważaniu wyboru algorytmu należy zawsze brać pod uwagę zarówno jego złożoność, jak i charakterystykę danych, jakie będą przetwarzane, co jest podstawą dobrych praktyk inżynierii oprogramowania.

Pytanie 9

Jakie działania należy podjąć, aby uniknąć nieskończonej rekurencji w danej funkcji?

A. Zastosować iterację zamiast rekurencji
B. Dodać warunek zakończenia w funkcji
C. Rozszerzyć zakres zmiennych globalnych
D. Wykorzystać automatyczny debugger w kompilatorze
Warunek stopu to taki kluczowy element w rekurencji, który właściwie mówi, kiedy funkcja powinna przestać się wywoływać. Jak masz ten warunek, to funkcja wraca z wynikiem zamiast kręcić się w kółko, co mogłoby prowadzić do jakiegoś szaleństwa, tzn. przepełnienia stosu. Myślę, że warto zwrócić uwagę, że dodanie tego warunku to naprawdę podstawowa sprawa w programowaniu, bo bez niego wszystko może się posypać i przestanie działać tak, jak powinno.

Pytanie 10

Jedną z dolegliwości, która pojawia się u programistów w wyniku długotrwałego korzystania z myszki komputerowej lub klawiatury, objawiającą się bólem, drętwieniem oraz zaburzeniami czucia w rejonie 1-3 palca ręki jest

A. dyskopatia
B. zespół suchego oka
C. zespół cieśni kanału nadgarstka
D. kifoza
Zespół suchego oka dotyczy problemów z oczami wynikających z długotrwałego patrzenia na ekran, a nie problemów z nadgarstkiem. Kifoza to wada postawy, związana z krzywizną kręgosłupa, a nie z dłońmi. Dyskopatia dotyczy problemów z krążkami międzykręgowymi i nie jest bezpośrednio związana z pracą programisty przy klawiaturze.

Pytanie 11

Które z wymienionych stanowi przykład struktury dziedziczenia?

A. Klasa Pojazd nie dziedziczy z żadnej klasy
B. Klasa Pojazd ma dziedziczenie od klasy Samochód
C. Klasa Samochód i Pojazd nie są ze sobą powiązane
D. Klasa Samochód ma dziedziczenie od klasy Pojazd
Klasa 'Pojazd' dziedzicząca po klasie 'Samochód' jest błędnym przykładem hierarchii – bardziej ogólne pojęcia powinny znajdować się wyżej w hierarchii dziedziczenia. Klasa 'Pojazd' nie dziedzicząca po żadnej klasie jest podstawową klasą bazową, ale to nie stanowi przykładu hierarchii dziedziczenia. Brak powiązań między klasami 'Samochód' i 'Pojazd' oznacza brak hierarchii – są to niezależne klasy, co eliminuje korzyści wynikające z dziedziczenia i ponownego użycia kodu.

Pytanie 12

Jakie narzędzie jest najbardziej odpowiednie do identyfikacji błędów w trakcie działania programu?

A. Linker
B. Interpreter
C. Debugger
D. Kompilator
Debugger to narzędzie przeznaczone do wyszukiwania błędów w czasie wykonywania programu. Pozwala na zatrzymywanie aplikacji w wybranych miejscach, analizowanie wartości zmiennych i śledzenie przepływu sterowania, co umożliwia szybkie wykrywanie błędów logicznych i błędów czasu wykonania. Debugger jest niezbędny w procesie rozwoju oprogramowania, ponieważ pomaga programistom w zrozumieniu, jak ich kod działa w rzeczywistości i jak różne warunki wpływają na jego funkcjonowanie.

Pytanie 13

Aby tworzyć aplikacje desktopowe w języku Java, można wybrać jedno z poniższych środowisk

A. NetBeans
B. Ms Visual Studio
C. SharpDevelop
D. PyCharm
SharpDevelop – Jest to narzędzie do programowania w C#. PyCharm – IDE dedykowane językowi Python, nie Java. Visual Studio – Obsługuje wiele języków, ale Java nie jest natywnie wspierana przez to środowisko.

Pytanie 14

Co to jest CSS Grid?

A. Metoda optymalizacji plików CSS dla lepszej wydajności strony
B. Dwuwymiarowy system układu elementów na stronie opary na siatkach
C. Biblioteka komponentów wizualnych dla aplikacji webowych
D. Format plików graficznych obsługiwany przez CSS3
CSS Grid to nowoczesny, dwuwymiarowy system układu elementów na stronie internetowej, który umożliwia projektantom i deweloperom łatwe i elastyczne tworzenie skomplikowanych układów. Dzięki CSS Grid możemy definiować zarówno kolumny, jak i wiersze, co pozwala na precyzyjne umieszczanie elementów w kontekście całego układu. Przykładem zastosowania CSS Grid może być stworzenie responsywnej galerii zdjęć, gdzie można łatwo zmieniać liczbę kolumn w zależności od szerokości ekranu. CSS Grid jest zgodny z najnowszymi standardami W3C i stał się kluczowym elementem w nowoczesnym web designie. Dzięki właściwościom takim jak grid-template-areas, grid-template-columns, czy grid-auto-rows, projektanci mogą w intuicyjny sposób organizować treści, co poprawia zarówno estetykę, jak i użyteczność stron. Ponadto, korzystanie z CSS Grid pozwala na zmniejszenie zależności od zewnętrznych bibliotek JavaScript do układania elementów, co podnosi wydajność i usprawnia proces tworzenia stron.

Pytanie 15

Zawarty w ramce opis licencji sugeruje, że mamy do czynienia z licencją

Ilustracja do pytania
A. Open Source
B. Shareware
C. OEM
D. Freeware
Licencja OEM (Original Equipment Manufacturer) dotyczy oprogramowania, które jest dostarczane razem ze sprzętem i nie może być przenoszone na inne urządzenia. Freeware oznacza darmowe oprogramowanie, ale jego kod źródłowy zazwyczaj nie jest dostępny. Shareware to oprogramowanie oferowane za darmo przez określony czas lub w ograniczonej wersji, po czym użytkownik musi dokonać zakupu pełnej wersji.

Pytanie 16

Jakie jest przeznaczenie polecenia "git merge"?

A. Do zakładania nowego repozytorium
B. Do usuwania zmian w repozytorium
C. Do łączenia zmian z różnych gałęzi
D. Do pobierania aktualizacji zdalnego repozytorium
Polecenie 'git merge' służy do łączenia zmian z jednej gałęzi (branch) z inną. Najczęściej używane jest do scalenia gałęzi deweloperskich (feature branches) z gałęzią główną (main lub master). Git merge pozwala na integrację nowych funkcji z głównym kodem projektu, co jest kluczowe w pracy zespołowej. W przypadku konfliktów, Git wymaga ręcznego rozwiązania ich przed zakończeniem procesu scalania. Umożliwia to zachowanie porządku w kodzie i unikanie błędów, które mogłyby wyniknąć z niezgodnych zmian.

Pytanie 17

Który z wymienionych elementów interfejsu użytkownika jest charakterystyczny dla aplikacji działającej na komputerze?

A. Routing
B. Przycisk (Button)
C. API REST
D. Strona HTML
Przycisk, czyli ten mały element, co go klikamy w aplikacjach, to naprawdę ważna część interfejsu. Używamy go, żeby coś zainicjować, na przykład zapisać dane czy wywołać jakąś funkcję. Fajnie, że można go dowolnie ustawiać – zmieniać wygląd, rozmiar, a nawet to, jak się zachowuje. Dzięki temu pasuje do każdej aplikacji. W dzisiejszych programach, jak WPF, te przyciski mogą mieć różne kolorowe ikony albo nawet animacje, co sprawia, że aplikacja wygląda super. Generalnie, bez przycisków użytkownik by się w aplikacji nie połapał, bo to dzięki nim możemy nawigować, zatwierdzać formularze czy otwierać nowe okna dialogowe.

Pytanie 18

Co będzie wynikiem wykonania poniższego kodu w języku C#?

string text = "hello world"; var result = string.Join("", text.Split(' ').Select(s => char.ToUpper(s[0]) + s.Substring(1))); Console.Console.WriteLine(result);
A. HelloWorld
B. helloworld
C. HELLO WORLD
D. Hello World
Wynik działania przedstawionego kodu to 'HelloWorld'. Zrozumienie tego wyniku wymaga analizy poszczególnych elementów kodu. Na początku mamy zmienną tekstową 'text' z wartością 'hello world'. Następnie, tekst jest dzielony na fragmenty za pomocą metody 'Split', która rozdziela go na podstawie spacji. W efekcie otrzymujemy tablicę z dwoma elementami: 'hello' i 'world'. Następnie, za pomocą metody 'Select', każdy z tych fragmentów jest przetwarzany. Pierwszy znak każdego słowa jest konwertowany na wielką literę dzięki 'char.ToUpper(s[0])', a następnie łączony z resztą słowa ('s.Substring(1)'). Tak uzyskane fragmenty są łączone w jeden ciąg za pomocą 'string.Join("", ...)'. W rezultacie otrzymujemy 'HelloWorld', co jest zgodne z praktykami konwencji nazewniczych w programowaniu, gdzie często łączy się słowa w jeden ciąg, eliminując spacje. Dzięki temu wynik jest bardziej zwięzły i czytelny."

Pytanie 19

Jakie metody można wykorzystać do przechowywania informacji o użytkownikach w aplikacji mobilnej na systemie Android?

A. Wyłącznie w zewnętrznych bazach danych
B. W rejestrze systemu
C. Tylko w pamięci RAM
D. Za pomocą plików SharedPreferences
Przechowywanie danych w rejestrze systemu jest typowe dla aplikacji desktopowych działających na systemach Windows i nie znajduje zastosowania w środowisku Android. Zewnętrzne bazy danych są używane do przechowywania dużych ilości danych, ale nie są optymalnym rozwiązaniem dla prostych preferencji użytkownika, ponieważ wymagają bardziej skomplikowanej konfiguracji. Przechowywanie danych wyłącznie w pamięci RAM jest rozwiązaniem tymczasowym – dane te są tracone po zamknięciu aplikacji lub ponownym uruchomieniu urządzenia, co czyni je niepraktycznymi do przechowywania trwałych ustawień użytkownika.

Pytanie 20

Które z poniższych nie jest systemem kontroli wersji?

A. MongoDB
B. Mercurial
C. Git
D. SVN
Git, SVN i Mercurial to systemy kontroli wersji, które służą do śledzenia zmian w kodzie źródłowym aplikacji, co jest kluczowym aspektem współczesnego inżynierii oprogramowania. Te narzędzia pozwalają programistom na zarządzanie historią zmian, współpracę nad kodem oraz łatwe przywracanie wcześniejszych wersji, co jest niezwykle istotne w procesie tworzenia i utrzymania projektów. Wybierając Git, deweloperzy korzystają z rozproszonego modelu, który umożliwia każdemu użytkownikowi posiadanie pełnej kopii repozytorium na swoim lokalnym komputerze, co znacznie upraszcza proces rozwijania oprogramowania w zespołach zdalnych. SVN, z kolei, opiera się na centralnym modelu, co może być korzystne w określonych kontekstach, zwłaszcza w większych przedsiębiorstwach, gdzie kontrola dostępu do kodu źródłowego jest kluczowa. Mercurial podobnie jak Git oferuje rozproszoną architekturę, ale jego prostszy interfejs użytkownika sprawia, że jest bardziej intuicyjny dla nowych użytkowników. Błędem jest mylenie systemów baz danych z systemami kontroli wersji, co wynika z niepełnej wiedzy na temat ich podstawowych funkcji. Systemy kontroli wersji są niezbędne do zapewnienia efektywnej współpracy w zespołach programistycznych oraz do minimalizacji ryzyka utraty danych podczas pracy nad projektem, natomiast systemy baz danych koncentrują się na przechowywaniu i zarządzaniu informacjami.

Pytanie 21

Technika konstruowania algorytmu polegająca na rozbiciu na dwa lub więcej mniejszych podproblemów, aż do momentu, gdy ich części będą wystarczająco proste do bezpośredniego rozwiązania, nosi nazwę:

A. komiwojażera
B. dziel i zwyciężaj
C. heurystycznej
D. najkrótszej trasy
Metoda 'dziel i zwyciężaj' polega na podziale problemu na mniejsze podproblemy, aż do osiągnięcia najprostszych przypadków, które można łatwo rozwiązać. To podejście jest stosowane w algorytmach takich jak Merge Sort czy QuickSort.

Pytanie 22

Który z warunków logicznych weryfikuje, czy zmienna całkowita x jest dodatnią liczbą składającą się z dwóch cyfr i jest podzielna przez 4?

A. (x > 9 && x < 100) && (x % 4 == 0)
B. (x > 9 && x < 100) || (x % 4 == 0)
C. (x > 0 && x < 100) || (x / 4 == 0)
D. (x > 9 || x < 100) && (x / 4 == 0)
Warunek z operatorem || (lub) nie zapewnia dokładnej kontroli zakresu i podzielności, co prowadzi do nieprawidłowych wyników. Operacje dzielenia, np. (x / 4 == 0), zamiast operatora modulo, są błędne, ponieważ wynik dzielenia całkowitego nie wykrywa reszty. Sprawdzenie wyłącznie zakresu, bez uwzględnienia podzielności, nie spełnia warunku zadania.

Pytanie 23

Które słowo kluczowe w C++ służy do definiowania klasy nadrzędnej?

A. public
B. virtual
C. class
D. base
Słowo kluczowe 'class' jest podstawowym elementem języka C++ i służy do deklarowania klasy. Definiuje ono strukturę zawierającą pola (zmienne) oraz metody (funkcje członkowskie), które określają zachowanie obiektu. 'Class' pozwala na enkapsulację danych, co oznacza ukrywanie implementacji wewnętrznej i udostępnianie interfejsu publicznego. Dzięki temu klasy stanowią podstawę programowania obiektowego, umożliwiając organizację kodu w logiczne jednostki. Przykładowa deklaracja klasy w C++ wygląda następująco: 'class Samochod { public: void Jedz(); private: int predkosc; };'.

Pytanie 24

Który z wymienionych sposobów może przyczynić się do optymalizacji kodu źródłowego?

A. Dodanie większej liczby komentarzy w kodzie
B. Zamiana zmiennych globalnych na lokalne
C. Zwiększenie ilości instrukcji warunkowych
D. Eliminacja nieużywanych zmiennych oraz funkcji
Usunięcie nieużywanych zmiennych i funkcji to jedna z najskuteczniejszych metod optymalizacji kodu źródłowego. Nadmiarowe zmienne i niepotrzebne funkcje mogą spowalniać aplikację, zwiększać jej zużycie pamięci i powodować problemy z czytelnością kodu. Ich eliminacja upraszcza kod, zmniejsza ryzyko błędów i poprawia wydajność programu. Oczyszczanie kodu to kluczowy element procesu refaktoryzacji, który pozwala na utrzymanie wysokiej jakości oprogramowania oraz lepszą organizację projektu. Dodatkowo, minimalizacja kodu pomaga w szybszym ładowaniu aplikacji webowych, co ma bezpośredni wpływ na doświadczenie użytkownika (UX) oraz pozycjonowanie w wyszukiwarkach (SEO).

Pytanie 25

Która z dokumentacji funkcji odpowiada przedstawionemu kodowi źródłowemu?

Ilustracja do pytania
A. Dokumentacja 4
B. Dokumentacja 3
C. Dokumentacja 2
D. Dokumentacja 1
Dokumentacje 1, 3 i 4 mogą zawierać błędy, nieścisłości lub brakujące elementy. Prawidłowa dokumentacja powinna zawierać opis funkcji, parametry oraz przykład użycia, co jest kluczowe dla programistów korzystających z kodu.

Pytanie 26

Jakie informacje zawiera zestaw instrukcji (ISA) danego procesora?

A. Typy danych, które są trzymane w pamięci
B. Metodę obsługi pamięci podręcznej
C. Układ połączeń między procesorem a innymi elementami
D. Instrukcje, które procesor jest w stanie wykonać
Rodzaje danych, które są trzymane w pamięci, nie są bezpośrednio powiązane z zestawem instrukcji procesora. ISA skupia się bardziej na tym, co procesor może zrobić, a nie na tym, jak dane są zorganizowane w pamięci. Przechowywanie danych to bardziej kwestia zarządzania pamięcią, a nie samej architektury instrukcji. A jeśli chodzi o pamięć podręczną, to już całkiem inna sprawa, bo to dotyczy tego, jak przechowujemy i uzyskujemy dostęp do danych. W tym przypadku mówi się o algorytmach i strategiach, które działają w architekturze procesora, ale nie są częścią zestawu instrukcji. I jeszcze schemat połączeń między procesorem a innymi częściami komputera też nie wchodzi w skład ISA. To już dotyczy całej architektury systemu i tego, jak różne elementy, jak pamięć czy urządzenia wejścia/wyjścia, współpracują ze sobą. Wszystko to jest istotne dla działania systemu komputerowego, ale nie definiuje zestawu instrukcji, który jest kluczowy, żeby procesor mógł przetwarzać dane i robić obliczenia.

Pytanie 27

Który z wymienionych przykładów ilustruje projektowanie interfejsu zgodnego z zasadami user experience (UX)?

A. Brak opcji cofnięcia już wykonanej akcji
B. Użycie czytelnych czcionek i intuicyjnego układu elementów
C. Zastosowanie jedynie jednego koloru w całym interfejsie
D. Przycisk umieszczony w przypadkowym miejscu aplikacji
Użycie czytelnych czcionek i intuicyjnego układu elementów to kluczowe zasady projektowania zgodne z user experience (UX). Przejrzystość i estetyka interfejsu zwiększają komfort użytkownika i ułatwiają korzystanie z aplikacji. Intuicyjny układ elementów pozwala na szybkie odnalezienie potrzebnych funkcji, co redukuje frustrację użytkownika i skraca czas potrzebny na realizację zadania. UX opiera się na badaniach dotyczących zachowań użytkowników i dostosowywaniu projektu do ich potrzeb.

Pytanie 28

Który z wymienionych elementów stanowi przykład złożonego typu danych?

A. char
B. bool
C. struct
D. int
Typ 'int' to taki prosty typ, który trzyma tylko jedną liczbę całkowitą, więc nie można go porównywać ze złożonymi typami, jak 'struct'. 'Char' to typ, który trzyma jeden znak, a nie grupuje różnych zmiennych. 'Bool' też jest prosty i tylko zapisuje 'prawda' albo 'fałsz', więc nie ma opcji przechowywania wielu typów w jednym. Złożone typy, jak 'struct', mają tę zaletę, że mogą trzymać różne dane w jednym miejscu, co wyróżnia je w porównaniu do prostych typów takich jak 'int' czy 'bool', które są dużo bardziej ograniczone.

Pytanie 29

Które z wymienionych działań zwiększa bezpieczeństwo transakcji online?

A. Zastosowanie publicznego Wi-Fi do logowania się na konto bankowe
B. Nieaktualizowanie oprogramowania przeglądarki
C. Udostępnianie informacji o karcie kredytowej w e-mailach
D. Weryfikowanie certyfikatów SSL na stronach zajmujących się transakcjami
Sprawdzanie certyfikatów SSL na stronach transakcyjnych to jeden z najważniejszych kroków w zapewnieniu bezpieczeństwa transakcji internetowych. Certyfikat SSL szyfruje dane przesyłane między użytkownikiem a serwerem, chroniąc je przed przechwyceniem przez osoby trzecie. Adresy stron z certyfikatem SSL zaczynają się od 'https', co wskazuje na bezpieczne połączenie. Certyfikaty SSL zapewniają integralność danych i są podstawą dla każdej strony internetowej obsługującej płatności lub przechowującej dane użytkowników. Zignorowanie tej kwestii naraża użytkowników na ataki typu man-in-the-middle i phishing.

Pytanie 30

Jaki język programowania został stworzony z myślą o tworzeniu aplikacji na system Android?

A. Python
B. Swift
C. Objective-C
D. Java
Java to taki język, który jest głównie używany do robienia aplikacji na Androida. Od początku Androida, Java była jego podstawowym językiem, dlatego jest tak popularna i dobrze opisana w dokumentacji. Kiedy tworzysz aplikacje na Androida w Javie, to korzystasz z Android SDK oraz API, które świetnie integrują się z funkcjami urządzeń, jak GPS czy kamera. Teraz trochę więcej mówi się o Kotlinie jako nowoczesnej alternatywie dla Javy, ale Java wciąż ma swoje mocne miejsce w tworzeniu aplikacji i Google dalej ją wspiera.

Pytanie 31

Zaprezentowany symbol odnosi się do

Ilustracja do pytania
A. prawa cytatu
B. praw autorskich
C. domeny publicznej
D. Creative Commons
Przedstawiony symbol reprezentuje domenę publiczną, co oznacza, że utwór nie jest objęty prawami autorskimi i może być swobodnie używany przez każdego. Takie oznaczenie jest często stosowane do dzieł, które przeszły do domeny publicznej po wygaśnięciu ochrony prawnej.

Pytanie 32

Jaki rodzaj licencji umożliwia dowolne zmienianie oraz rozpowszechnianie kodu źródłowego?

A. Licencja OEM
B. Licencja komercyjna
C. Licencja shareware
D. Licencja GNU GPL
Licencja GNU GPL (General Public License) pozwala na swobodne modyfikowanie i rozpowszechnianie kodu źródłowego, pod warunkiem, że wszelkie zmiany i modyfikacje są również udostępniane na tych samych zasadach. Jest to jedna z najbardziej znanych licencji open-source, która gwarantuje wolność użytkownikom oprogramowania w zakresie jego analizy, modyfikacji oraz redystrybucji. Licencja ta promuje współpracę i transparentność w świecie oprogramowania, umożliwiając społeczności wspólny rozwój projektów i eliminując ograniczenia wynikające z licencji zamkniętych.

Pytanie 33

Co zostanie wyświetlone po wykonaniu poniższego kodu w języku Python?

data = [1, 2, 3, 4, 5] result = list(map(lambda x: x*2, filter(lambda x: x % 2 == 0, data))) print(result)
A. [2, 4, 6, 8, 10]
B. [1, 2, 3, 4, 5]
C. [2, 6, 10]
D. [4, 8]
Analizując inne odpowiedzi, możemy zauważyć, że wszystkie one bazują na błędnych założeniach dotyczących działania funkcji filter i map. Niektóre z propozycji, takie jak [2, 6, 10], sugerują, że wszystkie liczby parzyste z oryginalnej listy byłyby mnożone przez 2, co jest nieprawidłowe. Funkcja filter zwraca jedynie liczby parzyste, a to oznacza, że tylko liczby 2 i 4 są brane pod uwagę, nie 6 i 10, których w oryginalnej liście po prostu nie ma. Ponadto odpowiedź [2, 4, 6, 8, 10] jest błędna, ponieważ dodaje liczby, które nie występują w danych wejściowych, co prowadzi do nieprecyzyjnego wyniku. Warto zrozumieć, że w Pythonie operacje na kolekcjach są często wykonywane w sposób, który wymaga precyzyjnej analizy danych wejściowych. W kontekście programowania, często popełnianym błędem jest zakładanie, że wszystkie liczby pasujące do jakiegoś warunku będą uwzględniane w dalszej obróbce bez dokładnego ich filtrowania. Stąd wynika, że zrozumienie, jak działają funkcje takie jak filter i map, jest kluczowe dla efektywnego i poprawnego programowania. W procesie nauki ważne jest, aby przyglądać się działaniu kodu krok po kroku i dokładnie analizować, jak funkcje przetwarzają dane. Zrozumienie tych podstawowych koncepcji jest niezbędne, aby uniknąć podobnych nieporozumień w przyszłości.

Pytanie 34

Co oznacza skrót CSRF w kontekście bezpieczeństwa aplikacji webowych?

A. Cross-Site Response Filter
B. Client-Side Rendering Framework
C. Cross-Site Request Forgery
D. Cascading Style Rendering Form
Skrót CSRF najczęściej mylony jest z innymi terminami w obszarze rozwoju aplikacji webowych, co może prowadzić do nieporozumień. Przykładowo, Client-Side Rendering Framework jest koncepcją odnoszącą się do sposobu renderowania stron internetowych, gdzie wiele logiki aplikacji wykonuje się po stronie klienta. Nie ma to jednak nic wspólnego z problematyką powiązaną z bezpieczeństwem. Cross-Site Response Filter sugeruje, że istnieje mechanizm filtrujący odpowiedzi między różnymi witrynami, co również nie ma podstaw w rzeczywistości. Tego typu pomysły świadczą o braku zrozumienia, jak działają ataki w środowisku webowym oraz jakie mechanizmy są potrzebne do ich obrony. Cascading Style Rendering Form nie ma nic wspólnego z bezpieczeństwem aplikacji, a raczej dotyczy stylizacji i prezentacji strony, co nie jest odpowiednim kontekstem. Często ludzie mylą te pojęcia, nie zdając sobie sprawy z ryzyk, jakie niesie niewłaściwe zabezpieczenie aplikacji. Zrozumienie, czym jest CSRF, jest kluczowe, aby unikać błędów w projektowaniu i implementacji rozwiązań webowych, które mogą doprowadzić do poważnych luk w bezpieczeństwie.

Pytanie 35

Jakie narzędzie służy do zarządzania wersjami?

A. Trello
B. Jira
C. Git
D. Bugzilla
Git to system kontroli wersji, który pozwala na śledzenie zmian w kodzie źródłowym. Jest to narzędzie szeroko stosowane w zespołach programistycznych, umożliwiające współpracę i zarządzanie historią projektu.

Pytanie 36

Jaką nazwę nosi framework CSS, który służy do definiowania wyglądu stron internetowych i którego klasy są użyte w przedstawionym przykładzie?

Ilustracja do pytania
A. Symfony
B. Yaml
C. Bootstrap
D. Angular
Bootstrap jest jednym z najpopularniejszych frameworków CSS używanych do tworzenia responsywnych aplikacji internetowych. Jest to zestaw narzędzi open-source, który oferuje gotowe klasy CSS oraz komponenty JavaScript, ułatwiające projektowanie interfejsów użytkownika. W podanym przykładzie klasy takie jak 'col-sm-3' 'col-md-6' i 'col-lg-4' odnoszą się do siatki Bootstrapowej, która umożliwia elastyczne rozplanowanie elementów na stronie w zależności od rozmiaru ekranu. Klasa 'btn-primary' stosowana jest w Bootstrapie do stylizacji przycisków w sposób, który pasuje do domyślnych kolorów motywu. Z kolei 'dropdown-toggle' jest używana do obsługi rozwijanych list. Dzięki Bootstrapowi można z łatwością tworzyć nowoczesne i estetyczne aplikacje, które są zgodne z zasadami responsywnego web designu, co jest kluczowym standardem w dzisiejszej branży. Użycie Bootstrapu przyspiesza proces developmentu, pozwalając skupić się na funkcjonalności i logice aplikacji, zamiast na ręcznym stylizowaniu elementów.

Pytanie 37

Jakie zastosowanie ma język Swift w zakresie aplikacji mobilnych?

A. Do tworzenia aplikacji na system Android
B. Do tworzenia aplikacji na system iOS
C. Do zarządzania bazami danych w aplikacjach mobilnych
D. Do przeprowadzania testów aplikacji mobilnych
Java jest językiem programowania przeznaczonym głównie do tworzenia aplikacji na Androida, a nie iOS. Objective-C to starszy język używany przed Swift, ale obecnie Apple zaleca tworzenie nowych aplikacji w Swift. Python, choć może być używany do budowy aplikacji mobilnych, nie jest standardowym językiem w ekosystemie Apple i nie jest wspierany przez XCode jako domyślny język programowania dla iOS.

Pytanie 38

W jakim języku programowania kod źródłowy musi być skompilowany do kodu maszynowego konkretnej architektury procesora przed jego uruchomieniem?

A. C++
B. Perl
C. PHP
D. Java
PHP i Perl to języki interpretowane, a nie kompilowane – kod jest wykonywany linia po linii. Java wymaga kompilacji, ale do kodu bajtowego, który następnie jest interpretowany przez maszynę wirtualną (JVM), a nie bezpośrednio do kodu maszynowego.

Pytanie 39

Jaką kategorię reprezentuje typ danych "array"?

A. Typ danych złożony
B. Typ danych prosty
C. Typ wskaźników
D. Typ logiczny
Prosty typ danych odnosi się do typów takich jak 'int', 'char' czy 'bool', które przechowują pojedyncze wartości, a nie zestawy danych. Typ wskaźnikowy przechowuje adresy pamięci, a nie kolekcje wartości, jak to ma miejsce w przypadku tablic. Typ logiczny (boolean) przechowuje wartości 'true' lub 'false', ale nie jest przeznaczony do przechowywania wielu elementów. Tablice różnią się od typów prostych tym, że pozwalają na jednoczesne przechowywanie wielu elementów i dostęp do nich za pomocą indeksów.

Pytanie 40

Który z algorytmów ma złożoność O(n2)?

A. Bubble Sort
B. Merge Sort
C. Binary Search
D. Dijkstra
Bubble Sort to algorytm o złożoności O(n²), co oznacza, że jego czas wykonania rośnie kwadratowo wraz ze wzrostem liczby elementów wejściowych. Algorytm porównuje sąsiadujące elementy i zamienia je miejscami, jeśli są w złej kolejności. Proces ten powtarza się wielokrotnie, aż do uzyskania pełnego posortowania tablicy. Ze względu na swoją prostotę, Bubble Sort jest często wykorzystywany do nauki podstaw algorytmiki, ale w praktyce rzadko stosuje się go do sortowania dużych zbiorów danych, ponieważ jest nieefektywny w porównaniu do bardziej zaawansowanych algorytmów, takich jak QuickSort czy Merge Sort.