Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 9 czerwca 2025 21:46
  • Data zakończenia: 9 czerwca 2025 22:01

Egzamin zdany!

Wynik: 31/40 punktów (77,5%)

Wymagane minimum: 20 punktów (50%)

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

Jakie wartości jest w stanie przechować zmienna o typie logicznym?

A. Jedną z dwóch opcji: true lub false
B. Wartość w reprezentacji binarnej
C. Tylko ciąg znaków
D. Dowolną liczbę rzeczywistą
Zmienna typu logicznego (boolean) może przechowywać jedną z dwóch wartości: 'true' lub 'false'. Są to podstawowe wartości wykorzystywane w operacjach warunkowych i pętlach, które decydują o przepływie sterowania w programach. Wartości logiczne są kluczowe w konstrukcjach takich jak 'if-else', pętlach 'while' oraz w porównaniach. W wielu językach programowania 'true' jest równoznaczne z 1, a 'false' z 0, co pozwala na łatwą integrację z typami całkowitymi. Typ boolean jest niezbędny w programowaniu, umożliwiając implementację decyzji, walidacji danych i automatyzacji procesów.

Pytanie 2

Co oznacza walidacja kodu programu?

A. Czynnością weryfikującą poprawność i zgodność kodu z założeniami
B. Czynnością dotyczącą publikacji aplikacji w sklepie
C. Czynnością polegającą na kompilowaniu kodu
D. Czynnością związaną z tworzeniem dokumentacji kodu
Walidacja kodu programu to proces sprawdzania jego poprawności i zgodności z założeniami projektowymi oraz standardami programistycznymi. Celem walidacji jest wykrycie błędów logicznych, składniowych i zgodności kodu z wymaganiami aplikacji. Walidacja może obejmować analizę statyczną kodu (bez jego wykonywania) oraz testy jednostkowe i integracyjne, które sprawdzają funkcjonalność aplikacji. Dzięki walidacji programiści mogą uniknąć błędów na późniejszych etapach rozwoju projektu, co znacząco zwiększa niezawodność i stabilność aplikacji. Proces ten jest nieodzowny w metodykach Agile i Continuous Integration, gdzie regularne testowanie kodu stanowi podstawę dostarczania wysokiej jakości oprogramowania.

Pytanie 3

Na schemacie widoczny jest fragment diagramu blokowego pewnego algorytmu. Ile razy zostanie zweryfikowany warunek n<7?

Ilustracja do pytania
A. 7
B. 6
C. 8
D. 5
Wartość 8 pokazuje, że chyba źle zrozumiałeś, jak działa liczba iteracji. Pojawiły się dodatkowe porównania, które nie powinny się zdarzyć w pętli. A wynik 5 może być przez to, że pętla zakończyła się za szybko, albo myślałeś, że zmienna zaczyna się z innej wartości. Z kolei 7 to już za dużo iteracji, co nie pasuje do standardowego działania pętli warunkowej.

Pytanie 4

Która metoda wyszukiwania potrzebuje posortowanej listy do prawidłowego działania?

A. Wyszukiwanie sekwencyjne
B. Wyszukiwanie liniowe
C. Wyszukiwanie z hashem
D. Wyszukiwanie binarne
Wyszukiwanie binarne wymaga posortowanej tablicy do działania, co pozwala na dzielenie tablicy na pół przy każdym kroku, redukując liczbę operacji do O(log n). Algorytm ten działa poprzez porównanie poszukiwanego elementu ze środkowym elementem tablicy – jeśli element jest mniejszy, wyszukiwanie kontynuuje w lewej części tablicy, a jeśli większy, w prawej. Dzięki tej efektywności, wyszukiwanie binarne jest szeroko stosowane w bazach danych, systemach plików oraz aplikacjach, które operują na dużych zbiorach danych. Wyszukiwanie binarne jest prostym, ale potężnym algorytmem, który znacząco skraca czas przeszukiwania dużych zbiorów.

Pytanie 5

Jaki typ testów ocenia funkcjonalność aplikacji z punktu widzenia użytkownika końcowego?

A. Testy użyteczności
B. Testy obciążeniowe
C. Testy funkcjonalne
D. Testy zgodności
Testy użyteczności to kluczowy element w procesie tworzenia aplikacji, który koncentruje się na analizie i ocenie interakcji użytkownika z produktem. Celem testów użyteczności jest sprawdzenie, jak łatwa i intuicyjna w obsłudze jest aplikacja, czy użytkownik jest w stanie efektywnie osiągnąć swoje cele oraz jakie są potencjalne bariery w korzystaniu z aplikacji. Testy te dostarczają cennych informacji na temat UX (User Experience) i pozwalają na wczesne wykrycie problemów związanych z designem oraz funkcjonalnością.

Pytanie 6

Które z wymienionych praw autorskich nie wygasa po pewnym czasie?

A. Licencje wolnego oprogramowania
B. Autorskie prawa osobiste
C. Autorskie prawa majątkowe
D. Prawa pokrewne
Autorskie prawa majątkowe wygasają zazwyczaj po 70 latach od śmierci autora, co oznacza, że po tym czasie utwory przechodzą do domeny publicznej. Prawa pokrewne, które dotyczą m.in. artystów wykonawców i producentów fonogramów, mają ograniczony czas trwania (zwykle 50 lat od publikacji). Licencje wolnego oprogramowania, takie jak GNU GPL, również podlegają określonym warunkom czasowym i mogą wygasnąć lub zostać zmienione, jeśli autor zdecyduje się na aktualizację licencji.

Pytanie 7

W przedstawionej ramce znajduje się fragment opisu metody compile języka Java wykorzystywanej w kontekście wyrażeń regularnych. Który symbol powinien być użyty, aby znaleźć dopasowanie na końcu tekstu?

Ilustracja do pytania
A. .
B. |
C. ^
D. $
Znak dolara $ w wyrażeniach regularnych w języku Java jest używany do oznaczenia końca ciągu znaków. Jeśli chcemy sprawdzić, czy konkretny wzorzec występuje na końcu danego tekstu, używamy właśnie tego metaznaku. Przykładowo, wyrażenie regularne World$ dopasuje tekst, w którym słowo World pojawia się na samym końcu. Jest to przydatne w wielu scenariuszach, takich jak walidacja struktury tekstu czy filtrowanie logów, gdzie ważna jest pozycja występowania wzorca. Konwencja ta jest zgodna z ogólnymi standardami regex, co czyni ją intuicyjną i uniwersalną w zastosowaniu. Dolar pełni kluczową rolę w automatyzacji procesów w przetwarzaniu tekstu, umożliwiając efektywne dopasowywanie końcowych wzorców w aplikacjach Java. Użycie $ jest zgodne z dobrymi praktykami kodowania, szczególnie w kontekście walidacji danych wejściowych, gdzie określenie końca ciągu jest często wymagane. Jest to także popularne w analizie danych, gdzie dane muszą spełniać określone kryteria co do ich zakończenia, takie jak rozszerzenia plików czy określone etykiety tekstowe.

Pytanie 8

Co to jest shadow DOM?

A. Metoda renderowania grafiki 3D w przeglądarkach
B. Technika stylizacji elementów w CSS przy użyciu cieni
C. Wirtualny DOM używany przez biblioteki jak React i Vue.js
D. Mechanizm enkapsulacji kodu HTML, CSS i JavaScript w komponenty webowe
Shadow DOM to technika pozwalająca na enkapsulację kodu HTML, CSS oraz JavaScript w komponentach webowych, co jest kluczowe w kontekście tworzenia aplikacji opartych na Web Components. Dzięki zastosowaniu Shadow DOM, elementy wewnętrzne komponentu są izolowane od reszty dokumentu, co eliminuje problemy z kolizjami nazw klas CSS oraz pozwala na tworzenie bardziej modularnych i wielokrotnego użytku elementów. Przykładem zastosowania Shadow DOM mogą być komponenty interfejsu użytkownika, takie jak przyciski czy karty, które zawierają własne style i logikę, nie wpływając na globalne style strony. To podejście jest wspierane przez standardy W3C i zalecane w projektach, gdzie skala i złożoność aplikacji wymaga wysokiej wydajności i organizacji kodu. Dobrze zaprojektowane komponenty z użyciem Shadow DOM mogą znacznie uprościć rozwój i utrzymanie aplikacji webowych, czyniąc je bardziej responsywnymi i dostosowanymi do różnych środowisk.

Pytanie 9

W wyniku realizacji zaprezentowanego kodu na ekranie pojawią się

Ilustracja do pytania
A. elementy z indeksów tablicy, które są podzielne przez 3
B. wszystkie elementy tablicy, które są wielokrotnością 3
C. elementy tablicy o indeksach: 1, 2, 4, 5, 7, 8
D. wszystkie elementy tablicy, które mają wartość nieparzystą
Kod pokazuje elementy tablicy, które mają konkretne indeksy, takie jak 1, 2, 4, 5, 7 i 8. To efekt przechodzenia przez tablicę i wybierania tylko tych elementów, które spełniają określone warunki. Filtrowanie tablic w ten sposób jest dość powszechne w programowaniu, więc to całkiem popularna technika.

Pytanie 10

Jak w CSS definiuje się element, który ma reagować na najechanie kursorem?

A. :click
B. :over
C. :mouse
D. :hover
Odpowiedź :hover jest poprawna, ponieważ w CSS pseudo-klasa :hover jest używana do definiowania stylów elementu, gdy kursor myszy znajduje się nad tym elementem. Jest to niezwykle przydatne w tworzeniu interaktywnych stron internetowych, ponieważ umożliwia twórcom zwiększenie responsywności elementów, takich jak przyciski, linki czy obrazy. Przykładowo, można zastosować :hover do zmiany koloru tła przycisku, co wskazuje użytkownikom, że dany element jest aktywny i gotowy do interakcji. Zastosowanie tej pseudo-klasy nie tylko poprawia estetykę strony, ale również zwiększa jej użyteczność oraz dostępność, co jest zgodne z dobrymi praktykami w projektowaniu UI/UX. Należy pamiętać, że :hover działa tylko w przeglądarkach obsługujących CSS, a efekty związane z tą pseudo-klasą są natychmiastowe, co sprawia, że są one bardzo efektywne w zastosowaniu. Warto również zaznaczyć, że w przypadku urządzeń dotykowych, takich jak smartfony, reakcja na najechanie może być symulowana poprzez dotknięcie ekranu, co sprawia, że ta technika jest uniwersalna.

Pytanie 11

Kiedy w programie występuje problem z działaniem, a programista musi zweryfikować wartości znajdujące się w zmiennych w momencie działania aplikacji, to w tym celu należy zastosować

A. debugger
B. wirtualną maszynę
C. analizator składni
D. interpreter
Debugger to narzędzie, które pozwala na śledzenie wartości zmiennych i wykonywanie kodu linia po linii w czasie rzeczywistym. Jest nieoceniony w procesie wykrywania błędów logicznych i analizy działania aplikacji. Programista może ustawiać punkty przerwań (breakpoints), by zatrzymać wykonywanie programu w określonym miejscu i przeanalizować stan aplikacji.

Pytanie 12

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

A. Media Encoder
B. Service Worker
C. Virtual Machine
D. DOM Renderer
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 13

Co zostanie wypisane w konsoli po wykonaniu poniższego kodu JavaScript?

let a = { value: 10 }; let b = a; b.value = 20; console.log(a.value);

A. ReferenceError
B. 20
C. 10
D. undefined
Analizując błędne odpowiedzi, warto zwrócić uwagę na podstawowe zasady działania JavaScript w kontekście obiektów. Jeśli odpowiedzią byłoby 10, to sugerowałoby, że obiekt `a` nie został zmodyfikowany przez przypisanie do `b`, co jest nieprawdziwe. Obiekty w JavaScript są przekazywane przez referencję, co oznacza, że zmiana dokonana na jednym obiekcie wpływa na wszystkie referencje do niego. Odpowiedź `undefined` wskazywałaby na to, że obiekt `a` nie ma właściwości `value`, co również jest błędne, ponieważ obiekt `a` został zdefiniowany z tą właściwością i początkowo ma wartość 10. Z kolei `ReferenceError` występuje, gdy odwołujemy się do zmiennej, która nie istnieje w danym kontekście, co nie ma miejsca w naszym kodzie, ponieważ zarówno `a`, jak i `b` są zdefiniowane poprawnie. Błędy te często wynikają z niepełnego zrozumienia, jak JavaScript zarządza pamięcią i referencjami. Zrozumienie tych zasad jest kluczowe, aby unikać pułapek związanych z mutowalnością obiektów i przekazywaniem referencji, co może prowadzić do trudnych do diagnozowania błędów w większych projektach.

Pytanie 14

Użycie typu DECIMAL w SQL wymaga wcześniejszego określenia liczby cyfr przed przecinkiem oraz ilości cyfr za przecinkiem. Jest to zapis:

A. zmiennoprzecinkowy
B. logicznym
C. łańcuchowym
D. stałoprzecinkowy
Typy stałoprzecinkowe są mniej elastyczne, a typy logiczne (BOOLEAN) przechowują tylko wartości prawda/fałsz. Łańcuchy znaków (STRING) służą do przechowywania tekstu i nie nadają się do operacji matematycznych na liczbach dziesiętnych.

Pytanie 15

Co to jest destructuring assignment w JavaScript?

A. Składnia pozwalająca na rozpakowanie wartości z tablic lub obiektów do oddzielnych zmiennych
B. Proces konwersji typów danych w JavaScript
C. Metoda usuwania nieużywanych zmiennych z kodu
D. Technika optymalizacji kodu przez kompilator
Destructuring assignment w JavaScript to technika, która pozwala na wygodne i intuicyjne rozpakowywanie wartości z tablic oraz obiektów, co znacząco ułatwia pracę z danymi. Używając tej składni, możemy przypisywać wartości do zmiennych w bardziej przejrzysty sposób. Na przykład, jeśli mamy obiekt z danymi użytkownika, zamiast pisać wiele linii kodu, aby uzyskać dostęp do poszczególnych właściwości, możemy użyć destructuring. Przykład: const user = { name: 'Jan', age: 30 }; const { name, age } = user; Teraz mamy bezpośredni dostęp do zmiennych name i age, co poprawia czytelność kodu. Destructuring jest również przydatny w kontekście funkcji, gdzie możemy rozpakowywać argumenty w sposób bardziej zrozumiały. Jest to zgodne z najlepszymi praktykami programowania w JavaScript, co sprawia, że kod jest bardziej zwięzły oraz łatwiejszy do utrzymania. Dodatkowo, technika ta wspiera rozwój złożonych aplikacji, gdzie zarządzanie danymi i ich struktura odgrywają kluczową rolę.

Pytanie 16

Który z wymienionych parametrów określa prędkość procesora?

A. Wielkość pamięci podręcznej
B. Częstotliwość taktowania
C. Liczba rdzeni
D. Rodzaj złącza
Częstotliwość taktowania procesora, wyrażana najczęściej w gigahercach (GHz), jest kluczowym parametrem opisującym szybkość działania jednostki centralnej. Określa, ile cykli zegara procesor jest w stanie wykonać w ciągu jednej sekundy. Wyższa częstotliwość oznacza większą ilość operacji, które procesor może przetworzyć w danym czasie, co bezpośrednio wpływa na jego wydajność. Przykładowo, procesor o częstotliwości 3,0 GHz może wykonać 3 miliardy cykli na sekundę, co sprawia, że jest w stanie przeprowadzać bardziej skomplikowane obliczenia i efektywniej zarządzać zadaniami. W praktyce jednak sama częstotliwość nie jest jedynym wskaźnikiem wydajności; istotne są też inne czynniki, takie jak architektura procesora, liczba rdzeni czy szybkość pamięci RAM. Standardy, takie jak Intel Core i9 czy AMD Ryzen 5000, dostarczają informacji na temat maksymalnej częstotliwości taktowania, co pozwala konsumentom lepiej dobierać sprzęt do swoich potrzeb. Warto również zauważyć, że wielu nowoczesnych procesorów stosuje technologię Turbo Boost, która pozwala na chwilowe zwiększenie częstotliwości w celu uzyskania lepszej wydajności przy intensywnych obciążeniach.

Pytanie 17

Jaką strukturę danych można zrealizować, korzystając jedynie z wymienionych metod?

Ilustracja do pytania
A. stos
B. tablica
C. drzewo binarne
D. kolejka FIFO
Stos (stack) to struktura danych działająca na zasadzie LIFO (Last In, First Out), co oznacza, że ostatnio dodany element jest usuwany jako pierwszy. Do jego implementacji wystarczą podstawowe metody: dodawania (push) i usuwania (pop) elementów, co czyni go jedną z najprostszych struktur danych.

Pytanie 18

Programista aplikacji mobilnych pragnie zmienić swoją ścieżkę kariery na Full-Stack Developera. Wskaż kurs, który powinien wybrać, żeby to osiągnąć?

A. Raster and Vector Graphics with Adobe
B. Mastering Cross-platform Developping
C. Complete JavaScript React, SQL, Node.js Cource
D. Ultimate C# Serier from Beginner to Advanced
Kurs 'Complete JavaScript React, SQL, Node.js Course' obejmuje naukę pełnego stosu technologii webowych, umożliwiając przejście z roli developera mobilnego na stanowisko Full-Stack Developer. Kurs ten pokrywa zarówno frontend (React), jak i backend (Node.js, SQL), co jest kluczowe dla pracy full-stack.

Pytanie 19

Jednym z kroków publikacji aplikacji mobilnej w Google Play są testy Beta, które charakteryzują się tym, że są:

A. podzielone na testy dotyczące funkcjonalności, wydajności i skalowalności
B. realizowane przez zespół zatrudnionych testerów z Google
C. przeprowadzane przez grupę docelowych użytkowników aplikacji
D. prowadzone w oparciu o dokument zawierający przypadki testowe
Testy Beta w Google Play są wykonywane przez rzeczywistych użytkowników, którzy zgłaszają błędy i proponują zmiany. Jest to kluczowy etap testowania, który pozwala na ocenę aplikacji w warunkach zbliżonych do rzeczywistego użytkowania przed oficjalną premierą. Testy te pomagają wykrywać błędy, które mogły zostać pominięte podczas testów wewnętrznych.

Pytanie 20

Który z wymienionych poniżej typów danych stanowi przykład typu stałoprzecinkowego?

A. double
B. decimal
C. int
D. float
Typ 'float' przechowuje liczby zmiennoprzecinkowe, co oznacza, że może reprezentować wartości z częściami dziesiętnymi, ale nie jest to typ stałoprzecinkowy. Typ 'double' to również typ zmiennoprzecinkowy, charakteryzujący się większą precyzją niż 'float'. Typ 'decimal' służy do przechowywania liczb zmiennoprzecinkowych z dużą dokładnością, głównie w aplikacjach finansowych, gdzie precyzja jest kluczowa, ale nie zalicza się do typów stałoprzecinkowych.

Pytanie 21

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 zliczanie
B. bąbelkowego
C. przez scalanie
D. kubełkowego
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.

Pytanie 22

Co oznacza akronim IDE w kontekście programowania?

A. Integrated Development Environment
B. Interaktywny Edytor Debugowania
C. Zintegrowane Środowisko Debugowania
D. Interaktywny Silnik Programistyczny
IDE, czyli Zintegrowane Środowisko Programistyczne, to naprawdę przydatne narzędzie. Zajmuje się nie tylko edytowaniem kodu, ale łączy w sobie kompilator, debugger i wiele innych rzeczy, które pomagają w tworzeniu oprogramowania. Dzięki IDE można szybciej pisać programy i lepiej ogarniać projekty. A najpopularniejsze z nich, jak Visual Studio, IntelliJ IDEA czy Eclipse, wspierają różne języki programowania, więc są bardzo uniwersalne. Moim zdaniem, korzystanie z IDE to prawie obowiązek dla każdego programisty!

Pytanie 23

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 24

Która z poniższych metod nie należy do cyklu życia komponentu w React.js?

A. componentWillUnmount()
B. componentWillPublish()
C. componentDidMount()
D. componentDidUpdate()
Dla osób pracujących z React.js kluczowe jest zrozumienie cyklu życia komponentów, który składa się z określonych metod umożliwiających zarządzanie stanem komponentów w różnych momentach ich życia. Wśród powszechnie używanych metod znajdują się componentDidMount(), componentDidUpdate() oraz componentWillUnmount(). Każda z tych metod pełni istotną rolę w kontekście zarządzania komponentami. Metoda componentDidMount() jest pierwszym momentem, kiedy komponent jest dostępny w DOM, co sprawia, że jest idealna do wykonywania wszelkich operacji związanych z inicjalizacją, takich jak pobieranie danych z serwera. Z kolei componentDidUpdate() umożliwia reagowanie na zmiany stanu lub propów, co jest niezbędne w dynamicznych interfejsach użytkownika. Metoda componentWillUnmount() pozwala na odpowiednie czyszczenie zasobów, co zapobiega wyciekom pamięci, na przykład poprzez usuwanie nasłuchiwaczy. Użytkownicy mogą błędnie interpretować metodę componentWillPublish(), sądząc, że jest ona częścią standardowego cyklu życia komponentów, jednak nie jest to zgodne ze specyfikacją React. Kluczowe jest, aby nie mylić terminologii i zrozumieć, że właściwe metody cyklu życia są jasno zdefiniowane w dokumentacji React. Ignorowanie tego aspektu może prowadzić do problemów w zarządzaniu komponentami, ich stanem oraz interakcjami z użytkownikiem, co w dłuższej perspektywie wpływa na jakość i wydajność aplikacji.

Pytanie 25

Który z poniższych metod najlepiej zabezpiecza dane karty płatniczej podczas zakupów online?

A. Podawanie informacji o karcie w odpowiedzi na wiadomość e-mail od nieznajomego
B. Udostępnianie danych karty na platformach internetowych
C. Używanie wirtualnych kart płatniczych lub jednorazowych kodów
D. Przechowywanie numeru karty w przeglądarce internetowej
Korzystanie z wirtualnych kart płatniczych lub jednorazowych kodów to skuteczny sposób na ochronę danych karty płatniczej podczas transakcji internetowych. Wirtualne karty mają ograniczony okres ważności i są powiązane z określoną kwotą, co minimalizuje ryzyko kradzieży całego konta bankowego. Jednorazowe kody płatności wygasają po jednorazowym użyciu, co uniemożliwia ich ponowne wykorzystanie przez osoby trzecie. Dzięki tym metodom użytkownicy znacznie redukują ryzyko oszustw i nieautoryzowanych transakcji.

Pytanie 26

Jakie jest podstawowe zadanie firewalla w systemie komputerowym?

A. Zapobieganie wyciekom informacji na skutek awarii systemu
B. Zarządzanie ruchem sieciowym i blokowanie nieautoryzowanego dostępu
C. Szyfrowanie danych przesyłanych w sieci
D. Ochrona danych na poziomie aplikacji internetowych
Firewall to narzędzie, które zarządza ruchem sieciowym i blokuje nieautoryzowane połączenia. Jego głównym celem jest ochrona przed nieuprawnionym dostępem do systemu poprzez analizę i filtrowanie pakietów danych. Firewall działa na poziomie sieciowym i aplikacyjnym, co pozwala na skuteczne zatrzymywanie prób włamań, ataków DDoS oraz złośliwego oprogramowania próbującego komunikować się z serwerami zewnętrznymi. To niezbędny element ochrony każdej infrastruktury IT.

Pytanie 27

Narzędzie przeznaczone do rozwijania aplikacji w systemie WPf (ang. Windows Presentation Foundation) to

A. PyCharm
B. XamarinStudio
C. NetBeans
D. Visual Studio
Visual Studio jest dedykowanym narzędziem do implementacji aplikacji w środowisku WPF (Windows Presentation Foundation). Umożliwia projektowanie interfejsów użytkownika i zarządzanie projektami opartymi na XAML.

Pytanie 28

Która funkcja z biblioteki jQuery w JavaScript służy do naprzemiennego dodawania oraz usuwania klasy z elementu?

A. .bingClass()
B. .changeClass()
C. .switchClass()
D. .toggleClass()
Metoda .toggleClass() w jQuery jest mega przydatna, bo pozwala na dodawanie lub usuwanie klasy CSS w czasie rzeczywistym. Dzięki temu można fajnie urozmaicić interakcje na stronie i dodać różne efekty wizualne, co na pewno przyciąga uwagę użytkowników.

Pytanie 29

W języku C# szablon List zapewnia funkcjonalność listy. Z tworzenia obiektu typu List wynika, że jego składnikami są

Ilustracja do pytania
A. elementy o nieokreślonym typie
B. elementy typu List
C. liczby całkowite
D. liczby rzeczywiste
Szablon Listw języku C# implementuje listę, której elementami są liczby całkowite. Jest to przykład zastosowania kolekcji generycznych, które wprowadzają typowanie silne w czasie kompilacji, co pozwala na uniknięcie błędów typowych dla kolekcji niegenerycznych. Definiując Listdeklarujesz, że lista będzie przechowywać tylko liczby całkowite. Dzięki temu kompilator może wykrywać błędy związane z typowaniem już podczas pisania kodu, co zwiększa jego niezawodność i bezpieczeństwo. Typ generyczny T w Listumożliwia tworzenie kolekcji przechowujących dowolny typ, co ułatwia ponowne wykorzystanie kodu i zgodność z zasadą DRY (Don't Repeat Yourself). W praktyce Listjest szeroko stosowany w scenariuszach wymagających dynamicznie rozwijanych kolekcji, które nie ograniczają się do statycznej liczby elementów, takich jak tablice. Listy generyczne są wydajniejsze i bardziej elastyczne dzięki metodom takim jak Add, Remove czy Contains, które operują na elementach określonego typu. Dzięki implementacji IEnumerable/Listy są również zgodne z LINQ, co umożliwia stosowanie złożonych zapytań i operacji na danych, takich jak filtrowanie i sortowanie, w sposób czytelny i efektywny.

Pytanie 30

Która metoda cyklu życia komponentu w React.js jest wywoływana tuż po zamontowaniu komponentu w DOM?

A. componentWillMount()
B. componentDidMount()
C. componentWillUnmount()
D. componentDidUpdate()
Odpowiedź 'componentDidMount()' jest poprawna, ponieważ jest to metoda cyklu życia komponentu w React, która jest wywoływana tuż po zamontowaniu komponentu w DOM. To oznacza, że w tym momencie komponent jest już dostępny w drzewie DOM i możemy bezpiecznie wykonywać operacje, które wymagają dostępu do elementów DOM. Przykładem zastosowania tej metody może być wykonywanie zapytań do API w celu pobrania danych, które następnie będą renderowane w komponencie. Dobrą praktyką jest umieszczanie logiki inicjalizacyjnej, takiej jak ustawienie stanu komponentu na podstawie danych z API, w tej metodzie, co pozwala na odpowiednie zarządzanie cyklem życia komponentu. Dodatkowo, 'componentDidMount()' jest także idealnym miejscem do dodawania subskrypcji do zewnętrznych źródeł danych, takich jak sockety lub WebSocket, co również wymaga, aby komponent był zamontowany. Warto pamiętać, że metody cyklu życia są kluczowym elementem architektury React i mają istotny wpływ na wydajność oraz czytelność kodu.

Pytanie 31

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. heurystycznej
B. najkrótszej trasy
C. dziel i zwyciężaj
D. komiwojażera
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 32

Jaką wartość zwróci poniższa funkcja dla argumentu n = 5?

function silnia(n) { if (n <= 1) return 1; return n * silnia(n - 1); }

A. 120
B. 24
C. 5
D. 60
Funkcja silnia(n) oblicza wartość silni z liczby n, co jest matematyczną operacją polegającą na mnożeniu wszystkich liczb całkowitych dodatnich od 1 do n. Dla argumentu n = 5, obliczamy silnię w następujący sposób: silnia(5) = 5 * silnia(4). Następnie, silnia(4) = 4 * silnia(3), a silnia(3) = 3 * silnia(2), gdzie silnia(2) = 2 * silnia(1), a silnia(1) zwraca 1, ponieważ jest to warunek bazowy. Teraz możemy podstawić wartości: silnia(2) = 2 * 1 = 2, silnia(3) = 3 * 2 = 6, silnia(4) = 4 * 6 = 24, a na końcu silnia(5) = 5 * 24 = 120. Tak więc, wartość zwrócona przez funkcję dla n = 5 to 120. W praktyce, obliczanie silni jest przydatne w różnych dziedzinach, takich jak kombinatoryka, statystyka czy analiza danych. Zrozumienie tej koncepcji jest kluczowe w programowaniu, ponieważ często wykorzystuje się rekurencję do rozwiązywania problemów, które można podzielić na mniejsze podproblemy. Korzystając z rekurencyjnych funkcji, warto pamiętać o podstawowych warunkach, które kończą wywołania rekurencyjne, aby uniknąć nieskończonych pętli.

Pytanie 33

Jakie znaczenie ma krajowa normalizacja dla produktów i usług?

A. Ogranicza liczbę dostępnych towarów
B. Usuwa konieczność przeprowadzania kontroli jakości
C. Restrukcjonuje innowacje technologiczne
D. Gwarantuje lepszą zgodność oraz jakość
Normalizacja krajowa to świetny sposób na to, żeby produkty i usługi były bardziej spójne i lepszej jakości. Kiedy mamy standardy, to producenci mogą robić rzeczy, które są zgodne z wymaganiami technicznymi. To z kolei sprawia, że konsumenci mogą bardziej ufać produktom, a ryzyko, że coś będzie wadliwe, spada. Dzięki normalizacji zwiększa się bezpieczeństwo, poprawia interoperacyjność, a to wszystko wspiera rozwój technologiczny. No i jest jeszcze to, że łatwiej jest wymieniać produkty między różnymi rynkami, co ma pozytywny wpływ na całą gospodarkę.

Pytanie 34

Podejście obiektowe w rozwiązywaniu problemów obejmuje między innymi:

A. zmienne, procedury oraz funkcje
B. klasy, obiekty oraz hermetyzację
C. pola, metody, rekurencję oraz kwerendy
D. wyzwalacze i polimorfizm
Obiektowe podejście obejmuje klasy, obiekty i hermetyzację. Te trzy elementy stanowią podstawę programowania obiektowego, umożliwiając organizację kodu i ochronę danych przed nieautoryzowanym dostępem.

Pytanie 35

Co oznacza pojęcie TDD w kontekście programowania?

A. Technical Design Document - dokumentacja techniczna projektu
B. Test-Driven Development - praktyka pisania testów przed implementacją kodu
C. Task Deployment Diagram - schemat wdrażania zadań w projekcie
D. Type Definition Document - dokumentacja typów danych w aplikacji
Pojęcia takie jak Type Definition Document, Technical Design Document, czy Task Deployment Diagram są związane z dokumentacją i zarządzaniem projektami, a niekoniecznie z samym procesem programowania, jakim jest TDD. Type Definition Document odnosi się do szczegółowego opisu typów danych używanych w aplikacji, co jest ważne, ale nie wpływa na proces tworzenia kodu i testowania. Z kolei Technical Design Document to dokument, który opisuje architekturę i techniczne aspekty projektu, ale nie stanowi podstawy dla praktyki TDD, w której testy są kluczowym elementem cyklu życia oprogramowania. Task Deployment Diagram to wizualizacja procesu wdrażania zadań w projekcie, co ma zastosowanie w zarządzaniu projektami, lecz nie odnosi się do samego wytwarzania oprogramowania. Takie nieporozumienia mogą wynikać z mylnego przekonania, że dokumentacja jest kluczowym elementem procesu programowania, co nie jest do końca prawdą. W rzeczywistości, TDD skupia się na iteracyjnym rozwoju poprzez testy, co prowadzi do lepszej jakości kodu, a jego podstawą jest koncepcja "testy przed kodem", a nie tworzenie dokumentacji czy schematów. Zrozumienie TDD jako podejścia programistycznego, które koncentruje się na testach, a nie na dokumentowaniu typu danych czy architektury, jest kluczowe dla właściwego podejścia do programowania w nowoczesnych projektach IT.

Pytanie 36

Jakie informacje zawiera zestaw instrukcji (ISA) danego procesora?

A. Metodę obsługi pamięci podręcznej
B. Układ połączeń między procesorem a innymi elementami
C. Instrukcje, które procesor jest w stanie wykonać
D. Typy danych, które są trzymane w pamięci
Zestaw instrukcji, znany jako ISA, to taki jakby słownik poleceń, które procesor potrafi zrozumieć i wykonać. To mega ważny element w projektowaniu komputerów, bo to właśnie od niego zależy, jak dobrze i szybko działa system. Mamy różne rodzaje instrukcji, na przykład te do wykonywania działań matematycznych, logicznych, czy do przenoszenia danych. Popularne zestawy jak x86 albo ARM pokazują, jak programy rozmawiają z procesorem. Jak zrozumiesz ISA, to będzie łatwiej pisać lepszy kod i dostosowywać aplikacje do różnych architektur. No i co ważne, ISA też mówi, jak procesor interpretuje te instrukcje i zarządza danymi, co ma ogromny wpływ na to, jak wydajnie wszystko działa.

Pytanie 37

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

A. Java
B. Python
C. Objective-C
D. Swift
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 38

Polecenia wydane w kontekście repozytorium Git, przy założeniu, że folder projektu jest aktualnie wybrany, mają na celu

Ilustracja do pytania
A. rozpoczęcie pracy z nowym repozytorium, dodanie oraz zatwierdzenie kodu projektu jako first commit
B. utworzenie kopii istniejącego repozytorium z jedynie tą rewizją, która zostanie zapisana pod nazwą first commit
C. zamknięcie projektu, co spowoduje zarchiwizowanie wszystkich rewizji do lokalnego archiwum pod nazwą first commit
D. rozpoczęcie sesji z już istniejącym repozytorium oraz pobranie kodu projektu do lokalnego folderu
Polecenia git init git add . oraz git commit -m 'first commit' są podstawowymi komendami do rozpoczęcia pracy z nowym repozytorium Gita. git init inicjalizuje puste repozytorium w aktualnym katalogu co tworzy podkatalog .git zawierający wszystkie metadane i historię w wersjonowania. Następnie git add . dodaje wszystkie nowe i zmodyfikowane pliki w bieżącym katalogu do indeksu co oznacza że są one gotowe do zatwierdzenia w repozytorium. Kolejne polecenie git commit -m 'first commit' tworzy pierwszy snapshot aktualnego stanu projektu z przypisaną wiadomością 'first commit' co jest dobrą praktyką sygnalizującą początek nowej historii projektu. Taki proces inicjacji jest standardem w zarządzaniu wersjami w branży IT umożliwiając śledzenie zmian w kodzie ułatwiając współpracę zespołową oraz zapewniając kontrolę nad rozwojem oprogramowania. Ważne jest by w pierwszym commicie umieścić podstawowe działające elementy projektu co stanowi solidną bazę do dalszego rozwoju.

Pytanie 39

Który z operatorów w języku C++ służy do pobierania adresu zmiennej?

A. >
B. delete
C. *
D. &
Hmmm, operator '*' rzeczywiście jest do dereferencji wskaźnika, ale nie myl go z innymi operatorami. '>' to operator do porównania, ale nie ma nic wspólnego z adresami czy wskaźnikami. A delete służy do zwalniania pamięci, a nie do uzyskiwania adresów zmiennych. Każdy z tych operatorów ma swoje miejsce w C++, ale jak się pomyli, to może być ciężko, no nie? Warto się przyjrzeć jeszcze raz tym pojęciom.

Pytanie 40

Kod w bibliotece React.js oraz w frameworku Angular, który został zaprezentowany, ma na celu wyświetlenie

Ilustracja do pytania
A. wartości 0 po naciśnięciu przycisku
B. liczby kliknięć przycisku
C. wyłącznie przycisku oraz obsłużenie zdarzenia click, które ono generuje
D. tylko napisu BTN_1
Kod w bibliotece React.js i Angular wyświetla liczbę kliknięć przycisku. Każde kliknięcie zwiększa wartość licznika, co jest standardowym przypadkiem użycia w interaktywnych aplikacjach webowych.