Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 10 kwietnia 2026 10:55
  • Data zakończenia: 10 kwietnia 2026 11:08

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu— sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Co to jest CSS Grid?

A. Metoda optymalizacji plików CSS dla lepszej wydajności strony
B. Format plików graficznych obsługiwany przez CSS3
C. Dwuwymiarowy system układu elementów na stronie opary na siatkach
D. Biblioteka komponentów wizualnych dla aplikacji webowych
Niepoprawne odpowiedzi mogą wynikać z mylnych interpretacji terminologii związanej z CSS i układem stron internetowych. Pierwsza z niepoprawnych opcji sugeruje, że CSS Grid jest metodą optymalizacji plików CSS. W rzeczywistości CSS Grid jest narzędziem do tworzenia układów, a nie do optymalizacji. Optymalizacja plików CSS odnosi się często do technik takich jak minifikacja lub kompresja, które poprawiają wydajność ładowania strony, ale nie mają nic wspólnego z samym układem. Kolejna odpowiedź wskazuje na format plików graficznych obsługiwany przez CSS3. Jest to nieprecyzyjne, ponieważ CSS3 jako arkusz stylów nie obsługuje formatów graficznych, ale umożliwia stylizację istniejących elementów graficznych poprzez zastosowanie odpowiednich właściwości CSS. Ostatnia z wymienionych odpowiedzi odnosi się do biblioteki komponentów wizualnych, co także jest mylnym rozumieniem roli CSS Grid. CSS Grid nie jest biblioteką, lecz standardem, który pozwala na tworzenie komponentów wizualnych w sposób bardziej zorganizowany i elastyczny. Zrozumienie, że CSS Grid to narzędzie do zarządzania układami, a nie do optymalizacji, czy też formatów graficznych, jest kluczowe dla skutecznego projektowania stron internetowych. Edukacja w tym obszarze pozwala uniknąć typowych błędów myślowych związanych z technologiami webowymi.

Pytanie 2

Która z wymienionych aplikacji stanowi przykład prostego rozwiązania mobilnego?

A. Aplikacja typu zegar
B. Aplikacja z rozbudowanym systemem zarządzania projektami
C. Aplikacja do monitorowania użycia pamięci RAM
D. Aplikacja do analizy danych finansowych
Aplikacja monitorująca zużycie pamięci RAM to narzędzie wymagające bardziej zaawansowanych algorytmów i dostępu do wewnętrznych zasobów systemowych, co wykracza poza definicję prostej aplikacji mobilnej. Aplikacja do analizy danych finansowych to skomplikowane oprogramowanie, które musi przetwarzać duże ilości informacji i często wymaga integracji z bazami danych, co czyni ją bardziej złożoną niż typowy zegar. Aplikacja z systemem zarządzania projektami jest rozbudowana i zawiera wiele funkcji takich jak kalendarze, harmonogramy czy integracja z chmurą, co również przekracza poziom skomplikowania typowej aplikacji zegara.

Pytanie 3

Która z niżej wymienionych pozycji jest ekwiwalentem biblioteki jQuery?

A. TypeScript
B. Lodash
C. Express.js
D. Bootstrap
Lodash to popularna biblioteka JavaScript, która dostarcza gotowe funkcje umożliwiające manipulację tablicami, obiektami oraz danymi. Lodash upraszcza wiele złożonych operacji, takich jak filtrowanie, mapowanie, sortowanie i grupowanie danych. Dzięki Lodash programiści mogą efektywnie zarządzać złożonymi strukturami danych, co prowadzi do zwiększenia czytelności i efektywności kodu. Biblioteka jest szeroko stosowana w aplikacjach frontendowych i backendowych, a jej funkcje są zoptymalizowane pod kątem wydajności, co czyni ją nieocenionym narzędziem w dużych projektach. Lodash często bywa porównywany do jQuery, jednak jego głównym celem jest manipulacja danymi, a nie elementami DOM. Dzięki swojej wszechstronności Lodash znajduje zastosowanie w niemal każdym projekcie JavaScript, zarówno w prostych aplikacjach webowych, jak i dużych projektach korporacyjnych.

Pytanie 4

Która z metod zarządzania projektami stawia na przejrzystość oraz wizualizację bieżących zadań?

A. Agile
B. Scrum
C. Kanban
D. Waterfall
Scrum to metoda iteracyjna, która koncentruje się na sprintach i dostarczaniu działającego produktu w krótkich cyklach, ale nie skupia się na wizualizacji pracy na poziomie takim jak Kanban. Agile to ogólna filozofia zarządzania projektami, która obejmuje różne metodyki (w tym Scrum i Kanban), ale nie koncentruje się wyłącznie na wizualizacji. Waterfall to model sekwencyjny, gdzie prace realizowane są etapami, a transparentność nie jest kluczowym elementem tego podejścia, ponieważ każda faza musi zostać zakończona przed rozpoczęciem kolejnej.

Pytanie 5

Która z poniższych technologii służy do tworzenia aplikacji mobilnych za pomocą języków webowych?

A. Spring Boot
B. ASP.NET Core
C. Django
D. React Native
React Native to popularna technologia opracowana przez Facebook, która umożliwia tworzenie aplikacji mobilnych z wykorzystaniem języków webowych, takich jak JavaScript oraz biblioteki React. React Native umożliwia programistom pisanie kodu raz i uruchamianie go na różnych platformach mobilnych, w tym iOS i Android, co znacząco przyspiesza proces developmentu. Dzięki temu, aplikacje stworzone w React Native zyskują natywną wydajność oraz dostęp do natywnych komponentów, co jest kluczowe dla uzyskania dobrego doświadczenia użytkownika. Przykłady zastosowania React Native obejmują znane aplikacje, takie jak Facebook, Instagram czy Skype, które wykorzystują tę technologię, aby szybko wprowadzać zmiany i aktualizacje. W branży uznaje się, że stosowanie React Native przyczynia się do oszczędności czasu i zasobów, a także wspiera dobre praktyki związane z wielokrotnym użyciem kodu. Warto również zauważyć, że React Native wspiera hot reloading, co pozwala programistom na bieżąco obserwować zmiany w kodzie bez potrzeby ponownego uruchamiania aplikacji.

Pytanie 6

Jakie informacje zawiera dokumentacja realizacji projektu?

A. Podręcznik użytkownika dla końcowych odbiorców aplikacji
B. Zestawienie błędów wykrytych w trakcie testów
C. Dane dotyczące faz wdrożenia aplikacji w środowisku produkcyjnym
D. Strategia marketingowa aplikacji
Dokumentacja wdrożenia projektu zawiera informacje o etapach implementacji aplikacji w środowisku produkcyjnym. Obejmuje ona szczegółowe procedury instalacji, konfiguracji serwerów, zależności systemowych oraz sposób integracji aplikacji z innymi narzędziami. Tego rodzaju dokumentacja jest niezbędna dla zespołów DevOps i administratorów systemów, ponieważ umożliwia płynne przenoszenie aplikacji z etapu testowego do środowiska produkcyjnego. Zawiera również instrukcje dotyczące kopii zapasowych, planów awaryjnych oraz sposobów monitorowania aplikacji po wdrożeniu. Prawidłowo przygotowana dokumentacja wdrożeniowa minimalizuje ryzyko błędów i przyspiesza proces uruchamiania aplikacji na serwerach produkcyjnych.

Pytanie 7

Jakie narzędzie najlepiej wykorzystać do testowania API REST?

A. Git
B. Selenium
C. Jasmine
D. Postman
Narzędzia takie jak Git, Selenium czy Jasmine, choć niezwykle użyteczne w swoim kontekście, nie są przeznaczone do testowania API REST. Git to system kontroli wersji, który służy do zarządzania kodem źródłowym i współpracy między programistami, a nie do interakcji z API. Wykorzystanie Gita w testowaniu API może prowadzić do mylnego wrażenia, że jest to odpowiednie narzędzie, podczas gdy w rzeczywistości jego zastosowanie ogranicza się do wersjonowania kodu. Selenium jest narzędziem do automatyzacji testów aplikacji webowych, skupiającym się na interakcjach z interfejsem użytkownika, a więc nie jest odpowiednie do testowania backendu lub API. Jasmine to framework do testowania JavaScript, który jest używany głównie do testowania kodu frontendowego, a nie do weryfikacji działania API. Te pomyłki mogą wynikać z nieprecyzyjnego rozumienia różnicy między testowaniem frontendu a backendu. Warto zrozumieć, że testowanie API wymaga specjalistycznych narzędzi, które potrafią obsługiwać protokoły HTTP, analizować odpowiedzi serwera oraz weryfikować dane, a powyższe narzędzia nie spełniają tych wymogów. Wybór odpowiedniego narzędzia jest kluczowy dla efektywności procesu testowania i zapewnienia wysokiej jakości dostarczanego oprogramowania.

Pytanie 8

Testy mające na celu identyfikację błędów w interfejsach między modułami bądź systemami nazywane są testami

A. bezpieczeństwa
B. wydajnościowymi
C. integracyjnymi
D. jednostkowymi
Testy integracyjne mają na celu wykrycie błędów w interfejsach i połączeniach między modułami lub systemami. Głównym celem tych testów jest sprawdzenie, czy różne komponenty aplikacji współpracują ze sobą zgodnie z oczekiwaniami. Testy integracyjne są przeprowadzane po testach jednostkowych, ale przed testami systemowymi. W praktyce testy te obejmują scenariusze, w których kilka modułów wymienia dane lub współdziała w ramach wspólnego procesu. Integracja jest kluczowa dla zapewnienia, że cały system działa jako spójna całość, co minimalizuje ryzyko błędów na etapie produkcji i poprawia jakość końcowego produktu. Przykładem może być test komunikacji między modułem autoryzacji użytkowników a modułem płatności w aplikacji e-commerce.

Pytanie 9

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

A. Testy funkcjonalne
B. Testy zgodności
C. Testy użyteczności
D. Testy obciążeniowe
Testy obciążeniowe skupiają się na sprawdzaniu, jak aplikacja działa pod dużym ruchem lub obciążeniem, co pozwala ocenić jej wydajność, ale nie dotyczy to bezpośrednio doświadczeń użytkownika. Testy funkcjonalne mają na celu sprawdzenie, czy poszczególne funkcje aplikacji działają zgodnie z założeniami, ale nie badają wygody użytkowania. Testy zgodności natomiast weryfikują, czy aplikacja spełnia określone normy i standardy, co ma niewiele wspólnego z oceną użyteczności aplikacji przez użytkownika końcowego.

Pytanie 10

Które z wymienionych działań, które są częścią procesu kreowania prostej galerii zdjęć w formie aplikacji mobilnej, powinno być realizowane przez zespół?

A. Stworzenie dokumentacji kodu aplikacji
B. Wdrożenie funkcji dodajZdjecie()
C. Przygotowanie testu jednostkowego dla funkcji przegladajZdjecia()
D. Przygotowanie i konfiguracja repozytorium dla projektu
Pozostałe odpowiedzi są zadaniami, które w większości przypadków mogą być realizowane indywidualnie, co czyni je zadaniami jednostkowymi. Implementacja funkcji dodajZdjecie() dotyczy konkretnego aspektu programistycznego, który może być wykonany przez jednego dewelopera. Wymaga ona znajomości języka programowania oraz logiki potrzebnej do dodawania zdjęć do galerii, co zazwyczaj nie wymaga współpracy z innymi członkami zespołu. Przygotowanie i skonfigurowanie repozytorium dla projektu natomiast to techniczny proces, który również najczęściej realizuje jedna osoba, odpowiedzialna za ustawienie środowiska pracy. Tworzenie testu jednostkowego dla funkcji przegladajZdjecia() to kolejny krok, który można wykonać samodzielnie, koncentrując się na testowaniu konkretnej funkcji w izolacji, bez potrzeby angażowania innych programistów. W przypadku tych zadań, choć mogą one być częścią większego projektu, to ich realizacja nie wymaga współpracy zespołowej, co sprawia, że nie są to zadania zespołowe.

Pytanie 11

Który system informatyczny powinien być zastosowany do zarządzania sprzedażą w e-sklepie?

A. System CMS
B. System e-commerce
C. System CRM
D. System ERP
System e-commerce to takie fajne rozwiązanie, które naprawdę ułatwia sprzedaż przez internet. Znajdziesz w nim wszystko, co potrzebne do zarządzania produktami, zamówieniami, a nawet płatnościami. Dzięki temu przedsiębiorcy mogą szybko zakładać i prowadzić sklepy online, co daje super doświadczenie dla klientów. Warto wspomnieć o popularnych systemach, jak Shopify czy WooCommerce – z nich korzystają tysiące sklepów na całym świecie. Te systemy mają też fajne narzędzia, dzięki którym można monitorować sprzedaż czy analizować, co klienci lubią. A bezpieczeństwo? To też ważna sprawa, bo standardy, takie jak PCI DSS, dbają o to, żeby dane klientów były dobrze chronione. W czasach rosnącej konkurencji w internecie, wybór odpowiedniego systemu e-commerce to klucz do sukcesu.

Pytanie 12

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

A. Git
B. MongoDB
C. Mercurial
D. SVN
MongoDB jest systemem zarządzania bazami danych, który nie jest systemem kontroli wersji. Jego głównym celem jest przechowywanie i zarządzanie danymi w formacie dokumentów, co czyni go idealnym rozwiązaniem w aplikacjach wymagających elastyczności w strukturze danych. W odróżnieniu od systemów kontroli wersji, takich jak Git, SVN czy Mercurial, MongoDB nie śledzi zmian w kodzie źródłowym, a zamiast tego skupia się na operacjach na danych. W praktyce, MongoDB znajduje zastosowanie w projektach, gdzie wymagana jest szybka iteracja i przetwarzanie dużych zbiorów danych, takich jak aplikacje mobilne, platformy e-commerce czy analizy danych. Dobre praktyki wskazują, że przy budowie nowoczesnych aplikacji warto korzystać z rozwiązań NoSQL, takich jak MongoDB, w połączeniu z systemami kontroli wersji, aby efektywnie zarządzać zarówno kodem, jak i danymi.

Pytanie 13

Programista umieścił poniższą linię kodu w pliku HTML, aby

<script src="jquery-3.5.1.min.js"></script>
A. pobrać z Internetu w momencie otwierania strony i użyć biblioteki jQuery
B. skorzystać z funkcji biblioteki jQuery, która była wcześniej pobrana i zapisana lokalnie
C. zadeklarować własną funkcję JavaScript o nazwie min.js
D. wstawić kod JavaScript pomiędzy znacznikami &lt;script&gt;&lt;/script&gt;
W kontekście załączonego kodu HTML należy zauważyć, że jego celem jest przede wszystkim załadowanie lokalnej kopii zewnętrznej biblioteki JavaScript, w tym przypadku jQuery. Koncepcja umieszczania kodu JavaScript pomiędzy znacznikami script dotyczy innego sposobu osadzania kodu, gdzie kod JavaScript jest bezpośrednio wpisywany pomiędzy te znaczniki, a nie poprzez atrybut src. Taki sposób jest często używany dla krótkich skryptów lub gdy nie korzystamy z zewnętrznych bibliotek. Pobieranie z Internetu w momencie odsłony strony i zastosowanie biblioteki jQuery wymagałoby wskazania zewnętrznego adresu URL w atrybucie src, co nie ma miejsca w przypadku lokalnie zapisanych plików. Wskazywanie na adres URL pozwala na dynamiczne ładowanie bibliotek z zewnętrznych serwerów, co jest powszechną praktyką dla bibliotek o szerokim zastosowaniu, takich jak jQuery, jednak w tym pytaniu mowa jest o pliku lokalnym. Deklarowanie własnej funkcji JavaScript o nazwie min.js jest nieporozumieniem. min.js zwykle wskazuje na zminifikowaną wersję skryptu, co oznacza zoptymalizowaną pod kątem rozmiaru wersję biblioteki, a nie nazwę funkcji. Rodzi to błędne przekonanie co do znaczenia struktury nazw w kontekście plików JavaScript i ich stosowania. Ważne jest, aby rozróżniać lokalne i zdalne metody załadowania zasobów i zrozumieć kiedy i dlaczego każda z nich jest stosowana w praktyce projektowej.

Pytanie 14

Przedstawione w filmie działania wykorzystują narzędzie

A. debuggera analizującego wykonujący kod
B. generatora kodu java
C. kompilatora dla interfejsu graficznego
D. generatora GUI przekształcającego kod do języka XAML
Patrząc na wszystkie dostępne opcje, łatwo się pomylić, bo terminologia może być trochę podchwytliwa. Debugger analizujący wykonujący kod rzeczywiście jest kluczowym narzędziem w pracy programisty, ale jego zadaniem jest szukanie błędów i obserwowanie działania programu w czasie rzeczywistym, a nie generowanie kodu czy interfejsów. Myślę, że sporo osób utożsamia narzędzia developerskie z debuggerem, bo to jedno z najczęściej używanych rozwiązań – jednak tutaj akurat nie ma on nic wspólnego z przekształcaniem kodu do XAML-a. Generator kodu Java brzmi sensownie, jeśli ktoś pracuje więcej w środowiskach Javy, ale w tym przypadku mówimy o ekosystemie .NET i XAML-u, a Java ma zupełnie inne formaty i narzędzia (np. FXML dla JavaFX, ale to zupełnie inna bajka). Generator GUI przekształcający kod do języka XAML to narzędzie dedykowane platformie Microsoftu, bo XAML funkcjonuje właśnie w tych technologiach. Ostatnia odpowiedź, czyli kompilator dla interfejsu graficznego, to trochę pomieszanie pojęć – kompilator rzeczywiście tłumaczy kod na wykonywalny plik (np. EXE), ale nie jest narzędziem służącym do generowania czy przekształcania opisów interfejsów graficznych. Sporo osób może mieć tendencję do mylenia generatorów z kompilatorami, bo oba „tworzą coś automatycznie”, ale ich przeznaczenie jest zupełnie inne. Moim zdaniem najważniejsze to rozumieć, że generatory GUI ułatwiają życie, pozwalając szybko przenieść projekt interfejsu do kodu XAML, a reszta narzędzi ma zupełnie inne zadania. To rozróżnienie jest naprawdę kluczowe w branży.

Pytanie 15

Metoda tworzenia algorytmu polegająca na dzieleniu go na dwa lub więcej mniejszych podproblemów, aż do momentu, gdy ich rozwiązanie stanie się proste, jest techniką

A. dziel i zwyciężaj
B. heurystyczną
C. komiwojażera
D. najkrótszej ścieżki
Strategia znana jako 'dziel i zwyciężaj' to sposób, w jaki można podejść do rozwiązywania problemów w algorytmice. Chodzi o to, żeby rozdzielić większy problem na mniejsze kawałki, które są już łatwiejsze do ogarnięcia. Robimy to, aż każdy z tych kawałków da się rozwiązać bez większego trudu. Jak już mamy rozwiązania tych mniejszych problemów, to je łączymy, żeby uzyskać odpowiedź na nasz pierwotny problem. Przykłady? No to mamy algorytm sortowania szybkiego (Quicksort) oraz Mergesort, które świetnie sobie radzą z porządkowaniem danych, dzieląc je na mniejsze części. Jak patrzy się na to z perspektywy analizy algorytmów, to ta strategia często prowadzi do lepszej złożoności obliczeniowej, co sprawia, że jest naprawdę przydatna w praktyce, zwłaszcza w informatyce. W książce Cormena i innych, 'Introduction to Algorithms', można znaleźć sporo informacji na temat tych metod i ich zastosowań, co czyni je naprawdę istotnymi w obszarze programowania i analizy danych.

Pytanie 16

Jaki protokół komunikacyjny jest używany w aplikacjach IoT (Internet of Things)?

A. SMTP
B. HTTP
C. MQTT
D. FTP
Protokół MQTT (Message Queuing Telemetry Transport) jest jednym z najczęściej używanych protokołów w aplikacjach Internetu Rzeczy (IoT). Jest to lekki protokół komunikacyjny zaprojektowany z myślą o ograniczonych zasobach urządzeń oraz niskiej przepustowości połączeń. Jego architektura opiera się na modelu publikacja-subskrypcja, co sprawia, że idealnie nadaje się do komunikacji między wieloma urządzeniami. W praktyce, MQTT jest wykorzystywany w różnych aplikacjach, takich jak monitorowanie czujników, zdalne sterowanie urządzeniami czy zarządzanie inteligentnymi domami. Dzięki zastosowaniu mechanizmów QoS (Quality of Service), MQTT zapewnia niezawodność dostarczania wiadomości, co jest kluczowe w krytycznych zastosowaniach przemysłowych. Co więcej, jest on wspierany przez wiele platform IoT, takich jak AWS IoT, Google Cloud IoT oraz Azure IoT, co czyni go standardem branżowym. W praktyce inżynierowie IoT często wybierają MQTT ze względu na jego niskie opóźnienia i niski narzut na zasoby systemowe, co przekłada się na efektywność działania systemów IoT.

Pytanie 17

Jakie znaczenie ma polimorfizm w programowaniu obiektowym?

A. Umożliwia jednej metodzie działać w różnorodny sposób w zależności od klasy, do której należy
B. Pozwala na tworzenie obiektów z wielu różnych klas równocześnie
C. Ogranicza dostęp do atrybutów klasy
D. Dzieli program na klasy oraz obiekty
Tworzenie obiektów z wielu klas jednocześnie nie jest związane z polimorfizmem – jest to raczej przykład wielokrotnego dziedziczenia, gdzie jedna klasa może dziedziczyć po wielu klasach bazowych. Dzielenie programu na klasy i obiekty to podstawowa cecha programowania obiektowego, ale nie jest to definicja polimorfizmu. Ograniczenie dostępu do pól klasy to hermetyzacja, a nie polimorfizm – celem polimorfizmu jest umożliwienie różnym klasom realizacji wspólnego interfejsu, a nie ukrywanie danych wewnętrznych obiektu.

Pytanie 18

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

A. React
B. Angular
C. Vue.js
D. Django
Django to framework zaprojektowany do budowy aplikacji webowych w języku Python, a zatem nie jest związany z JavaScriptem. Jego głównym celem jest uproszczenie procesu tworzenia w pełni funkcjonalnych aplikacji, co osiąga poprzez zestaw gotowych komponentów, takich jak system zarządzania bazą danych, mechanizmy autoryzacji oraz łatwe zarządzanie szablonami. Przykładem zastosowania Django może być rozwój serwisów e-commerce, gdzie framework ten wspiera szybkie i bezpieczne tworzenie skomplikowanej logiki aplikacji oraz zapewnia możliwość łatwego skalowania. Użycie Django w projektach, w których istotne są bezpieczeństwo i szybkość developmentu, stało się standardem w branży. W kontekście rozwoju aplikacji webowych, znajomość różnych frameworków, w tym Django, jest kluczowa dla programistów, którzy chcą być elastyczni i efektywni w tworzeniu rozwiązań backendowych."

Pytanie 19

Które stwierdzenie dotyczące interfejsu w Java jest prawdziwe?

A. Interfejs może zawierać pola z dostępem protected
B. Wszystkie metody w interfejsie są domyślnie publiczne i abstrakcyjne
C. W interfejsie można definiować implementacje metod statycznych
D. Interfejs może dziedziczyć po wielu klasach jednocześnie
Interfejsy w języku Java są fundamentalnym elementem programowania obiektowego, pozwalającym na definiowanie kontraktów, które muszą być implementowane przez klasy. Stwierdzenie, że wszystkie metody w interfejsie są domyślnie publiczne i abstrakcyjne, jest całkowicie zgodne z zasadami języka Java. Oznacza to, że nie trzeba jawnie deklarować tych modyfikatorów dostępu, ponieważ metody zdefiniowane w interfejsie są zawsze dostępne dla klas implementujących ten interfejs. To podejście promuje luźne powiązania między kodem oraz ułatwia testowanie i utrzymanie aplikacji. Przykładem praktycznym może być interfejs Comparable, który definiuje metodę compareTo. Klasy, które implementują ten interfejs, muszą dostarczyć konkretnej logiki porównywania obiektów, co pozwala na ujednolicenie sposobu, w jaki obiekty są porównywane w kolekcjach. Warto również zauważyć, że od Javy 8 interfejsy mogą zawierać metody domyślne z implementacją, ale nawet te metody są publiczne. Poprawne zrozumienie roli interfejsów jest kluczowe w projektowaniu systemów z zastosowaniem wzorców projektowych, takich jak MVC czy strategia.

Pytanie 20

Prezentowana metoda jest realizacją algorytmu

public static String fun1(String str) {
    String output = " ";
    for (var i = (str.length()-1); i >= 0; i--)
        output += str.charAt(i);
    return output;
}
A. odwracającego ciąg
B. wyszukującego literę w ciągu
C. sortującego ciąg od znaku o najniższym kodzie ASCII do znaku o najwyższym kodzie
D. sprawdzającego, czy dany ciąg jest palindromem
Kod przedstawiony w zadaniu nie realizuje ani wyszukiwania konkretnej litery w ciągu, ani nie sprawdza, czy tekst jest palindromem, ani też nie sortuje znaków po kodzie ASCII. Często spotyka się mylenie tych koncepcji z prostym odwracaniem tekstu, bo wszystkie operacje dotyczą łańcuchów znaków, jednak ich logika jest zupełnie inna. Przykładowo, sprawdzanie palindromu najczęściej polega na porównywaniu znaków od początku i końca tekstu, aż do środka – nie wymaga to budowania nowego odwróconego tekstu, tylko ew. jednej pętli z warunkami. Jeśli chodzi o wyszukiwanie litery, tam szukamy, czy dany znak występuje w ciągu – sprawdza się to za pomocą pętli i instrukcji warunkowej, ale nie tworzy się nowego łańcucha, tylko ewentualnie zwraca pozycję znaku lub informację o jego obecności. Sortowanie znaków w napisie według kodu ASCII wymagałoby innego podejścia – należałoby przenieść znaki do np. tablicy znaków, użyć algorytmu sortowania (chociażby Arrays.sort()), a potem złożyć łańcuch z posortowanych znaków. W tym kodzie nie ma żadnych operacji porównywania kodów znaków ani przestawiania ich miejscami zgodnie z wartościami ASCII. Typowym błędem jest też sugerowanie się samą obecnością pętli i manipulacji na Stringu bez dokładnego prześledzenia, co dzieje się w każdej iteracji. Metoda fun1 po prostu dokleja kolejne znaki od końca oryginalnego napisu do nowego łańcucha, co wyraźnie wskazuje na typowo szkolny algorytm odwracania ciągu. To podejście jest bardzo przydatne do nauki podstaw przetwarzania tekstów i zrozumienia, jak można budować nowe napisy na bazie istniejących danych, ale nie spełnia żadnej z wymienionych innych funkcjonalności.

Pytanie 21

Jak nazywa się technika umożliwiająca asynchroniczne wykonywanie operacji w JavaScript?

A. Object
B. Promise
C. Function
D. Variable
Wybór opcji Variable, Function lub Object wskazuje na nieporozumienie odnośnie do podstawowych pojęć w JavaScript. Variable to termin odnoszący się do sposobu przechowywania danych w programie; jest to kontener, który może przechowywać różne typy danych, ale nie jest to technika do zarządzania asynchronicznością. Funkcja jest blokiem kodu, który można wykonać, ale sama w sobie nie zapewnia asynchronicznego działania, chyba że zostanie połączona z innymi technikami, takimi jak Promise czy callbacki. Obiekt, natomiast, to struktura danych, która grupuje właściwości i metody, jednak nie ma bezpośredniego związku z zarządzaniem asynchronicznymi operacjami. Częstym błędem jest mylenie tych podstawowych pojęć i ich funkcjonalności. Osoby, które wybierają niewłaściwe odpowiedzi, często koncentrują się na ogólnych właściwościach tych terminów, nie dostrzegając ich ograniczeń. Aby skutecznie zarządzać asynchronicznymi operacjami w JavaScript, należy zrozumieć, że Promise jest konstrukcją zaprojektowaną specjalnie do tego celu, co odzwierciedla jego użycie w nowoczesnym kodzie JavaScript i zgodność z dobrymi praktykami programistycznymi. Dlatego, aby efektywnie pracować z asynchronicznością, warto zwrócić uwagę na techniki takie jak Promise, które umożliwiają bardziej złożone operacje oraz lepsze zarządzanie błędami.

Pytanie 22

Który z wymienionych elementów UI w aplikacjach mobilnych jest odpowiedzialny za przechodzenie pomiędzy ekranami?

A. Przycisk
B. ListView
C. Navigation Drawer
D. Pasek narzędziowy
Navigation Drawer to jeden z najczęściej stosowanych komponentów interfejsu użytkownika w aplikacjach mobilnych na platformie Android. Pozwala na stworzenie bocznego menu nawigacyjnego, które użytkownik może wysunąć z lewej (lub rzadziej z prawej) krawędzi ekranu. Drawer umożliwia szybki dostęp do różnych sekcji aplikacji, co poprawia nawigację i organizację interfejsu. Navigation Drawer jest szeroko wykorzystywany w aplikacjach mobilnych takich jak Gmail, YouTube czy Google Maps, ponieważ zapewnia przejrzysty i intuicyjny sposób poruszania się po aplikacji, zachowując minimalistyczny wygląd interfejsu. Dzięki niemu użytkownik ma dostęp do wielu opcji bez konieczności zaśmiecania głównego ekranu aplikacji przyciskami nawigacyjnymi. W Android Studio Navigation Drawer można zaimplementować poprzez gotowe szablony lub za pomocą komponentu DrawerLayout.

Pytanie 23

W jakiej sytuacji wykorzystanie stosu będzie korzystniejsze niż lista podczas projektowania zestawu danych?

A. Gdy dane muszą być uporządkowane
B. Gdy chcemy usunąć element z końca
C. Gdy kolejność przetwarzania danych jest odwrócona (LIFO)
D. Gdy ważne jest szybkie znajdowanie elementów
Lista umożliwia liniowy dostęp do elementów i pozwala na dodawanie/usuwanie elementów w dowolnym miejscu, ale nie działa na zasadzie LIFO – dostęp do ostatniego elementu nie jest tak szybki jak w stosie. Kolejka działa zgodnie z zasadą FIFO (First In First Out), co oznacza, że elementy są przetwarzane w kolejności ich dodania, co jest odwrotnością stosu. Tablica dwuwymiarowa to struktura służąca do przechowywania danych w formie macierzy, umożliwiająca indeksowany dostęp, ale nie wspiera bezpośrednio operacji LIFO ani FIFO.

Pytanie 24

Który z poniższych problemów jest najczęściej rozwiązywany z zastosowaniem algorytmu rekurencyjnego?

A. Sortowanie za pomocą metody QuickSort
B. Generowanie ciągu Fibonacciego
C. Obliczanie sumy elementów w tablicy
D. Wyszukiwanie binarne w uporządkowanej tablicy
Generowanie ciągu Fibonacciego to klasyczny przykład problemu, który najczęściej rozwiązuje się za pomocą algorytmu rekurencyjnego. Algorytm rekurencyjny wywołuje sam siebie, dzieląc problem na mniejsze podproblemy, aż do osiągnięcia przypadku bazowego. W przypadku Fibonacciego każda liczba jest sumą dwóch poprzednich, a algorytm rekurencyjny odwzorowuje to wprost poprzez wywołania fib(n-1) + fib(n-2). Rekurencja jest intuicyjna i często stosowana w zadaniach matematycznych, takich jak obliczanie silni czy rozwiązywanie problemów związanych z przeszukiwaniem drzew. Choć rekurencja jest elegancka, dla dużych n może prowadzić do nadmiarowych obliczeń, dlatego często optymalizuje się ją za pomocą pamięci podręcznej (memoizacji) lub iteracyjnych wersji algorytmu.

Pytanie 25

Która z poniższych technik NIE jest związana z optymalizacją wydajności strony internetowej?

A. Lazy loading
B. Użycie CDN
C. Deep linking
D. Minifikacja kodu
Deep linking to technika, która polega na linkowaniu bezpośrednio do określonego miejsca w treści danej strony internetowej, omijając jej stronę główną czy inne interfejsy nawigacyjne. Nie wpływa jednak na optymalizację wydajności strony, ponieważ koncentruje się na poprawie nawigacji i doświadczenia użytkownika, a nie na szybkości ładowania strony czy efektywnym zarządzaniu zasobami. Przykładem zastosowania deep linking może być sytuacja, w której użytkownik klika w link do konkretnego produktu w sklepie internetowym, co pozwala mu od razu zobaczyć interesującą go ofertę bez zbędnych kroków dodatkowych. W praktyce, techniki optymalizacji wydajności, takie jak minifikacja kodu, lazy loading i użycie CDN, koncentrują się na zmniejszeniu rozmiaru plików, opóźnianiu ładowania nieistotnych zasobów oraz dystrybucji treści z najbliższych lokalizacji serwerów, co przyczynia się do szybszego dostarczania zawartości do użytkownika. Dlatego właśnie deep linking jest odpowiedzią, która nie jest związana z wydajnością strony.

Pytanie 26

Co to jest Event Loop w JavaScript?

A. System zarządzania cyklem życia komponentów w Angular
B. Mechanizm pozwalający na asynchroniczne wykonywanie kodu mimo jednowątkowej natury JavaScript
C. Protokół komunikacji między różnymi częściami aplikacji webowej
D. Technika obsługi zdarzeń w aplikacjach React
Wybór błędnej odpowiedzi może wynikać z nieporozumienia co do roli Event Loop w JavaScript. Technika obsługi zdarzeń w aplikacjach React to zupełnie inna kwestia. React jako biblioteka frontendowa opiera się na komponentach i zarządzaniu stanem, a obsługa zdarzeń w niej polega na nasłuchiwaniu i reagowaniu na różne interakcje użytkownika. Event Loop nie jest bezpośrednio związany z tym procesem, choć obie koncepcje mogą współpracować w większym ekosystemie aplikacji. Protokół komunikacji między różnymi częściami aplikacji webowej także nie odnosi się do Event Loop. Takie protokoły, jak HTTP czy WebSocket, służą do wymiany danych, ale nie kontrolują one asynchronicznego wykonywania kodu. Również system zarządzania cyklem życia komponentów w Angular to kolejny temat, który nie ma nic wspólnego z Event Loop. Angular, jak React, korzysta z własnych metod do zarządzania cyklem życia komponentów, które są niezależne od działania Event Loop. Zrozumienie różnicy między tymi koncepcjami jest kluczowe dla efektywnego programowania w JavaScript i tworzenia skalowalnych aplikacji. Dlatego ważne jest, aby przyjrzeć się mechanizmowi Event Loop i jego roli w przetwarzaniu asynchronicznym, co jest fundamentalne dla wydajności aplikacji webowych.

Pytanie 27

Jakie metody pozwalają na przesłanie danych z serwera do aplikacji front-end?

A. biblioteki jQuery
B. protokołu SSH
C. metody POST
D. formatu JSON
Wśród zaproponowanych odpowiedzi pojawiło się kilka nieporozumień technicznych, które niestety są dość często spotykane u początkujących programistów. Przede wszystkim, biblioteka jQuery sama w sobie nie jest metodą przesyłania danych – to narzędzie, które może ułatwić pobieranie i wysyłanie danych na front-endzie, ale bez określonego formatu danych (np. JSON) jej obecność niewiele znaczy w kontekście komunikacji z serwerem. Moim zdaniem stąd czasem bierze się mylne przekonanie, że jQuery "przesyła dane", ale to tylko narzędzie, a nie metoda czy format wymiany informacji. Jeśli chodzi o protokół SSH, to jest on zupełnie niepowiązany z komunikacją webową – SSH służy głównie do bezpiecznego zdalnego zarządzania serwerami i nie jest wykorzystywany do przesyłania danych pomiędzy serwerem a przeglądarką. SSH dobrze się sprawdza przy pracy zdalnej na terminalu, ale nie przy typowej wymianie danych w aplikacjach webowych. Z kolei metoda POST to jeden z typów żądań HTTP, który określa sposób przesłania danych do serwera, ale nie precyzuje formatu tych danych. Możemy wysłać w POST-cie tekst, plik, dane binarne, XML czy JSON – nie jest to więc format, tylko sposób komunikacji. Bardzo często początkujący mylą metodę HTTP z formatem danych, co prowadzi do niedokładnych odpowiedzi. Odpowiednie rozróżnienie między narzędziem, protokołem, metodą żądania a formatem danych jest kluczowe w codziennej pracy webdevelopera. W praktyce to właśnie wybór formatu – a nie tylko metody żądania czy użytej biblioteki – decyduje o tym, jak łatwo aplikacje front-end i back-end będą w stanie się "dogadać". JSON jest tu najlepszym przykładem takiego uniwersalnego sposobu wymiany danych.

Pytanie 28

Programista może wykorzystać framework Angular do realizacji aplikacji:

A. rodzaju back-end
B. rodzaju front-end
C. na komputerze
D. mobilnej
Aplikacje back-endowe zazwyczaj pisze się w innych frameworkach, jak na przykład Express.js albo Django. Wiadomo, że Angular zajmuje się warstwą kliencką. A jak mówimy o aplikacjach mobilnych czy desktopowych, to częściej korzysta się z takich rzeczy jak Flutter, React Native czy Electron. Więc to już nie jest to samo co Angular.

Pytanie 29

Jaki z wymienionych komponentów jest kluczowy do inicjalizacji pola klasy podczas tworzenia instancji obiektu?

A. Konstruktor
B. Metoda statyczna
C. Instrukcja warunkowa
D. Funkcja zaprzyjaźniona
Metoda statyczna działa na poziomie klasy, a nie obiektu, i nie jest używana do inicjalizacji pól instancji. Funkcja zaprzyjaźniona może mieć dostęp do prywatnych pól klasy, ale jej głównym celem nie jest inicjalizacja obiektu – służy do wykonywania operacji na istniejących obiektach. Instrukcja warunkowa kontroluje przepływ programu, ale nie jest odpowiedzialna za inicjalizację pól klasy – jest to zadanie konstruktora, który działa automatycznie przy tworzeniu obiektu.

Pytanie 30

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

A. Prawa pokrewne
B. Autorskie prawa osobiste
C. Autorskie prawa majątkowe
D. Licencje wolnego oprogramowania
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 31

Wykorzystując React.js oraz Angular, stworzono funkcjonalnie równoważne kody źródłowe. Aby móc w metodzie handleSubmit pokazać zawartość kontrolki input w miejscu oznaczonym ???, należy odwołać się do atrybutu o nazwie:
React.js:

nazwa1 = React.createRef();
handleSubmit = e => {
    console.log(this.???.current.value);
}
...
<form onSubmit={this.handleSubmit}>
    <input ref={this.nazwa1} name="nazwa2" id="nazwa3" for="nazwa4" />
Angular:
<form #f="ngForm" (ngSubmit) = "handleSubmit(f)">
    <input ngModel name="nazwa1" id="nazwa2" class="nazwa3" for="nazwa4" >
...
handleSubmit(f) {
    console.log(f.value.???);
}
A. nazwa3
B. nazwa1
C. nazwa4
D. nazwa2
Wybór atrybutów takich jak nazwa4, nazwa2 czy nazwa3 wynika często z nieporozumienia co do roli poszczególnych atrybutów we współczesnych frameworkach frontendowych. Identyfikator (id), klasa (class) czy nawet for mają swoje konkretne zadania, ale nie służą do powiązania wartości inputów z logiką formularza. Id stosujemy typowo do jednoznacznego oznaczania elementów w DOM-ie, co ułatwia stylowanie lub selektory JavaScript, jednak nie ma bezpośredniego przełożenia na to, jak frameworki typu React czy Angular pobierają wartości pól w formularzach – szczególnie jeśli korzystamy z referencji bądź systemu ngForm. Podobnie atrybut class ma charakter czysto prezentacyjny: używamy go do przypisywania styli CSS, ewentualnie do selektorów w testach automatycznych, ale nie do obsługi zdarzeń związanych z danymi formularza. For natomiast jest przydatny tylko w kontekście etykiet (label), by skojarzyć ją z konkretnym polem po id – nie wpływa na to, jak framework zbiera wartości inputów podczas submitowania formularza. Najczęstszym błędem, który obserwuję, jest zakładanie, że skoro id czy class są unikalne lub opisowe, to można przez nie pobierać wartości pól – to nie jest zgodne ani z dokumentacją Reacta, ani Angulara, ani standardami HTML5. To właśnie atrybut name pełni rolę logicznego identyfikatora wpisu w kontekście formularza: w Angularze ngForm buduje obiekt value na podstawie name każdego inputa, a w React – jeśli korzystasz z refów – również najwygodniej jest konsekwentnie opierać się o te same atrybuty, żeby formularze były czytelne i łatwe do utrzymania. W praktyce, kiedy ktoś wybiera inne atrybuty, ma to zwykle związek z brakiem znajomości architektury pracy z danymi w danym frameworku. Warto więc przeanalizować, jak frameworki mapują dane formularza i co wynika z oficjalnych tutoriali i dokumentacji. W dłuższej perspektywie praca z formularzami staje się wtedy dużo prostsza i mniej podatna na błędy, a kod jest bardziej przewidywalny i skalowalny.

Pytanie 32

Jaką funkcję pełnią mechanizmy ciasteczek w aplikacjach internetowych?

A. Do generowania dynamicznych interfejsów dla użytkowników
B. Do zapisywania danych użytkownika na serwerze
C. Do przechowywania informacji w bazie danych
D. Do zapisywania danych użytkownika w przeglądarce
Mechanizm ciasteczek (cookies) w aplikacjach webowych służy do przechowywania danych użytkownika bezpośrednio w przeglądarce. Ciasteczka mogą przechowywać różnego rodzaju informacje, takie jak preferencje językowe, identyfikatory sesji czy dane logowania, co pozwala na personalizację doświadczenia użytkownika oraz śledzenie jego aktywności na stronie. Dzięki ciasteczkom aplikacje webowe mogą zapamiętać użytkownika i dostosować treści do jego potrzeb przy kolejnych wizytach. Cookies są nieodłącznym elementem zarządzania stanem w aplikacjach stateless, takich jak te oparte na protokole HTTP. Mogą być one również wykorzystywane w systemach reklamowych i analitycznych do monitorowania zachowań użytkowników. Prawidłowe zarządzanie ciasteczkami i stosowanie odpowiednich polityk prywatności są kluczowe dla zgodności z przepisami RODO oraz regulacjami dotyczącymi ochrony danych osobowych.

Pytanie 33

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

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

Pytanie 34

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

Ilustracja do pytania
A. Największego Wspólnego Dzielnika
B. największego elementu w zbiorze liczb
C. Najmniejszej Wspólnej Wielokrotności
D. najmniejszej liczby pierwszej w danym zakresie
Największy element zbioru liczb to zagadnienie, które nie ma związku z algorytmem Euklidesa. Wymaga to raczej prostego przeszukania zbioru, niż stosowania algorytmu opierającego się na operacjach arytmetycznych na dwóch liczbach. Z kolei najmniejsza liczba pierwsza w przedziale wymaga zastosowania zupełnie innych technik, jak na przykład sita Eratostenesa, które pozwala na znalezienie wszystkich liczb pierwszych mniejszych od określonej wartości. Algorytm Euklidesa nie jest w tym przypadku użyteczny, gdyż nie zajmuje się on pojęciem liczby pierwszej. Najmniejsza Wspólna Wielokrotność (NWW) to zagadnienie, które choć związane z NWD, wymaga innego podejścia. NWW można obliczyć mając już wyznaczony NWD dwóch liczb, korzystając ze wzoru NWW(a, b) = (a * b) / NWD(a, b). Dlatego algorytm Euklidesa może być pomocnym narzędziem w obliczaniu NWW, ale sam w sobie nie jest przeznaczony do bezpośredniego jej wyznaczania. Typowym błędem jest myślenie, że algorytmy matematyczne mają bardziej uniwersalne zastosowanie niż w rzeczywistości, co prowadzi do niewłaściwego użycia takich narzędzi. Algorytm Euklidesa jest wysoce wyspecjalizowany, dlatego warto zrozumieć jego ograniczenia i specyficzne zastosowania w kontekście matematyki i inżynierii komputerowej.

Pytanie 35

Jaka będzie zawartość zmiennej filteredItems po wykonaniu poniższego kodu?

const items = [
  { id: 1, name: 'phone', price: 500 },
  { id: 2, name: 'laptop', price: 1000 },
  { id: 3, name: 'tablet', price: 750 }
];

const filteredItems = items.filter(item => item.price > 600)
                          .map(item => item.name);
A. [{id: 2, name: 'laptop', price: 1000}, {id: 3, name: 'tablet', price: 750}]
B. ['laptop', 'tablet', 'phone']
C. ['laptop', 'tablet']
D. ['phone']
W kontekście analizy błędnych odpowiedzi, istotne jest, aby zrozumieć, jak działają metody filter oraz map, które są kluczowe w tym przykładzie. Gdybyśmy zajęli się odpowiedzią, która wskazuje na to, że filteredItems to ['phone'], to błędne jest założenie, że 'phone' spełnia warunek price > 600. W rzeczywistości jego cena wynosi 500, co nie kwalifikuje go do dołączenia do wynikowej tablicy. Kolejna odpowiedź sugerująca, że filteredItems to [{id: 2, name: 'laptop', price: 1000}, {id: 3, name: 'tablet', price: 750}] nie uwzględnia, że metoda map zmienia obiekty na ich nazwy, a nie zwraca pełnych obiektów. To pokazuje nieporozumienie dotyczące łańcuchowego wywołania metod w JavaScript. Ostatnia opcja, która sugeruje, że do filteredItems dołączy się również 'phone', wynika z błędnego zrozumienia zasadności filtracji oraz pierwszeństwa warunków w metodach. Aby skutecznie korzystać z takich metod, ważne jest, aby dobrze zrozumieć ich działanie oraz potrafić analizować dane według zadanych kryteriów. W praktyce, często używa się takich metod w aplikacjach webowych do przetwarzania i wyświetlania zestawów danych, co czyni umiejętność ich zastosowania niezwykle istotną.

Pytanie 36

Pierwszym krokiem w procesie tworzenia aplikacji jest

A. opracowanie architektury systemu
B. wybór zestawu typów i zmiennych dla aplikacji
C. stworzenie przypadków testowych
D. analiza wymagań klienta
Analiza wymagań klienta to taki trochę fundament całego procesu tworzenia aplikacji. Bez niej ciężko ruszyć dalej, bo nie wiadomo, co właściwie trzeba zbudować i jakie cele ma spełniać projekt. Z mojego doświadczenia wynika, że rozmowy z klientem potrafią odkryć wiele niewypowiedzianych oczekiwań – czasem nawet takie, o których sam klient nie pomyślał, ale są kluczowe dla sukcesu produktu. Bez szczegółowego zrozumienia, czego dokładnie potrzebuje użytkownik końcowy, łatwo wpaść w pułapkę budowania funkcjonalności na ślepo lub tworzenia rozwiązań, które nikomu się nie przydadzą. W branży IT mówi się, że im lepsza analiza na starcie, tym mniej poprawek i niespodzianek później w trakcie realizacji. Standardy takie jak IEEE 830 czy metodyki typu Agile i Scrum mocno podkreślają rolę rozmów z klientem oraz dokumentowania wymagań, zanim przejdzie się dalej. Praktycznie każda większa firma najpierw zbiera wymagania – czy to poprzez warsztaty, wywiady, czy analizę procesów biznesowych. Takie podejście pozwala lepiej zaplanować zakres projektu, oszacować koszty i ustalić priorytety. Bez tego nawet najlepsza architektura czy testy nie uratują projektu przed nieporozumieniami i opóźnieniami.

Pytanie 37

Który element dokumentacji technicznej jest istotny dla ustalenia metod ochrony danych w aplikacji?

A. System ochrony aplikacji
B. Opis architektury klient-serwer
C. Koncepcja interfejsu użytkownika
D. Harmonogram zarządzania zadaniami
Plan zarządzania zadaniami koncentruje się na harmonogramie i podziale pracy, ale nie odnosi się do ochrony danych. Opis architektury klient-serwer dotyczy modelu komunikacji między aplikacją a serwerem, ale nie precyzuje mechanizmów zabezpieczeń. Projekt interfejsu użytkownika jest kluczowy dla doświadczeń użytkowników, ale nie obejmuje bezpośrednich mechanizmów ochrony danych i aplikacji, które są uwzględniane w specyfikacji systemu zabezpieczeń.

Pytanie 38

Jakie z wymienionych funkcji są typowe dla narzędzi służących do zarządzania projektami?

A. Nadzorowanie postępu realizacji
B. Przeprowadzanie analizy statystycznej
C. Opracowywanie diagramów przepływu
D. Tworzenie interfejsu użytkownika
Tworzenie diagramów przepływu to funkcja wspierająca dokumentację i analizę procesów, ale nie jest podstawowym narzędziem monitorowania postępów prac. Projektowanie interfejsu użytkownika dotyczy tworzenia atrakcyjnych wizualnie i funkcjonalnych aplikacji, lecz nie odnosi się bezpośrednio do zarządzania projektami. Analiza statystyczna to ważny element podejmowania decyzji na podstawie danych, jednak jej celem jest przetwarzanie informacji, a nie zarządzanie zadaniami i postępem projektu.

Pytanie 39

Który z wymienionych składników wchodzi w skład podstawowego wyposażenia środowiska IDE?

A. Edytor graficzny, przeglądarka kodu, narzędzia analityczne
B. Kompilator, edytor kodu, debugger
C. Edytor tekstowy, przeglądarka internetowa, translator
D. Kompilator, serwer webowy, system kontroli wersji
Edytor tekstowy, przeglądarka internetowa i translator nie są integralnymi komponentami środowiska IDE. Chociaż edytor tekstowy może być używany do pisania kodu, brakuje mu zaawansowanych funkcji dostępnych w edytorach IDE, takich jak podpowiedzi składniowe, automatyczne uzupełnianie kodu czy narzędzia do debugowania. Kompilator, serwer webowy i system kontroli wersji są ważne w środowisku webowym, ale nie wszystkie aplikacje desktopowe wymagają serwera webowego. Edytor graficzny i narzędzia analityczne mogą wspierać rozwój interfejsu, ale nie są to podstawowe narzędzia każdego IDE.

Pytanie 40

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
Plan wdrożenia aplikacji opisuje proces implementacji oprogramowania w środowisku produkcyjnym i nie zawiera szczegółów związanych z przeprowadzaniem testów. Instrukcje dotyczące optymalizacji kodu koncentrują się na poprawie wydajności i refaktoryzacji, ale nie obejmują raportów z testów i procedur ich przeprowadzania. Dane techniczne serwera dotyczą infrastruktury IT, np. konfiguracji sprzętu i oprogramowania, ale nie odnoszą się do procesu testowania aplikacji webowych.