Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 8 czerwca 2026 14:24
  • Data zakończenia: 8 czerwca 2026 14:53

Egzamin zdany!

Wynik: 29/40 punktów (72,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Który z wymienionych algorytmów najczęściej wykorzystuje rekurencję?

A. Obliczanie liczb Fibonacciego
B. Wyszukiwanie liniowe
C. Sortowanie bąbelkowe
D. Sortowanie przez wstawianie
Algorytmy obliczania liczb Fibonacciego są jednym z najbardziej klasycznych przykładów rekurencji. Algorytm ten polega na wywoływaniu funkcji, która sama odwołuje się do siebie, aby obliczyć kolejne liczby w sekwencji. Rekurencyjna natura obliczeń Fibonacciego sprawia, że algorytm jest prosty i intuicyjny w implementacji, choć może być mniej wydajny niż wersje iteracyjne. Rekurencja jest szeroko stosowana w problemach matematycznych i algorytmicznych, gdzie rozwiązanie większego problemu można uzyskać poprzez rozwiązywanie mniejszych, podobnych podproblemów.

Pytanie 2

Algorytmu Euklidesa, przedstawionego na schemacie, należy użyć do obliczenia.

Ilustracja do pytania
A. Najmniejszej Wspólnej Wielokrotności
B. największego elementu w zbiorze liczb
C. najmniejszej liczby pierwszej w danym zakresie
D. Największego Wspólnego Dzielnika
Algorytm Euklidesa to klasyczna metoda stosowana do wyznaczania największego wspólnego dzielnika (NWD) dwóch liczb całkowitych. Działa na zasadzie iteracyjnego odejmowania mniejszej liczby od większej aż do momentu, gdy obie liczby staną się równe. Wtedy ta wspólna wartość jest największym wspólnym dzielnikiem. Algorytm jest bardzo efektywny, nawet dla dużych liczb, co czyni go powszechnie stosowanym w praktycznych zastosowaniach, takich jak kryptografia czy optymalizacja komputerowa. W kryptografii, szczególnie w systemach kluczy publicznych, takich jak RSA, obliczanie NWD jest kluczowe dla generowania kluczy. Algorytm Euklidesa jest też podstawą dla bardziej zaawansowanych algorytmów, takich jak rozszerzony algorytm Euklidesa, który umożliwia obliczenie również współczynników liczbowych używanych w teoretycznych dowodach matematycznych. Jego implemetacja jest również często wykorzystywana w bibliotekach matematycznych języków programowania, co świadczy o jego uniwersalności i znaczeniu w dzisiejszej technologii.

Pytanie 3

Który z poniższych przykładów ilustruje deklarację złożonego typu w języku C++?

A. float ocena = 4.5;
B. int wynik = 100;
C. class Student {};
D. bool status;
Deklaracja `class Student {};` w języku C++ przedstawia przykład tworzenia typu złożonego w postaci klasy. Klasa to podstawowy element programowania obiektowego, który pozwala na łączenie danych (pól) i funkcji (metod) w jednej strukturze. Klasy umożliwiają modelowanie rzeczywistych obiektów i ich zachowań, co prowadzi do bardziej zorganizowanego i skalowalnego kodu. Klasy mogą być rozszerzane przez dziedziczenie, co jest kluczową zaletą programowania obiektowego.

Pytanie 4

Co to jest WebAssembly (WASM)?

A. Narzędzie do automatycznego testowania aplikacji webowych
B. Format kodu binarnego, który może być wykonywany w nowoczesnych przeglądarkach
C. Metoda łączenia kodu JavaScript z kodem CSS
D. Framework JavaScript do tworzenia aplikacji mobilnych
WebAssembly (WASM) to nowoczesny format kodu binarnego, który umożliwia uruchamianie kodu w przeglądarkach internetowych z wysoką wydajnością. Został zaprojektowany jako uzupełnienie JavaScript, co pozwala na korzystanie z bardziej złożonych języków programowania, takich jak C, C++ czy Rust, w aplikacjach webowych. Dzięki temu deweloperzy mogą przenosić istniejący kod do środowiska przeglądarki, co znacząco zwiększa możliwości tworzenia aplikacji webowych. Przykładem zastosowania WebAssembly może być gry przeglądarkowe, które wymagają intensywnego przetwarzania danych oraz aplikacje graficzne, gdzie wydajność jest kluczowa. WebAssembly działa na zasadzie kompilacji, co pozwala na optymalne wykorzystanie zasobów systemowych. Dzięki wsparciu ze strony głównych przeglądarek, WASM stał się standardem, który przyspiesza rozwój aplikacji internetowych, zyskując uznanie w branży.

Pytanie 5

Co to jest CORS (Cross-Origin Resource Sharing)?

A. System zarządzania plikami statycznymi w aplikacjach SPA
B. Mechanizm bezpieczeństwa określający, które domeny mogą uzyskiwać dostęp do zasobów na serwerze
C. Metoda kompresji danych w aplikacjach webowych
D. Protokół komunikacji między różnymi bazami danych
CORS, czyli Cross-Origin Resource Sharing, to mechanizm bezpieczeństwa, który pozwala kontrolować, które domeny mają dostęp do zasobów na serwerze. Jest to niezwykle ważne w kontekście aplikacji webowych, które często korzystają z zasobów z różnych źródeł. Dzięki CORS serwery mogą definiować, które domeny mogą wysyłać żądania HTTP i uzyskiwać odpowiedzi z ich zasobów. Na przykład, jeśli Twoja aplikacja webowa działa na domenie 'example.com', ale potrzebuje danych z API na 'api.example.org', CORS pozwala na skonfigurowanie serwera API, aby zezwalał na te żądania. CORS jest kluczowy dla bezpieczeństwa aplikacji, ponieważ zapobiega atakom typu cross-site scripting (XSS) i innym nieautoryzowanym dostępom. Praktyczne zastosowanie CORS wprowadza nagłówki HTTP, takie jak 'Access-Control-Allow-Origin', które informują przeglądarki, jakie domeny mają prawo do interakcji z danym zasobem. Korzystanie z CORS jest uznawane za dobrą praktykę w budowaniu bezpiecznych aplikacji webowych, co podkreśla znaczenie jego implementacji.

Pytanie 6

Który z wymienionych programów jest przeznaczony do zarządzania projektami przy pomocy tablic kanban?

A. Jira
B. Trello
C. Photoshop
D. Word
Jira to zaawansowane narzędzie do zarządzania projektami, ale jest bardziej skoncentrowane na metodykach Agile i Scrum, a nie wyłącznie na tablicach kanban. Photoshop to narzędzie do edycji grafiki i tworzenia projektów wizualnych, które nie ma funkcji zarządzania projektami. Word jest edytorem tekstu i służy do tworzenia dokumentów, ale nie jest używany jako narzędzie do zarządzania zadaniami i projektami w sposób, w jaki robi to Trello.

Pytanie 7

Który z operatorów w Pythonie umożliwia sprawdzenie, czy dany element należy do listy?

A. is
B. in
C. and
D. ==
Operator `in` w języku Python służy do sprawdzania, czy element należy do listy, zbioru, krotki lub innego obiektu iterowalnego. Przykład: `if 5 in lista` sprawdza, czy liczba 5 znajduje się w liście. Operator `in` jest niezwykle przydatny w przeszukiwaniu danych, a jego zastosowanie skraca kod i zwiększa jego czytelność. W Pythonie jest on szeroko stosowany do iteracji i filtrowania danych, co czyni go jednym z najbardziej intuicyjnych operatorów języka.

Pytanie 8

Jakie z wymienionych czynności może zagrażać cyfrowej tożsamości?

A. Cykliczna zmiana haseł do kont
B. Klikanie w podejrzane linki w wiadomościach e-mail
C. Aktywacja uwierzytelniania dwuskładnikowego
D. Tworzenie unikalnych oraz mocnych haseł
Klikanie w podejrzane linki w wiadomościach e-mail to jedno z najczęstszych źródeł infekcji i naruszenia cyfrowej tożsamości. Cyberprzestępcy często wykorzystują phishing, czyli technikę polegającą na wysyłaniu fałszywych wiadomości, które wyglądają na autentyczne. Kliknięcie w link może prowadzić do zainstalowania złośliwego oprogramowania lub przekierowania na stronę wyłudzającą dane logowania. Aby uniknąć tego zagrożenia, zaleca się sprawdzanie adresu nadawcy, unikanie otwierania załączników z nieznanych źródeł i korzystanie z filtrów antyphishingowych.

Pytanie 9

Przedstawione w filmie działania wykorzystują narzędzie

A. kompilatora dla interfejsu graficznego
B. generatora kodu java
C. generatora GUI przekształcającego kod do języka XAML
D. debuggera analizującego wykonujący kod
Wybrana odpowiedź jest trafna, bo faktycznie narzędzie pokazane w filmie to generator GUI, który potrafi przekształcać kod do języka XAML. XAML (czyli Extensible Application Markup Language) jest powszechnie używany do deklaratywnego opisywania interfejsów użytkownika, na przykład w aplikacjach WPF czy UWP na platformie .NET. Jak dla mnie, korzystanie z takich generatorów to ogromna wygoda, bo pozwala błyskawicznie przenosić projekt graficzny do formatu czytelnego dla platformy Microsoftu. Z mojego doświadczenia, wiele zespołów programistycznych stosuje takie rozwiązania, żeby oszczędzić czas na ręcznym pisaniu XAML-a (co potrafi być naprawdę żmudne przy dużych projektach). Co ciekawe, takie narzędzia bardzo dobrze współpracują z designerskimi edytorami UI i potrafią zautomatyzować konwersję nawet z innych formatów graficznych, np. Sketch czy Adobe XD do XAML-a. Branżowe standardy zalecają, by wykorzystywać generatorów GUI właśnie do tego celu, bo minimalizuje to liczbę błędów, przyspiesza wdrożenie zmian i ułatwia współpracę między programistami a projektantami. Warto pamiętać, że XAML jest bardzo elastyczny i umożliwia potem ręczną edycję wygenerowanego kodu – czasem powstają drobne poprawki, ale ogólnie to naprawdę przydatne narzędzie. Ogólnie – jeśli tylko projektujesz UI pod .NET, to automatyczna konwersja do XAML-a to jest coś, co warto znać i wykorzystywać w praktyce.

Pytanie 10

Zestaw operatorów przedstawiony poniżej należy do kategorii operatorów:

*      /      ++      --      %
A. przypisania
B. logicznymi
C. arytmetycznych
D. porównawczymi
Operatorzy tacy jak *, /, ++, -- czy % należą do grupy operatorów arytmetycznych, ponieważ służą bezpośrednio do wykonywania operacji matematycznych na liczbach. To właśnie dzięki nim programista może realizować podstawowe działania, takie jak mnożenie, dzielenie, inkrementacja, dekrementacja oraz obliczanie reszty z dzielenia. W praktyce codziennej, np. przy obliczeniach faktur, przetwarzaniu danych liczbowych czy algorytmach związanych z obliczaniem średnich, te operatory są wręcz niezastąpione. Moim zdaniem bez solidnego zrozumienia operatorów arytmetycznych trudno ruszyć dalej w programowaniu, bo pojawiają się niemal we wszystkich zadaniach, od najprostszych po najbardziej zaawansowane. Warto też pamiętać, że zgodnie ze standardami języków takich jak C++, Java czy Python, te operatory mają swoje określone priorytety i kolejność wykonywania, którą trzeba znać, żeby uniknąć błędów logicznych. Przykładowo, operator ++ jest często wykorzystywany w pętlach do zwiększania wartości liczników, a % pozwala sprawdzić parzystość liczby. Osobiście uważam, że nawet jeśli na początku wydają się proste, to ich niuanse, np. różnice między ++i a i++, potrafią zaskoczyć, szczególnie w bardziej złożonych wyrażeniach.

Pytanie 11

Która metoda tablicy w JavaScript dodaje nowy element na końcu tablicy?

A. push()
B. pop()
C. unshift()
D. shift()
Metoda push() w JavaScript jest kluczowym narzędziem do dodawania nowych elementów na końcu tablicy. Jest to technika powszechnie stosowana w programowaniu, która pozwala na dynamiczne zarządzanie danymi w aplikacjach. Stosując push(), zyskujemy możliwość zwiększania rozmiaru tablicy w locie, co jest szczególnie przydatne w przypadku pracy z danymi, które mogą się zmieniać lub być nieprzewidywalne. Na przykład, jeśli mamy tablicę przechowującą listę zakupów, możemy dodać nowy przedmiot za pomocą metody push: `zakupy.push('jogurt');`. Warto również zauważyć, że metoda ta zwraca nową długość tablicy po dodaniu elementu, co może być użyteczne w kontekście dalszego przetwarzania lub sprawdzania zawartości tablicy. Zastosowanie tej metody jest zgodne z zasadami dobrego programowania w JavaScript, które zaleca efektywne gospodarowanie pamięcią i elastyczne zarządzanie strukturami danych.

Pytanie 12

Zaprezentowany symbol odnosi się do

Ilustracja do pytania
A. domeny publicznej
B. prawa cytatu
C. praw autorskich
D. Creative Commons
Ten symbol to międzynarodowe oznaczenie domeny publicznej – często nazywany jest też symbolem Public Domain. Moim zdaniem to bardzo przydatna rzecz, bo jednoznacznie komunikuje, że utwór nie jest chroniony prawem autorskim, więc można go swobodnie wykorzystywać bez pytania kogokolwiek o zgodę. To szczególnie ważne, gdy pracujesz nad projektami komercyjnymi albo edukacyjnymi i musisz mieć pewność, że nie naruszasz czyichś praw. W praktyce spotkasz to oznaczenie na stronach z grafikami, muzyką czy tekstami, np. na Wikimedia Commons albo w niektórych bazach zdjęć stockowych – wtedy od razu wiesz, że możesz pobierać, edytować czy publikować materiał na własnych zasadach. Kluczowe jest jednak, żeby nie mylić tego symbolu z licencjami Creative Commons – tam nadal obowiązują konkretne warunki. W branży IT oraz przy pracy twórczej rozpoznawanie takich oznaczeń jest wręcz podstawą dobrych praktyk, bo znacząco minimalizuje ryzyko prawne. Z mojego doświadczenia wynika, że wielu początkujących myli domenę publiczną z wolnymi licencjami – a to nie to samo. Oznaczenie Public Domain jasno pokazuje: nie ma ograniczeń, korzystaj śmiało i nie musisz podawać autora, choć czasami jest to mile widziane z punktu widzenia etyki.

Pytanie 13

W systemie RGB kolor Pale Green przedstawia się jako RGB(152, 251, 152). Jaki jest szesnastkowy kod tego koloru?

A. AO FE AO
B. AO FB AO
C. 98 FE98
D. 98FB98
Analizując odpowiedzi, które nie są poprawne, można zauważyć, że każda z nich zawiera błędy związane z konwersją wartości RGB do formatu szesnastkowego lub z nieprawidłowym układem cyfr. Przykładowo, pierwsza odpowiedź AO FB AO nie jest zgodna z formatem szesnastkowym, ponieważ zawiera litery, które nie odpowiadają wartościom RGB (0-255). Odpowiedź ta nie jest skonstruowana z poprawnych grup heksadecymalnych. Kolejna odpowiedź, 98 FE98, pomimo że wykorzystuje poprawne wartości, nie odpowiada pełnej reprezentacji koloru, ponieważ brakuje w niej wartości niebieskiej, co prowadzi do niepełnej i błędnej reprezentacji kolorystycznej. Trzecia odpowiedź AO FE AO również błądzi w tej samej kwestii, co pierwsza, wskazując na komponenty, które nie istnieją w dozwolonym zakresie dla kolorów RGB. W kontekście projektowania i standardów webowych, takie błędy mogą prowadzić do nieprawidłowego wyświetlania kolorów w różnych przeglądarkach oraz na różnych urządzeniach. Dlatego tak istotne jest, aby przy konwersji kolorów zachować poprawność techniczną oraz używać odpowiednich wartości w formacie szesnastkowym.

Pytanie 14

Jaką jednostkę zaleca się stosować przy projektowaniu interfejsu aplikacji?

A. mm
B. px
C. dp
D. pt
Wydaje się, że wybór jednostki do projektowania interfejsów to drobiazg, ale w praktyce ma ogromne znaczenie dla wygody użytkowników. Często spotykam się z przekonaniem, że skoro ekrany mają określoną liczbę pikseli, to właśnie px powinno być podstawową jednostką. Niestety, to myślenie prowadzi prosto do pułapki – piksele na różnych urządzeniach mają zupełnie inną wielkość fizyczną przez różne wartości gęstości ekranu (dpi). Coś, co na jednym wyświetlaczu wygląda dobrze, na innym może być kompletnie nieczytelne albo przesadnie duże. Z kolei mm, czyli milimetry, to jednostka fizyczna, ale ekrany rzadko odwzorowują tę wielkość precyzyjnie – w praktyce systemy operacyjne próbują przeliczać mm na piksele, ale często wychodzi to niedokładnie, bo nie każdy sprzęt ma idealnie skalibrowany ekran. Pt, czyli punkty typograficzne, mają trochę sensu w materiałach drukowanych czy w typografii desktopowej, ale w aplikacjach mobilnych niemal się ich nie używa, bo nie zapewniają spójności między różnymi urządzeniami. Takie podejścia – użycie px, mm albo pt – prowadzą do tego, że nasza aplikacja staje się trudna w obsłudze na różnych telefonach czy tabletach, a przecież chodzi o to, żeby wszędzie wyglądała dobrze i była wygodna w użyciu. Najlepszą praktyką branżową, polecaną przez Google i stosowaną w Material Design, jest korzystanie z dp (density-independent pixels). To najwygodniejsze i najbezpieczniejsze rozwiązanie – moim zdaniem, użycie innej jednostki jest uzasadnione chyba tylko, gdy robimy coś naprawdę nietypowego. Tak więc, warto od początku wdrażać dp jako podstawę i nie kombinować z innymi jednostkami, bo efekty są po prostu lepsze dla użytkowników.

Pytanie 15

Co oznacza termin 'hoisting' w JavaScript?

A. Metoda ładowania skryptów z zewnętrznych źródeł
B. Technika zarządzania pamięcią polegająca na usuwaniu nieużywanych obiektów
C. Optymalizacja kodu wykonywana przez silnik JavaScript
D. Przenoszenie deklaracji zmiennych i funkcji na górę ich zakresu podczas fazy kompilacji
Nieprawidłowe odpowiedzi na to pytanie mogą wynikać z nieporozumienia na temat podstawowych zasad działania JavaScript i jego mechanizmu wykonawczego. Optymalizacja kodu przez silnik JavaScript to proces, który ma miejsce w tle, ale nie odnosi się bezpośrednio do hoistingu, ponieważ ten termin dotyczy przenoszenia deklaracji na górę zakresu. Kolejna koncepcja zarządzania pamięcią, polegająca na usuwaniu nieużywanych obiektów, odnosi się do garbage collection, a nie do hoistingu. Garbage collection jest procesem, w którym silnik JavaScript automatycznie zwalnia pamięć zajmowaną przez obiekty, do których już nie ma odniesienia, co jest niezwiązane z mechanizmem przenoszenia deklaracji. Metoda ładowania skryptów z zewnętrznych źródeł dotyczy sposobu, w jaki JavaScript może być integrowany z HTML, ale nie ma związku z hoistingiem. Często mylone są te koncepcje ze względu na złożoność JavaScript i jego asynchroniczny charakter. Kluczowe w pracy z JavaScript jest zrozumienie, jak różne mechanizmy, takie jak hoisting, wpływają na organizację kodu i mogą prowadzić do błędów, jeśli nie są prawidłowo stosowane. Programiści powinni być świadomi, że niewłaściwe użycie hoistingu może skutkować trudnymi do wykrycia błędami, co podkreśla wagę dobrej praktyki w zakresie strukturyzacji kodu.

Pytanie 16

Która z wymienionych metod może pomóc w walce z uzależnieniem od internetu?

A. Zwiększenie czasu spędzanego na mediach społecznościowych
B. Używanie komputera jedynie w nocy
C. Wprowadzenie systematycznych przerw od używania urządzeń cyfrowych
D. Zainstalowanie większej ilości aplikacji rozrywkowych
Wprowadzenie systematycznych przerw od używania urządzeń cyfrowych to bardzo skuteczna metoda radzenia sobie z uzależnieniem od internetu. Rekomendują ją zarówno psychologowie, jak i specjaliści zajmujący się zdrowiem cyfrowym. W praktyce chodzi o to, żeby regularnie robić świadome przerwy od ekranu – na przykład ustawiając sobie limity czasowe, korzystając z aplikacji blokujących dostęp do określonych stron czy ustalając z góry pory dnia bez używania urządzeń elektronicznych. Takie działania mają mocno pozytywny wpływ na samodyscyplinę i pomagają odzyskać równowagę między życiem offline a online. Zresztą, nawet w poradnikach branżowych dla informatyków czy programistów można znaleźć zalecenia dotyczące odpoczynku od komputera, bo to poprawia koncentrację oraz ogólne samopoczucie. Moim zdaniem, warto przetestować różne sposoby tych przerw – czasem wystarczy wyjść na spacer, zrobić coś rękami albo po prostu porozmawiać z kimś na żywo. Regularność w tych czynnościach naprawdę robi różnicę. A co ciekawe, technika Pomodoro, znana z produktywności, świetnie sprawdza się także tutaj – 25 minut pracy, potem 5 minut przerwy bez żadnych ekranów. Z mojego doświadczenia, takie przerwy pomagają nie tylko ograniczyć korzystanie z internetu, ale też zadbać o swój wzrok i kręgosłup, co jest ważne zwłaszcza dla osób pracujących przy komputerze.

Pytanie 17

Co to jest CSS Grid?

A. Biblioteka komponentów wizualnych dla aplikacji webowych
B. Format plików graficznych obsługiwany przez CSS3
C. Dwuwymiarowy system układu elementów na stronie opary na siatkach
D. Metoda optymalizacji plików CSS dla lepszej wydajności strony
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 18

Jakie z wymienionych narzędzi pozwala na jednoczesne korzystanie z systemów BIN, DEC i HEX?

A. Microsoft Word
B. Kalkulator systemowy
C. Przeglądarka grafów
D. GIMP
Kalkulator systemowy to narzędzie, które umożliwia użytkownikom pracę z różnymi systemami liczbowymi, takimi jak system dziesiętny (DEC), binarny (BIN) oraz szesnastkowy (HEX). Jego funkcjonalność pozwala na konwersję wartości liczbowych pomiędzy tymi systemami, co jest niezwykle przydatne w kontekście programowania, inżynierii komputerowej oraz nauk przyrodniczych. Dzięki kalkulatorowi systemowemu, użytkownicy mogą wprowadzać liczby w jednym systemie, a następnie uzyskiwać ich odpowiedniki w pozostałych systemach, co znacznie ułatwia analizę danych. Na przykład, wpisując liczbę w systemie binarnym, można natychmiast zobaczyć jej reprezentację w systemie dziesiętnym i szesnastkowym, co jest kluczowe w zadaniach związanych z konwersją kodów czy obliczeniami w architekturze komputerowej. Ponadto, kalkulatory systemowe często zawierają funkcje umożliwiające przeprowadzanie bardziej skomplikowanych operacji, takich jak dodawanie czy odejmowanie w różnych systemach liczbowych, co czyni je nieocenionym narzędziem w programowaniu i obliczeniach naukowych. Narzędzia te są zgodne z powszechnie przyjętymi standardami, takimi jak IEEE 754 dla reprezentacji liczb zmiennoprzecinkowych, co zapewnia ich wysoką dokładność i niezawodność w obliczeniach.

Pytanie 19

Co to jest JWT (JSON Web Token)?

A. Biblioteka JavaScript do manipulacji danymi JSON
B. Format zapisu danych w bazach NoSQL
C. Kompaktowy format do bezpiecznego przekazywania informacji między stronami jako obiekt JSON
D. Protokół do przesyłania danych JSON przez sieć
JWT (JSON Web Token) to kompaktowy format, który umożliwia bezpieczne przesyłanie informacji pomiędzy różnymi stronami. Główną zaletą tokenów JWT jest ich struktura, która składa się z trzech części: nagłówka, ładunku (payload) oraz podpisu. Nagłówek zazwyczaj wskazuje typ tokena oraz algorytm użyty do podpisania, co pozwala na szybką weryfikację integralności danych. Ładunek zawiera informacje, często nazywane roszczeniami (claims), które mogą dotyczyć użytkownika lub sesji, a podpis zapewnia, że token nie został zmodyfikowany w trakcie przesyłania. W praktyce JWT jest często wykorzystywany w systemach autoryzacyjnych, gdzie po pomyślnym zalogowaniu, użytkownik otrzymuje token, który następnie może być używany do autoryzacji dostępu do różnych zasobów. Standard JWT definiuje sposób kodowania i dekodowania tokenów, a jego stosowanie pozwala na zwiększenie bezpieczeństwa aplikacji webowych oraz mobilnych poprzez ograniczenie konieczności przechowywania sesji na serwerze, co jest zgodne z najlepszymi praktykami w dziedzinie inżynierii oprogramowania.

Pytanie 20

Jednym z elementów, które mają zostać zaimplementowane w aplikacji, jest możliwość cofnięcia ostatnich działań do 20 operacji wstecz (undo). Struktura danych, która jest odpowiednia do tego celu i pozwala na dostęp tylko do ostatnio dodanego elementu, to:

A. drzewo
B. tablica
C. kolejka
D. stos
Kolejka to struktura danych działająca na zasadzie FIFO (First In, First Out), co oznacza, że pierwszy dodany element jest pierwszym, który zostaje usunięty. Tego rodzaju organizacja danych nie nadaje się do implementacji funkcji cofania, ponieważ nie umożliwia łatwego dostępu do ostatnich operacji. W kontekście aplikacji umożliwiającej cofnięcie działań, kolejka nie zaspokaja potrzeb użytkownika, gdyż nie pozwala na usunięcie najnowszej operacji. Drzewo, jako bardziej złożona struktura, jest używane głównie do organizacji danych w hierarchicznej formie. Chociaż drzewa mogą być skuteczne w wyszukiwaniu i porządkowaniu danych, nie są odpowiednie do realizacji funkcji cofania ostatnich operacji, ponieważ nie oferują prostego dostępu do ostatnio dodanych elementów. Wreszcie, tablica jest statyczną strukturą danych, która przechowuje elementy w sekwencyjnej kolejności. Mimo że można by używać tablicy do przechowywania operacji, ich ograniczenia dotyczące rozmiaru i elastyczności sprawiają, że są mniej efektywne w porównaniu do stosu w kontekście cofania operacji. W związku z tym, ani kolejka, ani drzewo, ani tablica nie są odpowiednimi wyborami dla funkcjonalności cofania w aplikacji, co czyni stos jedynym logicznym rozwiązaniem.

Pytanie 21

Algorytmy, które są wykorzystywane do rozwiązywania problemów przybliżonych lub takich, które nie mogą być opisane za pomocą algorytmu dokładnego, na przykład w prognozowaniu pogody czy identyfikacji nowych wirusów komputerowych, to algorytmy.

A. heurystyczne
B. rekurencyjne
C. iteracyjne
D. liniowe
Algorytmy heurystyczne są metodami rozwiązywania problemów, które są stosowane w sytuacjach, gdy nie ma jednoznacznego algorytmu dokładnego lub gdy problem jest zbyt skomplikowany, aby można go było rozwiązać w rozsądnym czasie. Przykłady zastosowań algorytmów heurystycznych obejmują przewidywanie pogody, gdzie różne modele atmosferyczne mogą być łączone w celu uzyskania lepszej prognozy, oraz rozpoznawanie nowych wirusów komputerowych, gdzie algorytmy heurystyczne pozwalają na identyfikację wzorców i anomalii w zachowaniu oprogramowania. Algorytmy te różnią się od tradycyjnych algorytmów liniowych, które działają na podstawie z góry określonych kroków oraz algorytmów rekurencyjnych, które polegają na rozwiązywaniu problemu poprzez dzielenie go na mniejsze podproblemy. Heurystyki są bardziej elastyczne, ponieważ pozwalają na zastosowanie intuicji i doświadczenia w procesie rozwiązywania. W praktyce algorytmy heurystyczne często łączą różne podejścia, aby uzyskać wyniki, które są wystarczająco dobre w krótkim czasie, co czyni je idealnymi do zastosowania w dynamicznie zmieniających się dziedzinach, takich jak analiza danych i sztuczna inteligencja.

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 > 9 && x < 100) && (x % 4 == 0)
D. (x > 0 && x < 100) || (x / 4 == 0)
Ten warunek jest skonstruowany bardzo poprawnie, zarówno od strony logicznej, jak i praktycznej. Spójrz, jak działa: (x > 9 && x < 100) gwarantuje, że x musi być liczbą całkowitą większą od 9 i jednocześnie mniejszą od 100, a to oznacza, że jest to liczba dwucyfrowa (od 10 do 99). To się zgadza z typową definicją liczby dwucyfrowej w większości języków programowania, gdzie liczby są całkowite i nie mają zer wiodących. Druga część, czyli (x % 4 == 0), sprawdza podzielność przez 4 – operator modulo zwraca resztę z dzielenia, więc jeśli jest zero, to liczba jest faktycznie podzielna przez 4. Razem, połączenie tych dwóch warunków operatorem logicznym „i” (czyli &&) sprawia, że obie rzeczy muszą być spełnione jednocześnie – liczba jest dwucyfrowa i podzielna przez 4. To bardzo praktyczny sposób weryfikacji np. podczas walidacji danych wejściowych, generowania zadania dla użytkownika czy szybkiego filtrowania liczb. Spotyka się podobne zapisy w zadaniach rekrutacyjnych czy testach jednostkowych. Co ciekawe, taka konstrukcja jest bardzo czytelna dla innych programistów, co wpisuje się w dobre praktyki branżowe – kod łatwo się czyta i nie trzeba się długo zastanawiać, co autor miał na myśli. Moim zdaniem warto pamiętać, żeby właśnie takie warunki pisać w sposób przejrzysty i jednoznaczny. No i nie zapomnij – zawsze testuj swój warunek dla wartości brzegowych (np. 9, 10, 99, 100), żeby mieć pewność, że rzeczywiście działa tak, jak chcesz!

Pytanie 23

Co to jest BEM w kontekście CSS?

A. Backend Encryption Method - metoda szyfrowania danych w backendzie
B. Bootstrap Element Manager - narzędzie do zarządzania elementami Bootstrap
C. Browser Extension Module - moduł rozszerzeń przeglądarki
D. Metodologia nazewnictwa klas CSS: Block, Element, Modifier
Wybór innych odpowiedzi wskazuje na nieporozumienie dotyczące koncepcji BEM oraz jego zastosowania w CSS. Browser Extension Module, czyli moduł rozszerzeń przeglądarki, jest całkowicie niepowiązany z tematyką stylizacji stron internetowych. Takie podejście do ładowania lub tworzenia stylów w przeglądarkach nie dotyczy metodologii organizacji kodu CSS, jaką jest BEM. Backend Encryption Method natomiast odnosi się do bezpieczeństwa i szyfrowania danych w systemach serwerowych, co także nie ma związku z front-endowym podejściem do stylizacji. Pojęcie Bootstrap Element Manager mogłoby sugerować narzędzie do zarządzania komponentami w frameworku Bootstrap, jednak nie odnosi się do BEM, który jest niezależny od konkretnego frameworka i koncentruje się na organizacji kodu CSS. Typowym błędem myślowym przy wyborze tych odpowiedzi jest skupienie się na technologiach związanych z przeglądarką lub backendem, zamiast na metodologii stylistycznej, która ma na celu ułatwienie pracy z CSS. Kluczowe jest zrozumienie, że BEM jest narzędziem używanym do poprawy struktury i czytelności kodu CSS, co jest niezbędne w procesie tworzenia nowoczesnych, skalowalnych aplikacji webowych. Zwracanie uwagi na te różnice jest istotne dla każdej osoby zajmującej się front-endem, aby uniknąć zamieszania w terminologii i użyciu odpowiednich narzędzi do właściwych zadań.

Pytanie 24

Jaką funkcję spełniają atrybuty klasy w programowaniu obiektowym?

A. Określają globalne stałe programu
B. Umożliwiają przeprowadzanie operacji na obiektach
C. Zapisują wartości lokalne w funkcjach
D. Zawierają informacje opisujące stan obiektu
Pola klasy w programowaniu obiektowym to zmienne, które przechowują dane opisujące stan obiektu. Każdy obiekt posiada swoje własne kopie pól, co oznacza, że różne instancje tej samej klasy mogą przechowywać różne wartości. Przykład w C++: `class Samochod { public: string marka; int przebieg; }`. Pola `marka` i `przebieg` przechowują informacje o konkretnym samochodzie. Pola są kluczowym elementem modelowania rzeczywistych obiektów i umożliwiają przechowywanie oraz modyfikowanie danych w trakcie działania programu. Mogą mieć różne poziomy dostępu (`public`, `private`), co pozwala na lepszą kontrolę nad danymi.

Pytanie 25

Co zostanie wyświetlone po wykonaniu poniższego kodu?

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    return `${this.name} makes a noise.`;
  }
}

class Dog extends Animal {
  speak() {
    return `${this.name} barks.`;
  }
}

let dog = new Dog('Rex');
console.log(dog.speak());
A. undefined
B. Rex barks.
C. Rex makes a noise.
D. Error: speak is not defined
Odpowiedź "Rex barks." jest prawidłowa, ponieważ kod definiuje klasę Dog, która dziedziczy po klasie Animal. W klasie Animal mamy metodę speak(), która zwraca tekst wskazujący na dźwięk wydawany przez zwierzę. Kiedy tworzymy instancję klasy Dog, przekazujemy jej imię 'Rex'. Następnie, kiedy wywołujemy metodę speak() na obiekcie dog, zostaje użyta metoda zdefiniowana w klasie Dog, a nie ta z klasy Animal. To dlatego zwracany tekst to 'Rex barks.', co jest poprawnym i oczekiwanym wynikiem. Przykładowo, w praktycznych zastosowaniach, jeśli miałbyś różne klasy zwierząt, można by je zdefiniować w podobny sposób, gdzie każde zwierzę mogłoby mieć swoją unikalną implementację metody speak(), co wprowadza elastyczność i możliwości rozszerzalności w kodowaniu.

Pytanie 26

Jaką istotną właściwość ma algorytm rekurencyjny?

A. Jest podzielony na wiele niezwiązanych funkcji
B. Zawiera wywołanie samego siebie
C. Wywołuje się wielokrotnie w jednej iteracji
D. Funkcjonuje tylko w przypadku tablic dynamicznych
Kluczową cechą algorytmu rekurencyjnego jest to, że zawiera on wywołanie samego siebie. Rekurencja pozwala na eleganckie i zwięzłe rozwiązanie problemów, które można podzielić na mniejsze, powtarzające się podproblemy. Każde wywołanie rekurencyjne zmniejsza złożoność problemu, aż do osiągnięcia przypadku bazowego, który kończy dalsze wywołania i rozpoczyna proces zwracania wyników w górę stosu wywołań. Rekurencja znajduje zastosowanie w algorytmach takich jak DFS (przeszukiwanie w głąb), sortowanie szybkie (QuickSort) oraz algorytmy obliczające wartości liczb Fibonacciego i silni.

Pytanie 27

Jaki będzie wynik działania poniższego kodu w języku C#?

int x = 5;
int y = 10;
Console.WriteLine($"Suma {x} i {y} wynosi {x + y}");
A. Suma 5 i 10 wynosi x + y
B. Error: niewłaściwa składnia
C. Suma x i y wynosi 15
D. Suma 5 i 10 wynosi 15
Kod w języku C# wykonuje operację dodawania dwóch zmiennych, x i y, oraz wyświetla wynik w sformatowanym ciągu tekstowym. Poprawna odpowiedź to 'Suma 5 i 10 wynosi 15', ponieważ zmienna x ma wartość 5, a zmienna y ma wartość 10. Kiedy dodajemy te dwie liczby, otrzymujemy 15. Warto zwrócić uwagę na wykorzystanie interpolacji ciągów, co jest istotnym elementem w nowoczesnym C#. Umożliwia to w prosty sposób łączyć tekst z wartościami zmiennych, co zwiększa czytelność kodu. Interpolacja jest szczególnie przydatna w kontekście generowania komunikatów użytkownika i raportów. Przykład zastosowania może obejmować aplikacje, które prezentują wyniki obliczeń lub statystyki, gdzie ważne jest, aby w przyjazny sposób przedstawiać dane. Dobre praktyki programistyczne sugerują, aby unikać twardego kodowania wartości zamiast tego używać zmiennych, co ułatwia późniejsze modyfikacje i utrzymanie kodu.

Pytanie 28

Które z poniższych NIE jest typem wartości zwracanej przez funkcję w języku JavaScript?

A. Method
B. Number
C. Undefined
D. Object
Wybór odpowiedzi związanej z 'Method' jako typem wartości zwracanej przez funkcję w JavaScript może wynikać z nieporozumienia dotyczącego różnicy pomiędzy funkcją a metodą. Warto wiedzieć, że w JavaScript funkcje są obiektami pierwszej klasy, co oznacza, że mogą być przypisywane do zmiennych, przekazywane jako argumenty oraz zwracane z innych funkcji. Wśród typów wartości, które mogą być zwracane przez funkcje, znajdują się obiekty, liczby, stringi oraz typ undefined, co jest wynikiem zachowań typowych dla tego języka. Kiedy funkcja nie zwraca żadnej wartości, domyślnie zwraca undefined.

Typowe błędy myślowe pojawiają się, gdy programiści mylą koncepcje funkcji i metod lub mylą pojęcia typów danych. Często mogą założyć, że metoda jest równoważna typowi zwracanemu, co nie jest zgodne z definicjami w programowaniu obiektowym. Obiekt w JavaScript może mieć wiele metod, które są funkcjami, ale to nie czyni metody typem zwracanym. Przykładem tego może być zdefiniowanie obiektu z wieloma funkcjami, które działają na jego danych. To jasno pokazuje, że metody są połączeniem funkcji z obiektami, a nie typami wartości. Ważne jest, aby podczas nauki języka JavaScript skupić się na zrozumieniu struktury języka oraz jego zasad, co pomoże unikać zamieszania związanych z terminologią oraz zastosowaniem tych koncepcji w praktyce.

Pytanie 29

Jakie znaczenie ma przystosowanie interfejsu użytkownika do różnych platform?

A. Umożliwia skoncentrowanie się wyłącznie na funkcjonalności aplikacji
B. Gwarantuje optymalne korzystanie z aplikacji na każdym urządzeniu
C. Pozwala na unifikację kodu niezależnie od używanej platformy
D. Usuwa konieczność testowania na różnych platformach
Dostosowanie interfejsu do różnych urządzeń to naprawdę ważna sprawa, żeby wszystko działało jak należy. Aplikacje, które dobrze się przystosowują do różnych ekranów czy systemów, dają lepsze doświadczenie użytkownikom. Użycie takich technik jak responsywny design czy elastyczne układy, jak flexbox czy grid, to super pomysł. Dzięki temu elementy interfejsu same się skalują, a aplikacja wygląda spójnie na telefonach, tabletach i komputerach. Nie ma nic gorszego niż chaotyczny interfejs na różnych urządzeniach, więc to naprawdę kluczowa kwestia.

Pytanie 30

Który z poniższych elementów jest częścią architektury PWA (Progressive Web App)?

A. DOM Renderer
B. Virtual Machine
C. Service Worker
D. Media Encoder
Wybór innych odpowiedzi może wynikać z nieporozumienia dotyczącego terminologii i funkcji różnych komponentów w architekturze aplikacji webowych. DOM Renderer, który jest odpowiedzialny za renderowanie struktury dokumentu HTML w przeglądarkach, nie ma bezpośredniego związku z architekturą PWA. Jego zadaniem jest prezentacja treści, ale nie wpływa na funkcjonalności offline czy zarządzanie zasobami. W kontekście PWA, kluczowe są aspekty zapewniające dostępność i wydajność aplikacji, a DOM Renderer nie odnosi się do tych wymagań. Virtual Machine, często kojarzona z technologiami takimi jak Java czy JavaScript (np. V8 w Google Chrome), jest odpowiedzialna za wykonywanie kodu, ale nie pełni roli w architekturze PWA, ponieważ nie zarządza ani nie optymalizuje interakcji sieciowych. Ostatni element, Media Encoder, to narzędzie do kodowania multimediów, które również nie ma zastosowania w kontekście PWA. Typowe błędy polegają na myleniu komponentów odpowiedzialnych za renderowanie i wykonywanie kodu z tymi, które mają na celu poprawę doświadczenia użytkownika w aplikacjach webowych. Zrozumienie roli Service Workera jest kluczowe dla efektywnego projektowania aplikacji, które zapewniają użytkownikom lepsze doświadczenie, szczególnie w warunkach ograniczonej dostępności sieci.

Pytanie 31

Które z wymienionych stwierdzeń najtrafniej charakteryzuje WPF?

A. Biblioteka do obróbki danych w Pythonie
B. Framework przeznaczony do budowy aplikacji stacjonarnych w systemie Windows
C. Framework przeznaczony do budowy aplikacji internetowych
D. Framework umożliwiający zarządzanie urządzeniami IoT
No dobra, WPF to framework, którego używamy, żeby robić aplikacje na Windowsa. Jest częścią platformy .NET i super się nadaje do tworzenia ładnych interfejsów z użyciem XAML, co jest takim językiem, który pozwala na zaprojektowanie interfejsu. Dzięki WPF możemy korzystać z fajnych animacji i ogólnie mieć niezłe wizualizacje. W dodatku, wspiera model MVVM, co ułatwia rozdzielenie logiki aplikacji od tego, co widzi użytkownik. Także w wielu firmach, gdzie potrzebna jest zaawansowana grafika, WPF jest chętnie wykorzystywane.

Pytanie 32

Co oznacza pojęcie MVP w kontekście projektowania aplikacji?

A. Minimum Viable Product - produkt o minimalnej funkcjonalności zdolny do działania
B. Mobile Virtual Platform - platforma do testowania aplikacji mobilnych
C. Most Valuable Program - program uznany za najbardziej wartościowy w organizacji
D. Multiple Value Platform - platforma wspierająca wiele typów wartości danych
Pojęcie Minimum Viable Product (MVP) odnosi się do koncepcji projektowania produktów, która zakłada stworzenie wersji produktu z minimalną funkcjonalnością, zdolnej do spełnienia podstawowych potrzeb użytkowników. Celem MVP jest jak najszybsze wprowadzenie produktu na rynek, co pozwala na zbieranie danych od rzeczywistych użytkowników i dostosowywanie produktu na podstawie ich feedbacku. Tego rodzaju podejście jest zgodne z metodologią Lean Startup, która promuje szybkie cykle iteracyjne i minimalizację ryzyka inwestycyjnego. Przykładem MVP może być aplikacja mobilna, która oferuje tylko najważniejsze funkcje, na przykład możliwość rejestracji i przeglądania treści, zamiast pełnej gamy opcji. Dzięki temu zespół developerski może szybko identyfikować kluczowe potrzeby użytkowników i wprowadzać odpowiednie udoskonalenia. W praktyce MVP pozwala nie tylko na szybsze wprowadzenie produktu na rynek, ale również na optymalizację kosztów i czasów rozwoju, co jest szczególnie istotne w dynamicznie zmieniającym się środowisku technologicznym.

Pytanie 33

Jakie elementy powinny być uwzględnione w dokumentacji testowej aplikacji?

A. Harmonogram wdrożenia aplikacji
B. Zalecenia dotyczące optymalizacji kodu
C. Opis procedur testowych oraz rezultaty wykonanych testów
D. Specyfikacje techniczne serwera
Opis procedur testowych i wyników przeprowadzonych testów to kluczowy element dokumentacji testów aplikacji. Tego rodzaju dokumentacja obejmuje szczegółowe instrukcje dotyczące metod testowania, użytych narzędzi oraz kroków niezbędnych do przeprowadzenia testów jednostkowych, integracyjnych i systemowych. W dokumentacji znajdują się również raporty z wynikami testów, które wskazują, czy aplikacja działa zgodnie z wymaganiami oraz jakie błędy zostały wykryte. Testy pozwalają na wczesne wychwycenie problemów i eliminację błędów przed wdrożeniem aplikacji na produkcję, co znacząco zwiększa jakość oprogramowania. Dokumentacja testowa jest także nieocenionym źródłem informacji dla zespołów QA (Quality Assurance), umożliwiając śledzenie historii testów i zapewnienie, że wszystkie elementy aplikacji zostały przetestowane zgodnie z procedurami.

Pytanie 34

Wynikiem wykonania poniższego fragmentu kodu jest wyświetlenie liczb z zakresu od 2 do 20, które są

for (let number = 2; number <= 20; number++) {
    let check = true;
    for (let test = 2; test < number; test++) {
        if (number % test === 0) {
            check = false;
            break;
        }
    }
    if (check) console.log(number);
}
A. podzielne przez wartość zmiennej check.
B. podzielne przez wartość zmiennej test.
C. parzyste.
D. pierwsze.
Kod wypisuje liczby pierwsze, czyli takie, które mają dokładnie dwa dzielniki: 1 i samą siebie. Liczby pierwsze są podstawą w wielu dziedzinach matematyki i informatyki, szczególnie w kryptografii i algorytmach. Wyszukiwanie liczb pierwszych w danym przedziale to popularne zadanie, które pozwala na lepsze zrozumienie iteracji, pętli i warunków logicznych w programowaniu. Algorytm ten jest również wykorzystywany w optymalizacji algorytmów szyfrowania i generowania kluczy.

Pytanie 35

Jaki będzie wynik działania poniższego kodu w języku Java?

String a = "hello";
String b = "hello";
String c = new String("hello");
System.out.println(a == b);
System.out.println(a == c);
System.out.println(a.equals(c));
A. true, true, true
B. true, false, true
C. true, false, false
D. false, false, true
Wynik działania kodu to true, false, true. Pierwsza linia kodu, gdzie porównujemy zmienne 'a' i 'b' przy użyciu operatora '==', zwraca true, ponieważ obie zmienne wskazują na ten sam obiekt w pamięci, co jest efektem optymalizacji JVM dla literałów typu String. W przypadku drugiej linii, gdzie porównujemy 'a' i 'c', wynik to false, ponieważ 'c' to nowy obiekt utworzony przy pomocy operatora 'new', a więc ma inną referencję w pamięci. W trzeciej linii używamy metody 'equals()', która porównuje wartości obiektów, a nie ich referencje. W tym przypadku porównywane są wartości stringów i ponieważ wszystkie mają tę samą treść, wynik to true. Zrozumienie różnicy między operatorem '==' a metodą 'equals()' jest kluczowe w programowaniu w Javie. Przy pracy z obiektami, zawsze warto stosować 'equals()' do porównywania zawartości, aby uniknąć nieporozumień związanych z referencjami."

Pytanie 36

Który z wymienionych algorytmów sortujących posiada średnią złożoność obliczeniową równą O(n log n)?

A. Sortowanie przez wstawianie
B. Sortowanie bąbelkowe
C. Sortowanie przez wybór
D. Sortowanie szybkie (QuickSort)
Sortowanie przez wstawianie jest dość powolne, z tą złożonością O(n²). W zasadzie fajnie sprawdza się tylko w małych zbiorach lub gdy tablica już jest mniej więcej posortowana. A jeśli chodzi o sortowanie bąbelkowe, to chyba nie ma co się łudzić, jest jednym z najgorszych algorytmów, też O(n²). I sortowanie przez wybór? Tutaj też nie ma rewelacji, bo porównuje się i wybiera najmniejszy element w każdej iteracji, co znacznie spowalnia działanie, zwłaszcza przy dużych tablicach. Tak że generalnie, lepiej unikać tych algorytmów, jeśli to możliwe.

Pytanie 37

W jakiej okoliczności należy umieścić poszkodowanego w pozycji bezpiecznej?

A. Gdy poszkodowany cierpi na krwotok zewnętrzny
B. Gdy poszkodowany jest świadomy, lecz ma uraz kończyny
C. Gdy poszkodowany nie oddycha
D. Gdy poszkodowany jest nieprzytomny, ale oddycha
Pozycja bezpieczna (czyli pozycja boczna ustalona) to jedno z kluczowych narzędzi w udzielaniu pierwszej pomocy. Stosuje się ją wtedy, gdy poszkodowany jest nieprzytomny, ale oddycha samodzielnie i nie ma podejrzenia urazu kręgosłupa. Chodzi przede wszystkim o zabezpieczenie dróg oddechowych przed ewentualnym zadławieniem np. przez ślinę, krew czy wymiociny. Niby proste, ale w praktyce często ludzie mają wątpliwości, czy powinni ruszać nieprzytomną osobę. Ja sam widziałem jak ktoś bał się tego zrobić, bo nie był pewny, czy to bezpieczne. Moim zdaniem lepiej tu działać niż zwlekać – oczywiście, jeśli nie podejrzewasz złamania kręgosłupa. Ważne jest, by pozycję bezpieczną stosować dopiero po sprawdzeniu oddechu – to naprawdę podstawa i tak uczą na wszystkich szkoleniach BLS według standardów Europejskiej Rady Resuscytacji. Przykład z życia: ktoś zasłabł na przystanku, jest nieprzytomny, ale oddycha. Przekręcasz go na bok, głowa odchylona, żeby język nie zablokował gardła – i masz spokój, dużo zmniejszone ryzyko uduszenia. Warto też pamiętać, że trzeba regularnie monitorować stan poszkodowanego, bo sytuacja może się pogorszyć, wtedy przechodzisz do resuscytacji. Pozycja bezpieczna to taki złoty środek kiedy nie musisz jeszcze reanimować, ale musisz chronić życie przez zabezpieczenie oddechu.

Pytanie 38

Która z wymienionych bibliotek pozwala na obsługę zdarzeń związanych z myszą w aplikacjach desktopowych?

A. Qt
B. TensorFlow
C. Django
D. Numpy
Numpy to biblioteka do obliczeń numerycznych w języku Python i nie posiada narzędzi do obsługi zdarzeń graficznych w aplikacjach desktopowych. Django to framework do budowy aplikacji webowych w Pythonie, koncentrujący się na backendzie, a nie na tworzeniu GUI czy interakcji z myszą. TensorFlow to biblioteka do uczenia maszynowego i przetwarzania danych, nieprzystosowana do tworzenia aplikacji desktopowych obsługujących zdarzenia myszki i klawiatury.

Pytanie 39

Jakie rozwiązanie jest najbardziej odpowiednie przy projektowaniu aplikacji, która ma funkcjonować na różnych systemach operacyjnych?

A. Opracowanie dedykowanego kodu dla każdej platformy
B. Pełne dopasowanie aplikacji do systemu Windows
C. Koncentrowanie się wyłącznie na estetyce aplikacji
D. Wykorzystanie technik responsywnego projektowania interfejsu
Wykorzystanie technik responsywnego projektowania interfejsu to obecnie jedno z najskuteczniejszych rozwiązań, jeśli chodzi o tworzenie aplikacji działających na różnych systemach operacyjnych. Moim zdaniem, to podejście daje największą elastyczność i wygodę zarówno dla użytkownika, jak i dla samego zespołu developerskiego. Responsywność nie sprowadza się tylko do zmiany rozmiaru okna, ale także do automatycznego dostosowania elementów interfejsu do różnych rozdzielczości, DPI czy nawet gestów obsługiwanych przez konkretne urządzenia. Dzięki temu aplikacja może wyglądać i działać spójnie niezależnie od tego, czy uruchamiana jest na Windowsie, MacOS, Linuksie czy nawet na mobilnych systemach operacyjnych. W praktyce często korzysta się z frameworków takich jak Flutter, React Native albo Electron, które już "z pudełka" oferują narzędzia do tworzenia responsywnych, wieloplatformowych aplikacji. Branżowe standardy, szczególnie te, które dotyczą UX/UI (na przykład wytyczne Material Design czy Human Interface Guidelines od Apple), mocno podkreślają wagę responsywności i uniwersalności rozwiązań. Co ciekawe, dobrze zaprojektowana responsywna aplikacja jest też łatwiejsza w utrzymaniu i rozwoju, bo zamiast kilku osobnych wersji kodu, mamy jedną, dobrze przemyślaną bazę. To oszczędza czas, zasoby i minimalizuje ryzyko powstawania błędów. Sam przećwiczyłem wiele takich przypadków i widać, że inżynieria oprogramowania idzie właśnie w stronę uniwersalnych, "adaptacyjnych" rozwiązań.

Pytanie 40

Które z poniższych nie jest frameworkiem do testowania w JavaScript?

A. Mocha
B. Express
C. Jasmine
D. Jest
Wybór frameworków do testowania w JavaScript, takich jak Mocha, Jest czy Jasmine, może wprowadzać w błąd, jeśli nie rozumie się ich celów i funkcji. Mocha jest elastycznym frameworkiem do testowania, który działa w środowisku Node.js oraz w przeglądarkach, umożliwiając pisanie asynchronicznych testów oraz definiowanie zestawów testowych. Jest z kolei nowoczesnym narzędziem do testowania, które oferuje bogaty zestaw funkcji, w tym wsparcie dla asercji i mockowania, co czyni go bardzo popularnym wśród programistów. Jasmine to framework, który skupia się na zachowaniu aplikacji, pozwalając na pisanie testów w stylu BDD (Behavior-Driven Development). Wybór tych narzędzi do testowania jest zatem uzasadniony i kluczowy dla zapewnienia jakości oprogramowania, jednak odpowiedź wybierająca Express jako framework testowy jest nieprawidłowa, ponieważ Express ma zupełnie inny cel – obsługę serwera i routing w aplikacjach webowych. Często mylone są cele poszczególnych narzędzi, co prowadzi do niepoprawnych wniosków. Zrozumienie, że Express nie jest przeznaczony do testowania, a raczej do budowania aplikacji, jest kluczowe dla efektywnego programowania i testowania. Aspekty te uwypuklają znaczenie znajomości narzędzi oraz ich przeznaczenia w kontekście rozwoju oprogramowania.