Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 9 stycznia 2025 12:35
  • Data zakończenia: 9 stycznia 2025 12:47

Egzamin zdany!

Wynik: 37/40 punktów (92,5%)

Wymagane minimum: 20 punktów (50%)

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

Jaki komponent środowiska IDE jest niezbędny do tworzenia aplikacji webowych?

A. Debugger, edytor kodu, integracja z systemem kontroli wersji
B. Emulator urządzeń mobilnych
C. Zarządzanie bazami danych
D. Narzędzie do tworzenia grafiki
Debugger, edytor kodu oraz integracja z systemem kontroli wersji to kluczowe elementy środowiska IDE, które umożliwiają efektywną pracę nad aplikacjami webowymi. Debugger pozwala na wykrywanie i naprawianie błędów w czasie rzeczywistym, edytor kodu umożliwia szybkie pisanie i modyfikowanie kodu, a integracja z systemem kontroli wersji (np. Git) pozwala śledzić zmiany i współpracować w zespołach programistycznych. Te narzędzia stanowią podstawę pracy każdego dewelopera webowego.

Pytanie 2

W dwóch przypadkach opisano mechanizm znany jako Binding. Jego celem jest

Ilustracja do pytania
A. wiązanie oraz eksportowanie plików z różnych modułów aplikacji
B. zarządzanie mechanizmem obietnic (promises) lub obserwatora (observable) w programowaniu asynchronicznym
C. wiązać właściwości (property) elementu interfejsu użytkownika z danymi lub właściwością innego obiektu
D. przetwarzanie zdarzeń kontrolek interfejsu użytkownika przez wywoływanie odpowiednich funkcji
Binding (wiązanie danych) to mechanizm wiązania właściwości elementu interfejsu użytkownika z danymi lub właściwościami innego obiektu. Umożliwia to automatyczne aktualizowanie UI po zmianie danych. Jest to kluczowa funkcjonalność w nowoczesnych frameworkach front-end, takich jak Angular czy Vue, która pozwala na dynamiczne aktualizowanie widoków bez konieczności ręcznego manipulowania DOM.

Pytanie 3

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

A. mm
B. dp
C. pt
D. px
Jednostką zalecaną przy tworzeniu układów interfejsów w aplikacjach mobilnych jest dp (density-independent pixels). Pozwala to na zachowanie proporcji elementów interfejsu niezależnie od rozdzielczości urządzenia.

Pytanie 4

Który z wymienionych algorytmów pracujących na tablicy jednowymiarowej ma złożoność obliczeniową O(n2)?

A. Wyświetlenie elementów
B. Sortowanie bąbelkowe
C. Wyszukiwanie metodą binarną
D. Sortowanie szybkie
Sortowanie bąbelkowe to taki klasyczny algorytm, który ma złożoność O(n^2). Chociaż jest dość prosty w zrozumieniu, to nie za bardzo sprawdza się w większych zbiorach danych. Działa tak, że porównuje sąsiadujące ze sobą elementy i zamienia je miejscami, jeśli są w złej kolejności. Trochę to czasochłonne, ale warto znać ten algorytm, bo pokazuje podstawy sortowania.

Pytanie 5

Który z wymienionych frameworków służy do budowy aplikacji webowych w C#?

A. Angular
B. Django
C. React.js
D. ASP.NET Core
ASP.NET Core to nowoczesny, wydajny i skalowalny framework opracowany przez Microsoft, który jest przeznaczony do budowy aplikacji webowych w języku C#. ASP.NET Core umożliwia tworzenie dynamicznych stron internetowych, API oraz aplikacji mikroserwisowych. Jego modularność i wsparcie dla kontenerów (Docker) oraz chmury sprawiają, że jest to jeden z najczęściej wybieranych frameworków w środowiskach enterprise. ASP.NET Core obsługuje zarówno aplikacje serwerowe, jak i aplikacje klient-serwer, a dzięki technologii Razor Pages i Blazor pozwala na budowanie aplikacji, w których logika biznesowa jest ściśle zintegrowana z warstwą prezentacji. Dodatkowo ASP.NET Core oferuje wbudowane mechanizmy do zarządzania tożsamością użytkowników, autoryzacji i autentykacji, co czyni go doskonałym wyborem do tworzenia aplikacji biznesowych oraz korporacyjnych.

Pytanie 6

Który z wymienionych poniżej wzorców projektowych można zakwalifikować jako wzorzec strukturalny?

A. Fasada (Facade)
B. Metoda szablonowa (Template method)
C. Fabryka abstrakcyjna (Abstract Factory)
D. Obserwator (Observer)
Fasada (Facade) to wzorzec projektowy, który jest przykładem wzorca strukturalnego. Umożliwia on tworzenie uproszczonego interfejsu dla bardziej złożonego systemu, integrując wiele podsystemów i dostarczając jednolity punkt dostępu. Strukturalne wzorce projektowe skupiają się na organizacji klas i obiektów, a Fasada doskonale wpisuje się w tę kategorię, redukując złożoność i zwiększając czytelność kodu. Wzorzec ten jest szeroko stosowany w architekturze aplikacji, gdzie występuje potrzeba uproszczenia dostępu do skomplikowanych bibliotek lub systemów wewnętrznych.

Pytanie 7

Które z poniższych zdań najlepiej określa funkcję zaprzyjaźnioną w ramach klasy?

A. Funkcja, która jest statyczna i nie ma możliwości modyfikacji pól klasy
B. Funkcja, która pozwala na dziedziczenie wielokrotne
C. Funkcja, która uruchamia się automatycznie po stworzeniu obiektu
D. Funkcja, która ma dostęp do prywatnych pól i metod klasy, z którą jest zaprzyjaźniona
Funkcja zaprzyjaźniona (ang. friend function) to funkcja, która ma dostęp do prywatnych i chronionych pól oraz metod klasy, mimo że nie jest jej częścią. Służy do realizacji operacji wymagających bezpośredniego dostępu do wewnętrznych elementów klasy, ale bez naruszania zasad hermetyzacji. Przykład w C++: `class Konto { private: double saldo; friend void wyswietlSaldo(Konto k); }`. Funkcja `wyswietlSaldo` może odczytać pole `saldo`, mimo że jest ono prywatne. Funkcje zaprzyjaźnione są używane, gdy konieczna jest bliska współpraca między klasami lub funkcjami, ale nie chcemy nadmiernie otwierać interfejsu klasy.

Pytanie 8

Jaki jest kluczowy zamysł wzorca "Kompozyt" (Composite)?

A. Umożliwienie klientom obsługi obiektów oraz ich zbiorów w spójny sposób
B. Określenie interfejsu komunikacji pomiędzy składnikami systemu
C. Stworzenie jednej klasy do zarządzania wieloma obiektami tego samego rodzaju
D. Danie możliwości dynamicznej zmiany zachowania obiektu
Zarządzanie wieloma obiektami tego samego typu to cecha wzorca Fabryka (Factory) lub Builder, a nie Kompozyt. Definiowanie interfejsu komunikacji między komponentami systemu to rola wzorca Mediator, który organizuje interakcje między różnymi obiektami. Umożliwienie dynamicznej zmiany zachowania obiektu jest domeną wzorca Strategia (Strategy) lub Dekorator (Decorator), które oferują elastyczność w zakresie modyfikacji zachowania podczas działania programu.

Pytanie 9

Które z poniższych twierdzeń najlepiej charakteryzuje metodę wirtualną?

A. Metoda, która jest zawsze stosowana w konstruktorach danej klasy
B. Metoda, która może być przesłonięta w klasie dziedziczącej
C. Metoda, która działa wyłącznie dla statycznych pól danej klasy
D. Metoda, która może być wywoływana tylko przez klasę nadrzędną
Wirtualna metoda to taka, która jest zdefiniowana w klasie bazowej i można ją nadpisać w klasie pochodnej. Fajna sprawa z tą metodą wirtualną jest taka, że działa na zasadzie dynamicznego wiązania, co w praktyce oznacza, że program decyduje w czasie działania, którą wersję metody wywołać. Dzięki temu mamy polimorfizm – możemy użyć różnych wersji tej samej metody, w zależności od typu obiektu, na którym pracujemy. To naprawdę ważny aspekt programowania obiektowego, bo pozwala na większą elastyczność i łatwiejsze rozwijanie kodu. W hierarchiach klas to się sprawdza, bo klasa bazowa ma ogólne metody, a klasy pochodne mogą je dostosować do swoich potrzeb.

Pytanie 10

W klasie pracownik zdefiniowano opisane metody. Która z nich jest odpowiednia do dodania elementu diagnostycznego o treści: cout << "Obiekt został usunięty";

Ilustracja do pytania
A. operator==
B. wypisz
C. pracownik
D. ~pracownik
Destruktor to specjalna metoda w języku C++ oznaczona tyldą przed nazwą klasy która jest wywoływana automatycznie w momencie usuwania obiektu danego typu z pamięci. Dlatego dodanie elementu diagnostycznego cout<

Pytanie 11

Jakie działanie związane z klasą abstrakcyjną jest niedozwolone?

A. Rozszerzanie tej klasy
B. Definiowanie pól publicznych
C. Określenie metody wirtualnej
D. Utworzenie instancji tej klasy
Klasy abstrakcyjne w programowaniu obiektowym to fundament, który umożliwia wprowadzenie abstrakcji i polimorfizmu. Ich głównym celem jest zdefiniowanie wspólnego interfejsu dla klas pochodnych, natomiast nie można tworzyć ich instancji. Przykładem może być klasa abstrakcyjna 'Pojazd', która definiuje metody takie jak 'przyspiesz' i 'hamuj', ale sama nie ma implementacji tych metod. Klasy, które dziedziczą po 'Pojazd', takie jak 'Samochód' czy 'Motocykl', implementują te metody, co umożliwia ich użycie. Zgodnie z zasadami SOLID, klasa abstrakcyjna powinna być używana jako baza dla innych klas, a nie jako samodzielny obiekt. W związku z tym, próbując stworzyć instancję klasy abstrakcyjnej, napotkamy błąd kompilacji. Takie zachowanie jest zgodne z wieloma językami programowania, takimi jak Java, C# czy C++, gdzie klasy abstrakcyjne są kluczowym elementem budowy hierarchii klas oraz wzorów projektowych.

Pytanie 12

Jakie narzędzie programowe jest odpowiedzialne za konwersję kodu źródłowego na formę zrozumiałą dla maszyny, weryfikuje wszystkie polecenia pod kątem ewentualnych błędów, a następnie generuje moduł do wykonania?

A. interpreter
B. dekompilator
C. debugger
D. kompilator
Kompilator to narzędzie, które tłumaczy kod źródłowy na kod maszynowy lub bajtowy, umożliwiając jego późniejsze wykonanie przez komputer. Kompilator analizuje cały kod przed jego uruchomieniem, identyfikując błędy składniowe i logiczne, co pozwala na generowanie pliku wykonywalnego.

Pytanie 13

W podanym fragmencie kodu Java wskaż, która zmienna może pomieścić wartość "T"

Ilustracja do pytania
A. zm2
B. zm1
C. zm4
D. zm3
Zmienna o nazwie zm3 została zadeklarowana jako typu char co oznacza że może przechowywać pojedynczy znak w tym przypadku wartość T. Typ char w języku Java jest używany do przechowywania znaków Unicode co czyni go idealnym do obsługi liter jako danych. Każdy znak jest przechowywany jako 16-bitowa wartość liczby całkowitej co umożliwia reprezentację szerokiego zakresu symboli w tym litery cyfry i inne znaki specjalne. Przykładowymi zastosowaniami typu char są przypadki gdzie konieczne jest przechowywanie i przetwarzanie liter np. w sytuacjach gdy aplikacja wymaga manipulacji pojedyńczymi znakami w tekście czy analizą ich wartości w kontekście porównywania danych. Dobre praktyki przy pracy z typem char obejmują świadome zarządzanie pamięcią i unikanie niepotrzebnych konwersji do innych typów danych co może prowadzić do strat precyzji lub nieoczekiwanych rezultatów. Ważne jest także zrozumienie jak znaki są kodowane i dekodowane szczególnie w kontekście międzynarodowym gdzie prawidłowa obsługa znaków Unicode jest kluczowa dla zapewnienia kompatybilności i poprawnego działania aplikacji w różnych językach.

Pytanie 14

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

Ilustracja do pytania
A. tylko napisu BTN_1
B. wartości 0 po naciśnięciu przycisku
C. wyłącznie przycisku oraz obsłużenie zdarzenia click, które ono generuje
D. liczby kliknięć przycisku
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.

Pytanie 15

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

Ilustracja do pytania
A. drzewo binarne
B. tablica
C. stos
D. kolejka
Stos (LIFO) to struktura danych, w której elementy dodawane są na wierzchołek i zdejmowane w odwrotnej kolejności (Last In, First Out). Podstawowe operacje to 'push' (dodanie elementu) i 'pop' (usunięcie elementu). Stos jest szeroko stosowany w algorytmach rekurencyjnych, wycofywaniu operacji (undo) i zarządzaniu pamięcią.

Pytanie 16

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

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

Pytanie 17

Jaki jest podstawowy cel przystosowania aplikacji do publikacji w sklepie mobilnym?

A. Dostosowanie aplikacji do wymogów platformy oraz regulacji sklepu
B. Dostosowanie kodu aplikacji w celu zwiększenia jej wydajności
C. Zapewnienie, że aplikacja działa jedynie w trybie offline
D. Zmniejszenie rozmiaru aplikacji poniżej 10 MB
Dostosowanie aplikacji do wymagań platformy i przepisów sklepu mobilnego (np. Google Play lub App Store) to kluczowy krok w procesie publikacji aplikacji. Sklepy mobilne wymagają, aby aplikacje spełniały określone standardy dotyczące bezpieczeństwa, dostępności, wydajności oraz zgodności z wytycznymi interfejsu użytkownika. Proces ten obejmuje testowanie aplikacji pod kątem stabilności, optymalizację grafik i ikon, a także dostosowanie opisów i metadanych aplikacji, co zwiększa jej widoczność i atrakcyjność dla użytkowników. Przestrzeganie wytycznych App Store lub Google Play jest niezbędne, aby aplikacja mogła zostać zatwierdzona i udostępniona do pobrania.

Pytanie 18

W jakiej topologii sieciowe wszystkie urządzenia są bezpośrednio powiązane z każdym innym?

A. Topologia magistrali
B. Topologia gwiazdy
C. Topologia siatki
D. Topologia pierścienia
Topologia siatki to jedna z najbardziej wydajnych i wszechstronnych struktur sieciowych, w której każde urządzenie (węzeł) jest połączone bezpośrednio z każdym innym węzłem. Tego typu topologia zapewnia wysoką dostępność i odporność na awarie, ponieważ awaria jednego połączenia nie wpływa na komunikację pozostałych węzłów. W praktyce ma to zastosowanie w dużych, zaawansowanych sieciach komputerowych, takich jak sieci miejskie (MAN) czy sieci szerokopasmowe. Istnieją dwie główne formy topologii siatki: siatka pełna, gdzie każde urządzenie ma bezpośrednie połączenia z wszystkimi innymi, oraz siatka częściowa, gdzie nie wszystkie węzły są ze sobą bezpośrednio połączone, ale komunikacja jest możliwa przez inne węzły. Topologia siatki, z uwagi na swoje zalety, jest często wykorzystywana w standardach sieciowych, takich jak Ethernet, oraz w systemach rozproszonych, gdzie kluczowe są niezawodność i efektywność przesyłania danych. Dodatkowo, w kontekście Internetu rzeczy (IoT), topologia siatki umożliwia efektywne zarządzanie dużą liczbą urządzeń, co jest kluczowe w inteligentnych miastach i automatyzacji domowej.

Pytanie 19

Jakie jest wymagane minimalne natężenie światła w biurze na stanowisku pracy?

A. 200 lx
B. 500 lx
C. 800 lx
D. 100 lx
Minimalne natężenie oświetlenia, jakie powinno być w biurze, to 500 lx (luksów). To taki standard, który ustalono w normach BHP i ergonomii. Dzięki temu lepiej się pracuje przy komputerze i łatwiej robić zadania, które wymagają dobrego wzroku. Odpowiednie oświetlenie zdecydowanie zmniejsza zmęczenie oczu i poprawia koncentrację, co jest istotne, żeby uniknąć bólów głowy i być bardziej efektywnym w pracy. Ważne, żeby światło było równomierne i nie odbijało się na monitorze, bo to może rozpraszać. Warto dbać o takie warunki, bo to zmniejsza ryzyko problemów ze wzrokiem, a komfort pracy jest mega ważny, zwłaszcza gdy ktoś spędza dużo czasu przed komputerem.

Pytanie 20

Co to jest automatyzacja testowania procesów?

A. Kompilowaniem kodu w celu zwiększenia efektywności
B. Używaniem narzędzi oraz skryptów do wykonywania testów w sposób automatyczny bez udziału człowieka
C. Sprawdzaniem poprawności działania aplikacji na urządzeniach przenośnych
D. Integracją testów w środowisku deweloperskim
Automatyzacja procesu testowania to zastosowanie narzędzi, skryptów i technologii do przeprowadzania testów oprogramowania w sposób zautomatyzowany, bez konieczności ciągłej ingerencji człowieka. Automatyzacja pozwala na szybkie i wielokrotne uruchamianie testów regresyjnych, co znacząco zwiększa efektywność testowania, redukuje czas potrzebny na wykrycie błędów i umożliwia jednoczesne testowanie wielu funkcji. Narzędzia takie jak Selenium, JUnit czy TestNG pozwalają na tworzenie skryptów testowych, które automatycznie weryfikują poprawność działania aplikacji na różnych urządzeniach i w różnych środowiskach. Automatyzacja testów to nie tylko oszczędność czasu, ale także wyższa dokładność i powtarzalność testów, co minimalizuje ryzyko przeoczenia krytycznych błędów.

Pytanie 21

Jakie znaczenie ma termin "hierarchia dziedziczenia" w kontekście programowania obiektowego?

A. Zbiór klas, które nie mają wspólnych powiązań
B. Zespół metod i pól posiadających ten sam modyfikator dostępu
C. Układ klas w strukturę, w której klasy pochodne dziedziczą cechy od klas bazowych
D. Układ klas, który ogranicza występowanie dziedziczenia wielokrotnego
Hierarchia dziedziczenia to fundamentalna koncepcja programowania obiektowego, polegająca na organizacji klas w strukturę, w której klasy pochodne dziedziczą właściwości (pola i metody) od klas bazowych. Pozwala to na wielokrotne wykorzystanie kodu, co zwiększa jego modularność i zmniejsza redundancję. Klasa bazowa dostarcza ogólne cechy i metody, podczas gdy klasy pochodne rozszerzają lub modyfikują tę funkcjonalność, dostosowując ją do bardziej specyficznych wymagań. Przykładem jest klasa 'Pojazd', po której mogą dziedziczyć klasy 'Samochód' i 'Motocykl', zachowując wspólne atrybuty, takie jak 'maksymalna prędkość' czy 'masa'.

Pytanie 22

Jakiego kwalifikatora powinno się użyć dla metody, aby umożliwić do niej dostęp jedynie z wnętrza tej klasy oraz klas dziedziczących, a także, by metoda ta nie była dostępna w żadnej funkcji?

A. private
B. reinterpret_cast
C. public
D. protected
Metoda oznaczona jako 'protected' jest dostępna tylko z poziomu klasy oraz jej klas potomnych. Chroni to przed bezpośrednim dostępem spoza klasy, zapewniając większe bezpieczeństwo kodu i ograniczenie dostępu.

Pytanie 23

Jaką rolę odgrywa program Jira?

A. Produkcja grafik 3D
B. Zarządzanie edycjami systemu operacyjnego
C. Planowanie, śledzenie oraz raportowanie zadań projektowych
D. Modyfikowanie arkuszy kalkulacyjnych
Jira to jedno z najpopularniejszych narzędzi do zarządzania projektami, wykorzystywane głównie w metodykach Agile i Scrum. Umożliwia planowanie, monitorowanie i raportowanie zadań projektowych na różnych etapach ich realizacji. Dzięki elastycznym tablicom kanban i sprintom, Jira pozwala zespołom programistycznym śledzić postępy, zarządzać backlogiem oraz efektywnie przydzielać zasoby. Funkcjonalności takie jak automatyzacja procesów, śledzenie błędów (bug tracking) i integracja z innymi narzędziami (np. GitHub, Bitbucket) sprawiają, że Jira jest wszechstronnym rozwiązaniem do zarządzania nawet najbardziej złożonymi projektami. Dzięki generowanym raportom i wykresom burndown, menedżerowie mogą dokładnie analizować tempo pracy i podejmować decyzje w oparciu o dane.

Pytanie 24

Jakie są typowe frameworki/biblioteki używane w aplikacjach webowych?

A. ASP.NET Core, jQuery, Joomla!, Wordpress, Angular
B. jquery, Joomla!, Wordpress, android Studio, Xamarin
C. Visual Studio, Eclipse, angular, React.js, Node.js
D. ASP.NET Core, Django, Angular, React.js, Node.js
Frameworki i biblioteki typowe dla aplikacji webowych to ASP.NET Core, Django, Angular, React.js i Node.js. Umożliwiają one tworzenie dynamicznych aplikacji front-end i back-end, zapewniając szeroką funkcjonalność, skalowalność oraz obsługę nowoczesnych technologii webowych.

Pytanie 25

Przedstawione kody zawierają realizację funkcji oraz jeden zdefiniowany test automatyczny, który weryfikuje działanie funkcji w przypadku, gdy argumentem jest liczba ujemna. W miejscu kropek trzeba dodać drugi test, który sprawdzi funkcjonalność funkcji, kiedy argumentem jest liczba dodatnia. Który z poniższych kodów jest odpowiedni do tego testu?

Ilustracja do pytania
A. Odpowiedź C
B. Odpowiedź A
C. Odpowiedź D
D. Odpowiedź B
Poprawna odpowiedź to C ponieważ funkcja fun1 zwraca liczbę taką jaka jest z wyjątkiem sytuacji gdy liczba jest ujemna wtedy zwraca jej wartość bezwzględną Test C sprawdza wartość dodatnią 2 gdzie rezultat jest zgodny z oczekiwaniami i funkcja zwraca 2 co jest poprawnym wynikiem To testowanie zgodne z zasadą jednostkowych testów gdzie ważne jest aby funkcje były testowane na różne przypadki brzegowe w tym na wartości ujemne i dodatnie Implementacja jednostkowych testów pozwala na automatyczne sprawdzanie poprawności działania kodu co jest dobrą praktyką w programowaniu Szczególnie ważne jest aby testować funkcje krytyczne i te które mają potencjał do wystąpienia błędów związanych z nieoczekiwanymi danymi wejściowymi Przykład ten pokazuje jak ważne jest aby testy były dokładne i pokrywały różnorodne scenariusze użytkowania co pozwala na wczesne wychwycenie błędów i zapewnienie stabilności aplikacji W tej sytuacji testując wartość 2 zapewniamy że funkcja zachowuje się poprawnie dla wartości dodatnich co jest zgodne z oczekiwaniami programistycznymi

Pytanie 26

Który z wymienionych składników jest charakterystyczny dla środowiska IDE przeznaczonego do tworzenia aplikacji mobilnych?

A. Kompilator, debugger, emulator urządzenia mobilnego
B. Narzędzia do analizy danych, serwer webowy, przeglądarka internetowa
C. Edytor tekstowy, przeglądarka internetowa, system kontroli wersji
D. Edytor graficzny, narzędzia analityczne, klient FTP
Kompilator, debugger i emulator urządzenia mobilnego to podstawowe narzędzia w każdym środowisku IDE przeznaczonym do tworzenia aplikacji mobilnych. Kompilator jest odpowiedzialny za przekształcenie kodu źródłowego na plik wykonywalny, co pozwala na uruchomienie aplikacji na urządzeniu. Debugger umożliwia wykrywanie i eliminowanie błędów, co jest kluczowe dla prawidłowego działania aplikacji. Emulator pozwala na symulowanie działania aplikacji na różnych urządzeniach i systemach, co ułatwia testowanie bez potrzeby fizycznego dostępu do wielu modeli telefonów czy tabletów. Taki zestaw narzędzi jest standardem w Android Studio, XCode oraz Visual Studio, co umożliwia pełen cykl tworzenia aplikacji mobilnych – od kodowania, przez testowanie, aż po wdrażanie.

Pytanie 27

Który system operacyjny jest podstawowym środowiskiem do tworzenia aplikacji mobilnych w języku Swift?

A. iOS
B. Android
C. LG UX
D. Windows UWP
iOS to natywny system operacyjny dla aplikacji mobilnych pisanych w języku Swift. Swift to nowoczesny język programowania, stworzony przez Apple, ułatwiający rozwój aplikacji na urządzenia iPhone i iPad.

Pytanie 28

Jakie są kluczowe zasady WCAG 2.0?

A. Ewolucyjna, interaktywna, efektywna
B. Dostosowana, błyskawiczna, mobilna, dostępna
C. Elastyczna, prosta, przejrzysta, trwała
D. Percepcyjna, operacyjna, zrozumiała, solidna
Niepoprawne odpowiedzi nie odzwierciedlają kluczowych zasad WCAG 2.0. Pierwsza z nich, określająca elementy jako postępowe, responsywne, efektywne, nie ujęła fundamentalnych wymogów dotyczących dostępności. Postępowe i responsywne odnoszą się bardziej do designu i wydajności strony, a nie do jej dostępności dla osób z różnymi niepełnosprawnościami. Wymagania dotyczące percepcji i interakcji z treścią są kluczowe dla WCAG 2.0, ale nie są poruszane w tej opcji. Kolejna odpowiedź wskazuje na cechy: dostosowana, szybka, mobilna, dostępna, co również nie odpowiada zasadom WCAG. Użyte terminy nie koncentrują się na dostępności treści, a bardziej na wydajności i dostosowywaniu do urządzeń mobilnych, pomijając kluczowe aspekty związane z percepcją i interaktywnością. Ostatnia niepoprawna odpowiedź, która zawiera elastyczność, prostotę, przejrzystość i trwałość, również nie odpowiada rzeczywistym zasadom WCAG. Choć te cechy są pożądane w projektowaniu stron internetowych, nie są częścią formalnych zasad WCAG, które koncentrują się na konkretnej dostępności treści dla osób z ograniczeniami. W rezultacie, te odpowiedzi nie spełniają wymaganych kryteriów dostępności.

Pytanie 29

Diagramem, który służy do śledzenia realizacji zadań przez członków zespołu projektowego, może być

A. Venna
B. związków encji
C. Gantta
D. aktywnosci UML
Diagram Gantta to narzędzie do wizualizacji harmonogramu projektów. Umożliwia śledzenie postępów i zarządzanie zadaniami, co czyni go niezwykle przydatnym w monitorowaniu pracy zespołu. Każde zadanie jest przedstawione jako pasek, którego długość odpowiada czasowi trwania zadania. Diagram Gantta umożliwia również identyfikację zależności między zadaniami oraz zarządzanie zasobami, co czyni go kluczowym narzędziem w zarządzaniu projektami IT.

Pytanie 30

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

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

Pytanie 31

Wskaż fragment kodu, który stanowi realizację przedstawionego algorytmu w języku C++

Ilustracja do pytania
A. kod 2
B. kod 1
C. kod 3
D. kod 4
Jak się przyjrzysz innym opcjom, można zauważyć sporo problemów, które mogą wprowadzać w błąd przy implementacji algorytmu związanym z schematem blokowym. Opcja Kod 2 stosuje instrukcję if-else, co już jest dużym błędem. W związku z tym operacje dodawania i zwiększania zmiennej `i` wykonają się tylko raz, jeśli początkowy warunek jest spełniony. Z tego wynika brak powtarzalności, co ważne w algorytmach, gdzie trzeba coś robić wielokrotnie, aż warunek będzie spełniony. Z kolei Kod 3 używa pętli for, która lepiej nadaje się do przypadków, gdzie liczba powtórzeń jest znana. Ale tutaj zmienna `i` jest źle umiejscowiona i nie pasuje do logiki algorytmu. Dodatkowo, sama konstrukcja pętli for nie pokazuje, że musimy coś zrobić przynajmniej raz, zanim sprawdzimy warunek. Kod 4 chociaż używa pętli while, to i tak nie spełnia warunku, że operacja musi się wykonać przynajmniej raz przed sprawdzeniem tego warunku. Pętla while najpierw weryfikuje warunek, więc jeśli na początku jest nieprawdziwy, to nie wejdzie w żadną iterację, co jest sprzeczne z logiką algorytmu. Dlatego tylko Kod 1 jest naprawdę zgodny z wymaganiami algorytmu i może być traktowany jako poprawna implementacja według tego schematu.

Pytanie 32

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

A. Obliczanie sumy elementów w tablicy
B. Wyszukiwanie binarne w uporządkowanej tablicy
C. Sortowanie za pomocą metody QuickSort
D. Generowanie ciągu Fibonacciego
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 33

Jakie będą skutki wykonania podanego fragmentu kodu w języku C++?

Ilustracja do pytania
A. do tablicy liczby, na jej początku, dodawane są nowe wartości
B. z tablicy liczby usuwane są elementy, z każdym obiegiem pętli eliminowany jest element z jej początku
C. do tablicy liczby, na jej końcu, dodawane są nowe wartości
D. z tablicy liczby usuwane są elementy, z każdym obiegiem pętli eliminowany jest element z jej końca
Kod w języku C++ dodaje kolejne wartości na końcu tablicy 'liczby' podczas każdej iteracji pętli. Operacja ta jest realizowana poprzez użycie wskaźnika lub iteratora wskazującego na ostatnią pozycję tablicy, co umożliwia efektywne dodawanie elementów bez konieczności przestawiania istniejących danych.

Pytanie 34

Jaka jest podstawowa funkcja narzędzia do zarządzania projektami?

A. Poprawa wydajności kodu programu
B. Produkcja animacji komputerowych
C. Zarządzanie zadaniami i czasem w projekcie
D. Opracowanie bazy danych dla projektu
Zarządzanie zadaniami i czasem to naprawdę kluczowa sprawa w projektach. Dzięki narzędziom takim jak Microsoft Project, Jira, Trello, czy Monday, zespoły mogą lepiej planować, przydzielać role i śledzić, co się dzieje. Możliwości tych narzędzi pozwalają ustalać deadline’y, priorytety, a nawet automatycznie przypominają o zbliżających się terminach. To super pomaga w unikaniu opóźnień i pozwala lepiej zorganizować pracę. Wizualizacja projektu w formie osi czasu czy tablicy kanban też jest mega przydatna, bo wszystko staje się bardziej czytelne.

Pytanie 35

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

Ilustracja do pytania
A. Jednostkowe
B. Interfejsu
C. Wydajnościowe
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 36

Który z wymienionych wzorców projektowych jest najbardziej odpowiedni do uproszczenia interfejsu złożonego systemu?

A. Fasada (Facade)
B. Singleton (Singleton)
C. Metoda szablonowa (Template method)
D. Kompozyt (Composite)
Wzorzec projektowy Fasada (Facade) upraszcza interfejs do złożonego systemu poprzez dostarczenie jednolitego punktu dostępu do wielu podsystemów. Dzięki temu klienci mogą korzystać z funkcji systemu za pomocą prostego interfejsu, co zwiększa czytelność kodu i ułatwia jego utrzymanie. Fasada jest szczególnie przydatna w dużych aplikacjach, gdzie wiele modułów wymaga skomplikowanej konfiguracji lub współdziałania. Wprowadzenie fasady ukrywa złożoność wewnętrzną systemu, jednocześnie zapewniając dostęp do niezbędnych funkcjonalności. To rozwiązanie jest często stosowane w systemach z wieloma interfejsami API, w architekturze mikroserwisów oraz przy integracji zewnętrznych bibliotek.

Pytanie 37

W jakim celu wykorzystuje się diagram Gantta?

A. do planowania i zarządzania projektem
B. do dokładnej analizy czasowo-kosztowej projektu
C. do przedstawiania funkcjonalności systemu
D. do wizualizacji powiązań między elementami systemów
Diagram Gantta służy do planowania i zarządzania projektami. Umożliwia wizualizację harmonogramu i postępów prac, co jest kluczowe w efektywnym zarządzaniu czasem i zasobami.

Pytanie 38

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

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

Pytanie 39

Jaka jest składnia komentarza jednoliniowego w języku Python?

A. !
B. //
C. #
D. ""
Komentarz jednoliniowy w Pythonie rozpoczyna się od znaku '#'. Wszystko, co następuje po tym znaku, jest ignorowane przez interpreter. Używanie komentarzy pomaga dokumentować kod, co zwiększa jego czytelność i ułatwia współpracę w zespołach programistycznych.

Pytanie 40

Jakie środowisko deweloperskie jest najczęściej wykorzystywane do budowy aplikacji na platformę Android?

A. Android Studio
B. Visual Studio
C. XCode
D. PyCharm
Android Studio to oficjalne środowisko programistyczne (IDE) do tworzenia aplikacji na system Android. Zostało opracowane przez Google i zapewnia pełne wsparcie dla języków takich jak Java, Kotlin oraz C++. Android Studio oferuje narzędzia do projektowania interfejsu użytkownika (UI), emulatory urządzeń, a także debugger i profiler, które pozwalają na testowanie i optymalizację aplikacji. IDE to jest zintegrowane z Android SDK, co ułatwia dostęp do API systemu Android oraz narzędzi takich jak ADB (Android Debug Bridge). Android Studio to kluczowe narzędzie dla deweloperów mobilnych, umożliwiające szybkie wdrażanie aplikacji na różne urządzenia oraz publikację w Google Play Store.