Wyniki egzaminu

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

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

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

A. Realizowaniem pełnej wersji produktu przed przeprowadzeniem testów
B. Przygotowaniem wersji systemu w ograniczonym zakresie w celu uzyskania opinii od użytkownika
C. Rozwojem produktu w sposób iteracyjny w krótkich cyklach
D. Szczegółowym planowaniem każdego etapu projektu przed jego realizacją
Robienie pełnej wersji produktu przed testowaniem to cecha modelu kaskadowego (Waterfall), co sprawia, że ryzyko błędów jest większe, bo wszystko dostajemy na sam koniec. Z kolei w metodach Agile rozwijamy produkt w krótkich cyklach, co jest zupełnie innym podejściem, bo regularnie dodajemy nowe funkcjonalności. Planowanie wszystkiego z góry to raczej klasyczne modele sekwencyjne, ale zapominają o takim ważnym elemencie jak prototypowanie i iteracje.

Pytanie 2

W jaki sposób można zmniejszyć liczbę danych zbieranych przez aplikacje mobilne?

A. Weryfikować i regulować uprawnienia aplikacji w ustawieniach
B. Udostępniać aplikacjom wszystkie niezbędne informacje
C. Używać aplikacji bez sprawdzania ich źródła
D. Nie blokować aplikacjom dostępu do lokalizacji oraz kontaktów
Dostosowanie uprawnień aplikacji w ustawieniach swojego telefonu to naprawdę dobry sposób na ograniczenie tego, co aplikacje mogą o nas wiedzieć. Wiele z nich, jak np. te do robienia zdjęć, prosi o dostęp do lokalizacji czy kontaktów, ale nie zawsze jest to potrzebne. Warto co jakiś czas sprawdzić, czy jakieś aplikacje nie mają za dużo uprawnień. Dzięki temu lepiej zabezpieczymy swoją prywatność i zmniejszymy ryzyko, że nasze dane wyciekną. Lepiej też unikać aplikacji z nieznanych źródeł, bo mogą one zbierać więcej informacji, niż byśmy chcieli.

Pytanie 3

Przyjmując, że opisana hierarchia klas właściwie odzwierciedla figury geometryczne i każda figura ma zdefiniowaną metodę do obliczania pola, to w której klasie można znaleźć deklarację metody liczPole()?

Ilustracja do pytania
A. czworokąt
B. trójkąt
C. trapez
D. figura
Metoda liczPole() znajduje się w klasie 'figura', ponieważ jest to klasa bazowa reprezentująca wspólne cechy dla wszystkich figur geometrycznych. Dziedziczenie tej metody przez klasy pochodne pozwala na zachowanie spójności kodu.

Pytanie 4

W językach C++ bądź C# termin virtual można wykorzystywać w kontekście

A. metod klasy
B. destruktorów
C. funkcji zaprzyjaźnionych
D. atrybutów klasy
W językach C++ i C# słowo kluczowe 'virtual' można stosować do metod klasy, co umożliwia ich nadpisanie w klasach pochodnych. Pozwala to na implementację polimorfizmu, co jest kluczowym elementem programowania obiektowego.

Pytanie 5

Kompilator może wygenerować błąd "incompatible types", gdy

A. w trakcie deklaracji zmiennej wystąpił błąd, zastosowano nieistniejący typ
B. funkcja zwraca typ void, a w momencie wywołania nie jest przypisana do żadnej zmiennej
C. do zmiennej typu int przypisano wartość 243
D. funkcja oczekuje całkowitej jako argumentu, a została wywołana z napisem jako parametrem
Błąd 'incompatible types' to dość powszechny problem, kiedy przypisujesz coś do zmiennej, ale typ się nie zgadza. Na przykład, jeśli próbujesz wstawić tekst do miejsca, gdzie oczekiwana jest liczba całkowita, to właśnie wtedy pojawia się ten błąd. W językach jak Java, gdzie typy są mocno zdefiniowane, musisz uważać na takie rzeczy.

Pytanie 6

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

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

Pytanie 7

Który z poniższych aspektów najdokładniej określa cel realizacji projektu?

A. Zidentyfikowanie technologii, które mogą być zastosowane
B. Ocena postępów w czasie realizacji projektu
C. Stworzenie harmonogramu działań
D. Określenie problemu i metody jego rozwiązania
Określenie problemu i sposobu jego rozwiązania to fundamentalny cel każdego projektu. Bez jasno zdefiniowanego problemu i sprecyzowanej metody jego rozwiązania, projekt może stać się chaotyczny i nieefektywny. Precyzyjna analiza problemu pozwala na wyznaczenie celów, które prowadzą do stworzenia wartościowego produktu lub usługi. Dzięki temu zespół może skupić się na kluczowych zadaniach i efektywnie zarządzać zasobami. Określenie problemu to pierwszy krok w metodykach Agile i Waterfall, który warunkuje sukces całego przedsięwzięcia.

Pytanie 8

Z podanej definicji pola licznik można wywnioskować, iż

Ilustracja do pytania
A. bieżąca wartość pola jest wspólna dla wszystkich instancji klasy i nie może być zmieniana
B. pole nie może być zmieniane w kodzie klasy
C. bieżąca wartość pola jest wspólna dla wszystkich instancji klasy
D. pole jest związane z określoną instancją klasy i jego wartość jest unikalna tylko dla tej instancji
Aktualna wartość pola licznik jest wspólna dla wszystkich instancji klasy, co oznacza, że jest to pole statyczne (static). Wartość takiego pola zmienia się globalnie dla całej klasy, a nie dla poszczególnych obiektów.

Pytanie 9

Jakie jest źródło błędu w podanym kodzie przez programistę?

Ilustracja do pytania
A. brak konstruktora w definicji klasy
B. inicjacja obiektu została błędnie zapisana
C. pole autor jest niedostępne z tego poziomu
D. argumenty konstruktora powinny być przekazane podczas inicjacji obiektu
Błąd związany z polem 'autor' wynika z problemu dostępu do pól prywatnych w klasie. W programowaniu obiektowym, pola prywatne (oznaczone jako private) są dostępne tylko wewnątrz danej klasy i nie mogą być bezpośrednio modyfikowane lub odczytywane z zewnątrz. Aby umożliwić dostęp do takich pól, programista powinien utworzyć odpowiednie metody dostępowe – tzw. gettery i settery. Jest to przykład hermetyzacji (encapsulation), jednego z filarów programowania obiektowego, który pozwala na kontrolę nad tym, jak dane są przechowywane i modyfikowane. Hermetyzacja zwiększa bezpieczeństwo aplikacji i zapobiega przypadkowym zmianom wartości pól obiektu.

Pytanie 10

Jak nazywa się wzorzec projektowy, do którego odnosi się ta definicja?

Ilustracja do pytania
A. Kompozyt
B. Prototyp
C. Fasada
D. Dekorator
Wzorzec projektowy Fasada jest jednym z kluczowych wzorców strukturalnych używanych w inżynierii oprogramowania. Jego głównym celem jest uproszczenie i ujednolicenie interakcji z złożonym systemem poprzez wystawienie uproszczonego i uporządkowanego interfejsu programistycznego. Fasada ukrywa złożoność systemu, zapewniając jednolity punkt dostępu do zestawu funkcji lub klas. W praktyce fasada jest używana do tworzenia prostych interfejsów dla bardziej złożonych bibliotek lub systemów, co ułatwia ich użycie przez programistów. Na przykład w systemie bankowym fasada może zintegrować różne usługi jak autoryzacja płatności, zarządzanie kontami i generowanie wyciągów, oferując jeden interfejs do ich obsługi. Fasada wspiera dobre praktyki poprzez promowanie niskiej zależności i wysokiej spójności. Zmiany w wewnętrznym działaniu systemu są mniej widoczne na zewnątrz, co zwiększa elastyczność systemu. Fasada jest zgodna z zasadą projektowania SOLID, zwłaszcza z zasadą pojedynczej odpowiedzialności, umożliwiając lepsze zarządzanie kodem i jego utrzymanie. Jej użycie jest powszechne w systemach złożonych, gdzie upraszczanie interfejsów jest kluczowe dla efektywności programistycznej i skalowalności systemu.

Pytanie 11

Jak najlepiej przełożyć oczekiwania klienta na dokumentację techniczną dla programistów?

A. Rozmawiając wyłącznie z zespołem programistów
B. Tworząc szczegółowy dokument z funkcjami oraz wymaganiami technicznymi
C. Opracowując wizualne makiety bez dokładnych opisów
D. Pomijając szczegółowe wymagania techniczne
Sporządzenie szczegółowego dokumentu z funkcjami i wymaganiami technicznymi to najlepszy sposób na przełożenie wymagań klienta na specyfikację techniczną. Dokumentacja techniczna jest podstawą do stworzenia aplikacji zgodnej z oczekiwaniami klienta i pozwala na precyzyjne określenie zakresu prac. Zawiera ona opisy funkcjonalności, diagramy architektury, wymagania dotyczące wydajności oraz harmonogram wdrożenia, co minimalizuje ryzyko błędów i nieporozumień podczas realizacji projektu.

Pytanie 12

Jakie z wymienionych narzędzi służy do testowania aplikacji?

A. WordPress
B. Selenium
C. Photoshop
D. Git
Selenium to potężne narzędzie do automatycznego testowania aplikacji webowych. Umożliwia ono symulowanie działań użytkownika na stronie internetowej, takich jak klikanie przycisków, wypełnianie formularzy czy nawigowanie po witrynie. Dzięki Selenium programiści mogą automatyzować testy funkcjonalne i regresyjne, co pozwala na szybkie wykrywanie błędów i sprawdzanie zgodności aplikacji z wymaganiami. Selenium obsługuje wiele języków programowania, takich jak Python, Java, C# czy JavaScript, co czyni je wszechstronnym narzędziem do testowania aplikacji webowych na różnych platformach i przeglądarkach. Jest to jedno z najważniejszych narzędzi w arsenale testerów oprogramowania i deweloperów dbających o jakość swoich produktów.

Pytanie 13

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

A. System ochrony aplikacji
B. Harmonogram zarządzania zadaniami
C. Koncepcja interfejsu użytkownika
D. Opis architektury klient-serwer
System zabezpieczeń aplikacji to kluczowy element specyfikacji technicznej, który określa metody ochrony danych. Obejmuje on takie elementy jak szyfrowanie, kontrola dostępu, uwierzytelnianie oraz autoryzacja. Prawidłowo zaprojektowany system zabezpieczeń zapewnia ochronę przed atakami hakerskimi, nieautoryzowanym dostępem oraz utratą danych. W aplikacjach webowych i mobilnych systemy zabezpieczeń obejmują również techniki takie jak dwuskładnikowe uwierzytelnianie (2FA), zabezpieczenia API oraz regularne audyty bezpieczeństwa. Implementacja solidnych mechanizmów zabezpieczeń jest niezbędna, aby zapewnić zgodność z regulacjami prawnymi i zyskać zaufanie użytkowników.

Pytanie 14

Która z wymienionych właściwości odnosi się do klasy pochodnej?

A. Dziedziczy atrybuty i metody z klasy bazowej
B. Nie ma możliwości dodawania nowych metod
C. Nie może być zastosowana w strukturze dziedziczenia
D. Jest automatycznie usuwana po zakończeniu działania programu
Cechą klasy pochodnej jest dziedziczenie pól i metod z klasy bazowej, co oznacza, że klasa pochodna automatycznie uzyskuje dostęp do wszystkich publicznych i chronionych składowych klasy nadrzędnej. Dzięki temu programista może rozwijać i modyfikować funkcjonalność istniejących klas, tworząc bardziej wyspecjalizowane obiekty. Dziedziczenie to kluczowy mechanizm umożliwiający wielokrotne użycie kodu, co prowadzi do zmniejszenia duplikacji i zwiększenia efektywności w zarządzaniu projektem. Klasa pochodna może również nadpisywać metody klasy bazowej, dostosowując ich działanie do swoich specyficznych potrzeb.

Pytanie 15

Dokumentacja, która została przedstawiona, dotyczy algorytmu sortowania

Ilustracja do pytania
A. bąbelkowe
B. szybkie (Quicksort)
C. przez wybór
D. przez wstawianie
Przedstawiona dokumentacja opisuje algorytm sortowania bąbelkowego (Bubble Sort), który działa poprzez wielokrotne porównywanie sąsiednich elementów i zamianę ich miejscami, jeśli są w złej kolejności. Algorytm ten ma prostą implementację, ale charakteryzuje się niską efektywnością dla dużych zbiorów danych (złożoność O(n^2)).

Pytanie 16

Który z dokumentów stosowanych w metodologii Agile zawiera listę funkcjonalności produktu uporządkowanych według ich ważności?

A. Product backlog
B. Diagram Gantta
C. Backlog sprintu
D. Harmonogram projektu
Backlog sprintu zawiera jedynie zadania przypisane do aktualnego sprintu i jest podzbiorem całego backlogu produktu, co oznacza, że nie zawiera całości funkcjonalności. Diagram Gantta to narzędzie do planowania harmonogramu projektów, ale nie służy do zarządzania wymaganiami czy funkcjonalnościami produktu. Harmonogram projektu określa czas realizacji poszczególnych etapów, ale nie odnosi się do listy funkcji, jakie muszą zostać wdrożone, co jest celem backlogu.

Pytanie 17

Wskaż algorytm sortowania, który nie jest stabilny?

A. sortowanie bąbelkowe
B. sortowanie szybkie
C. sortowanie przez zliczanie
D. sortowanie przez wstawianie
Sortowanie szybkie (QuickSort) jest algorytmem niestabilnym, co oznacza, że nie zachowuje kolejności elementów o tej samej wartości. Jego główną zaletą jest efektywność, jednak brak stabilności może być istotny w aplikacjach wymagających zachowania oryginalnej kolejności danych.

Pytanie 18

Jakie znaczenie ma deklaracja zmiennej w programowaniu?

A. Przypisanie zmiennej wartości domyślnej
B. Zarezerwowanie miejsca w pamięci dla wyników operacji arytmetycznych
C. Określenie typu oraz nazwy zmiennej w kodzie programu
D. Stworzenie nowej wartości w bazie danych
Utworzenie wartości w bazie danych nie jest związane z deklaracją zmiennej – to operacja wykonywana w językach baz danych (np. SQL). Przypisanie zmiennej wartości domyślnej następuje po jej deklaracji, ale samo przypisanie wartości nie jest równoznaczne z deklaracją. Zarezerwowanie miejsca w pamięci dla wyników operacji arytmetycznych to efekt działania programu, a nie deklaracji zmiennej – rezerwacja pamięci następuje po uruchomieniu kodu, a nie na etapie jego pisania.

Pytanie 19

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. najkrótszej ścieżki
B. komiwojażera
C. dziel i zwyciężaj
D. heurystyczną
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 20

Jaki framework umożliwia tworzenie interaktywnych interfejsów użytkownika w języku TypeScript?

A. jQuery
B. Angular
C. Django
D. ASP.NET Core
Angular to popularny framework oparty na TypeScript, który umożliwia tworzenie dynamicznych i rozbudowanych interfejsów użytkownika. Jest rozwijany przez Google i używany do budowy aplikacji typu Single Page Applications (SPA), które cechują się płynnością działania i interaktywnością. Angular oferuje bogaty ekosystem narzędzi wspierających programistów, takich jak Angular CLI, który pozwala na szybkie generowanie komponentów, serwisów i modułów. Wsparcie dla TypeScript oznacza, że Angular pozwala na wykorzystywanie typów, interfejsów oraz zaawansowanych narzędzi do refaktoryzacji kodu, co przekłada się na większą czytelność i bezpieczeństwo aplikacji. Dzięki modularnej architekturze Angular wspiera tworzenie aplikacji, które są łatwe w utrzymaniu i skalowaniu. Jego dwukierunkowe wiązanie danych (two-way data binding) oraz możliwość dynamicznej aktualizacji widoków czynią go jednym z liderów na rynku frameworków frontendowych.

Pytanie 21

Która grupa typów zawiera wyłącznie typy złożone?

A. char, struct, union
B. class, struct, union
C. class, struct, float
D. unsigned, struct, float
Class, struct i union to typy złożone, które mogą przechowywać wiele różnych wartości i struktur danych. Klasy i struktury są podstawą programowania obiektowego, a unie (union) pozwalają na efektywne zarządzanie pamięcią poprzez współdzielenie miejsca w pamięci dla różnych typów danych.

Pytanie 22

Czym jest ochrona własności intelektualnej?

A. Koncepcja prawa zabezpieczającego twórczość i innowacje
B. Zestaw przepisów dotyczących ochrony prywatności
C. Rejestr plików przechowywanych w chmurze
D. Zbiór informacji osobowych
Własność intelektualna to zbiór praw chroniących twórczość i wynalazki, obejmujący patenty, prawa autorskie, znaki towarowe i wzory przemysłowe. Własność intelektualna pozwala twórcom na zarabianie na swoich dziełach oraz kontrolowanie, kto i w jaki sposób może z nich korzystać. W wielu krajach naruszenie praw własności intelektualnej wiąże się z poważnymi konsekwencjami prawnymi. Dla przedsiębiorstw i innowatorów ochrona własności intelektualnej jest kluczowa dla zabezpieczenia ich inwestycji oraz rozwijania nowych technologii.

Pytanie 23

W języku C# szablon List umożliwia korzystanie z listy. Z definicji obiektu kolekcji wynika, że jego elementami mogą być:

Ilustracja do pytania
A. liczby rzeczywiste
B. elementy o nieokreślonym typie
C. elementy typu List
D. liczby całkowite
Inicjalizacja listy w C# (List) wskazuje, że jej elementami są liczby całkowite (int). Szablony (generics) w C# umożliwiają tworzenie list o określonym typie, co zapobiega błędom podczas dodawania elementów. Listy w C# są dynamiczne, co oznacza, że ich rozmiar może być zmieniany w trakcie działania programu, a elementy mogą być dowolnie dodawane lub usuwane.

Pytanie 24

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

A. Topologia pierścienia
B. Topologia magistrali
C. Topologia gwiazdy
D. Topologia siatki
Topologia magistrali charakteryzuje się tym, że wszystkie urządzenia są podłączone do pojedynczego kabla, zwanym magistralą. Komunikacja w tej topologii odbywa się przez przekazywanie sygnałów wzdłuż tego kabla, co może prowadzić do kolizji, gdy wiele urządzeń próbuje jednocześnie przesyłać dane. Ograniczeniem tej topologii jest to, że awaria magistrali skutkuje brakiem komunikacji w całej sieci, co czyni ją mniej niezawodną i efektywną w porównaniu do topologii siatki. Topologia gwiazdy polega na tym, że wszystkie urządzenia są połączone z centralnym punktem, zwanym koncentratorem lub przełącznikiem. Chociaż ta topologia zapewnia łatwość w dodawaniu nowych urządzeń i umożliwia izolację awarii, nie gwarantuje pełnej redundantności, ponieważ awaria centralnego urządzenia prowadzi do przerwania komunikacji w całej sieci. Z kolei topologia pierścienia, w której każde urządzenie jest połączone z dwoma innymi, tworząc zamknięty krąg, również nie jest odpowiednia, ponieważ awaria jednego połączenia uniemożliwia komunikację w całym pierścieniu, co czyni ją mniej odporną na błędy. W porównaniu do topologii siatki, wszystkie te struktury mają swoje ograniczenia, które wpływają na ich zastosowanie w bardziej złożonych i wymagających środowiskach sieciowych.

Pytanie 25

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

A. kompilatorowi języka JavaScript
B. konsoli przeglądarki internetowej
C. wbudowanemu debuggerowi w danym środowisku
D. narzędziom zainstalowanym po stronie serwera aplikacji
Konsola przeglądarki to naprawdę super narzędzie do śledzenia błędów w JavaScript, a szczególnie przydatna jest, gdy piszemy coś w React.js albo Angular. Dzięki niej możesz łatwo sprawdzać logi i błędy, a nawet na żywo testować różne fragmenty swojego kodu. To naprawdę szybki sposób, żeby znaleźć problemy, bez potrzeby grzebania w całym kodzie aplikacji.

Pytanie 26

Do form komunikacji werbalnej zalicza się

A. mówienie
B. wyraz twarzy
C. gestykulacja
D. pozycja ciała
Mówienie jest formą komunikacji werbalnej, która obejmuje przekazywanie informacji za pomocą słów. Jest to podstawowy sposób wyrażania myśli, instrukcji i emocji w bezpośredniej interakcji z innymi osobami.

Pytanie 27

Na ilustracji pokazany jest fragment diagramu blokowego pewnego algorytmu. Ile razy warunek n<7 będzie badany?

Ilustracja do pytania
A. 5
B. 6
C. 8
D. 7
Odpowiedź 4 jest prawidłowa ponieważ algorytm rozpoczyna od n równego 1 i zwiększa tę wartość o jeden w każdej iteracji aż do momentu gdy n stanie się równe 7 Wtedy warunek n mniejsze od 7 przestaje być spełniony co oznacza że warunek ten jest sprawdzany łącznie 6 razy tj dla n równych 1 2 3 4 5 i 6 Jest to typowa pętla kontrolna często spotykana w programowaniu gdzie warunek pętli decyduje o jej zakończeniu W praktyce takie podejście pozwala na efektywne zarządzanie liczbą iteracji i zapewnia klarowność kodu Co więcej użycie pętli z warunkiem końcowym jest zgodne z dobrymi praktykami projektowania algorytmów gdyż minimalizuje ryzyko błędów logicznych poprzez jawne określenie końca pętli Ponadto zrozumienie mechanizmu działania pętli i jej warunków jest kluczowe dla optymalizacji algorytmów i efektywnego zarządzania zasobami co ma bezpośrednie przełożenie na wydajność aplikacji szczególnie w środowiskach wymagających dużej mocy obliczeniowej

Pytanie 28

Jakie z wymienionych czynności można zrealizować przy pomocy składnika statycznego danej klasy?

A. Umożliwienie dzielenia pól klasy pomiędzy zaprzyjaźnione klasy
B. Zachowanie wartości wspólnych dla wszystkich instancji klasy
C. Wywołanie destruktora klasy bez jej usuwania
D. Tworzenie prywatnych kopii pól dla każdej instancji
Składnik statyczny klasy przechowuje wartości wspólne dla wszystkich instancji danej klasy. Oznacza to, że niezależnie od liczby utworzonych obiektów, istnieje tylko jedna kopia składowej statycznej, która jest współdzielona przez wszystkie instancje. Składowe statyczne są często wykorzystywane do przechowywania liczników, stałych wartości lub danych konfiguracyjnych. Metody statyczne mogą być wywoływane bezpośrednio na klasie, bez konieczności tworzenia obiektu, co czyni je niezwykle użytecznymi w przypadku funkcji narzędziowych.

Pytanie 29

W zaprezentowanym kodzie zostało ukazane jedno z fundamentalnych założeń programowania obiektowego. Czym ono jest?

Ilustracja do pytania
A. polimorfizm
B. dziedziczenie
C. hermetyzacja
D. abstrakcja
Ten kod świetnie pokazuje, jak działa dziedziczenie, co jest bardzo ważnym elementem programowania obiektowego. Dzięki temu możesz tworzyć nowe klasy bazując na tych, które już masz. To naprawdę ułatwia późniejsze modyfikacje kodu i pozwala na jego ponowne wykorzystanie w różnych miejscach.

Pytanie 30

Które z wymienionych zastosowań najlepiej definiuje bibliotekę jQuery?

A. Budowanie aplikacji mobilnych
B. Tworzenie interfejsów w programach desktopowych
C. Ułatwienie manipulacji DOM oraz obsługi zdarzeń w JavaScript
D. Projektowanie struktur baz danych
jQuery to popularna biblioteka JavaScript, która ułatwia manipulację DOM (Document Object Model), obsługę zdarzeń oraz wykonywanie animacji na stronach internetowych. Dzięki jQuery programiści mogą znacznie skrócić ilość kodu potrzebnego do realizacji operacji na elementach HTML. Biblioteka ta zapewnia również wygodny sposób na wykonywanie asynchronicznych żądań HTTP (AJAX), co pozwala na dynamiczne pobieranie danych z serwera bez konieczności przeładowywania całej strony. jQuery jest szeroko stosowane w projektach, które wymagają interaktywności oraz lekkich efektów wizualnych. Choć w ostatnich latach jego popularność spadła na rzecz bardziej zaawansowanych frameworków takich jak React czy Angular, jQuery nadal jest cenione za prostotę, wydajność oraz bogaty ekosystem gotowych wtyczek i rozszerzeń.

Pytanie 31

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

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

Pytanie 32

Co to jest choroba związana z wykonywaniem zawodu?

A. Choroba występująca tylko w sektorze przemysłowym
B. Każda choroba, która występuje w czasie pracy
C. Stan zdrowia, który uniemożliwia pracę przez okres krótszy niż tydzień
D. Choroba wynikająca z warunków pracy lub związanych z nimi czynników
Choroba zawodowa to stan zdrowotny spowodowany warunkami pracy lub czynnikami związanymi z wykonywaną profesją. Najczęściej wynika z długotrwałego narażenia na szkodliwe substancje, hałas, promieniowanie, pyły lub wykonywanie powtarzalnych czynności. Przykładem chorób zawodowych są pylica płuc, głuchota zawodowa czy zespół cieśni nadgarstka. Kluczowym elementem w zapobieganiu chorobom zawodowym jest odpowiednia profilaktyka, szkolenia BHP oraz dostosowanie środowiska pracy do zasad ergonomii. Pracodawcy są zobowiązani do monitorowania warunków pracy i wdrażania rozwiązań minimalizujących ryzyko wystąpienia chorób zawodowych.

Pytanie 33

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

A. Creative Commons
B. DMCA
C. GDPR (RODO)
D. Open Source Initiative
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 34

Jaką rolę pełni debugger w trakcie programowania?

A. Do wykrywania błędów w czasie działania programu
B. Do konwersji kodu źródłowego na język maszynowy
C. Do kontrolowania wersji kodu źródłowego
D. Do automatycznego generowania dokumentacji projektu
Debugger to takie narzędzie, które pomaga programistom w znajdowaniu błędów i śledzeniu, co się dzieje z programem, kiedy go uruchamiamy. Można go zatrzymać w dowolnym momencie, co nazywamy breakpoints, i wtedy można zobaczyć, jakie zmienne mają jakie wartości. Dzięki temu można łatwiej dostrzegać błędy logiczne czy składniowe. Wydaje mi się, że to naprawdę ważne narzędzie w pracy każdego programisty, bo ułatwia życie!

Pytanie 35

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

A. Scrum
B. Kanban
C. Waterfall
D. Agile
Kanban to metodologia zarządzania projektami, która kładzie nacisk na transparentność i wizualizację pracy w toku (work in progress). Tablica Kanban, podzielona na kolumny oznaczające różne etapy realizacji zadań, pozwala na bieżąco śledzić postęp prac i identyfikować ewentualne blokady. Transparentność procesów umożliwia zespołowi optymalizację przepływu zadań i minimalizację zaległości. W Kanbanie ważna jest elastyczność i możliwość dostosowywania liczby zadań w toku (WIP), co pozwala na uniknięcie przeciążenia zespołu i zwiększenie produktywności.

Pytanie 36

Gdzie są przechowywane informacje w sytuacji korzystania z chmury obliczeniowej?

A. Na nośnikach optycznych użytkownika
B. Na dysku twardym użytkownika
C. Na lokalnym serwerze użytkownika
D. Na zdalnych serwerach dostawcy usług
Dane w chmurze obliczeniowej są przechowywane przede wszystkim na zdalnych serwerach dostawcy usług chmurowych. Tego rodzaju przechowywanie danych ma na celu zapewnienie wysokiej dostępności, skalowalności oraz bezpieczeństwa. Dostawcy usług chmurowych, tacy jak Amazon Web Services, Microsoft Azure czy Google Cloud Platform, inwestują w infrastrukturę, która obejmuje centra danych rozmieszczone na całym świecie. Te centra danych są wyposażone w zaawansowane systemy zabezpieczeń, takie jak firewall'e, szyfrowanie danych i systemy detekcji intruzów. Dzięki temu użytkownicy mogą mieć pewność, że ich dane są bezpieczne. Dodatkowo, zdalne serwery oferują elastyczność w zakresie przydzielania zasobów obliczeniowych, co pozwala na dynamiczne reagowanie na zmieniające się potrzeby biznesowe. Warto również wspomnieć o standardach bezpieczeństwa, takich jak ISO 27001 czy SOC 2, które regulują sposób przechowywania i zarządzania danymi w chmurze, zapewniając zgodność z najlepszymi praktykami branżowymi.

Pytanie 37

Które urządzenie komputerowe jest najbardziej odpowiednie do graficznego projektowania w aplikacjach CAD?

A. Komputer stacjonarny z kartą graficzną NVIDIA Quadro
B. Serwer dysponujący dużą ilością pamięci RAM
C. Laptop z zintegrowanym układem graficznym
D. Laptop z interfejsem dotykowym
W kontekście projektowania graficznego w programach typu CAD, kluczowym elementem jest wybór odpowiedniego sprzętu, który zapewni nie tylko stabilność, ale także wydajność. Komputer stacjonarny wyposażony w kartę graficzną NVIDIA Quadro jest najlepszym rozwiązaniem, ponieważ te karty są specjalnie zaprojektowane do obsługi złożonych obliczeń i renderowania grafiki 3D. Dzięki zaawansowanej architekturze oraz optymalizacji pod kątem aplikacji inżynieryjnych i projektowych, karty NVIDIA Quadro oferują znacznie wyższą wydajność w porównaniu do standardowych kart graficznych. Dodatkowo, stacjonarne komputery pozwalają na łatwiejszą rozbudowę, co może być kluczowe w przypadku rosnących wymagań projektowych. W praktyce, użytkownicy CAD często muszą radzić sobie z dużymi i złożonymi modelami, które wymagają nie tylko odpowiedniej mocy obliczeniowej, ale także dużej ilości pamięci wideo, co zapewnia NVIDIA Quadro. Warto dodać, że standardy branżowe, takie jak OpenGL i DirectX, są w pełni wspierane przez te karty, co przekłada się na ich niezawodność i efektywność w profesjonalnym środowisku projektowym.

Pytanie 38

Który z podanych terminów najlepiej odnosi się do składnika statycznego w klasie?

A. Metoda z dostępem ograniczonym tylko do tej samej klasy
B. Zmienna lokalna wewnątrz danej klasy
C. Pole lub metoda, która jest przypisana do klasy, a nie do jej instancji
D. Funkcja, która wywołuje destruktor danej klasy
Składnik statyczny klasy to pole lub metoda, która należy do klasy jako całości, a nie do konkretnego obiektu. Oznacza to, że istnieje tylko jedna kopia składnika statycznego współdzielona przez wszystkie obiekty tej klasy. Przykład w C++: `class Licznik { public: static int liczbaObiektow; }`. Zmienna `liczbaObiektow` przechowuje liczbę utworzonych instancji klasy i jest wspólna dla wszystkich obiektów. Składniki statyczne są często używane do implementacji liczników, zarządzania zasobami lub przechowywania danych globalnych w obrębie klasy.

Pytanie 39

Jak przedstawia się liczba dziesiętna 255 w systemie szesnastkowym?

A. FF
B. 100
C. FE
D. EF
Liczba dziesiętna 255 jest reprezentowana w systemie szesnastkowym jako FF. Aby zrozumieć, dlaczego tak jest, należy przyjrzeć się procesowi konwersji z systemu dziesiętnego na szesnastkowy. System dziesiętny oparty jest na podstawie 10, co oznacza, że używa dziesięciu cyfr od 0 do 9. W systemie szesnastkowym, który ma podstawę 16, używane są cyfry od 0 do 9 oraz litery od A do F, gdzie A odpowiada 10, B - 11, C - 12, D - 13, E - 14, a F - 15. Aby przeliczyć 255 na system szesnastkowy, dzielimy tę liczbę przez 16. Pierwsza operacja daje nam 15 jako wynik całkowity oraz 15 jako resztę, co w systemie szesnastkowym jest reprezentowane literą F. Dalsze dzielenie 15 przez 16 daje wynik 0 oraz resztę 15, co również jest reprezentowane jako F. Zatem, zapisując reszty w odwrotnej kolejności, otrzymujemy FF. Taki zapis jest używany w różnych standardach, takich jak HTML i CSS, gdzie kolory są przedstawiane w formacie szesnastkowym. Przykładem może być kolor czerwony, którego zapis to #FF0000, co oznacza maksymalną wartość czerwonego składnika i zera dla niebieskiego oraz zielonego. Warto znać te konwersje, zwłaszcza w programowaniu i projektowaniu stron internetowych, gdzie często pracuje się z wartościami szesnastkowymi.

Pytanie 40

Jaki jest zasadniczy cel ataku phishingowego?

A. Zakłócanie pracy sieci przez nadmiarowe zapytania
B. Uniemożliwienie dostępu do usług internetowych
C. Zbieranie danych osobowych za pomocą podszywających się stron lub wiadomości
D. Kradzież haseł z pamięci operacyjnej urządzenia
Głównym celem ataku phishingowego jest przejęcie danych osobowych ofiary, co realizowane jest poprzez wykorzystanie fałszywych stron internetowych lub wiadomości. Atakujący tworzą atrakcyjne i wiarygodne kopie legalnych stron, często podszywając się pod znane instytucje bankowe, portale społecznościowe czy serwisy e-commerce. Użytkownik, nieświadomy zagrożenia, wprowadza swoje dane logowania, numery kart kredytowych lub inne wrażliwe informacje, które trafiają w ręce cyberprzestępców. Aby ułatwić ten proces, phisherzy często wykorzystują techniki inżynierii społecznej, takie jak fałszywe powiadomienia o konieczności weryfikacji konta. Przykłady skutecznych ataków phishingowych obejmują kampanie wysyłania e-maili, które informują użytkowników o rzekomych problemach z kontem, kierując ich na podszyte strony. Standardy bezpieczeństwa, takie jak DMARC, SPF i DKIM, są kluczowe dla ochrony przed tego rodzaju atakami, jednak ich brak lub niewłaściwe wdrożenie zwiększa podatność na phishing.