Wyniki egzaminu

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

Egzamin zdany!

Wynik: 34/40 punktów (85,0%)

Wymagane minimum: 20 punktów (50%)

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

Metodyka zwinna (ang. agile) opiera się na

A. zaplanowaniu całej aplikacji na początku projektu i jej tworzeniu na przemian z testowaniem
B. dekompozycji przedsięwzięcia na elementy, które są niezależnie projektowane, wytwarzane i testowane w krótkich iteracjach
C. podzieleniu projektu na kolejne etapy: planowanie, programowanie, testowanie, z ciągłym oszacowaniem ryzyka projektu
D. przygotowaniu testów dla całego projektu, a następnie wprowadzaniu kolejnych jego fragmentów
Metodyka zwinna (agile) polega na podziale projektu na mniejsze części (iteracje), które są projektowane, implementowane i testowane w krótkich cyklach. Takie podejście pozwala na szybkie reagowanie na zmieniające się wymagania klientów i wprowadzanie poprawek na bieżąco. Agile promuje bliską współpracę z klientem, co minimalizuje ryzyko nieporozumień i zwiększa szanse na stworzenie produktu spełniającego jego oczekiwania. Zamiast czekać na zakończenie całego projektu, poszczególne części aplikacji są dostarczane i testowane stopniowo, co skraca czas wdrożenia i umożliwia szybkie wykrycie błędów. Popularnymi frameworkami bazującymi na Agile są Scrum i Kanban, które organizują pracę zespołu w iteracyjne sprinty lub zadania wizualizowane na tablicach Kanban.

Pytanie 2

Który z poniższych aspektów najlepiej definiuje działanie e-sklepu?

A. Mechanizm generowania grafiki 3D
B. Dostęp do bazy danych klientów
C. Zarządzanie serwerem e-mail
D. System obsługi koszyka oraz realizacji zamówień
System zarządzania koszykiem i realizacją zamówień to kluczowy element każdej aplikacji e-commerce (sklepu internetowego). Umożliwia użytkownikom dodawanie produktów do koszyka, zarządzanie ich ilością, a następnie finalizację transakcji poprzez proces realizacji zamówienia i płatności. Tego typu funkcjonalność wymaga integracji z bazą danych oraz systemami płatności online, co zapewnia bezpieczeństwo i wygodę użytkownika. Systemy koszyków zakupowych często oferują zaawansowane funkcje, takie jak kupony rabatowe, kody promocyjne czy integracje z magazynami i systemami logistycznymi. Realizacja zamówienia obejmuje procesy takie jak autoryzacja płatności, generowanie faktur oraz śledzenie zamówień, co jest podstawą funkcjonowania nowoczesnych platform e-commerce.

Pytanie 3

Jakie narzędzie jest wykorzystywane do zgłaszania błędów w projektach IT?

A. JIRA
B. Git
C. Blender
D. Photoshop
JIRA to jedno z najczęściej wykorzystywanych narzędzi do zarządzania projektami i raportowania błędów w projektach informatycznych. JIRA umożliwia śledzenie błędów, zarządzanie zadaniami oraz efektywne monitorowanie postępów prac nad projektem. Dzięki integracji z innymi narzędziami, takimi jak Confluence czy Bitbucket, JIRA stanowi kompleksowe rozwiązanie wspierające zespoły deweloperskie. Raportowanie błędów w JIRA pozwala na łatwe przypisywanie ich do odpowiednich członków zespołu, dodawanie załączników i komentarzy oraz monitorowanie statusu danego problemu, co usprawnia proces zarządzania jakością oprogramowania.

Pytanie 4

W jaki sposób procesor nawiązuje komunikację z pamięcią podręczną (cache)?

A. Za pomocą systemu przerwań
B. Poprzez linie danych w magistrali systemowej
C. Bezpośrednio, omijając mostki systemowe
D. Używając wyłącznie pamięci RAM
Komunikacja między procesorem a pamięcią podręczną nie odbywa się poprzez system przerwań, ponieważ przerwania są mechanizmem umożliwiającym procesorowi reagowanie na zdarzenia zewnętrzne, a nie transfer danych między pamięcią a procesorem. Przerwania są używane głównie do komunikacji z urządzeniami peryferyjnymi, które informują procesor o konieczności przetworzenia danych, a nie do bezpośredniej interakcji z pamięcią podręczną. Ponadto stwierdzenie, że procesor komunikuje się z pamięcią podręczną, wykorzystując jedynie pamięć RAM, jest błędne, ponieważ pamięć RAM i pamięć podręczna to różne typy pamięci, o różnych szybkościach i funkcjach. Pamięć podręczna jest znacznie szybsza i działa jako pośrednik między procesorem a wolniejszą pamięcią RAM, co oznacza, że procesor nie korzysta z pamięci RAM do komunikacji z pamięcią podręczną. Warto również zaznaczyć, że komunikacja bezpośrednia z pominięciem mostków systemowych jest niepraktyczna i technicznie niemożliwa. Mostki systemowe są niezbędne do zarządzania ruchem danych między różnymi komponentami w architekturze komputerowej, a ich pominięcie mogłoby prowadzić do chaosu w komunikacji oraz znacznie obniżyć wydajność systemu.

Pytanie 5

Wskaź kod, który spowoduje wyświetlenie okna dialogowego przedstawionego na ilustracji. Dla uproszczenia kodu, zrezygnowano z atrybutów znaczników

Ilustracja do pytania
A. kod 3
B. kod 2
C. kod 4
D. kod 1
Odpowiedź, którą wybrałeś, to kod 2, i nie ma co do tego wątpliwości. Dobrze, że zauważyłeś wszystkie elementy, które były w oknie dialogowym. W tym kodzie masz TextBox na górze, który pozwala na wpisanie tekstu. Dwa CheckBoxy po lewej stronie to te typowe pola wyboru, które też były widoczne. Po prawej stronie masz trzy RadioButtony, które tworzą grupę przycisków - to jest właśnie to, co powinno być. Na dole widoczny jest przycisk Button z napisem Test, co też jest zgodne z obrazkiem. Takie rozmieszczenie to klucz do stworzenia dobrego interfejsu. Wiesz, w praktyce w wielu aplikacjach używa się właśnie tych elementów do prostych formularzy. Jeżeli rozumiesz, jak te komponenty działają i jak je ze sobą łączyć, to naprawdę dobrze ci to pójdzie w przyszłości w tworzeniu ładnych i funkcjonalnych interfejsów.

Pytanie 6

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. trójkąt
B. trapez
C. figura
D. czworokąt
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 7

Który z poniższych procesów jest wyłącznie związany z kompilowaniem kodu?

A. Generating an executable file
B. Real-time translation of instructions
C. Executing code step by step
D. Detection of logical errors during program execution
Generowanie pliku wykonywalnego to jeden z najważniejszych kroków w kompilacji. Kiedy kod źródłowy zostaje przetworzony na język maszynowy, kompilator tworzy plik binarny, który można uruchomić na odpowiednim systemie operacyjnym. Taki plik jest samodzielny, więc nie trzeba go za każdym razem kompilować od nowa przy uruchamianiu. Dzięki kompilacji można też zoptymalizować kod, co jest mega ważne, zwłaszcza przy większych projektach. W przeciwieństwie do interpretacji, gdzie kod działa na bieżąco, kompilacja pozwala wyłapać błędy wcześniej i poprawić wydajność aplikacji. Moim zdaniem, to naprawdę spora zaleta!

Pytanie 8

W sekcji, która odpowiada za obsługę wyjątku wygenerowanego przez aplikację, należy to zdefiniować

A. try
B. finally
C. catch
D. throw
Sekcja 'catch' w programowaniu obsługuje wyjątki, które mogą zostać wygenerowane podczas wykonywania programu. Pozwala to na przechwycenie błędów i odpowiednie zareagowanie, co zapobiega nieoczekiwanym awariom. Mechanizm try-catch jest fundamentalny dla zapewnienia stabilności aplikacji i minimalizacji błędów krytycznych.

Pytanie 9

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

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

Pytanie 10

Który z wymienionych kroków wchodzi w skład testowania aplikacji?

A. Debugowanie kodu w celu znalezienia błędów
B. Projektowanie bazy danych
C. Kompilowanie aplikacji
D. Opracowywanie interfejsu graficznego
Debugowanie kodu w celu znalezienia błędów to jeden z kluczowych etapów testowania aplikacji. Proces ten polega na uruchamianiu programu w trybie debugowania, co pozwala na śledzenie jego działania linijka po linijce i identyfikowanie miejsc, w których występują błędy. Debugowanie umożliwia analizowanie wartości zmiennych, śledzenie przepływu programu i wykrywanie nieoczekiwanych zachowań, co jest niezbędne do usunięcia błędów i poprawy wydajności aplikacji. Narzędzia do debugowania, takie jak Visual Studio, PyCharm czy Chrome DevTools, pozwalają na dokładne testowanie kodu na różnych etapach jego rozwoju, co znacząco skraca czas naprawy błędów i zwiększa jakość oprogramowania.

Pytanie 11

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

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

Pytanie 12

Na podstawie definicji zamieszczonej w ramce, wskaż, który z rysunków ilustruje komponent Chip zdefiniowany w bibliotece Angular Material?

Ilustracja do pytania
A. Rysunek 1
B. Rysunek 2
C. Rysunek 3
D. Rysunek 4
Komponent Chip w bibliotece Angular Material to interaktywny element, który reprezentuje fragment informacji, tag lub wybór. Może zawierać tekst, ikonę lub być klikalny, co czyni go niezwykle użytecznym w projektowaniu nowoczesnych interfejsów użytkownika. Komponenty tego typu często wykorzystywane są w formularzach lub systemach tagowania, umożliwiając użytkownikowi intuicyjne dodawanie lub usuwanie elementów. Wyróżnia się swoją minimalistyczną formą i możliwością dostosowania do różnych potrzeb projektowych.

Pytanie 13

Jakie jest podstawowe zadanie funkcji zaprzyjaźnionej w danej klasie?

A. Generowanie kopii pól obiektu w innej klasie
B. Umożliwienie funkcji dostępu do prywatnych atrybutów klasy
C. Dodawanie nowych instancji do klasy
D. Ograniczenie widoczności atrybutów klasy
Funkcja zaprzyjaźniona umożliwia dostęp do prywatnych i chronionych składowych klasy, z którą jest zaprzyjaźniona. To mechanizm, który pozwala na utrzymanie hermetyzacji, jednocześnie umożliwiając wybranym funkcjom lub klasom bezpośredni dostęp do wewnętrznych danych innej klasy. Funkcje zaprzyjaźnione często są stosowane do operacji, które wymagają dostępu do wewnętrznych danych klasy, ale nie powinny być jej metodami, np. operacje arytmetyczne lub porównawcze na obiektach tej klasy.

Pytanie 14

Jakie zadanie wykonuje debugger?

A. Generowanie pliku wykonywalnego programu
B. Przekładanie kodu źródłowego na język maszynowy
C. Umożliwianie analizy działania programu krok po kroku
D. Identyfikowanie błędów składniowych podczas kompilacji
Debugger umożliwia analizę działania programu krok po kroku, co jest kluczowe dla wykrywania i usuwania błędów logicznych oraz programistycznych. Debugowanie pozwala na śledzenie wartości zmiennych w czasie rzeczywistym, analizowanie przepływu programu i zatrzymywanie go w określonych punktach (breakpoints). Dzięki temu programista może znaleźć i naprawić błędy przed finalnym wdrożeniem aplikacji. Debuggery są nieodłącznym elementem środowisk IDE (Integrated Development Environment), takich jak Visual Studio, PyCharm czy Eclipse, i stanowią fundamentalne narzędzie w procesie programowania.

Pytanie 15

Jakie znaczenie ma framework w kontekście programowania?

A. Zbiór gotowych bibliotek, narzędzi i zasad ułatwiających tworzenie aplikacji
B. Moduł do zarządzania systemami baz danych
C. Program do graficznego projektowania interfejsów użytkownika
D. System operacyjny, który umożliwia uruchamianie aplikacji
Framework to zbiór gotowych bibliotek, narzędzi i reguł, które wspierają tworzenie aplikacji poprzez dostarczanie struktury ułatwiającej pracę programistów. Frameworki definiują standardowe komponenty aplikacji, umożliwiając programistom skoncentrowanie się na logice biznesowej zamiast na podstawowej architekturze aplikacji. Przykłady popularnych frameworków to .NET, Angular, Django i Spring. Frameworki przyspieszają proces programowania, poprawiają jakość kodu i wspierają skalowalność aplikacji, co czyni je nieodłącznym elementem nowoczesnego programowania.

Pytanie 16

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

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

Pytanie 17

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

Pytanie 18

Wskaż uproszczoną wersję kodu XAML dla elementów w pokazanym oknie dialogowym?

Ilustracja do pytania
A. Kod 3
B. Kod 2
C. Kod 4
D. Kod 1
Kod 2 jest poprawnym uproszczonym kodem XAML dla przedstawionych kontrolek. XAML (Extensible Application Markup Language) jest używany do definiowania interfejsów użytkownika w aplikacjach WPF (Windows Presentation Foundation) i UWP (Universal Windows Platform). Jego czytelność i deklaratywny charakter pozwalają na tworzenie i zarządzanie kontrolkami w sposób przejrzysty i elastyczny, co przyspiesza proces projektowania interfejsów.

Pytanie 19

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

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

Pytanie 20

Jakie polecenie w Gicie jest używane do zapisywania zmian w lokalnym repozytorium?

A. git clone
B. git commit
C. git pull
D. git push
Polecenie 'git commit' zapisuje zmiany w lokalnym repozytorium Git. Jest to kluczowy krok w procesie kontroli wersji, ponieważ każdy commit tworzy nową migawkę (snapshot) projektu, która może być w przyszłości przywrócona lub porównana z innymi wersjami. Polecenie to jest często używane razem z opcją -m, która umożliwia dodanie wiadomości opisującej zmiany. Dzięki temu możliwe jest efektywne śledzenie historii zmian w projekcie i przywracanie wcześniejszych wersji w razie potrzeby. Git commit to podstawowe narzędzie w pracy zespołowej nad kodem, szczególnie w środowisku deweloperskim, gdzie wersjonowanie jest niezbędne do zapewnienia stabilności kodu i łatwej współpracy.

Pytanie 21

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

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

Pytanie 22

Jaki typ testów ocenia funkcjonalność aplikacji z punktu widzenia użytkownika końcowego?

A. Testy obciążeniowe
B. Testy zgodności
C. Testy funkcjonalne
D. Testy użyteczności
Testy użyteczności to kluczowy element w procesie tworzenia aplikacji, który koncentruje się na analizie i ocenie interakcji użytkownika z produktem. Celem testów użyteczności jest sprawdzenie, jak łatwa i intuicyjna w obsłudze jest aplikacja, czy użytkownik jest w stanie efektywnie osiągnąć swoje cele oraz jakie są potencjalne bariery w korzystaniu z aplikacji. Testy te dostarczają cennych informacji na temat UX (User Experience) i pozwalają na wczesne wykrycie problemów związanych z designem oraz funkcjonalnością.

Pytanie 23

Zademonstrowana pętla wykorzystuje obiekt random do

Ilustracja do pytania
A. stworzenia losowego napisu o długości 8 znaków składającego się z liter
B. uzupełnienia tablicy danymi w postaci liczb pseudolosowych
C. wielokrotnego generowania liczby, aby stworzyć ciąg z liczb pseudolosowych
D. jednorazowego wylosowania znaku z określonego zestawu znaków
Kod generuje pojedynczy losowy znak z określonej puli znaków. Użycie obiektu random umożliwia tworzenie prostych mechanizmów losowania, co jest przydatne np. w generowaniu haseł lub tokenów.

Pytanie 24

Który z podanych algorytmów operujących na jednowymiarowej tablicy posiada złożoność obliczeniową O(n<sup>2</sup>)?

A. Sortowanie szybkie
B. Sortowanie bąbelkowe
C. Wyszukiwanie binarne
D. Wypisanie elementów
Sortowanie bąbelkowe, znane również jako bubble sort, to prosty algorytm sortowania, który działa na zasadzie wielokrotnego przechodzenia przez tablicę i porównywania sąsiadujących ze sobą elementów. Algorytm ten ma złożoność obliczeniową O(n^2), co oznacza, że w najgorszym przypadku liczba operacji porównania wzrasta kwadratowo wraz ze wzrostem liczby elementów w tablicy. Przykładowo, dla tablicy o 5 elementach algorytm może wykonać do 10 porównań. W praktyce sortowanie bąbelkowe jest rzadko stosowane w dużych zbiorach danych ze względu na swoją niską efektywność, jednak jest to dobry przykład do nauki podstaw algorytmów sortujących. Standardy algorytmów sortujących, takie jak te zawarte w podręcznikach algorytmiki, często używają sortowania bąbelkowego jako przykładu do omówienia prostych koncepcji związanych z sortowaniem. Warto zauważyć, że chociaż algorytm ten jest prosty do zrozumienia, jego złożoność czasowa sprawia, że nie jest on praktyczny do stosowania w produkcyjnych rozwiązaniach, gdyż bardziej optymalne algorytmy, jak sortowanie szybkie czy sortowanie przez scalanie, osiągają złożoność O(n log n).

Pytanie 25

Jakie są różnice między dialogiem modalnym a niemodalnym?

A. Dialog modalny wymaga zamknięcia, aby powrócić do głównego okna aplikacji, natomiast dialog niemodalny tego nie wymaga
B. Dialog modalny umożliwia interakcję z innymi oknami aplikacji, a dialog niemodalny tego nie pozwala
C. Dialog modalny jest ograniczony wyłącznie do aplikacji konsolowych
D. Dialog modalny działa w tle, podczas gdy dialog niemodalny jest zawsze wyświetlany na pierwszym planie
Dialog modalny to okno dialogowe, które wymaga interakcji użytkownika przed powrotem do głównego okna aplikacji. Tego rodzaju okna są często wykorzystywane do wyświetlania komunikatów, potwierdzeń lub formularzy wymagających danych wejściowych. Modalność zapewnia, że użytkownik nie może przejść do innej części aplikacji bez uprzedniego zamknięcia okna dialogowego. To rozwiązanie pomaga w wymuszeniu ważnych akcji, takich jak potwierdzenie usunięcia pliku lub zatwierdzenie płatności. Dialog niemodalny natomiast pozwala na interakcję z resztą aplikacji nawet wtedy, gdy okno dialogowe jest otwarte, co sprawdza się w mniej krytycznych sytuacjach, np. podczas wyświetlania dodatkowych opcji.

Pytanie 26

Jakie aspekty powinny być brane pod uwagę przy tworzeniu zestawów danych?

A. Metoda alokacji pamięci dla danych
B. Narzędzia do analizy błędów
C. Typ zastosowanego kompilatora
D. Ilość linii kodu programu
Sposób alokacji pamięci dla danych to kluczowy element projektowania zestawów danych, ponieważ wpływa na wydajność i efektywność programu. Dynamiczna alokacja pamięci pozwala na tworzenie struktur, których rozmiar jest zmienny i dostosowuje się w trakcie działania aplikacji. Dzięki temu programiści mogą optymalnie zarządzać zasobami systemowymi, unikając marnowania pamięci lub jej niedoboru. Wybór odpowiedniej metody alokacji, np. stosowanie wskaźników, dynamicznych tablic lub struktur danych takich jak lista czy mapa, pozwala na budowanie bardziej skalowalnych i elastycznych aplikacji.

Pytanie 27

Fragment kodu w języku JavaScript to

Ilustracja do pytania
A. prototyp interfejsu
B. prototyp metody klasy
C. definicja funkcji strzałkowej
D. definicja zmiennej typu tablicowego
Kod w JavaScript opisuje definicję funkcji strzałkowej, która jest nowoczesnym i bardziej zwięzłym sposobem definiowania funkcji. Funkcje strzałkowe mają też specyficzne zachowanie w kontekście 'this', co czyni je często preferowanymi przy pracy z obiektami i metodami callback.

Pytanie 28

Jakie zastosowanie ma język Swift w zakresie aplikacji mobilnych?

A. Do tworzenia aplikacji na system iOS
B. Do przeprowadzania testów aplikacji mobilnych
C. Do tworzenia aplikacji na system Android
D. Do zarządzania bazami danych w aplikacjach mobilnych
Swift to język programowania stworzony przez Apple, który służy do tworzenia aplikacji na system iOS, macOS, watchOS i tvOS. Swift został zaprojektowany z myślą o nowoczesnym i bezpiecznym programowaniu, eliminując wiele typowych błędów spotykanych w Objective-C, takich jak null pointer exceptions. Dzięki swojej wydajności, przejrzystej składni i integracji z XCode, Swift stał się standardem w ekosystemie Apple. Język wspiera interaktywną platformę Playground, co umożliwia szybkie testowanie kodu, a także pełną integrację z narzędziami Apple, co czyni go niezbędnym narzędziem dla deweloperów aplikacji na iPhone'y i iPady.

Pytanie 29

Do stworzenia zbioru danych potrzebnego do uruchomienia algorytmu sortowania bąbelkowego tablicy, wymagane są przynajmniej następujące typy:

A. dwa tablicowe, dwa do zamiany miejscami elementów
B. dwa tablicowe, jeden liczbowy do nadzorowania pętli
C. jeden tablicowy, dwa liczbowe do nadzorowania pętli, jeden do zamiany miejscami elementów
D. jeden tablicowy, jeden liczbowy do nadzorowania pętli, dwa do zamiany miejscami elementów
Do implementacji algorytmu sortowania bąbelkowego potrzebny jest jeden typ tablicowy, dwa liczbowe do kontroli iteracji pętli oraz jeden do zamiany elementów miejscami. Dwa liczniki pętli są niezbędne, aby iterować po tablicy wielokrotnie, zmniejszając zakres w każdej iteracji.

Pytanie 30

Jakie jest podstawowe zadanie wykorzystania frameworka Node.js w aplikacjach internetowych?

A. Weryfikacja API
B. Budowanie aplikacji mobilnych
C. Zarządzanie aplikacjami serwerowymi i realizacja przetwarzania asynchronicznego
D. Kreowanie graficznego interfejsu użytkownika
Node.js to w zasadzie takie środowisko, które pozwala na uruchamianie JavaScriptu na serwerze. Dzięki temu można budować różne aplikacje serwerowe i radzić sobie z asynchronicznym przetwarzaniem. Fajnie, że Node.js może obsługiwać wiele połączeń jednocześnie, co sprawia, że nadaje się do aplikacji, które mają dużo użytkowników, jak czaty czy różne API. Jest to dość wydajne rozwiązanie dzięki architekturze opartej na zdarzeniach, więc nie zajmuje za dużo zasobów. Co ciekawe, używając Node.js, można pisać kod zarówno na serwerze, jak i na kliencie, co jest naprawdę dużą oszczędnością czasu.

Pytanie 31

W przedstawionych funkcjonalnie równoważnych kodach źródłowych po przeprowadzeniu operacji w zmiennej b zostanie zapisany wynik:

Ilustracja do pytania
A. 5
B. 596
C. 5.96
D. 6
Wynik operacji zapisanej w zmiennej 'b' to 5. Jest to rezultat konwersji wartości zmiennoprzecinkowej na liczbę całkowitą, co oznacza odrzucenie części dziesiętnej. Taka operacja jest powszechna w programowaniu, gdy chcemy uzyskać tylko część całkowitą liczby, np. w algorytmach podziału, zaokrąglania w dół (floor) lub obliczania indeksów w tablicach.

Pytanie 32

Jakie narzędzie służy do zarządzania wersjami?

A. Jira
B. Bugzilla
C. Git
D. Trello
Git to system kontroli wersji, który pozwala na śledzenie zmian w kodzie źródłowym. Jest to narzędzie szeroko stosowane w zespołach programistycznych, umożliwiające współpracę i zarządzanie historią projektu.

Pytanie 33

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

A. class, struct, union
B. class, struct, float
C. unsigned, struct, float
D. char, struct, union
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 34

Programista może wykorzystać framework Angular do realizacji aplikacji:

A. rodzaju front-end
B. rodzaju back-end
C. mobilnej
D. na komputerze
Angular to świetne narzędzie do tworzenia aplikacji front-endowych. Chodzi o to, że odpowiada za to, co widzi użytkownik i jak może z tym interagować. Dzięki Angular możemy budować dynamiczne i responsywne aplikacje webowe. Z tego co widzę, używamy tam komponentów, modułów i rzeczy typu dwukierunkowe wiązanie danych, co naprawdę ułatwia życie. Bez wątpienia, Angular jest jednym z najpopularniejszych frameworków do robienia interfejsów użytkownika, co tylko potwierdza jego efektywność.

Pytanie 35

Który z frameworków pozwala na tworzenie aplikacji z graficznym interfejsem użytkownika oraz obsługą wydarzeń?

A. Qt
B. Django
C. Express.js
D. TensorFlow
Django to framework do tworzenia aplikacji webowych w języku Python, a nie narzędzie do budowy aplikacji desktopowych z interfejsem graficznym. TensorFlow to biblioteka do uczenia maszynowego i sztucznej inteligencji, która nie ma bezpośredniego związku z projektowaniem GUI. Express.js to framework dla Node.js, który służy do budowy aplikacji serwerowych i API, ale nie jest narzędziem do projektowania interfejsów użytkownika w aplikacjach desktopowych.

Pytanie 36

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

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

Pytanie 37

Który z frameworków bazuje na budowaniu komponentów przy użyciu języka JavaScript?

A. ASP.NET Core
B. React.js
C. Node.js
D. Django
Node.js to środowisko uruchomieniowe JavaScript, które działa po stronie serwera i umożliwia tworzenie aplikacji backendowych, a nie komponentów frontendowych. Django to framework do budowy aplikacji webowych w Pythonie i nie jest oparty na komponencie w JavaScript. ASP.NET Core to framework wykorzystywany do budowy aplikacji w języku C# i nie ma związku z tworzeniem komponentów w JavaScript.

Pytanie 38

W jakiej metodzie zarządzania projektami nacisk kładzie się na ograniczenie marnotrawstwa?

A. Waterfall
B. Prototypowy
C. Kanban
D. Scrum
Kanban to metodologia zarządzania projektem, która koncentruje się na minimalizacji marnotrawstwa i optymalizacji przepływu pracy. Kluczowym elementem Kanbanu jest wizualizacja procesu za pomocą tablicy, na której znajdują się zadania w różnych fazach realizacji. Dzięki temu zespół może łatwo identyfikować wąskie gardła i eliminować zbędne procesy. Kanban promuje ciągłe doskonalenie (kaizen) i pozwala na dostosowywanie się do zmieniających się priorytetów bez konieczności reorganizacji całego projektu. Ta metodologia jest szeroko stosowana w branży IT, produkcji oraz w zespołach operacyjnych, które wymagają dużej elastyczności.

Pytanie 39

Wskaź rodzaj testowania, które realizuje się w trakcie tworzenia kodu źródłowego?

A. testy jednostkowe
B. testy wdrożeniowe
C. testy wydajnościowe
D. testy kompatybilności
Testy wydajnościowe są wykonywane po zakończeniu kodowania, aby sprawdzić, jak system działa pod obciążeniem. Testy kompatybilności sprawdzają zgodność aplikacji z różnymi środowiskami i urządzeniami. Testy wdrożeniowe są realizowane na końcowym etapie projektu i mają na celu sprawdzenie, czy aplikacja działa poprawnie w rzeczywistym środowisku.

Pytanie 40

Zaprezentowany symbol odnosi się do

Ilustracja do pytania
A. prawa cytatu
B. domeny publicznej
C. praw autorskich
D. Creative Commons
Przedstawiony symbol reprezentuje domenę publiczną, co oznacza, że utwór nie jest objęty prawami autorskimi i może być swobodnie używany przez każdego. Takie oznaczenie jest często stosowane do dzieł, które przeszły do domeny publicznej po wygaśnięciu ochrony prawnej.