Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 8 maja 2025 09:49
  • Data zakończenia: 8 maja 2025 10:04

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

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

W zaprezentowanym kodzie stworzono abstrakcyjną klasę figura oraz klasę prostokąta, która dziedziczy po niej, zawierającą zdefiniowane pola i konstruktory. Wskaż minimalną wersję implementacji sekcji /* metody klasy */ dla klasy Prostokat:

Ilustracja do pytania
A. A
B. D
C. B
D. C
Inne implementacje albo pomijają wymagane metody, co prowadzi do błędów kompilacji, albo zawierają niepotrzebne rozszerzenia, które wykraczają poza minimalny zakres. Pomijanie wymaganych konstruktorów powoduje, że klasa nie dziedziczy poprawnie po klasie nadrzędnej.

Pytanie 2

Zaprezentowany fragment kodu w języku C# tworzy hasło. Wskaż zdanie PRAWDZIWE dotyczące charakterystyki tego hasła:

Ilustracja do pytania
A. Ma co najmniej 8 znaków oraz zawiera małe i wielkie litery oraz cyfry
B. Może zawierać małe i wielkie litery oraz cyfry
C. Może zawierać zarówno małe, jak i wielkie litery, cyfry oraz symbole
D. Jest maksymalnie 7-znakowe, co wynika z wartości zmiennej i
Niektóre odpowiedzi błędnie sugerują, że hasło może zawierać mniej niż 8 znaków lub ogranicza się do liter i cyfr, co zmniejsza poziom bezpieczeństwa. Symbole dodatkowe i różna długość haseł wpływają na jego siłę, ale w tym przypadku skupiamy się na podstawowych zasadach budowy haseł.

Pytanie 3

Która z wymienionych metod jest najodpowiedniejsza do wizualizacji procesu podejmowania decyzji?

A. Schemat blokowy
B. Drzewo decyzyjne
C. Pseudokod
D. Lista kroków
Schemat blokowy to jedna z najlepszych metod wizualnego przedstawienia procesu decyzyjnego. Umożliwia graficzne odwzorowanie przepływu operacji i decyzji, co czyni go niezwykle przydatnym narzędziem w analizie i projektowaniu algorytmów. Dzięki użyciu różnych kształtów (np. prostokątów dla operacji, rombów dla decyzji) schemat blokowy pozwala jasno i czytelnie przedstawić logikę działania programu lub systemu. Jest szeroko stosowany w inżynierii oprogramowania, zarządzaniu projektami oraz nauczaniu podstaw algorytmiki. Pozwala zidentyfikować potencjalne błędy i optymalizować procesy jeszcze przed rozpoczęciem implementacji.

Pytanie 4

Zademonstrowana pętla wykorzystuje obiekt random do

Ilustracja do pytania
A. wielokrotnego generowania liczby, aby stworzyć ciąg z liczb pseudolosowych
B. uzupełnienia tablicy danymi w postaci liczb pseudolosowych
C. stworzenia losowego napisu o długości 8 znaków składającego się z liter
D. jednorazowego wylosowania znaku z określonego zestawu znaków
Wielokrotne losowanie – Dotyczy sytuacji, gdy generowane jest wiele liczb, co nie jest zgodne z kodem. Wypełnienie tablicy – Kod dotyczy jednego znaku, a nie tablicy. Generowanie napisu – Pętla mogłaby generować ciąg znaków, ale pytanie dotyczy pojedynczego znaku.

Pytanie 5

Jakie funkcje realizuje polecenie "git clone"?

A. Tworzy lokalną kopię już istniejącego repozytorium
B. Łączy dwa branche w repozytorium
C. Rejestruje zmiany w historii repozytorium
D. Usuwa zdalne repozytorium
Polecenie 'git clone' tworzy kopię lokalną istniejącego repozytorium, co pozwala programistom na szybkie rozpoczęcie pracy z projektem. Proces ten pobiera całą historię commitów oraz wszystkie gałęzie repozytorium, dzięki czemu użytkownik posiada pełną wersję projektu na swoim komputerze. Jest to podstawowe polecenie podczas rozpoczynania pracy nad nowym projektem, który znajduje się na platformach takich jak GitHub, GitLab czy Bitbucket. 'git clone' umożliwia również sklonowanie repozytoriów prywatnych, pod warunkiem posiadania odpowiednich uprawnień dostępu.

Pytanie 6

Które z wymienionych działań stanowi zagrożenie dla emocjonalnego dobrostanu człowieka w sieci?

A. Zła postawa podczas pracy przy komputerze
B. Przesyłanie niezaszyfrowanych plików
C. Nadmierne korzystanie z mediów społecznościowych
D. Cyberstalking
Nadmierne korzystanie z mediów społecznościowych może negatywnie wpływać na samopoczucie i prowadzić do uzależnienia, ale samo w sobie nie stanowi formy prześladowania. Zła postawa podczas pracy przy komputerze prowadzi do problemów zdrowotnych, takich jak bóle pleców i karku, a nie wpływa na sferę emocjonalną. Przesyłanie niezaszyfrowanych plików zwiększa ryzyko naruszenia danych, ale nie oddziałuje na psychikę użytkownika.

Pytanie 7

Zajmując się pracą w zespole oraz dbając o jego efektywne funkcjonowanie, nie powinniśmy

A. sumiennie i w ustalonym terminie realizować swoje zadania
B. wspierać się nawzajem
C. przyjmować odpowiedzialności za swoje decyzje
D. skupiać się jedynie na własnych korzyściach
Motywowanie się wzajemnie zwiększa produktywność i zaangażowanie członków zespołu. Rzetelne wywiązywanie się z obowiązków jest kluczowe dla sprawnego działania zespołu. Branie odpowiedzialności za swoje działania wzmacnia zaufanie i sprzyja harmonijnej współpracy.

Pytanie 8

Jakie wartości może przyjąć zmienna typu boolean?

A. O oraz każdą liczbę całkowitą
B. trzy dowolne liczby naturalne
C. 1, -1
D. true, false
Zmienna typu logicznego (boolowskiego) w językach programowania, takich jak C++, Java czy Python, może przyjmować tylko dwie wartości: true (prawda) oraz false (fałsz). Te wartości są fundamentalne w logice komputerowej, ponieważ umożliwiają podejmowanie decyzji oraz kontrolowanie przepływu programu poprzez struktury warunkowe, takie jak instrukcje if, while czy for. Na przykład, w języku Python, tworząc zmienną logiczną, możemy użyć operatorów porównania, aby określić, czy dwie wartości są równe: is_equal = (5 == 5), co ustawia is_equal na true. Zmienne logiczne są zdefiniowane w standardach programowania, takich jak IEEE 754 dla reprezentacji liczb zmiennoprzecinkowych, gdzie wartość logiczna jest kluczowa dla operacji porównawczych. Dobrze zrozumiana logika boolowska jest niezbędna dla programistów, ponieważ stanowi podstawę algorytmu decyzyjnego oraz wpływa na efektywność kodu.

Pytanie 9

Jakie narzędzie jest najbardziej odpowiednie do identyfikacji błędów w trakcie działania programu?

A. Debugger
B. Interpreter
C. Kompilator
D. Linker
Kompilator służy do tłumaczenia kodu źródłowego na kod maszynowy przed uruchomieniem programu, ale nie analizuje błędów w czasie jego wykonywania. Interpreter tłumaczy kod na bieżąco, ale nie pozwala na zatrzymywanie programu i analizowanie jego działania krok po kroku. Linker to narzędzie, które łączy różne moduły i biblioteki w jeden plik wykonywalny, ale nie ma funkcji analizy błędów w czasie działania programu – jego rola kończy się po wygenerowaniu pliku wykonywalnego.

Pytanie 10

Reguła zaangażowania i konsekwencji jako jedna z zasad wpływania na innych odnosi się

A. do doprowadzania spraw do końca
B. do uległości wobec autorytetów
C. do odwzajemniania się osobie, która nam pomogła
D. do kierowania się zdaniem danej grupy
Odwdzięczenie się osobie za przysługę jest częścią reguły wzajemności, a nie zaangażowania i konsekwencji. Sugerowanie się opinią społeczności to reguła społecznego dowodu słuszności. Posłuszeństwo wobec autorytetów wynika z reguły autorytetu, która skłania ludzi do podążania za osobami uznawanymi za ekspertów w danej dziedzinie.

Pytanie 11

Szablon MojaTablica oferuje funkcjonalność tablicy z indeksami oraz elementami różnych typów. W oparciu o pokazany kod, który wykorzystuje ten szablon do tworzenia tablicy asocjacyjnej, wskaż definicję, która posługuje się szablonem do zainicjowania tablicy, gdzie indeksami są liczby całkowite, a elementami są napisy?

Ilustracja do pytania
A. int tab2[] = new MojaTablica()
B. MojaTablica tab2 = MOjaTablica()
C. MojaTablica tab2 = new MojaTablica()
D. int tab2 = new MojaTablica()
Deklaracja int tab2[] = new MojaTablica(); jest nieprawidłowa, ponieważ int odnosi się do typów prostych, a nie do tablic asocjacyjnych. MojaTablica tab2 = MOjaTablica(); zawiera literówkę i nie inicjalizuje nowego obiektu. Int tab2 = new MojaTablica(); jest błędne, ponieważ tablica asocjacyjna nie może być przypisana do typu int – wymaga użycia typu zgodnego z definicją szablonu.

Pytanie 12

W programie desktopowym stworzono rozwijaną listę oraz przypisano cztery funkcje do obsługi zdarzeń tej kontrolki. Jaki komunikat pojawi się po dokonaniu wyboru w tej liście?

Ilustracja do pytania
A. Zdarzenie 2
B. Zdarzenie 1
C. Zdarzenie 3
D. Zdarzenie 4
Inne zdarzenia mogą być wywoływane przy inicjalizacji listy (np. 'Zdarzenie 3'), ale nie są związane bezpośrednio z wyborem elementu. 'Zdarzenie 4' i 'Zdarzenie 2' mogą odnosić się do usuwania elementu lub innych operacji na liście, które nie następują podczas standardowego wyboru.

Pytanie 13

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

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

Pytanie 14

Które z poniższych jest podstawowym rodzajem testów używanych w testowaniu jednostkowym?

A. Testy integracyjne
B. Testy systemowe
C. Testy jednostkowe
D. Testy akceptacyjne
Pozostałe rodzaje testów, mimo że są istotne w procesie testowania oprogramowania, nie są podstawowymi elementami testowania jednostkowego. Testy integracyjne mają na celu sprawdzenie, czy różne moduły systemu współpracują ze sobą poprawnie. Są one wykonywane po testach jednostkowych i skupiają się na interakcjach między komponentami. Testy systemowe to kolejny poziom testowania, który bada cały zintegrowany system pod kątem zgodności z wymaganiami. Są one szeroko zakrojone i testują zarówno funkcjonalność, jak i niefunkcjonalne aspekty systemu, takie jak wydajność czy bezpieczeństwo. Testy akceptacyjne to ostatnia faza testowania, w której sprawdza się, czy system spełnia kryteria akceptacji i jest gotowy do wdrożenia. Są one często wykonywane przez końcowych użytkowników lub klientów, aby upewnić się, że system spełnia ich potrzeby i oczekiwania. Wszystkie te formy testowania są ważne, ale nie zastępują testów jednostkowych, które są fundamentem weryfikacji poprawności poszczególnych części kodu. Typowym błędem jest myślenie, że można całkowicie polegać na testach wyższego poziomu, zaniedbując testy jednostkowe, co może prowadzić do trudnych do wykrycia błędów w późniejszych etapach projektów.

Pytanie 15

Jakie pola powinny być umieszczone w klasie nadrzędnej w strukturze dziedziczenia?

A. Pola, które są charakterystyczne jedynie dla pojedynczej klasy pochodnej
B. Pola, które są wykorzystywane tylko w funkcjach statycznych
C. Pola, które są wspólne dla wszystkich klas pochodnych
D. Pola, które są tylko prywatne
Pola specyficzne dla jednej klasy pochodnej nie powinny znajdować się w klasie bazowej, ponieważ zwiększałoby to złożoność i naruszało zasadę separacji odpowiedzialności. Prywatne pola są ukryte i nie są dziedziczone przez klasy pochodne – są dostępne wyłącznie w ramach klasy, w której zostały zdefiniowane. Pola używane wyłącznie w metodach statycznych nie muszą znajdować się w klasie bazowej, ponieważ są to elementy niezależne od instancji klasy i są przypisane do samej klasy, a nie jej obiektów.

Pytanie 16

Podstawowym celem środowisk IDE takich jak: IntelliJ IDEA, Eclipse, NetBeans jest programowanie w języku:

A. C#
B. C++
C. Java
D. Python
Eclipse i NetBeans mogą wspierać inne języki (np. C/C++), ale ich głównym przeznaczeniem jest Java. PyCharm jest natomiast środowiskiem dedykowanym programowaniu w Pythonie, a Visual Studio jest najczęściej używane do C# i .NET, a nie do Javy.

Pytanie 17

Aplikacje webowe stworzone z użyciem frameworka Angular lub biblioteki React, działające na standardowych portach, można uruchomić na lokalnym serwerze, wpisując w przeglądarkę

A. localhost:5001 (React) lub localhost:8080 (Angular)
B. localhost:3000 (React) lub localhost:4200 (Angular)
C. localhost:8080 (React) lub localhost:8000 (Angular)
D. localhost:8000 (React) lub localhost:49887 (Angular)
Port 8080 jest często używany przez aplikacje serwerowe (np. Tomcat), a port 8000 przez narzędzia takie jak Django. Port 5001 jest rzadziej używany w tym kontekście. Domyślne porty dla React i Angular są standardem w dokumentacji i narzędziach deweloperskich tych frameworków.

Pytanie 18

Jaki będzie wynik działania poniższego kodu w języku C#?

int x = 5; int y = 10; Console.WriteLine($"Suma {x} i {y} wynosi {x + y}");

A. Suma x i y wynosi 15
B. Error: niewłaściwa składnia
C. Suma 5 i 10 wynosi x + y
D. Suma 5 i 10 wynosi 15
Kod w języku C# wykonuje operację dodawania dwóch zmiennych, x i y, oraz wyświetla wynik w sformatowanym ciągu tekstowym. Poprawna odpowiedź to 'Suma 5 i 10 wynosi 15', ponieważ zmienna x ma wartość 5, a zmienna y ma wartość 10. Kiedy dodajemy te dwie liczby, otrzymujemy 15. Warto zwrócić uwagę na wykorzystanie interpolacji ciągów, co jest istotnym elementem w nowoczesnym C#. Umożliwia to w prosty sposób łączyć tekst z wartościami zmiennych, co zwiększa czytelność kodu. Interpolacja jest szczególnie przydatna w kontekście generowania komunikatów użytkownika i raportów. Przykład zastosowania może obejmować aplikacje, które prezentują wyniki obliczeń lub statystyki, gdzie ważne jest, aby w przyjazny sposób przedstawiać dane. Dobre praktyki programistyczne sugerują, aby unikać twardego kodowania wartości zamiast tego używać zmiennych, co ułatwia późniejsze modyfikacje i utrzymanie kodu.

Pytanie 19

Na zaprezentowanych ilustracjach znajduje się okno aplikacji w wersji początkowej oraz po wprowadzeniu danych. Przyjmując, że pole "Dostępne środki" służy do wprowadzania wartości typu rzeczywistego, wskaż elementy struktury, które najlepiej odpowiadają tym danym?

Ilustracja do pytania
A. Kod 1
B. Kod 2
C. Kod 3
D. Kod 4
Struktury zawierające typy całkowite, takie jak int, nie są odpowiednie do przechowywania wartości pieniężnych lub zmiennoprzecinkowych, ponieważ tracą dokładność w przypadku wartości ułamkowych. Struktury oparte na typach string są przeznaczone do tekstu, a nie danych numerycznych. Użycie struktury tablicowej nie jest optymalne, gdyż wartości zmiennoprzecinkowe powinny być przechowywane jako pojedyncza zmienna, a nie w postaci listy.

Pytanie 20

W zaprezentowanym kodzie stworzono abstrakcyjną klasę Figura oraz klasę Prostokąt, która po niej dziedziczy, zawierającą określone pola i konstruktory. Wskaż najprostszą implementację sekcji /* metody klasy */ dla klasy Prostokąt

Ilustracja do pytania
A. Kod 4
B. Kod 3
C. Kod 2
D. Kod 1
Niepoprawne odpowiedzi wynikają z niepełnego zrozumienia koncepcji abstrakcji i dziedziczenia w programowaniu obiektowym Klasa abstrakcyjna w języku Java definiuje metody abstrakcyjne które muszą być zaimplementowane w każdej klasie dziedziczącej Jest to kluczowa zasada która pozwala na tworzenie elastycznych i rozszerzalnych struktur kodu Odpowiedzi które nie implementują wymaganych metod Pole i Obwod w klasie Prostokąt łamią tę zasadę Kod 2 pomija implementację metody Obwod co oznacza że klasa Prostokąt pozostaje niekompletna i nie może być instancjonowana Inne podejścia jak te w Kodzie 3 zmieniają nazwę metod na LiczPole i LiczObwod co nie spełnia kontraktu zdefiniowanego przez klasę Figura ponieważ nie zachowuje integralności interfejsu klasy bazowej Próbując używać abstrakcyjnych metod z implementacją jak w Kodzie 4 łamiemy fundamentalne zasady projektowania obiektowego Zrozumienie tych koncepcji jest kluczowe przy projektowaniu aplikacji które wymagają skalowalności i łatwości utrzymania Praktykując poprawne stosowanie abstrakcji możemy tworzyć kod który jest bardziej modularny elastyczny i odporny na zmiany co prowadzi do bardziej efektywnego procesu rozwoju oprogramowania

Pytanie 21

Co oznacza akronim IDE w kontekście programowania?

A. Interaktywny Silnik Programistyczny
B. Interaktywny Edytor Debugowania
C. Zintegrowane Środowisko Debugowania
D. Integrated Development Environment
Rozszyfrowanie IDE jako Integrated Debugging Environment to duży błąd. To środowisko daje nam o wiele więcej niż tylko debuggowanie. Interactive Development Engine to też nietrafione określenie. Tak naprawdę IDE to bardziej rozbudowane narzędzie, niż tylko silnik do programowania. A sugerowanie, że IDE ogranicza się do edytora debugowania, jest całkowicie nieprawdziwe, bo to środowisko oferuje naprawdę szeroki wachlarz funkcji, które są potrzebne na każdym etapie życia aplikacji.

Pytanie 22

Co zostanie wyświetlone w konsoli po wykonaniu poniższego kodu?

console.log(0.1 + 0.2 === 0.3); console.log(0.1 + 0.2);

A. false, 0.3
B. false, 0.30000000000000004
C. true, 0.3
D. true, 0.30000000000000004
Wynik wyrażenia `0.1 + 0.2` w JavaScript nie jest równy `0.3` ze względu na sposób reprezentacji liczb zmiennoprzecinkowych w pamięci komputera. W programowaniu, liczby zmiennoprzecinkowe są przechowywane zgodnie z normą IEEE 754, co prowadzi do drobnych błędów zaokrągleń. W przypadku `0.1` oraz `0.2` ich suma w rzeczywistości daje wynik `0.30000000000000004`, co jest nieco większe niż `0.3`. Z tego powodu, porównując `0.1 + 0.2` z `0.3`, otrzymujemy `false`. To zjawisko ilustruje potrzebę ostrożności przy porównywaniu wartości zmiennoprzecinkowych i zachęca do używania metod porównawczych, które uwzględniają tolerancję błędu, takich jak `Math.abs(a - b) < epsilon`, gdzie `epsilon` to bardzo mała liczba. W praktyce, zrozumienie tych zasad jest kluczowe dla zapobiegania błędom w obliczeniach finansowych czy innych zastosowaniach wymagających wysokiej precyzji.

Pytanie 23

Która z poniższych właściwości odnosi się do sieci bezprzewodowej?

A. Nie funkcjonuje w obszarach z dużą liczbą urządzeń
B. Wymaga zastosowania przewodów do łączenia urządzeń
C. Nie potrzebuje zabezpieczeń, ponieważ jest domyślnie chroniona
D. Jest bardziej narażona na zakłócenia w przesyłaniu danych
Pierwsza odpowiedź sugeruje, że sieci bezprzewodowe wymagają użycia kabli do połączenia urządzeń, co jest nieprawdziwe. W rzeczywistości, sieci bezprzewodowe działają niezależnie od kabli, wykorzystując technologie takie jak Wi-Fi czy Bluetooth do komunikacji między urządzeniami bez fizycznego połączenia. Taka technologia pozwala na większą mobilność oraz elastyczność użytkowników, eliminując ograniczenia związane z kablami. Kolejnym nieprawidłowym stwierdzeniem jest to, że sieci bezprzewodowe nie wymagają zabezpieczeń, ponieważ są automatycznie chronione. W rzeczywistości, sieci bezprzewodowe są bardzo narażone na nieautoryzowany dostęp, co czyni implementację odpowiednich zabezpieczeń, takich jak WPA3, niezbędną do ochrony danych użytkowników. Ostatnia niepoprawna odpowiedź stwierdza, że sieci bezprzewodowe nie działają w miejscach z dużą liczbą urządzeń. W rzeczywistości, nowoczesne sieci bezprzewodowe są projektowane z myślą o dużym natężeniu ruchu i mogą obsługiwać wiele jednoczesnych połączeń dzięki technologiom takim jak MU-MIMO (Multi-User Multiple Input Multiple Output). To pozwala na równoczesną obsługę wielu użytkowników, co jest niezwykle ważne w obszarach o dużym zagęszczeniu, takich jak biura czy kawiarnie.

Pytanie 24

Który z protokołów w modelu TCP/IP odpowiada za pewne przesyłanie danych?

A. IP
B. UDP
C. HTTP
D. TCP
Protokół IP (Internet Protocol) działa na poziomie sieci i jest odpowiedzialny za adresowanie oraz routing pakietów w sieci, ale nie zapewnia niezawodności w przesyłaniu danych. IP może dostarczać pakiety w dowolnej kolejności, a także nie oferuje mechanizmów do ponownego przesyłania utraconych danych. Z tego powodu nie jest odpowiedni do zastosowań wymagających gwarancji dostarczenia. Z kolei UDP (User Datagram Protocol) jest protokołem transportowym, który również nie zapewnia niezawodności. UDP umożliwia szybkie przesyłanie danych bez ustanawiania połączenia, co czyni go idealnym dla aplikacji takich jak strumieniowanie audio i wideo, gdzie opóźnienia są mniej krytyczne niż utrata niektórych pakietów. Wreszcie, HTTP (Hypertext Transfer Protocol) jest protokołem aplikacyjnym, który działa na szczycie TCP, ale nie jest odpowiedzialny za przesyłanie danych w niezawodny sposób samodzielnie, ponieważ korzysta z TCP, aby zapewnić te funkcje. HTTP używa TCP do transportu danych, co oznacza, że niezawodność komunikacji nie jest bezpośrednio przypisana do HTTP, ale raczej do protokołu, na którym jest oparty.

Pytanie 25

Który z wymienionych przykładów ilustruje projektowanie interfejsu zgodnego z zasadami user experience (UX)?

A. Zastosowanie jedynie jednego koloru w całym interfejsie
B. Przycisk umieszczony w przypadkowym miejscu aplikacji
C. Brak opcji cofnięcia już wykonanej akcji
D. Użycie czytelnych czcionek i intuicyjnego układu elementów
Przycisk umieszczony w losowym miejscu aplikacji narusza zasady UX, ponieważ dezorientuje użytkowników i utrudnia korzystanie z aplikacji. Zastosowanie tylko jednego koloru sprawia, że interfejs jest monotonny i mniej czytelny, co może negatywnie wpłynąć na percepcję użytkownika. Brak możliwości cofnięcia akcji prowadzi do frustracji i poczucia braku kontroli nad aplikacją, co jest sprzeczne z zasadami dobrej praktyki UX.

Pytanie 26

Które z poniższych nie jest językiem programowania?

A. Ruby
B. Python
C. HTML
D. Kotlin
Wybór jednego z języków programowania takich jak Python, Ruby czy Kotlin jako odpowiedzi nie jest poprawny, ponieważ wszystkie te języki mają na celu tworzenie logiki i funkcjonalności aplikacji, a nie tylko prezentację treści. Python to wszechstronny język programowania, który znajduje zastosowanie w różnych dziedzinach, takich jak analiza danych, rozwój aplikacji webowych czy automatyzacja. Ruby, znany z eleganckiej składni, jest powszechnie używany w tworzeniu aplikacji webowych, szczególnie w ramach frameworka Ruby on Rails. Z kolei Kotlin, który stał się popularnym wyborem dla programistów Android, jest nowoczesnym językiem, który łączy cechy programowania obiektowego z funkcyjnym, co czyni go bardzo elastycznym. Typowym błędem myślowym jest mylenie języków znaczników z językami programowania, co wynika z niepełnego zrozumienia ich podstawowych funkcji. Warto pamiętać, że HTML ma za zadanie jedynie strukturę dokumentu, natomiast programowanie polega na manipulowaniu danymi oraz definiowaniu logiki działania aplikacji. Dlatego rozróżnienie między tymi kategoriami jest kluczowe w procesie nauki programowania oraz w pracy jako deweloper.

Pytanie 27

Jaką wydajność posiada sieć, która przesyła 500 MB danych w czasie 10 sekund?

A. 400 Mbps
B. 50 Mbps
C. 40 Mbps
D. 500 Mbps
Przepustowość sieci to tak naprawdę miara, jak dobrze potrafimy przesyłać dane w określonym czasie, najczęściej podawana w bitach na sekundę (bps). Jeśli mamy 500 MB danych do przesłania w ciągu 10 sekund, to najpierw musimy zamienić megabajty na megabity. Pamiętaj, że 1 bajt to 8 bitów, więc 500 MB to 4000 Mb (500 MB * 8 = 4000 Mb). Jak już to zrobimy, dzielimy 4000 Mb przez 10 sekund i wychodzi nam 400 Mb/s. Ale warto też wspomnieć, że generalnie przepustowość mierzona jest w megabitach na sekundę. Tak więc 500 Mbps to w zasadzie to samo co 500 Mb/s w kontekście przesyłania danych. Podsumowując, obliczając 4000 Mb dzielone przez 10 sekund, dostajemy przepustowość 400 Mbps. Wiesz, to pokazuje, że przy takim transferze danych potrzeba sporego pasma, żeby wszystko działało jak należy. W dzisiejszych czasach, szybkość transferu danych to kluczowy element, żeby sieć była wydajna.

Pytanie 28

Jakie narzędzie umożliwia testowanie API w aplikacjach internetowych?

A. Node.js
B. Microsoft Excel
C. Blender
D. Postman
Blender to narzędzie do modelowania 3D i tworzenia animacji, które nie ma zastosowania w testowaniu API. Microsoft Excel jest programem do tworzenia arkuszy kalkulacyjnych i obliczeń, często wykorzystywanym w analizie danych, ale nie w testowaniu aplikacji webowych. Node.js to środowisko uruchomieniowe JavaScript, wykorzystywane do budowy aplikacji serwerowych, ale samo w sobie nie jest narzędziem do testowania API, choć może współpracować z Postmanem lub innymi narzędziami tego typu.

Pytanie 29

Który z wymienionych poniżej przykładów ilustruje użycie systemu informatycznego w działalności gospodarczej?

A. System nawigacji GPS
B. System wentylacji
C. E-sklep
D. System sterowania ruchem miejskim
System wentylacji, mimo że jest istotnym elementem infrastruktury budynków, nie jest przykładem systemu informatycznego w kontekście działalności biznesowej. Wentylacja jest technologią mechaniczną, która ma na celu zapewnienie odpowiedniej jakości powietrza. Nie posiada zaawansowanych funkcji informatycznych, które mogłyby wspierać procesy biznesowe, jak np. zarządzanie danymi klientów czy automatyzacja sprzedaży. Systemy wentylacyjne są zaprojektowane głównie w celu poprawy komfortu użytkowników, a nie w celu generowania wartości dodanej dla przedsiębiorstwa poprzez informatyzację procesów. W przypadku systemu sterowania ruchem miejskim, jego głównym celem jest zarządzanie ruchem drogowym i zwiększenie efektywności transportu publicznego. Jest to również system technologiczny, jednak jego głównym zastosowaniem jest poprawa bezpieczeństwa i komfortu podróży, a nie wspieranie operacji biznesowych. Tego typu systemy, choć korzystają z technologii informatycznych, nie są bezpośrednio związane z procesami komercyjnymi ani z generowaniem przychodu. Z kolei system nawigacji GPS, choć istotny w kontekście transportu i logistyki, działa jako narzędzie wspierające nawigację i lokalizację, a nie jako integralna część systemu informatycznego w działalności przedsiębiorstw. Jego zastosowania w biznesie są zazwyczaj pośrednie i nie mają na celu bezpośredniego wsparcia dla funkcji komercyjnych, lecz przede wszystkim służą do optymalizacji tras dostaw czy lokalizacji klientów.

Pytanie 30

Po uruchomieniu podanego kodu w języku C++ w konsoli pojawi się ciąg liczb

Ilustracja do pytania
A. 1 2 3 4 5 6
B. 2 3 4 5 6 7
C. 1 2 3 4 5
D. 2 3 4 5 6
Ciąg '1 2 3 4 5' sugeruje, że pętla mogła rozpocząć się od wartości 1, co różni się od przedstawionego kodu. Wynik '2 3 4 5 6 7' oznaczałby, że pętla uwzględnia również wartość końcową, co nie jest zgodne z zakresem w kodzie. Ciąg '1 2 3 4 5 6' wskazuje na inną wartość początkową, co jest błędnym założeniem.

Pytanie 31

Które z podejść do tworzenia aplikacji najlepiej uwzględnia przyszłe zmiany w funkcjonalności?

A. Tworzenie bez wcześniejszej specyfikacji technicznej
B. Skupienie się tylko na estetce aplikacji
C. Pisanie kodu bez jakiejkolwiek dokumentacji
D. Zastosowanie modularnej architektury aplikacji
Projektowanie bez wcześniejszej specyfikacji technicznej prowadzi do chaosu i zwiększa ryzyko błędów na późniejszych etapach rozwoju. Pisanie kodu bez dokumentacji utrudnia jego późniejsze utrzymanie i sprawia, że inne osoby w zespole mogą mieć trudności z rozumieniem funkcjonalności. Skupienie się wyłącznie na wyglądzie aplikacji pomija kluczowe aspekty jej funkcjonalności i nie pozwala na dostosowanie systemu do zmieniających się potrzeb użytkowników.

Pytanie 32

Który z wymienionych poniżej przykładów stanowi system informacji przetwarzany przez system informatyczny?

A. System PESEL
B. System do monitorowania temperatury serwerów
C. System wentylacyjny w biurowcach
D. System zarządzania oświetleniem drogowym
System wentylacji w biurowcach, system monitorowania temperatury serwerów oraz system sterowania światłami drogowymi, chociaż są przykładami systemów inżynieryjnych, nie stanowią systemów informacji przetwarzanych przez systemy informatyczne w tradycyjnym rozumieniu. System wentylacji w biurowcach to mechanizm regulujący przepływ powietrza, który działa na podstawie fizycznych zasad termodynamiki i wymiany ciepła. W tym przypadku dane są zbierane i przetwarzane w sposób, który nie angażuje intensywnego zarządzania informacjami osobowymi ani gromadzenia danych w skali, jaką obserwuje się w systemach informacyjnych. Z kolei system monitorowania temperatury serwerów służy do zapewnienia odpowiednich warunków pracy sprzętu komputerowego. Choć wykorzystuje technologię informatyczną do zbierania danych, jego funkcjonalność koncentruje się na diagnostyce i bezpieczeństwie sprzętu, a nie na przetwarzaniu informacji o osobach czy instytucjach. Ostatecznie system sterowania światłami drogowymi, mimo że operuje na podstawie zebranych danych o ruchu drogowym, w istocie nie prowadzi złożonych operacji przetwarzania informacji w sensie administracyjnym ani nie gromadzi danych osobowych. Jego działanie opiera się na algorytmach, które reagują na ruch uliczny, a nie na zarządzaniu informacjami w sposób, który jest charakterystyczny dla systemów takich jak PESEL.

Pytanie 33

Jakie narzędzie można wykorzystać do stworzenia mobilnej aplikacji cross-platform w języku C#?

A. platformę Xamarin
B. środowisko Android Studio
C. bibliotekę React Native
D. środowisko XCode
React Native jest oparty na JavaScript, a Xcode to narzędzie do natywnego programowania na iOS. Android Studio służy do tworzenia aplikacji na Androida, ale nie jest narzędziem cross-platformowym dla C#.

Pytanie 34

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

Ilustracja do pytania
A. Bezpieczeństwa
B. Wydajnościowe
C. Jednostkowe
D. Interfejsu
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 35

Które z wymienionych narzędzi nie znajduje zastosowania w tworzeniu aplikacji desktopowych?

A. Debugger
B. Edytor graficzny
C. Przeglądarka internetowa
D. Kompilator
Kompilator to podstawowe narzędzie, które jest niezbędne w procesie tworzenia aplikacji – bez niego kod źródłowy nie mógłby zostać przekształcony w plik wykonywalny. Debugger odgrywa kluczową rolę w identyfikacji i eliminowaniu błędów w kodzie, co jest niezbędne do prawidłowego działania aplikacji. Edytor graficzny może być używany w tworzeniu interfejsów graficznych aplikacji desktopowych (GUI), zwłaszcza w środowiskach takich jak Visual Studio, WPF czy Qt, co czyni go integralną częścią procesu programistycznego.

Pytanie 36

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

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

Pytanie 37

Który z poniższych elementów HTML5 służy do rysowania grafiki?

A. <svg>
B. <draw>
C. <graphic>
D. <canvas>
Elementy <draw> oraz <graphic> nie istnieją w standardzie HTML5, co sprawia, że nie mogą być używane do rysowania grafiki w dokumentach HTML. Takie nieporozumienia często wynikają z mylnego przekonania, że każda funkcjonalność dostępna w innych technologiach webowych ma swoje odpowiedniki w HTML. Niezrozumienie architektury HTML5 oraz jego standardów prowadzi do wyboru niewłaściwych narzędzi do zadań graficznych. Zamiast korzystać z nieistniejących elementów, programiści powinni zapoznać się z możliwościami, jakie oferuje <canvas>, czy też SVG (Scalable Vector Graphics), które również mogą być używane do tworzenia grafiki, jednak w inny sposób. SVG jest formatem wektorowym, który jest bardziej odpowiedni do statycznych grafik i interfejsów, podczas gdy <canvas> lepiej sprawdza się w przypadku dynamicznych, szczegółowych grafik i animacji. Wybór niewłaściwego elementu może prowadzić do trudności w implementacji oraz w utrzymaniu projektu, dlatego ważne jest, aby dokładnie rozumieć różnice między tymi technologiami i ich zastosowaniami w praktyce. Właściwe podejście do wykorzystania technologii webowych, zgodne z dobrą praktyką, wymaga świadomości dostępnych narzędzi i ich specyfiki.

Pytanie 38

Które z poniższych nie jest typem testu w programowaniu?

A. Testy end-to-end
B. Testy integracyjne
C. Testy jednostkowe
D. Testy kompilacyjne
Testy jednostkowe, testy integracyjne oraz testy end-to-end są fundamentalnymi typami testów w programowaniu, które mają na celu weryfikację różnych aspektów aplikacji. W przeciwieństwie do testów kompilacyjnych, które skupiają się na tym, czy kod może być skompilowany, testy jednostkowe weryfikują poprawność poszczególnych komponentów programu w izolacji. Umożliwiają one programistom szybkie wykrywanie błędów na wczesnym etapie cyklu życia oprogramowania. Testy integracyjne badają współdziałanie różnych modułów, co jest kluczowe dla zapewnienia, że system jako całość działa zgodnie z założeniami projektowymi. Z kolei testy end-to-end są najbardziej kompleksowe, ponieważ symulują rzeczywiste scenariusze użytkowników, co pozwala na ocenę, czy wszystkie elementy systemu współpracują w sposób zamierzony. Podczas gdy testy kompilacyjne są niezbędne w kontekście wstępnej kontroli jakości kodu, nie powinny być mylone z testami, które analizują funkcjonalność aplikacji. Typowe błędy myślowe, które prowadzą do pomyłek, obejmują mylenie etapu kompilacji z faktycznym testowaniem funkcjonalności. Zrozumienie różnicy między tymi pojęciami jest kluczowe dla efektywnego procesu developmentu oraz zapewnienia, że oprogramowanie spełnia zarówno wymagania techniczne, jak i biznesowe.

Pytanie 39

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

A. Określenie interfejsu komunikacji pomiędzy składnikami systemu
B. Stworzenie jednej klasy do zarządzania wieloma obiektami tego samego rodzaju
C. Umożliwienie klientom obsługi obiektów oraz ich zbiorów w spójny sposób
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 40

Rozpoczęcie tworzenia procedury składowej o nazwie dodajUsera w MS SQL wymaga użycia poleceń

A. add procedure dodajUsera
B. add dodajUsera procedure
C. create procedure dodajUsera
D. create dodajUsera procedure
Polecenie 'ADD' jest błędne w tym kontekście – nie używa się go do tworzenia procedur. Prawidłowa składnia to 'CREATE PROCEDURE', co jasno wskazuje na intencję utworzenia nowej procedury w bazie danych SQL.