Wyniki egzaminu

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

Egzamin niezdany

Wynik: 12/40 punktów (30,0%)

Wymagane minimum: 20 punktów (50%)

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

Które z wymienionych sytuacji jest przykładem hermetyzacji w programowaniu obiektowym?

A. Tworzenie wielu metod o tej samej nazwie w różnych klasach
B. Wykorzystanie klasy nadrzędnej w innej klasie
C. Ograniczenie dostępu do pól klasy poprzez modyfikatory dostępu
D. Tworzenie klasy abstrakcyjnej
Hermetyzacja (ang. encapsulation) to mechanizm programowania obiektowego, który polega na ukrywaniu wewnętrznych danych obiektu oraz udostępnianiu dostępu do nich tylko za pośrednictwem metod publicznych (gettery i settery). Dzięki hermetyzacji dane klasy są chronione przed bezpośrednią modyfikacją, co zwiększa bezpieczeństwo i stabilność kodu. Przykład w C++: `class Konto { private: double saldo; public: void wplata(double kwota) { saldo += kwota; } }` – saldo jest polem prywatnym, które można modyfikować tylko poprzez metody publiczne, co zapobiega nieautoryzowanemu dostępowi.

Pytanie 2

Wynikiem wykonania poniższego fragmentu kodu jest wyświetlenie liczb z zakresu od 2 do 20, które są

Ilustracja do pytania
A. parzyste.
B. podzielne przez wartość zmiennej check.
C. podzielne przez wartość zmiennej test.
D. pierwsze.
Podzielność przez zmienną test lub check oznacza, że liczby są wielokrotnościami określonej wartości, ale niekoniecznie są liczbami pierwszymi. Liczby parzyste to liczby dzielące się przez 2, co oznacza, że tylko 2 jest liczbą pierwszą w tym zbiorze. Algorytmy wykrywające liczby parzyste lub wielokrotności nie są używane do znajdowania liczb pierwszych, ponieważ ich zakres i zastosowanie są zupełnie inne.

Pytanie 3

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

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

Pytanie 4

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

Ilustracja do pytania
A. brak konstruktora w definicji klasy
B. inicjacja obiektu została błędnie zapisana
C. argumenty konstruktora powinny być przekazane podczas inicjacji obiektu
D. pole autor jest niedostępne z tego poziomu
Brak konstruktora w definicji klasy nie jest błędem – jeśli konstruktor nie zostanie jawnie zdefiniowany, kompilator wygeneruje domyślny konstruktor bez parametrów. Błędna inicjalizacja obiektu lub brak argumentów w wywołaniu konstruktora mogą prowadzić do błędów kompilacji, ale nie mają związku z dostępem do prywatnych pól klasy. Problem polega na naruszeniu zasad dostępu do pól prywatnych, co jest rozwiązane poprzez odpowiednie mechanizmy dostępowe i stosowanie konwencji programistycznych, takich jak wzorzec projektowy getter-setter.

Pytanie 5

Jakie środowisko jest przeznaczone do tworzenia aplikacji mobilnych dla urządzeń Apple, wykorzystujące różne języki programowania, takie jak Java i Objective C?

A. Android Studio
B. XCode
C. NetBeans
D. React Native
Android Studio – Służy do tworzenia aplikacji na system Android. NetBeans – Jest używany głównie do tworzenia aplikacji w języku Java, ale nie dla urządzeń Apple. React Native – To framework umożliwiający tworzenie aplikacji na wiele platform, ale nie jest natywnym środowiskiem dla Apple.

Pytanie 6

W jednostce centralnej, za obliczenia na liczbach zmiennoprzecinkowych odpowiada

A. IU
B. AU
C. FPU
D. ALU
IU to jednostka, która ma do czynienia z liczbami całkowitymi, a nie zmiennoprzecinkowymi. ALU, czyli jednostka arytmetyczno-logiczna, wykonuje różne podstawowe operacje, ale nie jest stworzona do pracy z liczbami zmiennoprzecinkowymi. A AU to jednostka, która przechowuje wyniki, ale sama nie oblicza skomplikowanych rzeczy na liczbach zmiennoprzecinkowych.

Pytanie 7

Która z wymienionych topologii sieci wykazuje cechę, że wszystkie urządzenia są połączone jednym kablem?

A. Topologia magistrali
B. Topologia gwiazdy
C. Topologia siatki
D. Topologia pierścienia
Topologia magistrali to jedna z podstawowych topologii sieci komputerowych, w której wszystkie urządzenia są podłączone do jednego kabla, zwanego magistralą. W tej konfiguracji dane przesyłane są w obu kierunkach na wspólnym przewodzie, a każde urządzenie musi odczytać dane i zidentyfikować, czy są one przeznaczone dla niego. Kluczową zaletą topologii magistrali jest jej prostota oraz niskie koszty instalacji, ponieważ wymaga mniej kabli niż inne topologie. Jest to jednak także jej największa wada - awaria jednego segmentu kabla może spowodować przerwanie komunikacji w całej sieci. Topologia magistrali jest często wykorzystywana w małych sieciach lokalnych oraz w systemach, gdzie nie ma potrzeby dużej niezawodności. Standardy, takie jak IEEE 802.3, definiują zasady działania sieci Ethernet korzystających z tej topologii. W praktyce, zastosowanie topologii magistrali można zaobserwować w starszych instalacjach sieciowych, gdzie budżet na infrastrukturę był ograniczony, a wymogi dotyczące skomplikowania sieci były minimalne.

Pytanie 8

Wykorzystując React.js oraz Angular, stworzono funkcjonalnie równoważne kody źródłowe. Aby móc w metodzie handleSubmit pokazać zawartość kontrolki input w miejscu oznaczonym ???, należy odwołać się do atrybutu o nazwie

Ilustracja do pytania
A. nazwa3
B. nazwa2
C. nazwa4
D. nazwa1
nazwa4 – Odnosi się do innej części kodu, niepowiązanej z polem input. nazwa2 – Może odnosić się do innego elementu interfejsu, ale nie kontrolki input. nazwa3 – Choć bliska, nie jest poprawnym identyfikatorem dla tej kontrolki.

Pytanie 9

Który z poniższych przypadków stanowi test niefunkcjonalny?

A. Weryfikacja poprawności logowania użytkownika
B. Sprawdzenie działania przycisku
C. Testowanie wydajności aplikacji pod dużym obciążeniem
D. Sprawdzenie obsługi formularza rejestracji
Sprawdzenie poprawności logowania użytkownika to przykład testu funkcjonalnego, który ocenia, czy aplikacja spełnia wymagania w zakresie autoryzacji i uwierzytelnienia. Weryfikacja działania przycisku oraz obsługi formularza rejestracji to także testy funkcjonalne, które dotyczą poprawności interakcji użytkownika z aplikacją. Testy te nie oceniają wydajności ani stabilności aplikacji w warunkach dużego obciążenia, co jest celem testów niefunkcjonalnych.

Pytanie 10

Co to jest wskaźnik w języku C?

A. Funkcja do dynamicznej alokacji pamięci
B. Zmienna przechowująca wartość logiczną
C. Typ danych do zapisywania tekstów
D. Zmienna przechowująca adres pamięci
Wskaźnik w języku C to zmienna przechowująca adres pamięci innej zmiennej. Umożliwia bezpośrednią manipulację pamięcią, co czyni wskaźniki niezwykle potężnym narzędziem w programowaniu niskopoziomowym. Dzięki wskaźnikom można dynamicznie alokować pamięć, przekazywać duże struktury danych do funkcji bez ich kopiowania oraz implementować struktury danych, takie jak listy, drzewa czy grafy. Wskaźniki umożliwiają także iterowanie po tablicach i efektywne zarządzanie zasobami systemowymi, co czyni je kluczowym elementem w programowaniu systemowym.

Pytanie 11

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

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

Pytanie 12

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

A. Kompozyt (Composite)
B. Fasada (Facade)
C. Singleton (Singleton)
D. Metoda szablonowa (Template method)
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 13

Który z wymienionych objawów może sugerować nagłe zagrożenie dla zdrowia?

A. Zwiększona efektywność pracy
B. Obniżony nastrój w ciągu dnia
C. Intensywne pocenie się w gorącym otoczeniu
D. Ostry ból w klatce piersiowej
Zwiększona wydajność pracy nie jest objawem wskazującym na nagłe zagrożenie zdrowotne – może być wynikiem motywacji lub dobrej kondycji psychofizycznej. Zwiększona potliwość w gorącym pomieszczeniu to naturalna reakcja organizmu na podwyższoną temperaturę i ma charakter fizjologiczny. Obniżony nastrój w ciągu dnia jest częstym objawem psychologicznym i może wynikać ze zmęczenia lub stresu, jednak nie wskazuje na nagłe zagrożenie życia i zdrowia, choć długotrwałe obniżenie nastroju może wymagać interwencji psychologicznej lub psychiatrycznej.

Pytanie 14

Jakie kwestie związane z percepcją są uwzględnione w rekomendacjach standardu WCAG 2.0?

A. umożliwienia interakcji między elementami użytkownika za pomocą klawiatury
B. zapewnienia odpowiedniego czasu na zapoznanie się i przetworzenie informacji
C. prezentacji elementów interfejsu użytkownika
D. jasności i dokładności w dostarczonych treściach na stronie
Inne zasady WCAG, takie jak obsługa klawiatury czy zrozumiałość treści, dotyczą odpowiednio nawigacji i struktury informacji. Elementy percepcyjne koncentrują się na warstwie wizualnej i słuchowej, umożliwiając użytkownikom z różnymi ograniczeniami percepcyjnymi dostęp do pełnej funkcjonalności strony.

Pytanie 15

Jaką technologię stosuje się do powiązania aplikacji internetowej z systemem baz danych?

A. JavaScript
B. HTTP
C. SQL
D. CSS
HTTP to protokół, który pozwala na przesyłanie danych między przeglądarką a serwerem, ale to nie to samo, co narzędzie do zarządzania danymi w bazach. CSS się zajmuje stylizowaniem stron i nie ma nic wspólnego z bazami danych. JavaScript z kolei to język do robienia fajnych, interaktywnych rzeczy na stronach, ale sam w sobie nie ogarnie bazy danych. Musisz użyć jakiegoś dodatkowego narzędzia, na przykład Node.js albo ORM.

Pytanie 16

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

A. Ułatwienie manipulacji DOM oraz obsługi zdarzeń w JavaScript
B. Budowanie aplikacji mobilnych
C. Projektowanie struktur baz danych
D. Tworzenie interfejsów w programach desktopowych
Tworzenie aplikacji mobilnych to domena narzędzi takich jak React Native, Flutter czy Kotlin, które są specjalnie zaprojektowane do pracy na platformach mobilnych i nie wykorzystują jQuery. Tworzenie interfejsów w aplikacjach desktopowych zwykle odbywa się za pomocą narzędzi takich jak Electron, WPF czy JavaFX, a nie jQuery. Projektowanie struktur baz danych wymaga narzędzi takich jak MySQL, PostgreSQL czy MongoDB, które operują na poziomie backendu i nie korzystają z jQuery jako narzędzia do manipulacji danymi.

Pytanie 17

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

A. 50 Mbps
B. 40 Mbps
C. 500 Mbps
D. 400 Mbps
Pierwsza odpowiedź, czyli 50 Mbps, jest znacznie za niska. Przy obliczeniach 500 MB w ciągu 10 sekund, ta wartość sugeruje, że tylko niewielka część danych zostałaby przesłana, co nie ma sensu w kontekście technicznym. Z tak małą przepustowością sieć byłaby totalnie nieefektywna, a transfer zająłby o wiele więcej czasu. Z kolei odpowiedź 400 Mbps jest wprawdzie blisko, ale też nie do końca poprawna, bo prawidłowy wynik to 500 Mbps. Chodzi o to, że nie liczy to całkowitej ilości danych w megabitach oraz czasu przesyłu. A na końcu, odpowiedź 40 Mbps to już totalna pomyłka, bo sugeruje ekstremalnie wolny transfer, co na pewno nie wystarczyłoby do przesłania 500 MB w takim krótkim czasie. Taka przepustowość nie spełnia wymagań nowoczesnych aplikacji jak strumieniowe przesyłanie wideo czy komunikacja na żywo, gdzie transfery na poziomie setek megabitów na sekundę to standard.

Pytanie 18

Jakie metody pozwalają na przesłanie danych z serwera do aplikacji front-end?

A. biblioteki jQuery
B. formatu JSON
C. protokołu SSH
D. metody POST
Biblioteka jQuery umożliwia manipulację DOM i wykonywanie zapytań AJAX, ale nie jest formatem przesyłania danych. Protokół SSH służy do bezpiecznej komunikacji z serwerem, natomiast metoda POST to część protokołu HTTP, wykorzystywana do przesyłania danych, ale nie jest formatem danych samym w sobie.

Pytanie 19

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

A. 997
B. 112
C. 113
D. 998
Numer 997 łączy bezpośrednio z policją, 998 ze strażą pożarną, a 113 nie jest numerem alarmowym w Polsce. Choć numery 997 i 998 są ważne, to numer 112 jest bardziej wszechstronny, umożliwiając kontakt z wszystkimi służbami jednocześnie, co jest kluczowe w sytuacjach kryzysowych.

Pytanie 20

Z analizy złożoności obliczeniowej różnych algorytmów sortowania na dużych zbiorach danych (przekraczających 100 elementów) wynika, że najefektywniejszą metodą jest algorytm sortowania

sortowanie bąbelkoweO(n2)
sortowanie przez wstawianieO(n2)
sortowanie przez scalanieO(n log n)
sortowanie przez zliczanieO(n)
sortowanie kubełkoweO(n2)

A. przez zliczanie
B. bąbelkowego
C. kubełkowego
D. przez scalanie
Sortowanie przez zliczanie jest jedną z najszybszych metod sortowania w przypadku określonych typów danych wejściowych. W szczególności działa ono efektywnie, gdy znamy ograniczenia co do zakresu wartości w zbiorze danych, ponieważ jego złożoność obliczeniowa wynosi O(n+k), gdzie n to liczba elementów do posortowania, a k to zakres wartości. Dzięki temu, w przeciwieństwie do metod sortowania porównawczego, takich jak sortowanie przez scalanie czy bąbelkowe, sortowanie przez zliczanie może osiągnąć liniową złożoność czasową, jeśli k jest stosunkowo małe w porównaniu do n. Algorytm ten działa poprzez zliczanie wystąpień każdego elementu, co pozwala na szybkie umieszczenie go w odpowiedniej pozycji w posortowanej tablicy. Przykładowe zastosowania sortowania przez zliczanie to sortowanie wyników egzaminów czy organizacja danych liczbowych w określonym przedziale, co jest często spotykane w analizach statystycznych. Standardy branżowe często korzystają z tej metody, gdy operujemy na dużych zbiorach danych o ograniczonym zakresie, co jest zgodne z najlepszymi praktykami efektywnego przetwarzania danych.

Pytanie 21

Które z wymienionych stwierdzeń najcelniej opisuje proces uruchamiania aplikacji?

A. Wykonywanie programu na podstawie przetłumaczonego kodu maszynowego
B. Przetwarzanie kodu źródłowego przez kompilator
C. Generowanie pliku źródłowego
D. Tłumaczenie kodu źródłowego na język pośredni
Zaczynanie od pliku źródłowego to jakby start w procesie programowania, zanim jeszcze dojdzie do kompilacji. Twierdzisz, że kompilator wykonuje kod źródłowy, ale to nie tak. Kompilator tłumaczy, a nie wykonuje ten kod. Zamiana kodu źródłowego na język pośredni, jak bytecode w Javie, to właśnie etap kompilacji. Uruchomienie następuje później, więc jest to ważne, żeby to zrozumieć.

Pytanie 22

Aby tworzyć aplikacje desktopowe w języku Java, można wybrać jedno z poniższych środowisk

A. Ms Visual Studio
B. SharpDevelop
C. NetBeans
D. PyCharm
NetBeans to środowisko IDE dedykowane do programowania aplikacji desktopowych w języku Java. Obsługuje różne projekty, w tym aplikacje graficzne, serwisy sieciowe i narzędzia analityczne.

Pytanie 23

Zapisany fragment w Pythonie ilustruje:

Ilustracja do pytania
A. tablicę asocjacyjną (słownik)
B. kolejkę (LIFO)
C. strukturę danych
D. stos
Stos (LIFO) i kolejka (FIFO) to struktury, które działają na zasadzie dodawania i usuwania elementów, ale nie obsługują dostępu poprzez klucz. Zwykłe tablice (listy) przechowują elementy w określonej kolejności i odwołują się do nich przez indeksy liczbowe, a nie klucze tekstowe.

Pytanie 24

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

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

Pytanie 25

Jaką złożoność obliczeniową posiada podany algorytm?

Ilustracja do pytania
A. O(n2)
B. O(n log n)
C. O(n)
D. O(1)
O(n log n) – to typowa złożoność dla algorytmów sortowania, na przykład quicksort czy mergesort. O(1) – to oznacza, że algorytm działa w stałym czasie, niezależnie od wielkości danych, co tu nie pasuje. O(n^2) – to z kolei złożoność dla algorytmów, które mają kwadratową wydajność, jak na przykład sortowanie bąbelkowe, ale to nie jest to, czego szukamy w tym przypadku.

Pytanie 26

Jakie ma znaczenie "operacja wejścia" w kontekście programowania?

A. Przekazywanie danych do programu z zewnętrznych źródeł
B. Naprawianie błędów w kodzie aplikacji
C. Wprowadzanie nowych funkcji do aplikacji
D. Zmiana wartości zmiennych globalnych
Dodawanie nowych funkcji do programu to element programowania, ale nie jest to związane z operacją wejścia. Modyfikowanie wartości zmiennych globalnych to operacja na poziomie kodu, a nie proces wejścia danych. Usuwanie błędów w kodzie programu to etap debugowania, a nie operacja wejścia. Operacje wejścia koncentrują się na interakcji z użytkownikiem lub innymi źródłami danych, co odróżnia je od modyfikacji kodu czy zarządzania błędami.

Pytanie 27

Która z wymienionych zasad jest istotna dla bezpiecznego użytkowania portali społecznościowych?

A. Unikanie stosowania silnych haseł do konta
B. Udostępnianie jak największej ilości informacji osobowych
C. Regularne kontrolowanie ustawień prywatności
D. Zgłaszanie treści, które naruszają regulamin
Udostępnianie jak największej ilości danych osobowych jest jedną z najniebezpieczniejszych praktyk w kontekście korzystania z portali społecznościowych. Takie działanie naraża użytkowników na różne formy cyberprzestępczości, w tym kradzież tożsamości czy oszustwa. Im więcej informacji osoba udostępnia, tym łatwiej dla przestępców zbudować profil potencjalnej ofiary i wykorzystać go do oszustw. Kolejnym błędem jest unikanie ustawiania silnych haseł do konta. Słabe hasła, które są łatwe do odgadnięcia lub uzyskania, stają się powodem wielu nieautoryzowanych dostępu do kont. Przykłady prostych haseł, jak '123456' czy 'hasło', są powszechnie używane przez wiele osób, co czyni je niezwykle podatnymi na ataki brute force. Wreszcie, zgłaszanie postów, które nie są zgodne z regulaminem, choć jest to działanie pozytywne, nie wpływa bezpośrednio na bezpieczeństwo użytkownika. Zgłaszanie niewłaściwych treści jest ważne dla utrzymania zdrowego środowiska w sieci, ale nie chroni użytkownika przed zagrożeniami związanymi z prywatnością i bezpieczeństwem danych. Wspólnie, te praktyki mogą prowadzić do poważnych naruszeń bezpieczeństwa i nie powinny być stosowane przez świadomych użytkowników portali społecznościowych.

Pytanie 28

Które z wymienionych środowisk programistycznych jest rekomendowane do developing aplikacji w języku Python z użyciem frameworka Django?

A. PyCharm
B. Unity
C. Android Studio
D. XCode
PyCharm to jedno z najbardziej zaawansowanych środowisk programistycznych (IDE) dedykowanych do tworzenia aplikacji w języku Python. Jest to narzędzie preferowane przez programistów korzystających z frameworka Django, który jest popularnym rozwiązaniem do budowy aplikacji webowych. PyCharm oferuje rozbudowane wsparcie dla Django, umożliwiając szybkie tworzenie projektów, integrację z bazami danych oraz wygodne debugowanie aplikacji. IDE zapewnia również możliwość uruchamiania serwerów deweloperskich, podglądu zmian w czasie rzeczywistym oraz automatyczne uzupełnianie kodu, co znacząco zwiększa efektywność pracy nad aplikacjami webowymi. Dzięki PyCharm programiści mogą łatwo zarządzać migracjami bazy danych, tworzyć modele i szablony, co sprawia, że jest to narzędzie nieocenione w ekosystemie Django.

Pytanie 29

Która z wymienionych kart graficznych oferuje lepszą wydajność w grach komputerowych?

A. AMD Radeon RX 580 - 8GB GDDR5, 256-bit
B. AMD Radeon R7 240 - 2GB GDDR5, 64-bit
C. Intel UHD Graphics 630 - zintegrowana
D. NVIDIA GeForce GTX 1050 Ti - 4GB GDDR5, 128-bit
NVIDIA GeForce GTX 1050 Ti, mimo że jest popularną kartą graficzną, nie zapewnia takiej samej wydajności w grach jak RX 580. Z jedynie 4GB pamięci GDDR5 i 128-bitową szyną danych, GTX 1050 Ti ma ograniczone możliwości w obsłudze nowoczesnych gier, co prowadzi do niższej jakości obrazu oraz ograniczonej liczby klatek na sekundę, szczególnie w bardziej wymagających tytułach. Kolejną nieodpowiednią opcją jest Intel UHD Graphics 630, która jest zintegrowaną kartą graficzną, co oznacza, że jest bardziej odpowiednia do podstawowych zadań, takich jak przeglądanie internetu czy oglądanie filmów, niż do grania w gry komputerowe. Tego typu GPU nie ma dedykowanej pamięci, co znacznie ogranicza jego wydajność w aplikacjach wymagających intensywnej obróbki graficznej. Również AMD Radeon R7 240 z 2GB pamięci GDDR5 i 64-bitową szyną danych jest najsłabszym wyborem do gier. Ta karta graficzna, przeznaczona raczej do podstawowych zastosowań multimedialnych, nie ma mocy obliczeniowej potrzebnej do efektywnego działania w nowoczesnych grach, co prowadzi do niskiej wydajności oraz problemów z płynnością. Sumując, wszystkie trzy karty graficzne nie spełniają wymagań współczesnych gier, co czyni AMD Radeon RX 580 najlepszym wyborem dla graczy.

Pytanie 30

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

Ilustracja do pytania
A. liczby rzeczywiste
B. liczby całkowite
C. elementy typu List
D. elementy o nieokreślonym typie
Elementy typu float lub obiekty (List) są możliwe, ale w tym przypadku wyraźnie wskazano typ int. Listy o niezdefiniowanym typie nie są możliwe, ponieważ w C# typ danych musi być określony w momencie deklaracji listy.

Pytanie 31

Jakie są główne różnice między środowiskiem RAD (Rapid Application Development) a klasycznymi IDE?

A. RAD funkcjonuje tylko w systemach operacyjnych Linux
B. RAD pozwala na szybkie tworzenie prototypów i rozwijanie aplikacji przy minimalnej ilości kodu
C. RAD nie oferuje żadnych narzędzi do debugowania
D. RAD koncentruje się tylko na testowaniu programów
Twierdzenie, że RAD skupia się wyłącznie na testowaniu kodu, jest błędne – jego głównym celem jest szybkie tworzenie aplikacji, a nie jedynie testowanie. Brak narzędzi do debugowania to również nieprawdziwa informacja, ponieważ narzędzia RAD oferują pełne wsparcie dla debugowania i testowania aplikacji w trakcie ich rozwoju. Stwierdzenie, że RAD działa tylko na systemach operacyjnych typu Linux, jest niezgodne z rzeczywistością – narzędzia RAD działają zarówno na Windows, macOS, jak i Linux, co czyni je uniwersalnym rozwiązaniem dla szerokiej gamy deweloperów.

Pytanie 32

Wskaż termin, który w języku angielskim odnosi się do "testów wydajnościowych"?

A. unit testing
B. integration testing
C. security testing
D. performance testing
Testy jednostkowe, czyli unit testing, to sprawdzenie, czy poszczególne fragmenty kodu działają tak, jak powinny. Trochę jak sprawdzanie, czy każdy element puzzli pasuje do siebie. Z kolei integration testing to testowanie, jak różne moduły współpracują ze sobą. A security testing, to już inna bajka, bo chodzi o to, żeby upewnić się, że aplikacja jest odporna na ataki. W sumie, bez tych testów można trafić na poważne problemy.

Pytanie 33

Jakie jest główne zadanie debuggera w środowisku programowania?

A. Kompilowanie kodu źródłowego
B. Generowanie plików wykonywalnych
C. Tworzenie kodu źródłowego
D. Analiza i usuwanie błędów w kodzie
Debugger to narzędzie programistyczne służące do analizy i usuwania błędów w kodzie źródłowym. Pozwala na krokowe wykonywanie programu, śledzenie wartości zmiennych i identyfikowanie miejsc, w których występują błędy logiczne lub składniowe. Debugger umożliwia zatrzymanie wykonania programu w dowolnym miejscu, ustawienie tzw. breakpointów (punktów przerwania) i monitorowanie przepływu sterowania. Dzięki temu programista może dokładnie przeanalizować, dlaczego program nie działa zgodnie z oczekiwaniami i szybko znaleźć przyczynę problemu. Debuggery są dostępne w większości zintegrowanych środowisk programistycznych (IDE), takich jak Visual Studio, PyCharm czy IntelliJ IDEA.

Pytanie 34

Modyfikator dostępu znajdujący się przed definicją metody Dodaj() w klasie Kalkulator sprawia, że:

Ilustracja do pytania
A. jest ona dostępna zarówno w samej klasie, jak i w klasach dziedziczących po klasie Kalkulator
B. nie jest ona dostępna z poziomu klas, które są zaprzyjaźnione z klasą Kalkulator
C. nie jest ona osiągalna w klasach, które dziedziczą po klasie Kalkulator
D. jest ona możliwa do wykorzystania w programie głównym i można ją wywołać na instancji klasy Kalkulator
Modyfikator dostępu w C# to taki fajny element, który pozwala, żeby metoda Dodaj() była dostępna nie tylko w klasie Kalkulator, ale też w klasach, które dziedziczą po niej. To naprawdę ważne w programowaniu obiektowym, bo dzięki temu możesz rozbudowywać funkcje klasy bazowej, nie grzebiąc w jej kodzie. To w sumie daje większą elastyczność i ułatwia ponowne wykorzystywanie fragmentów kodu w różnych częściach aplikacji.

Pytanie 35

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

Ilustracja do pytania
A. bieżąca wartość pola jest wspólna dla wszystkich instancji klasy i nie może być zmieniana
B. bieżąca wartość pola jest wspólna dla wszystkich instancji klasy
C. pole jest związane z określoną instancją klasy i jego wartość jest unikalna tylko dla tej instancji
D. pole nie może być zmieniane w kodzie klasy
Pole charakterystyczne dla jednej instancji klasy oznacza, że jest to pole niestatyczne (instancyjne). Jeśli pole nie może być modyfikowane, jest oznaczone jako final (w Java) lub const (w C#), co nie jest równoznaczne z polem statycznym. Brak możliwości modyfikacji nie oznacza współdzielenia wartości przez wszystkie instancje klasy.

Pytanie 36

Na ilustracji pokazano fragment emulacji iOS z elementem kontrolnym. Który fragment kodu XAML opisuje ten element?

Ilustracja do pytania
A.
B.
C.
D.
Pole tekstowe z ukrytymi znakami () służy do wprowadzania hasła. Ale suwak () działa trochę inaczej, bo wybierasz wartość z pewnego zakresu. No i Stepper to już całkiem inna bajka, bo pozwala na stopniowe zmniejszanie lub zwiększanie wartości. Każdy z tych elementów ma swoje zastosowanie i nie można ich mylić z przełącznikiem.

Pytanie 37

Jaki model zarządzania projektami przewiduje, że wszystkie etapy są realizowane jeden po drugim, bez możliwości wrócenia do wcześniejszych faz?

A. Model kaskadowy (waterfall)
B. Model spiralny
C. Metodyki zwinne (Agile)
D. Model przyrostowy
Model spiralny pozwala na wielokrotne przechodzenie przez różne fazy projektu, co daje większą elastyczność. Model przyrostowy umożliwia realizację projektu w etapach, co pozwala na dostarczanie częściowych wersji produktu. Metodyki zwinne (Agile) opierają się na iteracjach i umożliwiają powrót do poprzednich etapów, w zależności od potrzeb i informacji zwrotnych od klienta.

Pytanie 38

Który framework jest powszechnie wykorzystywany do tworzenia aplikacji internetowych w języku Python?

A. ASP.NET Core
B. Django
C. React.js
D. Angular
Angular to framework oparty na języku JavaScript i TypeScript, wykorzystywany głównie do budowy aplikacji frontendowych, a nie webowych backendów w Pythonie. React.js jest biblioteką JavaScript służącą do tworzenia interfejsów użytkownika, ale nie posiada narzędzi do budowy backendu w Pythonie. ASP.NET Core to framework firmy Microsoft, używany do tworzenia aplikacji webowych w języku C#, co czyni go nieodpowiednim wyborem dla programistów Pythona.

Pytanie 39

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

Ilustracja do pytania
A. Kod 4
B. Kod 1
C. Kod 3
D. Kod 2
Kod 1 i Kod 3 mogą zawierać błędy składniowe, nieprawidłowe klasy lub niepełne definicje kontrolek. Kod 4 może wykorzystywać starsze wersje składni lub nie zawierać wszystkich wymaganych właściwości, co prowadzi do błędów podczas kompilacji interfejsu w XAML.

Pytanie 40

Aby wykorzystać framework Django, należy pisać w języku

A. Python
B. C#
C. JavaScript
D. Java
Framework Django jest napisany w języku Python. Jest to jeden z najpopularniejszych frameworków do tworzenia aplikacji webowych, oferujący bogatą funkcjonalność, elastyczność i szybki czas realizacji projektów.