Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 8 stycznia 2025 18:28
  • Data zakończenia: 8 stycznia 2025 18:43

Egzamin niezdany

Wynik: 19/40 punktów (47,5%)

Wymagane minimum: 20 punktów (50%)

Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Który z wymienionych typów testów najlepiej ocenia odporność aplikacji na intensywne obciążenie?

A. Testy funkcjonalne
B. Testy obciążeniowe
C. Testy zgodności
D. Testy bezpieczeństwa
Testy obciążeniowe to rodzaj testów, które sprawdzają, jak aplikacja radzi sobie z dużym ruchem użytkowników lub przetwarzaniem dużych ilości danych. Celem testów obciążeniowych jest wykrycie potencjalnych wąskich gardeł, identyfikacja problemów z wydajnością oraz określenie maksymalnej przepustowości aplikacji. Testy te są kluczowe dla aplikacji o wysokim natężeniu ruchu, takich jak sklepy internetowe czy systemy bankowe, gdzie stabilność pod obciążeniem jest krytyczna dla sukcesu.

Pytanie 2

Do zadań widoku w architekturze MVVM (Model_View-Viewmodel) należy

A. zarządzanie logiką aplikacji - obejmuje wdrażanie algorytmów
B. obsługa interakcji użytkownika, stworzenie UI
C. przechowywanie ściągniętych i przetworzonych informacji
D. przekazywanie danych do widoku oraz wymiana informacji z modelem
Wzorzec MVVM (Model-View-ViewModel) zakłada, że widok (View) odpowiada za interakcję użytkownika i prezentację interfejsu. Rozdzielenie logiki aplikacji i interfejsu ułatwia zarządzanie kodem i jego testowanie.

Pytanie 3

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 automatycznego generowania dokumentacji projektu
D. Do kontrolowania wersji kodu źródłowego
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 4

W jakim modelu Cyklu Życia Projektu Informatycznego znajduje się etap analizy ryzyka?

A. W modelu z prototypem
B. W spiralnym
C. W modelu Fry’ego
D. W kaskadowym
Model kaskadowy nie uwzględnia formalnej analizy ryzyka, a projekt jest realizowany liniowo. Model z prototypem koncentruje się na szybkim tworzeniu działających wersji produktu, ale analiza ryzyka nie jest jego istotnym elementem. Model Fry’ego to starszy model, który nie kładzie nacisku na analizę ryzyka w każdej fazie projektu.

Pytanie 5

Które z wymienionych pól klasy można zainicjalizować przed stworzeniem obiektu?

A. Static pole
B. Publiczne pole
C. Prywatne pole
D. Chronione pole
Pola prywatne i chronione są związane z konkretnymi instancjami klasy, co oznacza, że nie mogą być inicjalizowane przed utworzeniem obiektu. Inicjalizacja takich pól następuje w konstruktorze klasy lub w trakcie tworzenia instancji. Publiczne pola, choć dostępne z dowolnego miejsca w programie, także wymagają istnienia konkretnej instancji obiektu, aby mogły zostać zainicjowane i użyte. Statyczność jest kluczowym czynnikiem pozwalającym na inicjalizację pola niezależnie od istnienia obiektu.

Pytanie 6

Termin ryzyko zawodowe odnosi się do

A. zagrożenia wypadkowego, które może wystąpić w miejscu pracy
B. ciężkości skutków niepożądanych zdarzeń związanych z pracą
C. efektów zagrożeń wypadkowych, jakie występują w miejscu zatrudnienia
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 7

Początkowym celem środowisk IDE takich jak: lntellij IDEA, Eclipse, NetBeans jest programowanie w języku

A. C++
B. C#
C. Java
D. Python
Środowiska IDE, takie jak IntelliJ IDEA, Eclipse oraz NetBeans, zostały zaprojektowane z myślą o programowaniu w języku Java, który jest jednym z najpopularniejszych języków programowania na świecie. Te zintegrowane środowiska deweloperskie oferują szereg narzędzi i funkcji, które znacznie ułatwiają proces tworzenia aplikacji w Java. Przykładowo, IntelliJ IDEA, stworzony przez firmę JetBrains, dostarcza wsparcie dla automatycznego uzupełniania kodu, refaktoryzacji oraz analizy statycznej, co przyspiesza cykl rozwoju oprogramowania. Eclipse, będący otwartym oprogramowaniem, umożliwia rozszerzanie swoich funkcji poprzez wtyczki, co czyni go elastycznym narzędziem dla programistów. NetBeans, z kolei, zapewnia łatwe w użyciu interfejsy oraz wsparcie dla wielu technologii związanych z Java, takich jak JavaFX czy Java EE, co czyni go idealnym wyborem dla rozwoju aplikacji webowych i desktopowych. Zgodnie z przyjętymi standardami w branży, Java jest językiem obiektowym, który charakteryzuje się wysoką przenośnością oraz bezpieczeństwem, co czyni go atrakcyjnym wyborem dla wielu projektów komercyjnych oraz edukacyjnych.

Pytanie 8

Który z wymienionych frameworków jest charakterystyczny dla aplikacji komputerowych pisanych w C#?

A. Spring
B. Qt
C. React
D. WPF (Windows Presentation Foundation)
Qt to popularny framework do tworzenia aplikacji, ale jest przeznaczony głównie dla języków takich jak C++ i Python, a nie C#. Spring to framework do tworzenia aplikacji webowych i serwerowych w języku Java – nie jest przeznaczony do budowy aplikacji desktopowych na platformie Windows. React to biblioteka JavaScript używana do budowy interfejsów użytkownika aplikacji webowych, głównie w środowisku przeglądarki, co sprawia, że nie nadaje się do tworzenia tradycyjnych aplikacji desktopowych w języku C#.

Pytanie 9

Jaki rodzaj testów można scharakteryzować przedstawionym opisem?

Ilustracja do pytania
A. testy funkcjonalne
B. testy wydajnościowe
C. testy zgodności
D. testy jednostkowe
Testy wydajnościowe oceniają szybkość i stabilność aplikacji pod obciążeniem. Testy jednostkowe sprawdzają działanie pojedynczych fragmentów kodu (np. funkcji). Testy kompatybilności oceniają, czy aplikacja działa poprawnie na różnych urządzeniach lub systemach operacyjnych.

Pytanie 10

Który z wymienionych mechanizmów umożliwia ograniczenie dostępu do wybranych sekcji aplikacji webowej?

A. Mechanizm renderowania treści
B. Pliki CSS statyczne
C. Formularze dynamiczne
D. System logowania i kontroli dostępu
System logowania i kontroli dostępu to kluczowy mechanizm, który pozwala na ograniczenie dostępu do niektórych części aplikacji webowej. Logowanie umożliwia uwierzytelnienie użytkowników i przypisanie im odpowiednich ról, co definiuje poziom dostępu do zasobów. Dzięki mechanizmom autoryzacji możliwe jest kontrolowanie, które funkcje lub sekcje aplikacji są dostępne dla poszczególnych użytkowników. Kontrola dostępu może być realizowana za pomocą tokenów JWT (JSON Web Token), sesji lub kluczy API, co zapewnia dodatkowe warstwy zabezpieczeń. Wdrożenie takich systemów jest nieodzowne w aplikacjach webowych oferujących różne poziomy funkcjonalności, takich jak panele administracyjne, portale użytkowników czy aplikacje bankowe. Odpowiednie zarządzanie uprawnieniami jest fundamentem bezpieczeństwa aplikacji.

Pytanie 11

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

A. Zmiana metody prywatnej na metodę publiczną
B. Tworzenie nowej metody w klasie bazowej
C. Przenoszenie metod z jednej klasy do drugiej
D. Zastosowanie tej samej nazwy metody w klasie bazowej i pochodnej, ale z inną implementacją w klasie pochodnej
Przesłanianie metody to mechanizm, w którym metoda w klasie pochodnej ma taką samą nazwę, typ zwracany i listę parametrów jak metoda w klasie bazowej, ale zawiera inną implementację. To kluczowy element polimorfizmu, umożliwiający dostosowanie zachowania klasy pochodnej do jej specyficznych potrzeb, przy zachowaniu spójnego interfejsu. Przesłanianie metod pozwala na elastyczne projektowanie kodu i jest szeroko stosowane w dużych projektach, aby umożliwić rozszerzalność oraz ponowne wykorzystanie istniejącej logiki. W C++ przesłanianie osiąga się za pomocą słowa kluczowego 'virtual' w klasie bazowej, a następnie redefinicji metody w klasie pochodnej.

Pytanie 12

Który z poniższych przykładów stanowi aplikację mobilną wykorzystującą bazę danych?

A. Aplikacja kalkulator
B. Aplikacja do robienia zdjęć
C. Aplikacja gromadząca listę kontaktów użytkownika
D. Aplikacja wyświetlająca lokalny czas
Aplikacja przechowująca listę kontaktów użytkownika korzysta z bazy danych do przechowywania, odczytywania i zarządzania danymi. Tego typu aplikacje mobilne muszą efektywnie zarządzać dużą ilością danych i zapewniać ich szybki dostęp. Bazy danych, takie jak SQLite czy Firebase, są szeroko stosowane w aplikacjach mobilnych, umożliwiając przechowywanie kontaktów, wiadomości, notatek i innych informacji użytkownika. Dzięki bazom danych możliwe jest także synchronizowanie danych pomiędzy urządzeniami i przechowywanie ich w chmurze.

Pytanie 13

Jakie jest fundamentalne zagadnienie w projektowaniu aplikacji w architekturze klient-serwer?

A. Brak podziału na role klienta i serwera
B. Przeniesienie wszystkich obliczeń na stronę klienta
C. Użycie serwera jako głównego miejsca przetwarzania danych
D. Funkcjonowanie aplikacji wyłącznie w trybie offline
Brak rozróżnienia ról pomiędzy klientem a serwerem prowadzi do dezorganizacji i uniemożliwia efektywne zarządzanie danymi. Przeniesienie całości obliczeń na stronę klienta znacznie obciąża jego urządzenie, co może prowadzić do spadku wydajności i zwiększonego zużycia zasobów. Działanie aplikacji wyłącznie w trybie offline wyklucza możliwość przetwarzania danych w czasie rzeczywistym i ogranicza dostęp do aktualnych informacji, co jest sprzeczne z ideą architektury klient-serwer.

Pytanie 14

Który z poniższych opisów najlepiej definiuje kompilator?

A. Narzędzie przekształcające kod źródłowy na plik wykonywalny
B. Narzędzie do analizy kodu w czasie rzeczywistym
C. System monitorujący zmiany w kodzie źródłowym
D. Program łączący dynamiczne biblioteki z kodem źródłowym
Analiza kodu w czasie rzeczywistym to zadanie debuggera, który umożliwia śledzenie i analizowanie działania programu na bieżąco, a nie kompilatora. Program łączący dynamiczne biblioteki to linker, który działa po skompilowaniu kodu źródłowego i łączy pliki obiektowe oraz biblioteki w jeden program wykonywalny. System śledzący zmiany w kodzie źródłowym to system kontroli wersji, jak Git, który monitoruje zmiany w plikach projektu, ale nie zajmuje się tłumaczeniem kodu na język maszynowy.

Pytanie 15

Jakie są kluczowe zasady WCAG 2.0?

A. Dostosowana, błyskawiczna, mobilna, dostępna
B. Percepcyjna, operacyjna, zrozumiała, solidna
C. Elastyczna, prosta, przejrzysta, trwała
D. Ewolucyjna, interaktywna, efektywna
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 16

W wyniku realizacji zaprezentowanego kodu na ekranie pojawią się

Ilustracja do pytania
A. wszystkie elementy tablicy, które mają wartość nieparzystą
B. wszystkie elementy tablicy, które są wielokrotnością 3
C. elementy z indeksów tablicy, które są podzielne przez 3
D. elementy tablicy o indeksach: 1, 2, 4, 5, 7, 8
Co do podzielnych przez 3 – Kod skupia się na indeksach, nie na wartościach. Jeśli chodzi o elementy podzielne przez 3, to to dotyczy wartości, a nie indeksów. Natomiast wszystkie nieparzyste elementy – to znów ogranicza się tylko do wartości, a pytanie dotyczy indeksów tablicy, co może wprowadzać w błąd.

Pytanie 17

Który z poniższych opisów najlepiej charakteryzuje system informatyczny?

A. Sieć komputerowa, która umożliwia komunikację pomiędzy użytkownikami
B. Oprogramowanie wspierające jedynie zarządzanie danymi osobowymi
C. Zbiór urządzeń technicznych używanych w pracy biurowej
D. Zespół ludzi, procedur, oprogramowania i sprzętu służący do przetwarzania danych
Pierwsza z niepoprawnych odpowiedzi definiuje system informatyczny jedynie jako zespół urządzeń technicznych używanych do pracy biurowej. Tego rodzaju podejście jest zbyt wąskie i nie obejmuje istotnych elementów, takich jak ludzie i procedury, które są kluczowe w kontekście przetwarzania danych. Oprogramowanie i procedury są równie ważne, ponieważ stanowią podstawę dla skutecznego działania systemu informatycznego. Kolejna odpowiedź ogranicza się wyłącznie do oprogramowania wspierającego zarządzanie danymi osobowymi, co również jest nieprawidłowe. Systemy informatyczne są zdecydowanie bardziej złożone i obejmują szereg funkcjonalności, takich jak zarządzanie procesami, analizę biznesową czy integrację z innymi systemami. Ostatnia odpowiedź odnosi się do sieci komputerowej, co jest tylko jednym z komponentów systemu informatycznego. Sieć komputerowa może być wykorzystywana do komunikacji, ale nie definiuje całego systemu, ponieważ brak w niej odniesienia do ludzi, procedur i oprogramowania, które są kluczowe dla pełnego zrozumienia roli systemu informatycznego w organizacji.

Pytanie 18

Która z wymienionych bibliotek pozwala na obsługę zdarzeń związanych z myszą w aplikacjach desktopowych?

A. Numpy
B. TensorFlow
C. Qt
D. Django
Numpy to biblioteka do obliczeń numerycznych w języku Python i nie posiada narzędzi do obsługi zdarzeń graficznych w aplikacjach desktopowych. Django to framework do budowy aplikacji webowych w Pythonie, koncentrujący się na backendzie, a nie na tworzeniu GUI czy interakcji z myszą. TensorFlow to biblioteka do uczenia maszynowego i przetwarzania danych, nieprzystosowana do tworzenia aplikacji desktopowych obsługujących zdarzenia myszki i klawiatury.

Pytanie 19

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

Ilustracja do pytania
A. 8
B. 7
C. 6
D. 5
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 20

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

Ilustracja do pytania
A. wartości 0 po naciśnięciu przycisku
B. wyłącznie przycisku oraz obsłużenie zdarzenia click, które ono generuje
C. liczby kliknięć przycisku
D. tylko napisu BTN_1
Wyświetlanie samego przycisku bez licznika jest możliwe, ale nie spełnia założeń tego fragmentu kodu. Generowanie liczby 0 po kliknięciu sugeruje błędne zarządzanie stanem komponentu. Wyświetlanie napisu BTN_1 wskazuje na statyczny tekst, który nie zmienia się w odpowiedzi na interakcję użytkownika.

Pytanie 21

Jakie jest podstawowe środowisko do tworzenia aplikacji desktopowych przy użyciu języka C#?

A. Eclipse
B. NetBeans
C. PyCharm
D. MS Visual Studio
MS Visual Studio to potężne zintegrowane środowisko programistyczne (IDE) zaprojektowane przez firmę Microsoft, które oferuje pełne wsparcie dla języka C#. Dzięki bogatym funkcjom, takim jak IntelliSense, które ułatwia pisanie kodu poprzez podpowiadanie składni oraz dostępność narzędzi do debugowania, programiści mogą efektywnie rozwijać aplikacje desktopowe. MS Visual Studio obsługuje różne frameworki, takie jak .NET Framework oraz .NET Core, co pozwala na budowanie aplikacji o różnej architekturze. W praktyce, programiści mogą tworzyć aplikacje w oparciu o Windows Presentation Foundation (WPF) lub Windows Forms, co umożliwia tworzenie rozbudowanych interfejsów użytkownika. Dodatkowo, MS Visual Studio oferuje szereg narzędzi do współpracy zespołowej, integracji z systemami kontroli wersji oraz wsparcie dla testowania jednostkowego. Jako standard w branży, MS Visual Studio jest często preferowanym wyborem w projektach komercyjnych i korporacyjnych, z uwagi na jego wszechstronność oraz wsparcie ze strony społeczności programistycznej.

Pytanie 22

Który z języków programowania jest powszechnie wykorzystywany do tworzenia aplikacji na komputery stacjonarne?

A. C++
B. PHP
C. HTML
D. JavaScript
HTML to język znaczników używany do tworzenia stron internetowych, a nie aplikacji desktopowych. Choć HTML może być wykorzystany do budowy interfejsów w aplikacjach webowych, nie oferuje bezpośredniego wsparcia dla budowy natywnych aplikacji desktopowych. PHP jest językiem skryptowym, który działa po stronie serwera i jest głównie stosowany w aplikacjach webowych – jego zastosowanie w aplikacjach desktopowych jest ograniczone. JavaScript jest językiem programowania używanym głównie w przeglądarkach internetowych i rzadko stosowanym w budowie tradycyjnych aplikacji desktopowych, z wyjątkiem technologii takich jak Electron, które pozwalają na tworzenie aplikacji wieloplatformowych w oparciu o webowe technologie.

Pytanie 23

Jakie są różnice między kompilatorem a interpretem?

A. Interpreter tworzy plik wykonywalny, który funkcjonuje niezależnie od otoczenia
B. Kompilator przetwarza kod na język maszynowy w momencie jego wykonywania
C. Kompilator przekształca kod źródłowy na język maszynowy przed uruchomieniem aplikacji
D. Interpreter konwertuje kod źródłowy na język maszynowy przed jego kompilacją
Kompilator nie tłumaczy kodu w trakcie jego działania, bo to już zadanie interpretera. Interpreter przetwarza kod linijka po linijce podczas działania programu. Z tego powodu nie tworzy plików wykonywalnych, program po prostu działa w czasie rzeczywistym, a to sprawia, że działa wolniej. Mówiąc krótko, tłumaczenie kodu przed kompilacją to nie jest to, co się robi – kompilacja to proces, który tworzy plik wykonywalny z kodu źródłowego. Dlatego interpreter nie generuje żadnych niezależnych plików, tylko analizuje i wykonuje kod od razu.

Pytanie 24

Jaką rolę odgrywa pamięć operacyjna (RAM) w komputerowym systemie?

A. Zarządzanie transferem danych pomiędzy urządzeniami wejścia/wyjścia
B. Tymczasowe magazynowanie danych i instrukcji dla procesora
C. Trwałe przechowywanie systemu operacyjnego
D. Umożliwienie tworzenia kopii zapasowej danych użytkownika
Odpowiedzi, które sugerują inne funkcje pamięci operacyjnej, są niepoprawne z kilku powodów. Stałe przechowywanie systemu operacyjnego jest zarezerwowane dla pamięci masowej, takiej jak dyski twarde lub SSD, które zapewniają długoterminowe przechowywanie danych. Pamięć RAM jest ulotna, co oznacza, że wszystkie dane są tracone po wyłączeniu zasilania, podczas gdy system operacyjny musi być zawsze dostępny po restarcie komputera. Kolejną nieścisłością jest sugestia, że RAM zarządza przepływem danych między urządzeniami wejścia/wyjścia. To zadanie leży w gestii kontrolerów i systemu operacyjnego, które koordynują interakcję między różnorodnymi urządzeniami, a nie samej pamięci operacyjnej. Ostatnia odpowiedź dotycząca zapewnienia kopii zapasowej danych użytkownika również jest błędna. Kopie zapasowe są zwykle przechowywane na pamięci masowej, a nie w RAM, która nie ma zdolności do trwałego przechowywania danych. Pamięć operacyjna służy jedynie do tymczasowego przetrzymywania danych potrzebnych do bieżącego działania systemu komputerowego.

Pytanie 25

Wskaż typy numeryczne o stałej precyzji

A. float, double
B. int, short, long
C. long long, long double
D. bool char, string
Typy stałoprzecinkowe, takie jak int, short i long, przechowują liczby całkowite bez części ułamkowej. Są to podstawowe typy danych w wielu językach programowania, używane do przechowywania liczb całkowitych różnej wielkości.

Pytanie 26

Jakie z wymienionych czynności może zagrażać cyfrowej tożsamości?

A. Aktywacja uwierzytelniania dwuskładnikowego
B. Klikanie w podejrzane linki w wiadomościach e-mail
C. Tworzenie unikalnych oraz mocnych haseł
D. Cykliczna zmiana haseł do kont
Klikanie w podejrzane linki w wiadomościach e-mail to jedno z najczęstszych źródeł infekcji i naruszenia cyfrowej tożsamości. Cyberprzestępcy często wykorzystują phishing, czyli technikę polegającą na wysyłaniu fałszywych wiadomości, które wyglądają na autentyczne. Kliknięcie w link może prowadzić do zainstalowania złośliwego oprogramowania lub przekierowania na stronę wyłudzającą dane logowania. Aby uniknąć tego zagrożenia, zaleca się sprawdzanie adresu nadawcy, unikanie otwierania załączników z nieznanych źródeł i korzystanie z filtrów antyphishingowych.

Pytanie 27

Jakie są różnice między testami funkcjonalnymi a niefunkcjonalnymi?

A. Testy funkcjonalne koncentrują się na interfejsie, a niefunkcjonalne na backendzie aplikacji
B. Testy funkcjonalne są realizowane tylko przez końcowych użytkowników, natomiast niefunkcjonalne przez programistów
C. Testy funkcjonalne oceniają zgodność działania aplikacji z założeniami, a niefunkcjonalne analizują aspekty wydajności, bezpieczeństwa i użyteczności
D. Testy funkcjonalne oceniają wydajność aplikacji, podczas gdy niefunkcjonalne weryfikują poprawność kodu
Testy funkcjonalne sprawdzają, czy aplikacja działa zgodnie z założeniami i spełnia określone wymagania użytkownika. Obejmują one testowanie interfejsu, przepływu pracy oraz funkcji kluczowych dla działania oprogramowania. Testy niefunkcjonalne koncentrują się na aspektach takich jak wydajność, skalowalność, bezpieczeństwo i użyteczność. Różnica polega na tym, że testy funkcjonalne oceniają 'co' robi aplikacja, podczas gdy testy niefunkcjonalne oceniają 'jak dobrze' aplikacja działa w różnych warunkach. Testy niefunkcjonalne obejmują testy obciążeniowe (load testing), testy penetracyjne oraz analizy UX. Oba typy testów są niezbędne dla zapewnienia wysokiej jakości oprogramowania i jego niezawodności w środowisku produkcyjnym.

Pytanie 28

Prezentowana metoda jest realizacją algorytmu

Ilustracja do pytania
A. wyszukującego literę w ciągu
B. sortującego ciąg od znaku o najniższym kodzie ASCII do znaku o najwyższym kodzie
C. sprawdzającego, czy dany ciąg jest palindromem
D. odwracającego ciąg
Sprawdzanie palindromów to coś innego, bo tu porównujesz napis z jego odwróconą wersją. A jeśli chodzi o szukanie znaków, to raczej iterujesz przez napis. Sortowanie według kodów ASCII też ma swoje zadania, ale nie ma tu nic wspólnego z odwracaniem napisu. Także wiesz, to trochę inny temat.

Pytanie 29

W jakim języku programowania kod źródłowy musi być skompilowany do kodu maszynowego konkretnej architektury procesora przed jego uruchomieniem?

A. Java
B. Perl
C. C++
D. PHP
PHP i Perl to języki interpretowane, a nie kompilowane – kod jest wykonywany linia po linii. Java wymaga kompilacji, ale do kodu bajtowego, który następnie jest interpretowany przez maszynę wirtualną (JVM), a nie bezpośrednio do kodu maszynowego.

Pytanie 30

Jakiego rodzaju zmiennej użyjesz w C++, aby przechować wartość "true"?

A. liczba zmiennoprzecinkowa
B. bool
C. tekst
D. liczba całkowita
Typ danych 'bool' w języku C++ jest przeznaczony do przechowywania wartości 'true' lub 'false'. Deklaracja 'bool isReady = true;' to przykład poprawnego przypisania wartości logicznej do zmiennej. Typ boolean jest kluczowy w warunkach decyzyjnych, pętlach i operacjach porównawczych. W programowaniu typ 'bool' jest wykorzystywany do kontroli przepływu programu, obsługi wyjątków oraz sprawdzania poprawności danych. Użycie booleanów w kodzie zwiększa jego czytelność i pozwala na bardziej przejrzyste budowanie logiki aplikacji.

Pytanie 31

Jaki numer telefonu należy wybrać, aby skontaktować się z pogotowiem ratunkowym w Polsce?

A. 113
B. 112
C. 997
D. 998
Numer 112 to europejski numer alarmowy, który działa we wszystkich krajach Unii Europejskiej, w tym w Polsce. Jego wybór pozwala na natychmiastowe połączenie się z dyspozytorem służb ratunkowych (pogotowie ratunkowe, straż pożarna, policja). Jest to uniwersalny numer, który można wybrać z dowolnego telefonu komórkowego lub stacjonarnego, nawet jeśli urządzenie nie ma karty SIM. Dzięki tej uniwersalności jest to najczęściej rekomendowany numer w nagłych wypadkach.

Pytanie 32

Jakie elementy powinny być ujęte w dokumentacji programu?

A. Zestawienie błędów zidentyfikowanych w trakcie testów
B. Opis funkcji, klas i zmiennych w kodzie
C. Szczegóły dotyczące konfiguracji serwera
D. Strategia marketingowa aplikacji
Opis funkcji, klas i zmiennych w kodzie to kluczowy element dokumentacji programu. Tego rodzaju dokumentacja pozwala na lepsze zrozumienie struktury aplikacji, jej logiki biznesowej oraz wzajemnych zależności pomiędzy poszczególnymi komponentami. Dokumentacja techniczna obejmuje szczegółowe informacje na temat implementacji, interfejsów API, schematów baz danych oraz sposobów integracji z innymi systemami. Dzięki niej programiści mogą szybciej wdrażać się w projekt, a błędy i niejasności są minimalizowane. Kompleksowa dokumentacja zawiera także przykłady użycia poszczególnych funkcji, co dodatkowo ułatwia rozwój i rozbudowę aplikacji. W dobrze prowadzonym projekcie dokumentacja kodu jest na bieżąco aktualizowana, co zwiększa jego przejrzystość i wspiera proces refaktoryzacji.

Pytanie 33

Jakie narzędzie może zostać wykorzystane do automatyzacji testów aplikacji internetowych?

A. Postman
B. Blender
C. Selenium
D. Visual Studio Code
Postman to narzędzie do testowania API, umożliwiające wysyłanie zapytań HTTP i analizowanie odpowiedzi serwera, ale nie jest narzędziem do testowania interfejsów użytkownika w przeglądarce. Blender to narzędzie do modelowania 3D i animacji, które nie ma zastosowania w testowaniu aplikacji webowych. Visual Studio Code to edytor kodu źródłowego, który może być używany do pisania i debugowania kodu, ale samo w sobie nie jest narzędziem do automatycznego testowania aplikacji webowych, jak Selenium.

Pytanie 34

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

A. Przeprowadzanie testów
B. Analiza
C. Wdrażanie
D. Etap planowania
Planowanie koncentruje się na ustaleniu harmonogramu, budżetu i alokacji zasobów, ale nie obejmuje dogłębnej analizy wymagań użytkownika. Implementacja to faza, w której kod jest tworzony na podstawie wcześniejszych ustaleń, ale nie jest to etap zbierania wymagań. Testowanie odbywa się po implementacji i służy wykrywaniu błędów, a nie definiowaniu oczekiwań użytkownika wobec produktu.

Pytanie 35

Jakie składniki są kluczowe w dynamicznym formularzu logowania?

A. Pola tekstowe do wprowadzania danych użytkownika
B. Nagłówek HTTP
C. Plik graficzny
D. Tabela w bazie danych
Pola tekstowe do wprowadzania danych użytkownika są kluczowym elementem dynamicznego formularza logowania. Umożliwiają one użytkownikowi wprowadzenie informacji, takich jak nazwa użytkownika i hasło, co jest niezbędne do uwierzytelnienia w systemie. Formularze HTML wykorzystują tagi <input> do tworzenia pól tekstowych, a ich interakcja z użytkownikiem może być wspierana przez JavaScript lub inne technologie frontendowe, które walidują dane i zapewniają bezpieczeństwo procesu logowania. Pola tekstowe mogą być wzbogacone o atrybuty, takie jak 'required', 'pattern' czy 'type', które dodatkowo zabezpieczają formularz i ułatwiają użytkownikowi poprawne wypełnienie danych.

Pytanie 36

Jakie mogą być konsekwencje długotrwałego narażenia na hałas w pracy?

A. Obniżenie ostrości wzroku
B. Choroby skórne
C. Uszkodzenie słuchu i zmęczenie
D. Wzrost efektywności pracy
Długotrwały hałas w miejscu pracy może prowadzić do poważnych konsekwencji zdrowotnych, takich jak uszkodzenie słuchu oraz przewlekłe zmęczenie. Stała ekspozycja na hałas o wysokim natężeniu może powodować stopniową utratę słuchu, szumy uszne, a także zwiększać poziom stresu i obniżać koncentrację. Zmęczenie wynikające z hałasu wpływa negatywnie na produktywność i samopoczucie pracowników, prowadząc do spadku efektywności oraz wzrostu ryzyka popełniania błędów. W celu ochrony przed hałasem zaleca się stosowanie środków ochrony indywidualnej, takich jak nauszniki lub zatyczki do uszu, a także instalowanie ekranów dźwiękochłonnych i ograniczenie źródeł hałasu w środowisku pracy.

Pytanie 37

Jaki rodzaj ataku hakerskiego polega na bombardowaniu serwera ogromną ilością żądań, co prowadzi do jego przeciążenia?

A. Phishing
B. SQL Injection
C. DDoS
D. Man-in-the-Middle
Phishing to technika, która polega na oszukiwaniu użytkowników w celu uzyskania poufnych informacji, takich jak hasła czy numery kart kredytowych, poprzez podszywanie się pod zaufane źródła. Atakujący często wykorzystują fałszywe e-maile lub strony internetowe, które wyglądają jak oryginalne, aby nakłonić ofiary do ujawnienia swoich danych. Ta metoda nie ma nic wspólnego z przeciążaniem serwerów, lecz raczej z manipulacją ludzką. Man-in-the-Middle (MitM) to atak, w którym haker przechwytuje komunikację pomiędzy dwoma stronami, umożliwiając mu podsłuchiwanie lub nawet modyfikowanie przesyłanych danych. W tym przypadku celem nie jest przeciążenie serwera, ale raczej kradzież informacji lub wprowadzenie złośliwego kodu. SQL Injection jest techniką, w której atakujący wprowadza złośliwe zapytania SQL do aplikacji internetowej, co pozwala mu na dostęp do bazy danych i wykonanie nieautoryzowanych operacji. Ta metoda również nie dotyczy przeciążenia serwera, lecz naruszenia integralności danych. Wszystkie te techniki różnią się znacznie od ataku DDoS, który koncentruje się na zakłóceniu dostępności serwisu poprzez jego przeciążenie.

Pytanie 38

Wykorzystując jeden z dwóch zaprezentowanych sposobów inkrementacji w językach z rodziny C lub Java, można zauważyć, że

Ilustracja do pytania
A. tylko przy użyciu pierwszego zapisu, zmienna a zostanie zwiększona o 1
B. wartość zmiennej b będzie wyższa po użyciu drugiego zapisu w porównaniu do pierwszego
C. bez względu na zastosowany sposób, w zmiennej b zawsze uzyskamy ten sam rezultat
D. drugi zapis nie jest zgodny ze składnią, co doprowadzi do błędów kompilacji
Drugi zapis nie jest niezgodny ze składnią – zarówno preinkrementacja, jak i postinkrementacja są w pełni zgodne z zasadami języka i nie powodują błędów kompilacji. Niezależnie od wybranego zapisu, zmienna zostanie zwiększona, lecz kluczowa różnica polega na tym, kiedy dokładnie to następuje. Twierdzenie, że w każdym przypadku wynik będzie taki sam, jest błędne – różnice pojawiają się podczas użycia tych operatorów w bardziej złożonych wyrażeniach. Zapis pierwszy (preinkrementacja) nie jest jedynym sposobem na zwiększenie wartości zmiennej, chociaż w wielu sytuacjach jest preferowany ze względu na efektywność.

Pytanie 39

Jakie elementy powinny być zawarte w instrukcji dla użytkownika danej aplikacji?

A. Harmonogram realizacji projektu
B. Informacje o narzędziach programistycznych zastosowanych w procesie tworzenia aplikacji
C. Opis instalacji, konfiguracji oraz obsługi oprogramowania
D. Wyjaśnienie struktur danych wykorzystywanych w kodzie
W instrukcji użytkownika aplikacji warto, żeby był opis tego, jak zainstalować, skonfigurować i korzystać z programu. Taka dokumentacja, pisana krok po kroku, pomaga użytkownikowi przejść przez wszystkie etapy, od pobrania oprogramowania, przez instalację, aż po to, żeby w pełni wykorzystać wszystkie funkcje. Dobrze, żeby były tam też info o wymaganiach systemowych, sposobach radzenia sobie z problemami czy aktualizacjach oprogramowania. Moim zdaniem, taka dokładna instrukcja jest mega ważna, bo zmniejsza szanse na napotkanie kłopotów podczas korzystania z aplikacji i sprawia, że łatwiej jest wdrożyć ją w pracy. Jak użytkownicy mają porządnie napisaną instrukcję, to są bardziej zadowoleni i szybciej przyzwyczajają się do nowego narzędzia.

Pytanie 40

Jak zrealizować definiowanie własnego wyjątku w języku C++?

A. Wykorzystać blok try z pustym blokiem catch
B. Skorzystać z domyślnej metody obsługi błędów
C. Utworzyć klasę, która dziedziczy po std::exception
D. Automatycznie wywołać funkcję throw
Użycie standardowej funkcji obsługi błędów, takiej jak 'perror()', nie pozwala na zdefiniowanie własnego wyjątku – 'perror()' wyświetla komunikat o błędzie, ale nie zgłasza wyjątku. Blok 'try' z pustym blokiem 'catch' nie tworzy nowego wyjątku, lecz jedynie przechwytuje istniejące wyjątki. Wywołanie 'throw' automatycznie nie definiuje nowego wyjątku – 'throw' służy do zgłaszania istniejącego wyjątku, ale definicja własnego wyjątku wymaga utworzenia nowej klasy dziedziczącej po 'std::exception'.