Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 15 maja 2025 14:26
  • Data zakończenia: 15 maja 2025 14:34

Egzamin zdany!

Wynik: 22/40 punktów (55,0%)

Wymagane minimum: 20 punktów (50%)

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

Błędy w interpretacji kodu stworzonego za pomocą React.js lub Angular można wykryć dzięki

A. narzędziom zainstalowanym po stronie serwera aplikacji
B. kompilatorowi języka JavaScript
C. wbudowanemu debuggerowi w danym środowisku
D. konsoli przeglądarki internetowej
Wbudowany debugger w IDE jest całkiem pomocny, zwłaszcza w debugowaniu, ale czasami może nie zauważać błędów, które wybuchają później, jak działasz w przeglądarce. Narzędzia serwerowe są bardziej nastawione na błędy backendu, a więc nie pomogą, gdy zamierzasz analizować, co się dzieje w frontendzie. No i tak, JavaScript jest interpretowany, nie kompilowany, więc nie ma tradycyjnego kompilatora.

Pytanie 2

Który z wymienionych mechanizmów umożliwia ograniczenie dostępu do wybranych sekcji aplikacji webowej?

A. Pliki CSS statyczne
B. Mechanizm renderowania treści
C. System logowania i kontroli dostępu
D. Formularze dynamiczne
System logowania i kontroli dostępu to kluczowy mechanizm, który pozwala na ograniczenie dostępu do niektórych części aplikacji webowej. Logowanie umożliwia uwierzytelnienie użytkowników i przypisanie im odpowiednich ról, co definiuje poziom dostępu do zasobów. Dzięki mechanizmom autoryzacji możliwe jest kontrolowanie, które funkcje lub sekcje aplikacji są dostępne dla poszczególnych użytkowników. Kontrola dostępu może być realizowana za pomocą tokenów JWT (JSON Web Token), sesji lub kluczy API, co zapewnia dodatkowe warstwy zabezpieczeń. Wdrożenie takich systemów jest nieodzowne w aplikacjach webowych oferujących różne poziomy funkcjonalności, takich jak panele administracyjne, portale użytkowników czy aplikacje bankowe. Odpowiednie zarządzanie uprawnieniami jest fundamentem bezpieczeństwa aplikacji.

Pytanie 3

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

A. and
B. is
C. ==
D. in
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 4

Co to jest kontener Docker?

A. Narzędzie do automatycznego testowania interfejsów użytkownika
B. Graficzny interfejs do zarządzania kodem aplikacji webowych
C. Lekka, samodzielna jednostka oprogramowania, która zawiera wszystko, co aplikacja potrzebuje do uruchomienia
D. System zarządzania bazami danych NoSQL
Kontener Docker to lekka, samodzielna jednostka oprogramowania, która zawiera wszystko, co aplikacja potrzebuje do uruchomienia: kod, biblioteki, zmienne środowiskowe oraz inne zależności. Dzięki wykorzystaniu technologii wirtualizacji na poziomie systemu operacyjnego, kontenery są bardziej efektywne i oszczędne w użyciu zasobów w porównaniu do tradycyjnych maszyn wirtualnych. Przykładem zastosowania kontenerów Docker jest rozwój aplikacji webowych, gdzie różne mikroserwisy mogą być uruchamiane w osobnych kontenerach, co pozwala na łatwe skalowanie oraz zarządzanie nimi. W praktyce, kontenery umożliwiają programistom szybkie uruchamianie środowisk testowych i produkcyjnych, a także ułatwiają ciągłą integrację i ciągłe wdrażanie (CI/CD), co jest zgodne z najlepszymi praktykami DevOps. W kontekście zarządzania infrastrukturą, kontenery zapewniają spójność środowiska, eliminując problemy związane z "działa na moim komputerze".

Pytanie 5

Jaki typ pamięci RAM powinno się wybrać do efektywnego komputera do gier?

A. DDR5
B. DDR3
C. DDR4
D. LPDDR4
Wybór odpowiedniego rodzaju pamięci RAM jest kluczowy dla osiągnięcia maksymalnej wydajności w komputerze gamingowym. DDR5, najnowszy standard pamięci dynamicznej RAM, oferuje znaczące ulepszenia w porównaniu do swoich poprzedników. Główne różnice dotyczą prędkości, efektywności energetycznej oraz pojemności. DDR5 może oferować prędkości sięgające 8400 MT/s, co przyczynia się do szybszego transferu danych, co ma bezpośredni wpływ na wydajność gier i aplikacji wymagających wysokiej przepustowości. Ponadto, DDR5 wprowadza architekturę, która pozwala na zwiększenie ilości pamięci w jednym module, co umożliwia konfiguracje do 128 GB na pojedynczy moduł, co jest niezwykle korzystne dla graczy korzystających z bardziej wymagających tytułów. Przykłady gier, które potrafią w pełni wykorzystać możliwości DDR5 to Cyberpunk 2077 czy Call of Duty: Warzone, gdzie wydajność pamięci jest kluczowym elementem w uzyskiwaniu płynności rozgrywki. Stosowanie DDR5 nie tylko poprawia wydajność, ale również zwiększa przyszłościowość sprzętu, co sprawia, że jest to najlepszy wybór na dzisiejszym rynku komputerów gamingowych.

Pytanie 6

Jaką cechę powinien posiadać dobry negocjator?

A. spokój
B. myślenie tylko o sobie
C. przechwalanie się
D. brak pewności
Cechą dobrego negocjatora jest opanowanie, które odgrywa kluczową rolę w procesie negocjacji. Osoba potrafiąca zachować spokój w trudnych sytuacjach może lepiej ocenić sytuację, zrozumieć potrzeby drugiej strony oraz zidentyfikować potencjalne punkty konfliktu. Opanowanie pozwala na skuteczne zarządzanie emocjami, co jest niezbędne w celu osiągnięcia korzystnych rezultatów. Przykładem może być sytuacja, w której negocjator musi zmierzyć się z agresywnym przeciwnikiem; zachowanie zimnej krwi pozwala na analizę sytuacji bez emocjonalnych impulsów. Ponadto, opanowanie wpływa na postrzeganie osoby negocjującej przez innych, budując zaufanie i respekt. W kontekście standardów negocjacyjnych, takich jak BATNA (Best Alternative to a Negotiated Agreement), opanowanie umożliwia lepsze podejmowanie decyzji w trudnych sytuacjach. Dlatego umiejętność zachowania spokoju jest fundamentem skutecznych negocjacji.

Pytanie 7

Która z metodologii w zarządzaniu projektami umożliwia łatwe dostosowywanie się do zmieniających się potrzeb klienta?

A. Model Waterfall
B. Kanban
C. Scrum
D. Model spiralny
Waterfall to model sekwencyjny, który nie zakłada elastyczności – raz określone wymagania muszą być zrealizowane zgodnie z pierwotnym planem, co utrudnia adaptację do zmian. Kanban umożliwia optymalizację przepływu pracy, ale nie kładzie tak dużego nacisku na iteracyjne dostarczanie funkcjonalności jak Scrum. Model spiralny łączy prototypowanie i iteracje, ale jego struktura nie jest tak elastyczna jak w przypadku Scruma, gdzie zmiany mogą być wprowadzane niemal na każdym etapie sprintu.

Pytanie 8

Który element HTML5 służy do wyświetlania zawartości video?

A. <media>
B. <film>
C. <video>
D. <play>
Element HTML5

Pytanie 9

Zapisany fragment w Pythonie ilustruje:

Ilustracja do pytania
A. stos
B. strukturę danych
C. tablicę asocjacyjną (słownik)
D. kolejkę (LIFO)
Przedstawiony kod w Pythonie opisuje słownik (tablicę asocjacyjną), czyli strukturę danych przechowującą pary klucz-wartość. Słowniki są niezwykle elastyczne i efektywne, pozwalają na szybki dostęp do wartości na podstawie unikalnego klucza. Są szeroko wykorzystywane w analizie danych, przechowywaniu konfiguracji i implementacji różnorodnych algorytmów.

Pytanie 10

Dziedziczenie jest używane, gdy zachodzi potrzeba

A. wykorzystania stałych wartości, niezmieniających się w trakcie działania aplikacji
B. określenia zasięgu dostępności metod i pól danej klasy
C. asynchronicznej realizacji długotrwałych zadań
D. sformułowania klasy bardziej szczegółowej niż już stworzona
Asynchroniczna obsługa operacji nie jest związana z dziedziczeniem, raczej chodzi tu o programowanie współbieżne. A jeśli chodzi o stałe, to definiuje się je jako stałe (const), a dziedziczenie to zupełnie inna bajka. Pamiętaj, że widoczność metod i pól kontrolują modyfikatory dostępu, takie jak private, protected i public, więc to też jest ważne.

Pytanie 11

Jakie polecenie w Gicie jest używane do zapisywania zmian w lokalnym repozytorium?

A. git push
B. git clone
C. git commit
D. git pull
Polecenie 'git commit' zapisuje zmiany w lokalnym repozytorium Git. Jest to kluczowy krok w procesie kontroli wersji, ponieważ każdy commit tworzy nową migawkę (snapshot) projektu, która może być w przyszłości przywrócona lub porównana z innymi wersjami. Polecenie to jest często używane razem z opcją -m, która umożliwia dodanie wiadomości opisującej zmiany. Dzięki temu możliwe jest efektywne śledzenie historii zmian w projekcie i przywracanie wcześniejszych wersji w razie potrzeby. Git commit to podstawowe narzędzie w pracy zespołowej nad kodem, szczególnie w środowisku deweloperskim, gdzie wersjonowanie jest niezbędne do zapewnienia stabilności kodu i łatwej współpracy.

Pytanie 12

Jakie jest główne zadanie debuggera w środowisku programowania?

A. Kompilowanie kodu źródłowego
B. Generowanie plików wykonywalnych
C. Tworzenie kodu źródłowego
D. Analiza i usuwanie błędów w kodzie
Pisanie kodu źródłowego jest podstawową funkcją edytora kodu, a nie debuggera. Tworzenie plików wykonywalnych odbywa się za pomocą kompilatora, a nie debuggera. Kompilowanie kodu to proces tłumaczenia kodu źródłowego na język maszynowy i również nie jest funkcją debuggera, choć debugger może współpracować z kompilatorem w trakcie analizy błędów. Pominięcie debuggera w procesie tworzenia aplikacji mogłoby prowadzić do błędów w finalnym produkcie, dlatego jego rola jest kluczowa na etapie testowania i optymalizacji kodu.

Pytanie 13

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

Ilustracja do pytania
A. podzielne przez wartość zmiennej test.
B. parzyste.
C. pierwsze.
D. podzielne przez wartość zmiennej check.
Podzielność przez zmienną test lub check oznacza, że liczby są wielokrotnościami określonej wartości, ale niekoniecznie są liczbami pierwszymi. Liczby parzyste to liczby dzielące się przez 2, co oznacza, że tylko 2 jest liczbą pierwszą w tym zbiorze. Algorytmy wykrywające liczby parzyste lub wielokrotności nie są używane do znajdowania liczb pierwszych, ponieważ ich zakres i zastosowanie są zupełnie inne.

Pytanie 14

Co to jest choroba związana z wykonywaniem zawodu?

A. Stan zdrowia, który uniemożliwia pracę przez okres krótszy niż tydzień
B. Każda choroba, która występuje w czasie pracy
C. Choroba występująca tylko w sektorze przemysłowym
D. Choroba wynikająca z warunków pracy lub związanych z nimi czynników
Choroba, która pojawia się w trakcie zatrudnienia, ale nie jest związana z warunkami pracy, nie jest klasyfikowana jako choroba zawodowa. Może to być zwykłe przeziębienie lub inna przypadłość niezwiązana z charakterem wykonywanej pracy. Stan zdrowia, który uniemożliwia pracę przez krótki czas (np. tydzień), może być traktowany jako tymczasowa niezdolność do pracy, ale nie spełnia definicji choroby zawodowej. Choroby zawodowe występują nie tylko w sektorze przemysłowym – mogą pojawiać się również w pracy biurowej (np. problemy z kręgosłupem lub wzrokiem).

Pytanie 15

Jakie zdarzenie jest wywoływane, gdy kliknięta zostaje myszą nieaktywna kontrolka lub okno?

A. focus
B. blur
C. validating
D. keyup
Zdarzenie 'focus' jest generowane, gdy nieaktywne okno lub kontrolka zostanie kliknięta i przejdzie do stanu aktywnego. Oznacza to, że element uzyskuje fokus, co pozwala na interakcję z użytkownikiem, np. wpisywanie danych do pola tekstowego. Jest to powszechne w formularzach i aplikacjach, gdzie ważne jest śledzenie aktywnego komponentu.

Pytanie 16

Jakie z następujących skutków może wystąpić w przypadku naruszenia prawa autorskiego?

A. Nałożenie grzywny lub kary więzienia
B. Zakaz korzystania z oprogramowania open-source
C. Unieważnienie umowy licencyjnej użytkownika końcowego
D. Obowiązek zamieszczenia publicznych przeprosin
Naruszenie prawa autorskiego może skutkować nałożeniem grzywny lub karą więzienia. W zależności od skali naruszenia oraz obowiązujących przepisów, osoba odpowiedzialna za naruszenie może zostać pociągnięta do odpowiedzialności karnej lub cywilnej. Kary mogą obejmować nie tylko grzywny finansowe, ale także konieczność wypłaty odszkodowań na rzecz twórcy lub właściciela praw autorskich. W niektórych przypadkach naruszenie praw autorskich na dużą skalę może prowadzić do kary pozbawienia wolności, co podkreśla wagę przestrzegania przepisów o ochronie własności intelektualnej.

Pytanie 17

Który operator w JavaScript sprawdza zarówno równość wartości jak i typu danych?

A. !=
B. ==
C. ===
D. =
Operator === w JavaScript jest powszechnie określany jako operator ścisłej równości. Jego główną zaletą jest to, że porównuje zarówno wartość, jak i typ danych dwóch operandów. Oznacza to, że jeśli porównujesz dwie zmienne, a jedna z nich jest liczbą, a druga łańcuchem znaków, operator ten zwróci false, ponieważ typy są różne. Dla przykładu, porównując 5 === '5', wynik będzie false, podczas gdy w przypadku operatora == wynik byłby true, co może prowadzić do niezamierzonych błędów w logice programu. Użycie operatora === jest zgodne z najlepszymi praktykami programistycznymi, ponieważ unika potencjalnych problemów związanych z automatycznym rzutowaniem typów. W praktyce, zawsze warto stosować operator ścisłej równości, aby zapewnić większą przewidywalność kodu oraz uniknąć trudnych do zdiagnozowania błędów. Dlatego operator === jest preferowany w nowoczesnym programowaniu w JavaScript.

Pytanie 18

Jakie elementy zostaną wyświetlone w przeglądarce po wykonaniu kodu źródłowego stworzonego za pomocą dwóch funkcjonalnie równoważnych fragmentów?

Ilustracja do pytania
A. trzy paragrafy, w każdym z nich tekst o treści: {tag}
B. jeden paragraf zawierający wszystkie elementy tablicy tags w kolejności
C. Trzy paragrafy, każdy odpowiadający kolejnemu elementowi tablicy tags
D. jeden paragraf z pierwszym elementem tablicy tags
Generowanie jednego paragrafu zawierającego wszystkie elementy tablicy nie pozwala na elastyczne formatowanie i stylizację każdego elementu osobno. Taka implementacja jest rzadziej stosowana, ponieważ ogranicza kontrolę nad poszczególnymi elementami interfejsu. Wyświetlanie tylko pierwszego elementu tablicy jest błędem logicznym i pomija pozostałe dane, co prowadzi do niepełnego wyświetlenia informacji. Wygenerowanie trzech paragrafów z identyczną treścią '{tag}' sugeruje błędne odwołanie do zmiennej, co oznacza, że iteracja została przeprowadzona nieprawidłowo lub że niepoprawnie użyto zmiennej w szablonie.

Pytanie 19

Który z poniższych wzorców projektowych jest używany do tworzenia pojedynczej instancji klasy w całej aplikacji?

A. Observer
B. Factory
C. Singleton
D. Decorator
Wzorce projektowe takie jak Observer, Factory, czy Decorator pełnią różne funkcje, które nie są związane z zapewnieniem pojedynczej instancji klasy w aplikacji. Observer jest wzorcem stosowanym do implementacji relacji jeden-do-wielu, gdzie obiekty obserwujące są informowane o zmianach stanu obiektu, który obserwują. Jest to przydatne w sytuacjach, gdzie wiele komponentów musi reagować na zmiany w jednym obiekcie, ale nie ma związku z zarządzaniem instancjami. Factory, z kolei, jest wzorcem, który służy do tworzenia obiektów bez konieczności specyfikowania dokładnej klasy obiektu, co ułatwia zarządzanie różnorodnymi instancjami w aplikacji. Zastosowanie Factory zwiększa elastyczność i modularność kodu, jednak nie rozwiązuje problemu pojedynczej instancji. Dekorator to wzorzec strukturalny, który pozwala na dynamiczne dodawanie nowych funkcji do istniejących obiektów, co jest użyteczne w kontekście rozszerzalności, ale również nie dotyczy tworzenia pojedynczej instancji. Zrozumienie tych wzorców oraz ich zastosowań jest kluczowe dla właściwego projektowania systemów i unikania typowych pułapek, które mogą prowadzić do niewłaściwych decyzji projektowych. Błędne rozumienie ich zastosowania może prowadzić do nieefektywnego kodowania oraz problemów z zarządzaniem zasobami w większych projektach.

Pytanie 20

Jakie zagrożenie związane z użytkowaniem cyberprzestrzeni ma wpływ na zdrowie fizyczne?

A. Depresja spowodowana cyberprzemocą
B. Uzależnienie od gier komputerowych
C. Rozpowszechnianie nieprawdziwych informacji
D. Problemy z kręgosłupem wynikające z długotrwałego siedzenia
Wiesz, problemy z kręgosłupem przez zbyt długie siedzenie to naprawdę coś, na co trzeba zwrócić uwagę. To może prowadzić do bólu pleców, a nawet do wad postawy. Dobrze, że o tym mówimy! Fajnie jest robić przerwy na rozciąganie czy parę ćwiczeń. I pamiętaj, że ergonomiczne biurko i krzesło, które dobrze podpiera plecy, to klucz do zdrowia przy pracy z komputerem.

Pytanie 21

Zaprezentowany kod zawiera pola danej klasy. Które pole (pola) mogą być osiągnięte z poziomu głównego programu poprzez odwołanie się w formie nazwaObiektu.nazwaPola?

Ilustracja do pytania
A. p1
B. wyłącznie p3, p4, p5
C. p3 i p4
D. jedynie p3
To pole p3 jest publiczne, co oznacza, że możesz je użyć w programie głównym, wywołując nazwaObiektu.p3. Fajne jest to, że pola prywatne i chronione są niewidoczne poza klasą, więc musisz użyć odpowiednich metod, takich jak gettery i settery, żeby się do nich dostać.

Pytanie 22

Zamieszczony fragment kodu w Android Studio wdraża metodę nasłuchującą dla obsługi zdarzenia:

Ilustracja do pytania
A. naciśnięcia przycisku
B. wybierania daty
C. zmiany w polu tekstowym
D. zmiany stanu kontrolki Switch
Kod implementuje nasłuchiwanie zdarzenia naciśnięcia przycisku (ang. Button Click). W środowisku Android Studio jest to jedna z podstawowych metod obsługi interakcji użytkownika. Kiedy użytkownik naciśnie przycisk, wywoływana jest określona metoda, co umożliwia np. uruchomienie nowej aktywności, walidację danych lub wywołanie zapytania do bazy danych. Obsługa zdarzeń tego typu jest kluczowa w budowie responsywnych aplikacji mobilnych, zapewniając użytkownikowi płynne i intuicyjne działanie.

Pytanie 23

Który protokół jest wykorzystywany do transferu plików między klientem a serwerem?

A. HTTP
B. FTP
C. SMTP
D. POP3
Protokół FTP (File Transfer Protocol) jest standardowym protokołem sieciowym, który został zaprojektowany do przesyłania plików między klientem a serwerem. Dzięki FTP użytkownicy mogą łatwo wysyłać i pobierać pliki w sieci, co czyni go nieocenionym narzędziem w administracji serwerami oraz w środowiskach deweloperskich. Protokół ten działa na zasadzie architektury klient-serwer, gdzie klient łączy się z serwerem FTP, autoryzuje się i następnie może przesyłać pliki. W praktyce FTP często wykorzystywane jest do przesyłania dużych plików, tworzenia kopii zapasowych, a także do publikowania stron internetowych na serwerach hostingowych. Istnieje wiele implementacji FTP, w tym wersje bezpieczne, takie jak FTPS i SFTP, które zapewniają dodatkowe warstwy bezpieczeństwa, szyfrując dane podczas transferu. W kontekście standardów branżowych, FTP jest powszechnie akceptowany i stosowany w różnych systemach operacyjnych oraz aplikacjach, co czyni go standardem w zakresie transferu plików w Internecie.

Pytanie 24

Co będzie wynikiem działania poniższego kodu SQL?

SELECT COUNT(*) FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);

A. Liczba pracowników z najwyższą pensją
B. Średnia pensja wszystkich pracowników
C. Błąd składni SQL
D. Liczba pracowników z pensją powyżej średniej
Inne odpowiedzi sugerują mylne interpretacje funkcji i logiki zapytania SQL. Odpowiedź wskazująca na średnią pensję wszystkich pracowników nie uwzględnia faktu, że zapytanie nie zwraca wartości średniej, lecz liczbę pracowników, którzy zarabiają powyżej tej wartości. Odpowiedź odnosząca się do liczby pracowników z najwyższą pensją również jest niepoprawna, ponieważ w zapytaniu nie ma żadnych odniesień do konkretnego wynagrodzenia, a jedynie do wartości średniej. Ponadto, stwierdzenie, że zapytanie generuje błąd składni SQL, jest błędne, ponieważ składnia jest poprawna i zgodna z standardami SQL. Kluczową kwestią jest zrozumienie, że zapytania SQL mogą wykorzystywać zagnieżdżone zapytania do dynamicznego obliczania wartości w kontekście zbioru danych. Często popełnianym błędem jest mylenie funkcji agregujących z prostymi operacjami na kolumnach. Warto więc zaznajomić się z różnymi typami zapytań oraz ich zastosowaniem w praktyce, aby zwiększyć efektywność analizy danych. Zrozumienie logiki działania zagnieżdżonych zapytań oraz funkcji agregujących jest kluczowe dla skutecznej pracy z bazami danych.

Pytanie 25

Aplikacje funkcjonujące w systemach Android do komunikacji z użytkownikiem wykorzystują klasę

A. Screens
B. Fragments
C. Windows
D. Activity
W systemach Android do interakcji z użytkownikiem wykorzystywana jest klasa Activity, która reprezentuje pojedynczy ekran aplikacji. Activity zarządza cyklem życia aplikacji i pozwala na obsługę zdarzeń użytkownika, co jest kluczowym elementem w budowie aplikacji mobilnych.

Pytanie 26

Co oznacza termin 'hoisting' w JavaScript?

A. Technika zarządzania pamięcią polegająca na usuwaniu nieużywanych obiektów
B. Metoda ładowania skryptów z zewnętrznych źródeł
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 27

Cytat przedstawia charakterystykę metodyki RAD. Pełne znaczenie tego skrótu można przetłumaczyć na język polski jako:

Ilustracja do pytania
A. środowisko refaktoryzacji aplikacji
B. prototypowanie wsparte testami jednostkowymi
C. środowisko szybkiego rozwoju aplikacji
D. zintegrowane środowisko programistyczne
Refaktoryzacja aplikacji to proces poprawy struktury kodu bez zmiany jego funkcjonalności. Zintegrowane środowiska programistyczne (IDE) to narzędzia do tworzenia kodu, ale nie są tożsamy z metodologią RAD. Prototypowanie wsparte testami jednostkowymi to podejście pokrewne, ale nie oddaje istoty RAD, który stawia na szybkie iteracje.

Pytanie 28

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

A. PHP
B. Perl
C. C++
D. Java
C++ to język kompilowany, co oznacza, że kod źródłowy jest najpierw przekształcany do kodu maszynowego przed jego uruchomieniem. Dzięki temu aplikacje napisane w C++ działają szybciej i są bardziej efektywne, ale wymagają kompilacji na każdą platformę oddzielnie.

Pytanie 29

Jakie znaczenie ma framework w kontekście programowania?

A. System operacyjny, który umożliwia uruchamianie aplikacji
B. Moduł do zarządzania systemami baz danych
C. Program do graficznego projektowania interfejsów użytkownika
D. Zbiór gotowych bibliotek, narzędzi i zasad ułatwiających tworzenie aplikacji
System operacyjny nie jest frameworkiem, ponieważ jego głównym zadaniem jest zarządzanie zasobami sprzętowymi i umożliwianie uruchamiania aplikacji. Edytor graficzny do projektowania interfejsów użytkownika to narzędzie wspomagające tworzenie GUI, ale nie jest frameworkiem, ponieważ nie dostarcza komponentów aplikacyjnych ani reguł dotyczących architektury aplikacji. Moduł do zarządzania bazami danych to narzędzie wykorzystywane do przechowywania i zarządzania danymi, ale nie dostarcza gotowych rozwiązań w zakresie budowy całej aplikacji – w przeciwieństwie do frameworków, które integrują wiele narzędzi i bibliotek w spójną całość.

Pytanie 30

Który element HTML5 służy do osadzania wideo na stronie?

A. <video>
B. <movie>
C. <media>
D. <player>
Element HTML5 <video> jest standardowym tagiem służącym do osadzania wideo na stronach internetowych. Umożliwia on integrację multimediów w sposób, który jest zgodny z aktualnymi standardami sieciowymi. W porównaniu do starszych metod, które wymagały użycia zewnętrznych wtyczek, takich jak Flash, <video> pozwala na bezproblemowe odtwarzanie wideo w przeglądarkach nowej generacji, co zwiększa bezpieczeństwo i wydajność. Element ten oferuje wiele atrybutów, takich jak controls, autoplay, loop, preload, oraz width i height, które pozwalają na dostosowanie odtwarzacza do potrzeb użytkownika. Na przykład, używając atrybutu controls, można dodać przyciski odtwarzania, zatrzymywania lub regulacji głośności, co poprawia interaktywność i użyteczność. Dodatkowo, aby zapewnić dostępność treści wideo, warto stosować atrybuty takie jak <track>, który umożliwia dodawanie napisów, co jest szczególnie ważne dla osób z niepełnosprawnościami słuchowymi. Używanie <video> w projektach webowych to najlepsza praktyka, która wspiera rozwój dostępnych i przyjaznych dla użytkownika doświadczeń wizualnych.

Pytanie 31

Jaką technologię stosuje się do powiązania aplikacji internetowej z systemem baz danych?

A. JavaScript
B. HTTP
C. SQL
D. CSS
SQL, czyli język do zarządzania danymi, to mega ważna rzecz, jeśli chodzi o relacyjne bazy danych. Dzięki niemu można tworzyć, modyfikować, a nawet usuwać tabele. To taki most, który łączy aplikacje webowe z bazą danych. Dzięki SQL programiści mogą łatwo przechowywać i przetwarzać różne informacje na serwerze. Przykłady? Można generować listy produktów, ogarniać użytkowników czy analizować dane z transakcji. Właściwie bez SQL-a nie dałoby się zbudować solidnych aplikacji, na przykład tych, które działają na MySQL, PostgreSQL czy Microsoft SQL Server. Chociaż pewnie o tym wiesz, ale warto to zaznaczyć.

Pytanie 32

Jakie znaczenie ma określenie "klasa zaprzyjaźniona" w kontekście programowania obiektowego?

A. Klasa, która nie ma możliwości zawierania metod statycznych
B. Klasa, która może być dziedziczona przez inne klasy
C. Klasa, w której wszystkie komponenty są publiczne
D. Klasa, która ma dostęp do prywatnych i chronionych elementów innej klasy
Klasa, która może być dziedziczona przez inne klasy, to zwykła klasa bazowa, nie klasa zaprzyjaźniona. Klasa z publicznymi składowymi nie jest automatycznie klasą zaprzyjaźnioną, a jedynie posiada publiczne pola dostępne z zewnątrz. Stwierdzenie, że klasa nie może zawierać metod statycznych, jest błędne – klasa zaprzyjaźniona może zawierać dowolne typy metod, w tym statyczne, jeśli jej projektowanie tego wymaga.

Pytanie 33

Co to jest Service Worker w kontekście Progressive Web Apps?

A. Protokół komunikacji między przeglądarką a serwerem
B. Skrypt działający w tle przeglądarki, niezależnie od strony webowej
C. Usługa hostingowa dla aplikacji webowych
D. Narzędzie do testowania wydajności aplikacji
Pojęcia związane z usługami hostingowymi, narzędziami do testowania wydajności oraz protokołami komunikacyjnymi są istotne w kontekście aplikacji webowych, ale nie mają bezpośredniego związku z tym, czym jest Service Worker. Usługa hostingowa dla aplikacji webowych zajmuje się udostępnianiem treści w Internecie, co jest zupełnie innym zagadnieniem. Aplikacje webowe mogą być hostowane na serwerach, ale to nie ma wpływu na sposób, w jaki działają one w przeglądarkach. Narzędzia do testowania wydajności są pomocne, ale nie są częścią samego procesu tworzenia aplikacji z użyciem Service Workera. Protokół komunikacji między przeglądarką a serwerem dotyczy wymiany danych, ale nie odnosi się do koncepcji działania skryptu w tle. Typowe błędy myślowe prowadzące do takich niepoprawnych wniosków to mylenie różnych aspektów technologii webowych i niezdolność do zrozumienia, jak elementy te współpracują w ekosystemie aplikacji. Aby lepiej zrozumieć Service Worker, warto przyjrzeć się jego roli w kontekście działania offline i poprawy doświadczeń użytkownika, co jest kluczowe dla nowoczesnych aplikacji webowych.

Pytanie 34

Na jakim etapie cyklu życia projektu tworzony jest szczegółowy opis wymagań funkcjonalnych oraz niefunkcjonalnych?

A. Wdrożenie
B. Planowanie
C. Analiza
D. Weryfikacja
Faza analizy to etap cyklu życia projektu, podczas którego powstaje szczegółowy opis wymagań funkcjonalnych i niefunkcjonalnych. W tym czasie zespół zbiera dane, analizuje potrzeby użytkowników i definiuje wymagania, które będą stanowić podstawę do projektowania i implementacji. Wynikiem analizy jest dokumentacja, która precyzyjnie opisuje wszystkie aspekty aplikacji, co zapewnia zgodność końcowego produktu z oczekiwaniami klienta. Prawidłowo przeprowadzona analiza jest kluczowa dla sukcesu projektu, ponieważ eliminuje niejasności i minimalizuje ryzyko błędów na późniejszych etapach.

Pytanie 35

W zamieszczonym fragmencie kodu Java wskaż nazwę zmiennej, która może przechować wartość 'T'

int zm1;
float zm2;
char zm3;
boolean zm4;

A. zm2
B. zm4
C. zm1
D. zm3
Zmienne 'zm1' i 'zm2' mogą przechowywać liczby lub inne typy danych, które nie są zgodne z pojedynczym znakiem. 'zm4' może być zdefiniowana jako typ logiczny (boolean) lub inny, który nie obsługuje znaków, co czyni ją nieodpowiednią do przechowywania wartości 'T'.

Pytanie 36

Co to jest IndexedDB?

A. System zarządzania bazami SQL w aplikacjach backendowych
B. Indeks danych używany przez wyszukiwarki internetowe
C. Niskopoziomowe API do przechowywania dużych ilości danych w przeglądarce użytkownika
D. Format indeksowania danych w bazach NoSQL
Odpowiedzi, które wskazują na inne znaczenia IndexedDB, wynikają z nieporozumień dotyczących funkcji i zastosowania tej technologii. IndexedDB nie jest indeksem danych używanym przez wyszukiwarki internetowe, ponieważ jego głównym celem jest przechowywanie danych lokalnie na urządzeniu użytkownika, a nie indeksowanie ich w sieci. Takie myślenie prowadzi do błędnych wniosków na temat jego funkcjonalności, ponieważ indeksy w wyszukiwarkach takie jak Google służą do szybkiego odnajdywania informacji w ogromnych zbiorach danych dostępnych w Internecie, a nie do lokalnego przechowywania czy manipulacji informacjami. Ponadto, nie jest to system zarządzania bazami SQL w aplikacjach backendowych. IndexedDB działa w przeglądarkach i jest zaprojektowane do pracy w środowisku klienta, podczas gdy bazy SQL, takie jak MySQL czy PostgreSQL, są zazwyczaj używane na serwerach i wymagają odrębnego podejścia do zarządzania danymi. Również twierdzenie, że IndexedDB jest formatem indeksowania danych w bazach NoSQL, jest mylące. IndexedDB to nie format, lecz interfejs API, który wspiera przechowywanie danych w strukturze obiektowej, co czyni go bardziej elastycznym w kontekście przechowywania danych niż tradycyjne bazy NoSQL. W rezultacie, błędne koncepcje wynikają z niepełnego zrozumienia, jak działa IndexedDB oraz jakie są jego główne zastosowania i ograniczenia.

Pytanie 37

Zaprezentowany fragment kodu w języku C# tworzy hasło. Wskaż zdanie PRAWDZIWE dotyczące charakterystyki tego hasła:

Ilustracja do pytania
A. Jest maksymalnie 7-znakowe, co wynika z wartości zmiennej i
B. Ma co najmniej 8 znaków oraz zawiera małe i wielkie litery oraz cyfry
C. Może zawierać małe i wielkie litery oraz cyfry
D. Może zawierać zarówno małe, jak i wielkie litery, cyfry oraz symbole
Niektóre odpowiedzi błędnie sugerują, że hasło może zawierać mniej niż 8 znaków lub ogranicza się do liter i cyfr, co zmniejsza poziom bezpieczeństwa. Symbole dodatkowe i różna długość haseł wpływają na jego siłę, ale w tym przypadku skupiamy się na podstawowych zasadach budowy haseł.

Pytanie 38

Które z poniższych nie jest narzędziem do zarządzania stanem w aplikacjach React?

A. MobX
B. Context API
C. Redux
D. Webpack
Wybierając odpowiedzi związane z zarządzaniem stanem, warto zaznaczyć, że Redux, MobX oraz Context API to popularne narzędzia wykorzystywane do efektywnego zarządzania stanem w aplikacjach zbudowanych w React. Redux jest biblioteką, która wprowadza wzorzec architektoniczny Flux, umożliwiając centralizację stanu aplikacji. Pozwala to na łatwiejsze śledzenie zmian stanu oraz ich przewidywalność. MobX, z drugiej strony, oferuje bardziej reaktywny i obiektowy model zarządzania stanem, gdzie zmiany stanu są automatycznie śledzone, co upraszcza kod i redukuje złożoność. Context API to natywne rozwiązanie w React, które umożliwia dzielenie się stanem między komponentami bez potrzeby przekazywania propsów przez wszystkie poziomy drzewa komponentów. Często nowi programiści mylą Webpack z narzędziami do zarządzania stanem, co wynika z jego kluczowej roli w ekosystemie React. W rzeczywistości, narzędzia do budowania, takie jak Webpack, koncentrują się głównie na kompilacji i optymalizacji zasobów, a nie na logice i zarządzaniu stanem aplikacji. Zrozumienie różnic między tymi narzędziami jest kluczowe dla prawidłowego projektowania aplikacji i efektywnego wykorzystania dostępnych technologii.

Pytanie 39

W programowaniu obiektowym odpowiednikami zmiennych oraz funkcji w programowaniu strukturalnym są

A. pola i kwalifikatory dostępu
B. hermetyzacja oraz dziedziczenie
C. metody statyczne i abstrakcyjne
D. pola i metody
Odpowiednikami zmiennych i funkcji w programowaniu obiektowym są pola i metody. Pola przechowują dane (stan obiektu), a metody implementują logikę, pozwalając na manipulowanie tymi danymi i realizację zachowań klasy.

Pytanie 40

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. kubełkowego
B. przez scalanie
C. bąbelkowego
D. przez zliczanie
Sortowanie przez zliczanie jest jedną z najszybszych metod sortowania w przypadku określonych typów danych wejściowych. W szczególności działa ono efektywnie, gdy znamy ograniczenia co do zakresu wartości w zbiorze danych, ponieważ jego złożoność obliczeniowa wynosi O(n+k), gdzie n to liczba elementów do posortowania, a k to zakres wartości. Dzięki temu, w przeciwieństwie do metod sortowania porównawczego, takich jak sortowanie przez scalanie czy bąbelkowe, sortowanie przez zliczanie może osiągnąć liniową złożoność czasową, jeśli k jest stosunkowo małe w porównaniu do n. Algorytm ten działa poprzez zliczanie wystąpień każdego elementu, co pozwala na szybkie umieszczenie go w odpowiedniej pozycji w posortowanej tablicy. Przykładowe zastosowania sortowania przez zliczanie to sortowanie wyników egzaminów czy organizacja danych liczbowych w określonym przedziale, co jest często spotykane w analizach statystycznych. Standardy branżowe często korzystają z tej metody, gdy operujemy na dużych zbiorach danych o ograniczonym zakresie, co jest zgodne z najlepszymi praktykami efektywnego przetwarzania danych.