Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 7 stycznia 2025 23:22
  • Data zakończenia: 7 stycznia 2025 23:37

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Które z wymienionych opcji wspiera osoby niewidome w korzystaniu z witryn internetowych?

A. Zmiana rozdzielczości ekranu
B. Implementacja czytnika ekranu (screen reader)
C. Ograniczenie liczby grafik na stronie
D. Umożliwienie modyfikacji czcionki
Dodanie czytnika ekranu (screen reader) jest kluczowym rozwiązaniem, które znacząco ułatwia osobom niewidomym i słabowidzącym korzystanie z serwisów internetowych. Czytniki ekranu to oprogramowanie przekształcające tekst na stronie internetowej na mowę, co pozwala użytkownikom na interakcję z treścią dostępną w internecie. Technologia ta opiera się na standardach dostępności, takich jak WCAG (Web Content Accessibility Guidelines), które zalecają projektowanie stron przyjaznych dla osób z różnymi niepełnosprawnościami. Przykładem działania czytnika ekranu może być program JAWS, który umożliwia użytkownikom nawigację po stronach internetowych poprzez komendy klawiaturowe oraz odczytywanie treści na głos. Dzięki czytnikom ekranu, osoby niewidome mają możliwość dostępu do informacji, komunikacji oraz interakcji w sieci, co wpisuje się w ideę cyfrowej inkluzji i równości szans. Wprowadzenie czytnika ekranu na stronie internetowej to nie tylko techniczne wsparcie, ale również wyraz odpowiedzialności społecznej, mający na celu zapewnienie, że wszyscy użytkownicy mają równe prawo do korzystania z zasobów w sieci.

Pytanie 2

Aby zdefiniować zmienną, która będzie działała jako licznik instancji danej klasy, należy wprowadzenie takiego zmiennej poprzedzić słowem kluczowym

A. virtual
B. static
C. operator
D. register
Słowo 'register' oznacza zmienną przechowywaną w rejestrze procesora, ale nie jest używane do deklarowania pól klasowych. 'Operator' odnosi się do przeciążania operatorów, co nie ma związku z liczeniem instancji klasy. 'Virtual' dotyczy metod wirtualnych i polimorfizmu, a nie liczenia obiektów klasy.

Pytanie 3

Jaką instrukcję należy wykorzystać do poprawnej deklaracji zmiennej typu string w C++?

A. string name = "Jan"
B. int name = "Jan"
C. float name = "Jan"
D. bool name = "Jan"
Deklaracja 'int name = "Jan"' to nie najlepszy pomysł, bo typ 'int' służy do przechowywania liczb całkowitych, a nie tekstu. 'Float name = "Jan"' też jest błędne, bo 'float' to liczby zmiennoprzecinkowe. No i 'bool name = "Jan"' to już całkowita pomyłka, bo 'bool' przechowuje tylko wartości logiczne, a nie tekstowe. W C++ do trzymania łańcuchów znaków używamy typu 'string'. Pamiętaj, że deklaracje muszą być zgodne z tym, co chcemy przechowywać, żeby wszystko działało jak należy.

Pytanie 4

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

A. zespól cieśni kanału nadgarstka
B. zespół suchego oka
C. Dyskopatia
D. kifoza
Zespół cieśni kanału nadgarstka to schorzenie, które powstaje w wyniku ucisku na nerw pośrodkowy w kanale nadgarstka. Jest to wąski tunel utworzony przez kości nadgarstka oraz więzadła, przez który przechodzą ścięgna oraz nerwy odpowiedzialne za czucie i ruch w dłoni. Objawy zespołu cieśni kanału nadgarstka obejmują bóle, drętwienie oraz zaburzenia czucia, szczególnie w obszarze pierwszych trzech palców ręki. Praca z myszą komputerową i klawiaturą przez długi czas, szczególnie w niewłaściwej ergonomicznej pozycji, może prowadzić do nadmiernego obciążenia i zapalenia tkanek otaczających nerw pośrodkowy. W praktyce, osoby cierpiące na to schorzenie często skarżą się na problemy z chwytaniem przedmiotów, a także na osłabienie siły uchwytu. W leczeniu zespołu cieśni kanału nadgarstka zaleca się m.in. unikanie czynników przyczynowych, stosowanie ortez, fizjoterapię oraz w niektórych przypadkach leczenie chirurgiczne. Należy również zwrócić uwagę na ergonomię stanowiska pracy, co może znacząco zredukować ryzyko wystąpienia tej dolegliwości. Zarządzanie czasem spędzanym przy komputerze oraz regularne przerwy są kluczowe w prewencji tego schorzenia.

Pytanie 5

Który z faz cyklu życia projektu wiąże się z identyfikacją wymagań użytkownika?

A. Analiza
B. Przeprowadzanie testów
C. Wdrażanie
D. Etap planowania
Analiza to etap cyklu życia projektu, podczas którego określane są wymagania użytkownika. W tej fazie zespół projektowy przeprowadza badania, konsultacje i warsztaty, aby zrozumieć potrzeby klienta i użytkowników końcowych. Wynikiem analizy jest szczegółowa specyfikacja funkcjonalna i niefunkcjonalna, która stanowi podstawę do projektowania i implementacji. Prawidłowo przeprowadzona analiza minimalizuje ryzyko nieporozumień oraz zapewnia, że finalny produkt będzie odpowiadał na realne potrzeby użytkowników.

Pytanie 6

Który z wymienionych aktów prawnych odnosi się do ochrony danych osobowych w krajach Unii Europejskiej?

A. Open Source Initiative
B. GDPR (RODO)
C. Creative Commons
D. DMCA
GDPR (RODO) to akt prawny dotyczący ochrony danych osobowych w Unii Europejskiej. Wprowadza on jednolite zasady przetwarzania danych, zwiększając ochronę prywatności obywateli. RODO daje użytkownikom prawo do dostępu do swoich danych, ich poprawiania, a także żądania ich usunięcia (prawo do bycia zapomnianym). Firmy muszą transparentnie informować o celach przetwarzania danych oraz zapewniać odpowiedni poziom zabezpieczeń. Niezastosowanie się do przepisów RODO skutkuje wysokimi karami finansowymi.

Pytanie 7

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

A. Koncentrowanie się wyłącznie na estetyce aplikacji
B. Wykorzystanie technik responsywnego projektowania interfejsu
C. Pełne dopasowanie aplikacji do systemu Windows
D. Opracowanie dedykowanego kodu dla każdej platformy
Zastosowanie technik responsywnego projektowania interfejsu to najlepsze podejście do tworzenia aplikacji działających na różnych platformach. Responsywne projektowanie umożliwia dostosowanie interfejsu do różnych rozdzielczości ekranów i urządzeń, co zapewnia jednolite doświadczenia użytkownika. Użycie elastycznych siatek (grid), media queries oraz skalowalnych elementów pozwala na automatyczne dostosowanie wyglądu aplikacji, eliminując konieczność tworzenia oddzielnych wersji dla każdej platformy.

Pytanie 8

Czym jest klasa w programowaniu obiektowym?

A. wskaźnik
B. typ danych
C. zmienna
D. instrukcja
Zmienna to jednostka przechowująca dane, ale nie definiuje struktury obiektu. Wskaźnik przechowuje adresy pamięci, lecz sam w sobie nie jest typem danych wyższego poziomu. Instrukcja to pojedyncze polecenie wykonywane przez komputer, które nie opisuje ani nie reprezentuje klasy obiektowej.

Pytanie 9

Jaką złożoność obliczeniową posiada podany algorytm?

Ilustracja do pytania
A. O(n)
B. O(n2)
C. O(n log n)
D. O(1)
O(n log n) – to typowa złożoność dla algorytmów sortowania, na przykład quicksort czy mergesort. O(1) – to oznacza, że algorytm działa w stałym czasie, niezależnie od wielkości danych, co tu nie pasuje. O(n^2) – to z kolei złożoność dla algorytmów, które mają kwadratową wydajność, jak na przykład sortowanie bąbelkowe, ale to nie jest to, czego szukamy w tym przypadku.

Pytanie 10

Zalecenia standardu WCAG 2.0 dotyczące percepcji koncentrują się na

A. zrozumieniu i wiarygodności prezentowanych treści na stronie
B. prezentacji elementów interfejsu użytkownika
C. umożliwieniu interakcji między komponentami użytkownika za pomocą klawiatury
D. zapewnieniu odpowiedniej ilości czasu na przeczytanie i zrozumienie treści
Pierwsza z niepoprawnych odpowiedzi odnosi się do zrozumienia i rzetelności w dostarczonych treściach na stronie, co jest ważnym aspektem, ale nie dotyczy bezpośrednio percepcji komponentów interfejsu użytkownika. Zrozumienie treści jest związane z czytelnością tekstu oraz jego strukturalną formą, co nie jest bezpośrednio związane z interfejsem. Kolejna niepoprawna odpowiedź, dotycząca zapewnienia wystarczającej ilości czasu na przeczytanie i przetworzenie treści, odnosi się bardziej do zasad dostępności dotyczących czasu, które są istotne dla użytkowników z różnymi zdolnościami przetwarzania informacji, ale nie dotyczą samej percepcji komponentów interfejsu. Ostatnia odpowiedź, dotycząca zapewnienia interakcji pomiędzy komponentami użytkownika przy użyciu klawiatury, również nie odnosi się bezpośrednio do percepcji, a bardziej do interakcji użytkownika z systemem. Choć interakcja jest istotna, kluczowe jest zrozumienie, że percepcja skupia się na sposobie, w jaki użytkownicy dostrzegają i interpretują te komponenty, a nie na ich interakcji. Dlatego też, te odpowiedzi, choć dotyczą ważnych kwestii dostępności, nie są zgodne z istotą pytania.

Pytanie 11

Wskaż odpowiedź, która używa parafrazowania jako metodę aktywnego słuchania, gdy klient mówi: "Interesuje mnie aplikacja, która działa szybko, niezależnie od tego, czy korzysta z niej kilku czy tysiąc użytkowników"?

A. Dlaczego Pani potrzebuje takiej aplikacji?
B. Czuję pewne wątpliwości w Pani głosie. Czy mogę zadać kilka pytań?
C. Jeśli dobrze zrozumiałam, chodzi o aplikację, która efektywnie obsługuje różne obciążenia
D. Ilu użytkowników planuje z niej skorzystać?
Inne odpowiedzi nie wykorzystują parafrazowania tak, jak powinny, co psuje komunikację. Pierwsza odpowiedź 'Dlaczego Pani szuka takiej aplikacji?' zamiast nawiązania do tego, co mówił klient, w ogóle zmienia temat rozmowy. Klient może poczuć się wtedy niezrozumiany. Zamiast skupić się na jego potrzebach, konsultant pyta o motywację, co nie jest teraz najważniejsze. Druga odpowiedź, 'Ilu dokładnie użytkowników będzie z niej korzystać?' pyta o liczbę użytkowników, ale to nie odnosi się do kluczowej kwestii dotyczącej wydajności aplikacji. Takie pytanie może wprowadzić zamieszanie i skupić rozmowę na detalach, które klient nie uważa za ważne. Odpowiedź 'Wyczuwam niepewność w Pani głosie. Proszę pozwolić mi zadać kilka pytań' też jest nietrafiona, bo zamiast słuchać i parafrazować, sugeruje, że konsultant sam nie jest pewny, co może wprowadzać dodatkowe wątpliwości. Jeśli nie rozumiemy potrzeb klienta, to możemy stracić jego zainteresowanie i zaufanie, a to jest kluczowe w sprzedaży.

Pytanie 12

Jaką strukturę danych stosuje się w algorytmie BFS (przeszukiwanie wszerz)?

A. Zbiór
B. Kolejka
C. Graf
D. Tablica
Stos jest używany w algorytmie DFS (przeszukiwanie w głąb), a nie w BFS, ponieważ DFS eksploruje możliwie najgłębiej dany graf, zanim wróci do poprzedniego poziomu. Lista jest używana jako struktura ogólnego przeznaczenia, ale nie jest podstawowym narzędziem w algorytmie BFS. Drzewa są strukturą danych, którą BFS może przeszukiwać, ale sama struktura drzewa nie jest narzędziem używanym w algorytmie BFS – to kolejka pełni tę funkcję, przechowując wierzchołki do odwiedzenia.

Pytanie 13

Do implementacji w aplikacji jednokierunkowej funkcji skrótu, zwanej funkcją haszującą, można wykorzystać algorytm

A. DES
B. MD5
C. AES
D. RSA
DES to algorytm szyfrowania symetrycznego, nie funkcja haszująca. RSA to algorytm asymetryczny wykorzystywany do szyfrowania i podpisów cyfrowych. AES to zaawansowany standard szyfrowania blokowego, ale nie jest funkcją skrótu.

Pytanie 14

Wskaż język programowania, który pozwala na stworzenie aplikacji mobilnej w środowisku Android Studio?

A. Objective-C
B. Java
C. Swift
D. C++
Java to jeden z podstawowych języków programowania używanych do tworzenia aplikacji mobilnych na platformę Android. Jest to język, który został stworzony przez firmę Sun Microsystems, a jego pierwsza wersja została wydana w 1995 roku. Java charakteryzuje się silnym typowaniem, obiektowością oraz wsparciem dla programowania wielowątkowego, co czyni go idealnym do tworzenia wydajnych aplikacji mobilnych. Android Studio, oficjalne zintegrowane środowisko programistyczne (IDE) dla Androida, oferuje pełne wsparcie dla Javy, w tym możliwość korzystania z bibliotek Android SDK. Dzięki temu programiści mogą łatwo tworzyć interfejsy użytkownika, zarządzać zasobami oraz implementować logikę aplikacji. Przykładowo, pisząc aplikację do zarządzania zadaniami, programista może użyć Javy do stworzenia klas modelujących zadania oraz do obsługi interfejsu graficznego z wykorzystaniem XML i Java. Ponadto, Java jest zgodna z zasadami programowania obiektowego, co pozwala na łatwe zarządzanie kodem i jego ponowne wykorzystanie. Warto również zaznaczyć, że Java jest wspierana przez dużą społeczność, co zapewnia bogaty ekosystem bibliotek oraz narzędzi, ułatwiających rozwój aplikacji na Androida.

Pytanie 15

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

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

Pytanie 16

Który z wymienionych dysków oferuje najszybszy dostęp do danych?

A. SSD SATA III, prędkość odczytu do 550 MB/s
B. HDD 5400 RPM, SATA II, 32 MB Cache
C. HDD 7200 RPM, SATA III, 64 MB Cache
D. SSD NVMe PCIe 3.0, prędkość odczytu do 3500 MB/s
Odpowiedź wskazująca na SSD NVMe PCIe 3.0 jako najszybszy dysk do odczytu danych jest zgodna z obecnymi standardami technologii przechowywania. Dyski SSD (Solid State Drive) korzystają z pamięci flash, co pozwala na znacznie szybszy dostęp do danych w porównaniu do tradycyjnych dysków HDD (Hard Disk Drive), które działają na zasadzie mechanicznych ruchomych elementów. Dyski NVMe (Non-Volatile Memory Express) są szczególnie wydajne, ponieważ wykorzystują interfejs PCIe (Peripheral Component Interconnect Express), co umożliwia znacznie wyższe prędkości transferu danych. W przypadku SSD NVMe PCIe 3.0, prędkość odczytu może osiągać do 3500 MB/s, co jest znaczącą różnicą w porównaniu do prędkości odczytu w dyskach HDD i SSD SATA. Przykładowo, w zastosowaniach takich jak edycja wideo, renderowanie grafiki 3D czy gry komputerowe, wyższa prędkość odczytu przekłada się na szybsze ładowanie danych i lepszą wydajność systemu. Standardy SATA III dla HDD również mają swoje ograniczenia, ponieważ maksymalna teoretyczna prędkość transferu wynosi 6 Gb/s, co jest dalekie od osiągów oferowanych przez NVMe. Dlatego SSD NVMe PCIe 3.0 jest zdecydowanym liderem w kontekście wydajności odczytu danych w porównaniu do pozostałych opcji.

Pytanie 17

W zamieszczonej ramce znajdują się notatki testera dotyczące przeprowadzanych testów aplikacji. Jakiego typu testy planuje przeprowadzić tester?

Ilustracja do pytania
A. Wydajnościowe
B. Interfejsu
C. Jednostkowe
D. Bezpieczeństwa
Testy wydajnościowe są kluczowe dla zapewnienia, że system działa sprawnie pod różnym obciążeniem. Są one wykonywane, aby zrozumieć, jak aplikacja zachowuje się w warunkach rzeczywistych, kiedy wiele użytkowników korzysta z niej jednocześnie. W pytaniu wymienione zostały zadania takie jak mierzenie czasu logowania się użytkowników oraz sprawdzanie, czy czas ten wzrasta wraz ze wzrostem liczby użytkowników. To typowe aspekty testów wydajnościowych. Takie testy pomagają określić limity skalowalności i zapewniają, że aplikacja może obsługiwać oczekiwaną liczbę użytkowników bez spadku wydajności. Standardy branżowe, takie jak ISO/IEC 25010, zwracają uwagę na konieczność testowania wydajności, by zidentyfikować potencjalne wąskie gardła i zapewnić satysfakcjonujące doświadczenia użytkownikom. Dobrymi praktykami są używanie narzędzi takich jak JMeter czy LoadRunner, które umożliwiają symulację obciążenia i analizę wyników w celu optymalizacji kodu i infrastruktury. Tego typu testy są nieodzowne przed wdrożeniem aplikacji produkcyjnej, aby zapewnić jej niezawodne działanie.

Pytanie 18

Złośliwe oprogramowanie stworzone w celu przyznania hakerom uprawnień administracyjnych do komputera ofiary bez jej świadomości, to

A. keylogger
B. rootkit
C. robak
D. wirus
Rootkit to rodzaj szkodliwego oprogramowania, które ukrywa swoją obecność i zapewnia hakerom uprawnienia administracyjne do systemu ofiary. Jest trudny do wykrycia i stanowi poważne zagrożenie bezpieczeństwa.

Pytanie 19

Jakie są cechy biblioteki statycznej w zestawieniu z dynamiczną?

A. Jest wczytywana do pamięci podczas działania aplikacji
B. Zostaje dodana do pliku wykonywalnego w trakcie kompilacji
C. Nie potrzebuje obecności pliku wykonywalnego
D. Może być zmieniana w czasie działania programu
Biblioteki dynamiczne są ładowane do pamięci podczas działania programu, co pozwala na oszczędność miejsca i elastyczność w aktualizacjach. Twierdzenie, że biblioteka nie wymaga obecności pliku wykonywalnego, jest błędne – biblioteka musi być dostępna w systemie, aby program mógł z niej korzystać. Możliwość modyfikacji biblioteki w trakcie działania programu dotyczy tylko bibliotek dynamicznych, a nie statycznych, ponieważ kod bibliotek statycznych jest na stałe wkompilowany w aplikację.

Pytanie 20

Jakie słowa kluczowe są stosowane w języku C++ do zarządzania wyjątkami?

A. throw i handle
B. except i finally
C. try i catch
D. try i raise
Słowa 'throw' i 'handle' nie są standardową konstrukcją obsługi wyjątków w C++. 'Throw' służy do zgłaszania wyjątków, ale 'handle' nie jest używane w tym kontekście – zamiast tego stosuje się 'catch'. 'Except' i 'finally' są składnią charakterystyczną dla Pythona, a nie dla C++. 'Raise' to również słowo kluczowe używane w Pythonie do zgłaszania wyjątków, ale nie występuje w C++ – tam używa się 'throw'.

Pytanie 21

Który z poniższych składników NIE jest konieczny do stworzenia klasy w C++?

A. Zastosowanie słowa kluczowego class
B. Definicja funkcji członkowskich klasy
C. Definicja destruktora
D. Deklaracja atrybutów klasy
Do utworzenia klasy w C++ nie jest wymagana definicja destruktora. Destruktor to specjalna metoda klasy, która jest wywoływana automatycznie w momencie zniszczenia obiektu, ale jego obecność jest opcjonalna. Klasy, które nie operują bezpośrednio na zasobach zewnętrznych, takich jak dynamiczna pamięć lub pliki, często nie potrzebują destruktora, ponieważ domyślny destruktor generowany przez kompilator jest wystarczający. Aby utworzyć klasę, wystarczy deklaracja pól i metod oraz użycie słowa kluczowego 'class'. To sprawia, że C++ pozwala na szybkie definiowanie prostych klas, które można później rozwijać w miarę potrzeby.

Pytanie 22

Jaką funkcję pełnią okna dialogowe niemodalne?

A. zarządzania ustawieniami aplikacji, jako okno, które pozostaje widoczne na ekranie przez cały czas trwania aplikacji
B. zarządzania stanem aplikacji za pomocą systemów menu
C. prezentowania komunikatów, które wymagają potwierdzenia, aby kontynuować działanie aplikacji
D. wstrzymywania działania aplikacji w czasie wprowadzania oraz zatwierdzania danych
Modalne okna dialogowe blokują działanie aplikacji do czasu ich zamknięcia. Okna wymagające potwierdzenia przed kontynuacją to przykład dialogów modalnych, a nie niemodalnych. Komunikaty kontrolujące stan aplikacji przez systemy menu są inną formą interakcji, niezwiązaną z dialogami niemodalnymi.

Pytanie 23

Aby wykorzystać framework Django, należy pisać w języku

A. Java
B. C#
C. Python
D. JavaScript
Framework Django jest napisany w języku Python. Jest to jeden z najpopularniejszych frameworków do tworzenia aplikacji webowych, oferujący bogatą funkcjonalność, elastyczność i szybki czas realizacji projektów.

Pytanie 24

Jakie działanie wykonuje polecenie "git pull"?

A. Zachowuje zmiany w lokalnym repozytorium
B. Tworzy nową gałąź w repozytorium
C. Eliminuje plik z repozytorium
D. Pobiera zmiany z zdalnego repozytorium i scala je z lokalnym
Polecenie 'git pull' pobiera najnowsze zmiany ze zdalnego repozytorium i scala je z lokalnym repozytorium. Jest to jedno z podstawowych poleceń w Git, pozwalające na synchronizację lokalnej kopii projektu z wersją przechowywaną w chmurze lub na serwerze. Dzięki 'git pull' programiści mogą na bieżąco aktualizować swoje repozytoria i unikać konfliktów, które mogłyby wyniknąć z pracy na nieaktualnej wersji kodu. Proces ten automatycznie łączy pobrane zmiany, co eliminuje konieczność ręcznego kopiowania plików lub komend.

Pytanie 25

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

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

Pytanie 26

Które z poniższych twierdzeń najlepiej charakteryzuje bibliotekę w kontekście programowania?

A. Zestaw funkcji i klas, które mogą być wykorzystywane w aplikacjach
B. Zbiór zmiennych globalnych, które są dostępne w trakcie działania aplikacji
C. Plik wykonywalny, który funkcjonuje jako odrębny program
D. Zbiór kodu źródłowego, który jest stosowany wyłącznie w fazie kompilacji aplikacji
Biblioteka nie służy tylko podczas kompilacji – funkcje, które zawiera, są też dostępne w trakcie działania programu. Plik wykonywalny to właściwie finalny produkt kompilacji, a nie biblioteka, która jest bardziej narzędziem do budowy aplikacji. Zbiór zmiennych globalnych, które są dostępne w czasie działania programu, to raczej cecha środowiska, w którym działa program, lub interpreterów, a nie to, co definiuje bibliotekę.

Pytanie 27

Jakie znaczenie ma termin "przesłanianie metody" w kontekście programowania obiektowego?

A. Zmiana metody prywatnej na metodę publiczną
B. Zastosowanie tej samej nazwy metody w klasie bazowej i pochodnej, ale z inną implementacją w klasie pochodnej
C. Przenoszenie metod z jednej klasy do drugiej
D. Tworzenie nowej metody w klasie bazowej
Definiowanie nowej metody w klasie bazowej to zwykła deklaracja metody i nie jest to przesłanianie. Zamiana metody prywatnej na publiczną to zmiana modyfikatora dostępu, a nie przesłanianie. Kopiowanie metod z jednej klasy do innej nie jest związane z przesłanianiem – kopiowanie kodu narusza zasadę DRY (Don't Repeat Yourself) i jest rzadko stosowane w dobrze zaprojektowanych aplikacjach obiektowych.

Pytanie 28

Algorytm wyszukiwania sekwencyjnego z wykorzystaniem wartownika opiera się na założeniu, że

A. zbiór ma zawsze 100 elementów
B. zbiór danych wejściowych musi być uporządkowany
C. na końcu analizowanego zbioru należy dodać wartownika
D. szukany element powinien wystąpić wielokrotnie w zbiorze
Zbiór wejściowy musi być posortowany to błędna informacja, ponieważ algorytm sekwencyjnego wyszukiwania działającego z wartownikiem nie wymaga sortowania danych. W rzeczywistości przeszukiwany zbiór może być w dowolnej kolejności, co jest jedną z jego zalet w porównaniu do bardziej złożonych algorytmów, takich jak wyszukiwanie binarne, które rzeczywiście wymaga posortowanych danych. Kolejna nieprawidłowa opcja odnosi się do założenia, że zbiór jest zawsze 100 elementowy. Algorytm sekwencyjnego wyszukiwania działa na zbiorach o dowolnej wielkości, co czyni go elastycznym rozwiązaniem w różnych kontekstach aplikacyjnych. Ostatnim niepoprawnym stwierdzeniem jest to, że szukany element musi powtórzyć się kilkakrotnie w zbiorze. Algorytm ten jest w stanie zidentyfikować element, który występuje w zbiorze jednorazowo, jak i taki, który występuje wielokrotnie. Jego głównym celem jest zlokalizowanie przynajmniej jednego wystąpienia poszukiwanego elementu, niezależnie od jego ilości w zbiorze. Dlatego każda z tych odpowiedzi jest nieprawidłowa i nie oddaje rzeczywistej natury funkcjonowania algorytmu sekwencyjnego wyszukiwania z wartownikiem.

Pytanie 29

Jakiego typu testy są stosowane do sprawdzania funkcjonalności prototypu interfejsu?

A. Testy efektywnościowe
B. Testy zgodności
C. Testy interfejsu
D. Testy obciążeniowe
Testy interfejsu są kluczowe w procesie weryfikacji funkcji prototypu interfejsu użytkownika. Testy te koncentrują się na sprawdzeniu poprawności działania wszystkich elementów graficznych, takich jak przyciski, pola tekstowe, menu rozwijane oraz formularze. Testy interfejsu pozwalają upewnić się, że interakcje użytkownika z aplikacją przebiegają zgodnie z oczekiwaniami i nie powodują błędów w nawigacji. Dzięki nim można wykryć problemy związane z nieprawidłowym rozmieszczeniem elementów, brakiem reakcji na kliknięcia lub nieintuicyjnym działaniem, co pozwala na wczesne wdrożenie poprawek i zwiększenie użyteczności aplikacji.

Pytanie 30

Termin ryzyko zawodowe odnosi się do

A. efektów zagrożeń wypadkowych, jakie występują w miejscu zatrudnienia
B. ciężkości skutków niepożądanych zdarzeń związanych z pracą
C. zagrożenia wypadkowego, które może wystąpić w miejscu pracy
D. prawdopodobieństwa, że zdarzenia niepożądane związane z pracą spowodują straty, w szczególności negatywne skutki zdrowotne dla pracowników
Ryzyko zawodowe to prawdopodobieństwo wystąpienia niepożądanych zdarzeń związanych z pracą, mogących prowadzić do strat zdrowotnych lub materialnych. Ocena ryzyka to kluczowy element zarządzania bezpieczeństwem pracy.

Pytanie 31

Jakie środowisko developerskie służy do tworzenia aplikacji na platformę iOS?

A. XCode
B. Eclipse
C. Studio Androida
D. Visual Studio Code
XCode to oficjalne środowisko programistyczne (IDE) firmy Apple, które jest wykorzystywane do tworzenia aplikacji na systemy iOS, macOS, watchOS i tvOS. XCode oferuje pełne wsparcie dla języków Swift i Objective-C oraz narzędzia do projektowania interfejsów użytkownika (Storyboard), debugowania aplikacji, testowania wydajności i optymalizacji kodu. XCode posiada także symulatory urządzeń Apple, co umożliwia testowanie aplikacji na różnych modelach iPhone’ów, iPadów oraz Apple Watch. XCode jest niezbędnym narzędziem dla deweloperów tworzących aplikacje na ekosystem Apple i pozwala na łatwą publikację aplikacji w App Store.

Pytanie 32

Które z wymienionych środowisk programistycznych jest rekomendowane do developing aplikacji w języku Python z użyciem frameworka Django?

A. Android Studio
B. PyCharm
C. Unity
D. XCode
PyCharm to jedno z najbardziej zaawansowanych środowisk programistycznych (IDE) dedykowanych do tworzenia aplikacji w języku Python. Jest to narzędzie preferowane przez programistów korzystających z frameworka Django, który jest popularnym rozwiązaniem do budowy aplikacji webowych. PyCharm oferuje rozbudowane wsparcie dla Django, umożliwiając szybkie tworzenie projektów, integrację z bazami danych oraz wygodne debugowanie aplikacji. IDE zapewnia również możliwość uruchamiania serwerów deweloperskich, podglądu zmian w czasie rzeczywistym oraz automatyczne uzupełnianie kodu, co znacząco zwiększa efektywność pracy nad aplikacjami webowymi. Dzięki PyCharm programiści mogą łatwo zarządzać migracjami bazy danych, tworzyć modele i szablony, co sprawia, że jest to narzędzie nieocenione w ekosystemie Django.

Pytanie 33

Jakie cechy posiada model prototypowy w zakresie zarządzania projektami?

A. Szczegółowym planowaniem każdego etapu projektu przed jego realizacją
B. Realizowaniem pełnej wersji produktu przed przeprowadzeniem testów
C. Przygotowaniem wersji systemu w ograniczonym zakresie w celu uzyskania opinii od użytkownika
D. Rozwojem produktu w sposób iteracyjny w krótkich cyklach
Model prototypowy w zarządzaniu projektami to taka sprytna technika, gdzie tworzymy coś w rodzaju wczesnej wersji systemu, czyli prototypu. To nam pozwala zebrać opinie od użytkowników i przetestować różne pomysły zanim w ogóle weźmiemy się za pełną wersję. Fajną sprawą jest to, że gdy mamy ten prototyp, to łatwiej wyłapać błędy, zanim wszystko zostanie w pełni zbudowane. Największa zaleta? Możemy dostosować i poprawiać aplikację na podstawie tego, co mówią użytkownicy. Dzięki temu ryzyko, że stworzymy coś, co nie spełnia ich oczekiwań, jest znacznie mniejsze. Prototypy to często chleb powszedni w projektach UX/UI, aplikacjach webowych czy oprogramowaniu dla firm, gdzie tak istotne jest, by dobrze trafiać w potrzeby końcowych użytkowników.

Pytanie 34

Wskaż programowanie, w którym możliwe jest stworzenie aplikacji mobilnej dla systemu Android?

A. Obiective-C
B. Java
C. C++
D. Swift
Java jest jednym z najważniejszych języków programowania wykorzystywanych do tworzenia aplikacji mobilnych na platformę Android. Został stworzony przez firmę Sun Microsystems i obecnie jest rozwijany przez Oracle. Java jest językiem obiektowym, co oznacza, że umożliwia programistom tworzenie aplikacji w sposób modularny i zorganizowany. W kontekście Androida, Java jest podstawowym językiem, w którym bazowe API (Application Programming Interface) zostało opracowane. Wysoka wydajność, bogata biblioteka klas oraz wsparcie dla programowania wielowątkowego sprawiają, że Java jest idealnym wyborem dla deweloperów aplikacji mobilnych. Przykładowo, do stworzenia prostego interfejsu użytkownika w aplikacji Android, programista może wykorzystać takie elementy jak TextView czy Button, które są częścią frameworka Android SDK. Współczesne praktyki wskazują również na wykorzystanie Java w połączeniu z Kotlinem, co pozwala na osiągnięcie lepszych rezultatów i zwiększa efektywność w pracy nad projektami mobilnymi.

Pytanie 35

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

Ilustracja do pytania
A. drzewo binarne
B. kolejka FIFO
C. tablica
D. stos
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 36

Na podstawie treści zawartej w ramce, określ, który z rysunków ilustruje element odpowiadający klasie Badge zdefiniowanej w bibliotece Bootstrap?

Ilustracja do pytania
A. Rysunek 3
B. Rysunek 4
C. Rysunek 2
D. Rysunek 1
Wybór nieprawidłowej odpowiedzi wynika z niezrozumienia specyfiki elementów badge które są kluczowym komponentem bibliotek takich jak Bootstrap Elementy te pełnią rolę wizualnego identyfikatora przypisując liczbowe lub krótkie tekstowe oznaczenia do elementów interfejsu co jest powszechnie stosowane w powiadomieniach i kontrolach liczby nowych elementów w aplikacjach webowych Rysunek 1 przedstawia ikony glyphicon które są elementami graficznymi wykorzystywanymi do wzbogacenia wizualnego interfejsu użytkownika lecz nie spełniają funkcji badge ponieważ nie przedstawiają liczbowych oznaczeń Innym błędnym wyborem mógłby być Rysunek 3 gdzie widzimy elementy alert które służą do informowania użytkowników o różnych stanach w aplikacjach takich jak sukcesy błędy czy ostrzeżenia ale również nie pełnią roli badge Rysunek 4 prezentuje komponenty przycisków stylizowanych w Bootstrapie które choć są kluczowe dla nawigacji i interakcji z użytkownikiem nie mają charakteru liczbowego oznaczenia wskazującego na ilość lub obecność nowych elementów Wybór takich odpowiedzi może wynikać z mylnego utożsamiania wizualnych elementów dekoracyjnych lub informacyjnych z badge które mają ściśle zdefiniowaną funkcję informacyjną w kontekście ilościowym Właściwe rozpoznanie i zastosowanie elementów badge jest niezbędne w tworzeniu klarownych i użytecznych interfejsów webowych zgodnie z dobrymi praktykami UX/UI co przyczynia się do lepszego odbioru i funkcjonalności aplikacji

Pytanie 37

Zaprezentowany diagram Gantta odnosi się do projektu IT. Przy założeniu, że każdy członek zespołu dysponuje wystarczającymi umiejętnościami do realizacji każdego z zadań oraz że do każdego zadania można przypisać jedynie jedną osobę, która poświęci na zadanie pełny dzień pracy, to minimalna liczba członków zespołu powinna wynosić:

Ilustracja do pytania
A. 4 osoby
B. 5 osób
C. 1 osobę
D. 2 osoby
Diagram Gantta przedstawia harmonogram projektu, gdzie poszczególne zadania są przypisane do konkretnych dni. W sytuacji, gdy każdy członek zespołu jest w stanie wykonać dowolne zadanie, minimalna liczba osób potrzebna do realizacji projektu to liczba równoczesnych zadań w najbardziej wymagającym momencie. Kluczowe jest tu równomierne rozłożenie pracy i unikanie przestojów, co zapewnia efektywne wykorzystanie zasobów.

Pytanie 38

Podczas programowania kontrolki stepper przedstawionej na ilustracji w aplikacji mobilnej, należy zarządzać zmienną, która zawsze przechowuje jej bieżącą wartość. Jakie zdarzenie można wykorzystać do osiągnięcia tej funkcjonalności?

Ilustracja do pytania
A. SizeChanged
B. DescendantAdded
C. Unfocused
D. ValueChanged
Pierwsza z niepoprawnych odpowiedzi DescendantAdded odnosi się do zdarzenia używanego w kontekście hierarchii widoków. To zdarzenie jest uruchamiane, gdy do elementu wizualnego dodany zostaje nowy element podrzędny. Nie ma ono żadnego związku z obsługą zmiany wartości w kontrolkach takich jak stepper, a jego zastosowanie w tym kontekście byłoby nieadekwatne. Zdarzenie Unfocused jest wywoływane, gdy element traci fokus, czyli przestaje być aktywnym elementem interfejsu. Zdarzenie to może być użyteczne w sytuacjach, gdzie konieczne jest zapisanie stanu po opuszczeniu pola tekstowego, ale nie ma zastosowania w kontekście dynamicznego zarządzania wartością steppera. Wreszcie SizeChanged jest zdarzeniem, które występuje, gdy zmienia się rozmiar elementu wizualnego. Może być przydatne w adaptacyjnym projektowaniu interfejsów, ale nie wpływa na logikę aplikacji dotyczącą aktualizacji wartości steppera. Częstym błędem jest mylenie zdarzeń dotyczących interfejsu z tymi, które obsługują logikę biznesową, co prowadzi do niepoprawnego zastosowania w kontekście dynamicznych interakcji z użytkownikiem. Zrozumienie specyfiki każdego zdarzenia i jego poprawnego kontekstu użycia jest kluczowe dla prawidłowego projektowania aplikacji interaktywnych.

Pytanie 39

Jakie jest najważniejsze działanie w trakcie analizy wymagań klienta przed rozpoczęciem realizacji projektu aplikacji?

A. Rozdzielenie ról w zespole projektowym
B. Stworzenie diagramu Gantta
C. Zrozumienie potrzeb biznesowych i oczekiwań klienta
D. Selekcja języka programowania
Fajnie, że zauważyłeś, jak ważne jest zrozumienie potrzeb biznesowych i oczekiwań klienta. To kluczowa sprawa przed rozpoczęciem pracy nad projektem aplikacji. Bez tego, nawet najfajniejszy kod może nie spełniać wymagań, a to byłoby szkoda, prawda? Analiza wymagań to nie tylko rozpoznanie celów, ale też spotkania z osobami zaangażowanymi w projekt i zbadanie rynku. Dzięki temu możemy stworzyć aplikację, która naprawdę odpowiada na specyficzne potrzeby, co czyni ją bardziej użyteczną i konkurencyjną. No i oczywiście, jak dobrze określimy, czego potrzebują użytkownicy, to mniej nieporozumień po drodze, a klienci będą bardziej zadowoleni, co zawsze jest na plus.

Pytanie 40

Która z funkcji powinna zostać zrealizowana w warstwie back-end aplikacji webowej?

A. wyświetlanie danych z formularza w przeglądarce
B. zarządzanie bazą danych
C. sprawdzanie formularzy w czasie rzeczywistym
D. zarządzanie zdarzeniami elementów
Obsługa bazy danych jest fundamentalną częścią warstwy back-end w aplikacjach internetowych. Backend odpowiada za przetwarzanie logiki biznesowej, przechowywanie i zarządzanie danymi, a także komunikację z bazą danych. Dane przesyłane z front-endu (interfejsu użytkownika) są walidowane i przetwarzane po stronie serwera, zanim trafią do bazy danych lub zostaną zwrócone użytkownikowi. W przypadku aplikacji dynamicznych, serwer pobiera informacje z bazy danych, przekształca je zgodnie z wymogami aplikacji i przesyła z powrotem na front-end. Właściwe zarządzanie danymi i bezpieczeństwo operacji na bazie danych to kluczowe zadania back-endu. Równie ważne jest zapobieganie wstrzykiwaniu SQL (SQL Injection) i zapewnienie integralności danych, co stanowi podstawę skalowalnych i bezpiecznych aplikacji.