Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 8 czerwca 2026 22:01
  • Data zakończenia: 8 czerwca 2026 22:13

Egzamin zdany!

Wynik: 35/40 punktów (87,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Celem mechanizmu obietnic (ang. promises) w języku JavaScript jest

A. zarządzanie przechwytywaniem błędów aplikacji
B. zarządzanie funkcjonalnością związaną z kodem asynchronicznym
C. zastąpienie mechanizmu dziedziczenia w programowaniu obiektowym
D. ulepszenie czytelności kodu synchronicznego
Mechanizm obietnic (promises) w JavaScript to, moim zdaniem, jedno z najważniejszych udogodnień, które pojawiły się w języku, żeby ogarnąć cały ten chaos wokół asynchroniczności. Typowa sytuacja kiedyś wyglądała tak, że w kodzie robiło się „callback hell” – zagnieżdżone funkcje wywołujące się nawzajem, co mocno utrudniało życie. Promise pozwala na o wiele czytelniejsze i wygodniejsze zarządzanie operacjami, które kończą się „kiedyś”, np. pobieraniem danych z API, zapisem do pliku, czy czekaniem na odpowiedź użytkownika. Z mojego doświadczenia wynika, że dzięki promises jest dużo łatwiej obsłużyć zarówno sukces, jak i błędy – możesz skorzystać z then(), catch(), a nawet łańcuchować kilka asynchronicznych zadań bez gubienia się w kodzie. Szczególnie przydatne jest to w pracy z fetch(), gdzie bez promises cała obsługa sieci wyglądałaby strasznie topornie. Dodatkowo promises są w pełni zgodne ze standardem ECMAScript 2015 (ES6) i stanowią podstawę dla nowocześniejszych rozwiązań, takich jak async/await. Praktycznie każdy zawodowy frontendowiec czy backendowiec pracujący z Node.js powinien je znać, bo to już nie fanaberia, a codzienność. Dobra praktyka to właśnie korzystanie z promises tam, gdzie tylko mamy do czynienia z nieblokującymi operacjami. Takie podejście nie tylko poprawia czytelność kodu, ale znacząco ułatwia jego utrzymanie i debugowanie.

Pytanie 2

Który z poniższych metod najlepiej zabezpiecza dane karty płatniczej podczas zakupów online?

A. Używanie wirtualnych kart płatniczych lub jednorazowych kodów
B. Udostępnianie danych karty na platformach internetowych
C. Przechowywanie numeru karty w przeglądarce internetowej
D. Podawanie informacji o karcie w odpowiedzi na wiadomość e-mail od nieznajomego
Korzystanie z wirtualnych kart płatniczych lub jednorazowych kodów to skuteczny sposób na ochronę danych karty płatniczej podczas transakcji internetowych. Wirtualne karty mają ograniczony okres ważności i są powiązane z określoną kwotą, co minimalizuje ryzyko kradzieży całego konta bankowego. Jednorazowe kody płatności wygasają po jednorazowym użyciu, co uniemożliwia ich ponowne wykorzystanie przez osoby trzecie. Dzięki tym metodom użytkownicy znacznie redukują ryzyko oszustw i nieautoryzowanych transakcji.

Pytanie 3

Zgodnie z informacjami zawartymi w ramce, wskaż, który z rysunków ilustruje element przypisany do klasy Badge określonej w bibliotece Bootstrap?

Ilustracja do pytania
A. A
B. C
C. D
D. B
Wybrałeś wariant B i to zdecydowanie właściwy trop. Badge w Bootstrapie to nic innego jak taki mały, liczbowy wskaźnik – najczęściej widoczny przy nazwach kategorii, powiadomieniach czy komentarzach – który sygnalizuje użytkownikowi ile czegoś się pojawiło albo ile czeka akcji do wykonania. W praktyce, taki element to nie tylko liczba w kolorowym prostokącie czy kółku, ale też bardzo czytelny komunikat do użytkownika, co się ostatnio zmieniło lub co wymaga uwagi. Właśnie dlatego, w przykładzie B, mamy niebieskie prostokąty z liczbami przy różnych sekcjach (News, Comments, Updates) – to klasyczny przykład badge’a w Bootstrapie, często stylowanego klasą .badge i powiązaną kolorystyką. Warto zwrócić uwagę, że takie badge’e są nie tylko wizualne, ale też semantyczne – są rozpoznawalne przez czytniki ekranu, co jest zgodne z dobrymi praktykami dostępności (WCAG). Stosując badge’e, zwiększamy czytelność i dostępność interfejsu użytkownika, bo od razu wiadomo, gdzie coś nowego się pojawiło. Moim zdaniem, korzystanie z badge’y to jeden z prostszych i skuteczniejszych sposobów na poprawę UX – no i są bardzo łatwe do wdrożenia, wystarczy jedna klasa CSS i gotowe.

Pytanie 4

Co to jest choroba związana z wykonywaniem zawodu?

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

Pytanie 5

W systemie RGB kolor Pale Green przedstawia się jako RGB(152, 251, 152). Jaki jest szesnastkowy kod tego koloru?

A. 98 FE98
B. AO FB AO
C. AO FE AO
D. 98FB98
Kolor Pale Green w systemie RGB jest reprezentowany przez wartości RGB(152, 251, 152). Aby przekształcić te wartości na format szesnastkowy, należy każdy z komponentów koloru (czerwony, zielony, niebieski) przekształcić na format heksadecymalny. Wartość 152 w systemie dziesiętnym odpowiada 98 w systemie szesnastkowym, a 251 w systemie dziesiętnym odpowiada FE w systemie szesnastkowym. Dlatego, łącząc te wartości w kolejności od komponentu czerwonego, zielonego, do niebieskiego, uzyskujemy kod szesnastkowy 98FE98. Kod ten może być używany w projektach graficznych oraz w CSS do definiowania kolorów tła, tekstów i innych elementów. Użycie formatu szesnastkowego w projektowaniu stron internetowych oraz w aplikacjach jest zgodne z zasadami standardu W3C dotyczącego kolorów w HTML i CSS, co zapewnia spójność wizualną i ułatwia pracę z kolorami.

Pytanie 6

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:
React.js:

nazwa1 = React.createRef();
handleSubmit = e => {
    console.log(this.???.current.value);
}
...
<form onSubmit={this.handleSubmit}>
    <input ref={this.nazwa1} name="nazwa2" id="nazwa3" for="nazwa4" />
Angular:
<form #f="ngForm" (ngSubmit) = "handleSubmit(f)">
    <input ngModel name="nazwa1" id="nazwa2" class="nazwa3" for="nazwa4" >
...
handleSubmit(f) {
    console.log(f.value.???);
}
A. nazwa4
B. nazwa1
C. nazwa2
D. nazwa3
To właśnie nazwa1 jest właściwym atrybutem, do którego trzeba się odwołać, żeby wyciągnąć wartość inputa zarówno w React, jak i w Angularze. W React, kiedy chcemy pobrać wartość z inputa przez refa, to przekazujemy ref={this.nazwa1}, a potem w handleSubmit robimy this.nazwa1.current.value. To po prostu dokładnie ta sama nazwa, którą przypisałeś do refa, nie ma tu żadnej magii. W Angularze z kolei input posiada ngModel oraz name="nazwa1" – i to name jest kluczowe, bo obiekt f.value generowany przez ngForm zawiera wszystkie pola po kluczach odpowiadających atrybutom name. Dzięki temu możesz potem użyć f.value.nazwa1 i dostajesz wartość inputa. W praktyce zawsze warto pilnować, żeby atrybut name był sensowny i jednoznaczny, bo to na nim opierają się frameworki przy serializacji danych formularza i obsłudze ich stanu. Moim zdaniem to jest jedna z bardziej praktycznych umiejętności przy pracy z dynamicznymi formularzami – jeśli ktoś nie dba o spójność nazw atrybutów name, to łatwo o błędy, które są potem trudne do wykrycia. Warto jeszcze pamiętać, że atrybuty typu id, class czy for mają zupełnie inne zastosowanie – służą do stylowania, powiązań z labelkami, itd. Name natomiast to podstawa logicznej obsługi wartości pól formularza. Często spotykam się z sytuacjami, że ktoś próbuje pobierać dane po id czy class, ale to nie jest zgodne z dobrymi praktykami – dla czytelności kodu i łatwości refaktoryzacji o wiele lepiej korzystać z name. Takie rozwiązania są też zalecane w oficjalnej dokumentacji zarówno React, jak i Angulara.

Pytanie 7

Jakie znaczenie ma krajowa normalizacja dla produktów i usług?

A. Usuwa konieczność przeprowadzania kontroli jakości
B. Restrukcjonuje innowacje technologiczne
C. Ogranicza liczbę dostępnych towarów
D. Gwarantuje lepszą zgodność oraz jakość
Normalizacja krajowa to świetny sposób na to, żeby produkty i usługi były bardziej spójne i lepszej jakości. Kiedy mamy standardy, to producenci mogą robić rzeczy, które są zgodne z wymaganiami technicznymi. To z kolei sprawia, że konsumenci mogą bardziej ufać produktom, a ryzyko, że coś będzie wadliwe, spada. Dzięki normalizacji zwiększa się bezpieczeństwo, poprawia interoperacyjność, a to wszystko wspiera rozwój technologiczny. No i jest jeszcze to, że łatwiej jest wymieniać produkty między różnymi rynkami, co ma pozytywny wpływ na całą gospodarkę.

Pytanie 8

Wzorzec projektowy "Metoda szablonowa" (Template method) stosuje się do:

A. organizowania obiektów w hierarchiczne struktury drzewiaste
B. centralizacji zarządzania wieloma instancjami obiektów
C. określenia szkieletu algorytmu i pozostawienia szczegółów implementacji dla podklas
D. gromadzenia obiektów w jednorodnej kolekcji
Wzorzec projektowy 'Metoda szablonowa' to naprawdę sprytna sprawa, szczególnie w programowaniu obiektowym. Ten wzorzec pozwala zdefiniować ogólną strukturę algorytmu w klasie bazowej, a szczegóły implementacji przekazać do podklas. Brzmi jak coś z teorii, ale w praktyce często się przydaje, bo daje kontrolę nad przepływem działania algorytmu, nie tracąc elastyczności. To taki kompromis: masz szkielet (np. metoda w klasie abstrakcyjnej), ale nie zamykasz drogi na własne pomysły w podklasach. Typowym przykładem może być system obsługi płatności: cała procedura (np. przetwarzanie zamówienia) jest ustalona, ale poszczególne kroki typu 'autoryzuj', 'zrealizuj' czy 'zatwierdź' można nadpisywać. Daje to porządek i spójność kodu, a przy okazji nie zamyka na zmiany. Moim zdaniem, jeśli w projekcie pojawia się powtarzalny schemat postępowania, który tylko w detalach się różni, to Metoda szablonowa jest jednym z najczystszych rozwiązań. Warto pamiętać, że to podejście zgodne z zasadą Hollywood: „Don’t call us, we’ll call you” – to szkielet decyduje, kiedy wywołać szczegóły. Wielu seniorów poleca ten wzorzec, bo upraszcza utrzymanie i rozwijanie kodu, a IDE typu IntelliJ czy Visual Studio świetnie ogarniają takie abstrakcyjne klasy. Szczerze – w wielu firmach to po prostu standard.

Pytanie 9

Co zostanie wyświetlone po wykonaniu poniższego kodu w języku Python?

data = [1, 2, 3, 4, 5]
result = list(map(lambda x: x*2, filter(lambda x: x % 2 == 0, data)))
print(result)
A. [4, 8]
B. [2, 4, 6, 8, 10]
C. [2, 6, 10]
D. [1, 2, 3, 4, 5]
W kodzie Python, który analizujemy, użyto funkcji map i filter, które są często stosowane w programowaniu funkcyjnym. W pierwszej części, funkcja filter filtruje elementy z listy 'data', zwracając tylko te, które są liczbami parzystymi. W tym przypadku, z listy [1, 2, 3, 4, 5] zostaną wybrane liczby 2 i 4. Następnie, funkcja map mnoży te liczby przez 2. Dla liczby 2 otrzymujemy 4, a dla liczby 4 – 8. Dlatego wynik końcowy to lista [4, 8]. W praktyce, znajomość takich konstrukcji pozwala na efektywne przetwarzanie danych i implementację bardziej złożonych algorytmów w codziennych zastosowaniach programistycznych. Korzystając z filtracji i mapowania można na przykład szybko przetwarzać dane wejściowe w aplikacjach webowych lub analizować duże zestawy danych. Ważne jest, aby pamiętać, że te techniki są bardzo przydatne w kontekście pracy z danymi i powinny być uzupełnione o umiejętność czytania i rozumienia kodu, co jest kluczowe w praktyce programistycznej.

Pytanie 10

Co to jest shadow DOM?

A. Technika stylizacji elementów w CSS przy użyciu cieni
B. Metoda renderowania grafiki 3D w przeglądarkach
C. Wirtualny DOM używany przez biblioteki jak React i Vue.js
D. Mechanizm enkapsulacji kodu HTML, CSS i JavaScript w komponenty webowe
Zastosowanie błędnych koncepcji w kontekście Shadow DOM prowadzi do nieporozumień na temat jego funkcji. Przykładem niepoprawnego podejścia jest mylenie Shadow DOM z technikami stylizacji CSS przy użyciu cieni, co jest całkowicie innym zagadnieniem. W rzeczywistości Shadow DOM nie zajmuje się stylizacją w tradycyjnym sensie, lecz umożliwia tworzenie izolowanych instancji DOM, co jest kluczowe w kontekście wielokrotnego użycia komponentów. Innym błędnym zrozumieniem jest myślenie, że Shadow DOM jest metodą renderowania grafiki 3D, czego nie jest; techniki 3D w przeglądarkach są zazwyczaj związane z WebGL. Ponadto, wirtualny DOM, używany przez biblioteki takie jak React czy Vue.js, nie ma związku z Shadow DOM, ponieważ wirtualny DOM jest abstrakcyjną reprezentacją rzeczywistego DOM, mającą na celu optymalizację aktualizacji UI. Shadow DOM natomiast skupia się na izolacji i enkapsulacji kodu. Zrozumienie tych różnic jest kluczowe dla efektywnego wykorzystania technologii webowych, a ich ignorowanie może prowadzić do błędnych implementacji oraz zwiększenia złożoności projektów webowych. Aby skutecznie pracować z komponentami, należy znajomość Shadow DOM zintegrować z innymi technologiami, trzymając się najlepszych praktyk i standardów.

Pytanie 11

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

A. Testy integracyjne
B. Testy end-to-end
C. Testy kompilacyjne
D. Testy jednostkowe
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 12

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

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

Pytanie 13

Jakie będzie działanie przedstawionych dwóch równoważnych fragmentów kodu źródłowego?

Kod w React:

function Heading(props) {
    return (
        <h1> {props.title} </h1>
    );
}

// w metodzie render
return (
    <Heading title="Egzamin zawodowy" />
);

Kod w Angular:
// heading.component.ts
import {Component} from '@angular/core';
@Component({
    selector: 'app-heading',
    templateUrl: './heading.component.html',
    styleUrls: ['./heading.component.css']
})

export class HeadingComponent {
    title:String = "Egzamin zawodowy";
    ...
}

// heading.component.html
<h1>{{title}}</h1>
A. Wyświetlony na stronie tekst w nagłówku: "Egzamin zawodowy"
B. Wyświetlony na stronie tekst w akapicie: "Egzamin zawodowy"
C. Nadany tytuł każdego elementu HTML: "Egzamin zawodowy"
D. Nadany tytuł strony: "Egzamin zawodowy"
Dokładnie tak – zarówno w React, jak i w Angularze, oba te fragmenty kodu mają za zadanie wyświetlić tekst „Egzamin zawodowy” w nagłówku HTML, czyli w tagu <h1>. To jest klasyczna praktyka w aplikacjach frontendowych. W React przekazujesz wartość props.title do komponentu Heading i renderujesz ją w elemencie <h1>. W Angularze tworzysz pole klasy o nazwie title i korzystasz z interpolacji {{ title }} w szablonie HTML – efekt jest identyczny. Taki sposób podejścia odzwierciedla zasadę jednokierunkowego przepływu danych i rozdzielania logiki od prezentacji, co jest jedną z podstaw nowoczesnych frameworków. Bardzo często nagłówki jak <h1> są wykorzystywane nie tylko dla estetyki, ale i poprawy dostępności oraz SEO strony – roboty wyszukiwarek właśnie z tych tagów czerpią wiedzę o głównym temacie widoku. Spotykałem się wielokrotnie z sytuacjami, gdzie ktoś próbował „upiększać” nagłówki za pomocą CSS, ale zapominał o semantyce i kończył z brakiem <h1> w kodzie – to błąd! Dobrą praktyką jest zawsze korzystanie z odpowiednich tagów HTML. Takie podejście sprawia, że kod jest czytelny, łatwiej go utrzymać i jest bardziej przyjazny dla wszystkich, także osób korzystających np. z czytników ekranu. Poza tym, takie komponenty są świetne do wielokrotnego użytku – możesz przekazać różne wartości „title” do różnych nagłówków strony, nie pisząc tego samego kodu od nowa. Moim zdaniem to jedna z podstawowych, ale bardzo ważnych technik, które każdy frontendowiec powinien ogarniać.

Pytanie 14

Jakie zadanie wykonuje debugger?

A. Identyfikowanie błędów składniowych podczas kompilacji
B. Umożliwianie analizy działania programu krok po kroku
C. Przekładanie kodu źródłowego na język maszynowy
D. Generowanie pliku wykonywalnego programu
Tłumaczenie kodu źródłowego na język maszynowy to zadanie kompilatora, a nie debuggera. Wykrywanie błędów składniowych odbywa się podczas procesu kompilacji lub analizy statycznej, ale debugger zajmuje się błędami występującymi w trakcie wykonywania programu. Tworzenie pliku wykonywalnego jest funkcją kompilatora, nie debuggera. Debugger nie generuje kodu – jego zadaniem jest monitorowanie i analizowanie kodu, który już został skompilowany lub interpretowany.

Pytanie 15

Jakie środowisko developerskie służy do tworzenia aplikacji na platformę iOS?

A. Eclipse
B. Visual Studio Code
C. Studio Androida
D. XCode
XCode to oficjalne środowisko programistyczne (IDE) firmy Apple, które jest wykorzystywane do tworzenia aplikacji na systemy iOS, macOS, watchOS i tvOS. XCode oferuje pełne wsparcie dla języków Swift i Objective-C oraz narzędzia do projektowania interfejsów użytkownika (Storyboard), debugowania aplikacji, testowania wydajności i optymalizacji kodu. XCode posiada także symulatory urządzeń Apple, co umożliwia testowanie aplikacji na różnych modelach iPhone’ów, iPadów oraz Apple Watch. XCode jest niezbędnym narzędziem dla deweloperów tworzących aplikacje na ekosystem Apple i pozwala na łatwą publikację aplikacji w App Store.

Pytanie 16

Co to jest Redux?

A. Biblioteka do zarządzania stanem aplikacji w JavaScript
B. System kontroli wersji dla projektów JavaScript
C. Narzędzie do optymalizacji wydajności aplikacji React
D. Framework do tworzenia aplikacji mobilnych
Redux to biblioteka służąca do zarządzania stanem aplikacji w JavaScript, a szczególnie popularna w kontekście aplikacji opartych na bibliotece React. Umożliwia centralizację stanu, co sprawia, że zarządzanie nim staje się bardziej przewidywalne i łatwiejsze w utrzymaniu. W koncepcji Redux stan aplikacji jest przechowywany w jednym, niezmiennym obiekcie, co pozwala na ścisłe kontrolowanie jego zmian poprzez wysyłanie akcji. Użytkownicy mogą dzięki temu łatwo śledzić, co się dzieje w aplikacji. Przykładem zastosowania może być aplikacja do zarządzania zadaniami, w której użytkownik może dodawać, edytować lub usuwać zadania. Dzięki Redux, wszystkie zmiany w stanie są rejestrowane, a ich historia może być używana do debugowania czy implementacji funkcji cofania zmian. Dobrą praktyką w pracy z Redux jest stosowanie middleware, takiego jak redux-thunk, co pozwala na obsługę asynchronicznych akcji, a także wykorzystanie narzędzi jak Redux DevTools, które wspierają developerów w monitorowaniu stanu aplikacji.

Pytanie 17

Który z objawów może sugerować zawał serca?

A. Spadek nastroju
B. Intensywny ból w klatce piersiowej promieniujący do lewej ręki
C. Gorączka oraz dreszcze
D. Ból brzucha po spożyciu posiłku
Silny ból w klatce piersiowej promieniujący do lewej ręki to klasyczny objaw zawału serca (ostrego zespołu wieńcowego). Ból ten często pojawia się nagle, jest intensywny, gniotący lub piekący i może towarzyszyć mu duszność, zawroty głowy, zimne poty i nudności. Zawał serca wynika z zablokowania jednej z tętnic wieńcowych, co prowadzi do niedokrwienia mięśnia sercowego. Szybka reakcja i wezwanie pomocy medycznej mogą uratować życie i zminimalizować uszkodzenia serca. Każda minuta jest kluczowa – nie należy czekać na ustąpienie objawów, lecz natychmiast zadzwonić na numer alarmowy 112 lub udać się do najbliższego szpitala.

Pytanie 18

Który z wymienionych mechanizmów pozwala na monitorowanie stanu użytkownika w trakcie sesji w aplikacji internetowej?

A. HTTP Headers
B. HTML Forms
C. Sesje (Sessions)
D. CSS Selectors
Sesje (sessions) to mechanizm wykorzystywany w aplikacjach webowych do śledzenia stanu użytkownika podczas sesji przeglądania. Sesje umożliwiają przechowywanie danych użytkownika na serwerze przez określony czas i identyfikowanie go za pomocą unikalnego identyfikatora (session ID), który jest zwykle przechowywany w ciasteczkach. Mechanizm sesji pozwala na implementację logowania, koszyków zakupowych oraz innych funkcji, które wymagają zachowania stanu między żądaniami HTTP. Sesje są kluczowe dla aplikacji wymagających autoryzacji i autentykacji, ponieważ umożliwiają śledzenie działań użytkownika bez konieczności wielokrotnego logowania. Zastosowanie sesji w aplikacjach zwiększa bezpieczeństwo i poprawia komfort użytkowania, a także umożliwia personalizację treści w czasie rzeczywistym.

Pytanie 19

Jaką właściwość ma sieć synchroniczna?

A. Transmisja danych odbywa się w wyznaczonych interwałach czasowych
B. Gwarantuje większą elastyczność w przesyłaniu danych
C. Nie jest konieczna synchronizacja zegarów
D. Przekazywanie danych zachodzi w sposób niesystematyczny
Sieć synchroniczna charakteryzuje się tym, że transmisja danych odbywa się w ustalonych odstępach czasu, co oznacza, że wszystkie urządzenia w sieci są zsynchronizowane do jednego zegara. Taki sposób przesyłania danych pozwala na precyzyjne określenie momentu, w którym dane są wysyłane i odbierane, co redukuje opóźnienia i błędy w komunikacji. Przykładem sieci synchronicznej jest system TDM (Time Division Multiplexing), który dzieli czas na różne sloty, przydzielając każdy slot konkretnemu użytkownikowi lub urządzeniu. Dzięki temu każdy uczestnik sieci ma gwarancję, że w swoim czasie dostanie dostęp do medium transmisyjnego. Standardy takie jak SONET (Synchronous Optical Network) i SDH (Synchronous Digital Hierarchy) są przykładami technologii, które wykorzystują synchronizację do efektywnego przesyłania danych na dużych odległościach. Takie podejście jest powszechnie stosowane w telekomunikacji, gdzie wysoka wydajność i niezawodność transmisji są kluczowe dla jakości usług.

Pytanie 20

Jak w CSS definiuje się element, który ma reagować na najechanie kursorem?

A. :click
B. :over
C. :hover
D. :mouse
Odpowiedź :hover jest poprawna, ponieważ w CSS pseudo-klasa :hover jest używana do definiowania stylów elementu, gdy kursor myszy znajduje się nad tym elementem. Jest to niezwykle przydatne w tworzeniu interaktywnych stron internetowych, ponieważ umożliwia twórcom zwiększenie responsywności elementów, takich jak przyciski, linki czy obrazy. Przykładowo, można zastosować :hover do zmiany koloru tła przycisku, co wskazuje użytkownikom, że dany element jest aktywny i gotowy do interakcji. Zastosowanie tej pseudo-klasy nie tylko poprawia estetykę strony, ale również zwiększa jej użyteczność oraz dostępność, co jest zgodne z dobrymi praktykami w projektowaniu UI/UX. Należy pamiętać, że :hover działa tylko w przeglądarkach obsługujących CSS, a efekty związane z tą pseudo-klasą są natychmiastowe, co sprawia, że są one bardzo efektywne w zastosowaniu. Warto również zaznaczyć, że w przypadku urządzeń dotykowych, takich jak smartfony, reakcja na najechanie może być symulowana poprzez dotknięcie ekranu, co sprawia, że ta technika jest uniwersalna.

Pytanie 21

Jakie jest przeznaczenie komentarzy w kodzie źródłowym programu?

A. Do definiowania zmiennych globalnych
B. Do dokumentowania działania kodu i ułatwienia jego zrozumienia
C. Do uruchamiania kodu w trybie debugowania
D. Do optymalizacji wydajności kodu
Komentarze w kodzie źródłowym programu pełnią kluczową rolę w dokumentowaniu działania aplikacji. Dzięki nim programiści mogą opisywać, co robią poszczególne fragmenty kodu, jakie funkcje realizują oraz jakie są zależności między modułami. Komentarze nie wpływają na działanie programu, ale znacząco ułatwiają pracę nad nim w przyszłości, zwłaszcza gdy projekt jest rozwijany przez wielu programistów lub po dłuższej przerwie. Komentarze poprawiają czytelność kodu, minimalizując ryzyko błędów wynikających z niejasności lub złej interpretacji działania aplikacji. W dobrze napisanym kodzie komentarze są używane strategicznie – opisują kluczowe algorytmy, niestandardowe rozwiązania oraz obszary wymagające szczególnej uwagi. Przejrzysty i dobrze udokumentowany kod to fundament skalowalnych i łatwych w utrzymaniu aplikacji.

Pytanie 22

Jakie oprogramowanie służy do monitorowania błędów oraz zarządzania projektami?

A. Jasmine
B. Bugzilla
C. Jira
D. Git
Jira to zaawansowane oprogramowanie do zarządzania projektami oraz śledzenia błędów, stworzone przez firmę Atlassian. Jest powszechnie stosowane w zespołach zajmujących się rozwijaniem oprogramowania, ale również znajduje zastosowanie w różnych dziedzinach, takich jak zarządzanie projektami, wsparcie techniczne oraz śledzenie zadań. Jira oferuje bogaty zestaw funkcji, które umożliwiają planowanie sprintów, monitorowanie postępów prac, zarządzanie backlogiem oraz raportowanie wydajności zespołu. Użytkownicy mogą tworzyć niestandardowe workflow, co pozwala dostosować procesy pracy do specyficznych potrzeb organizacji. Dzięki integracji z innymi narzędziami Atlassian, takimi jak Confluence czy Bitbucket, Jira jest elementem ekosystemu, który wspiera współpracę w zespołach. Przykładem zastosowania Jira może być zarządzanie cyklem życia produktu, gdzie zespół deweloperski wykorzystuje to narzędzie do śledzenia błędów, zarządzania wymaganiami oraz planowania wydań. Korzystanie z Jira wspiera podejście Agile, co jest zgodne z nowoczesnymi standardami zarządzania projektami.

Pytanie 23

Co to jest algorytm QuickSort?

A. Wydajny algorytm sortowania oparty na strategii 'dziel i zwyciężaj'
B. Algorytm wyszukiwania binarnego w posortowanej tablicy
C. Metoda kompresji danych bez strat
D. Technika przeszukiwania grafu wszerz
Algorytm QuickSort to jeden z najbardziej popularnych i efektywnych algorytmów sortowania, który opiera się na strategii 'dziel i zwyciężaj'. W praktyce działa w ten sposób, że wybiera element zwany pivotem (osią) i dzieli zbiór na dwie części: jeden z elementami mniejszymi od pivota, a drugi z elementami większymi. Następnie rekurencyjnie sortuje te podzbiory. QuickSort jest niezwykle szybki i wydajny, zwłaszcza dla dużych zbiorów danych, a jego średnia złożoność czasowa wynosi O(n log n). Używa się go w wielu aplikacjach, gdzie istotne jest szybkie przetwarzanie danych, takich jak sortowanie list w aplikacjach webowych czy organizacja danych w bazach. Warto jednak pamiętać, że w najgorszym przypadku, gdy pivot jest źle wybierany, złożoność może wynosić O(n^2), co występuje na przykład w przypadku już posortowanej tablicy. W kontekście praktycznym, dobre praktyki obejmują dobór odpowiedniej metody wyboru pivota, co może znacznie poprawić wydajność algorytmu.

Pytanie 24

Przedstawione w filmie działania wykorzystują narzędzie

A. kompilatora dla interfejsu graficznego
B. generatora kodu java
C. debuggera analizującego wykonujący kod
D. generatora GUI przekształcającego kod do języka XAML
Wybrana odpowiedź jest trafna, bo faktycznie narzędzie pokazane w filmie to generator GUI, który potrafi przekształcać kod do języka XAML. XAML (czyli Extensible Application Markup Language) jest powszechnie używany do deklaratywnego opisywania interfejsów użytkownika, na przykład w aplikacjach WPF czy UWP na platformie .NET. Jak dla mnie, korzystanie z takich generatorów to ogromna wygoda, bo pozwala błyskawicznie przenosić projekt graficzny do formatu czytelnego dla platformy Microsoftu. Z mojego doświadczenia, wiele zespołów programistycznych stosuje takie rozwiązania, żeby oszczędzić czas na ręcznym pisaniu XAML-a (co potrafi być naprawdę żmudne przy dużych projektach). Co ciekawe, takie narzędzia bardzo dobrze współpracują z designerskimi edytorami UI i potrafią zautomatyzować konwersję nawet z innych formatów graficznych, np. Sketch czy Adobe XD do XAML-a. Branżowe standardy zalecają, by wykorzystywać generatorów GUI właśnie do tego celu, bo minimalizuje to liczbę błędów, przyspiesza wdrożenie zmian i ułatwia współpracę między programistami a projektantami. Warto pamiętać, że XAML jest bardzo elastyczny i umożliwia potem ręczną edycję wygenerowanego kodu – czasem powstają drobne poprawki, ale ogólnie to naprawdę przydatne narzędzie. Ogólnie – jeśli tylko projektujesz UI pod .NET, to automatyczna konwersja do XAML-a to jest coś, co warto znać i wykorzystywać w praktyce.

Pytanie 25

Które z wymienionych praw autorskich nie wygasa po pewnym czasie?

A. Autorskie prawa osobiste
B. Prawa pokrewne
C. Autorskie prawa majątkowe
D. Licencje wolnego oprogramowania
Autorskie prawa osobiste to rodzaj praw autorskich, które nie wygasają po upływie określonego czasu i są bezterminowe. Obejmują one prawo do autorstwa, oznaczania dzieła swoim nazwiskiem oraz sprzeciwiania się wszelkim zmianom, które mogłyby naruszać reputację twórcy. Prawa osobiste są niezbywalne, co oznacza, że nie można ich przenieść na inną osobę ani sprzedać. Nawet po śmierci twórcy, prawo do ochrony integralności jego dzieła jest respektowane. W praktyce oznacza to, że choć prawa majątkowe mogą wygasnąć (np. po 70 latach od śmierci autora), prawo do bycia uznanym za twórcę trwa wiecznie.

Pytanie 26

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

A. Umożliwienie funkcji dostępu do prywatnych atrybutów klasy
B. Dodawanie nowych instancji do klasy
C. Ograniczenie widoczności atrybutów klasy
D. Generowanie kopii pól obiektu w innej klasie
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 27

Jakie jest podstawowe założenie normalizacji krajowej?

A. Zwiększenie ilości regulacji prawnych
B. Utrudnienie handlu międzynarodowego
C. Ujednolicenie wymagań technicznych i poprawa bezpieczeństwa
D. Wzrost kosztów produkcji
Ujednolicenie wymagań technicznych i poprawa bezpieczeństwa to główne cele normalizacji krajowej. Normalizacja polega na opracowywaniu standardów, które są stosowane w różnych branżach w celu zapewnienia jakości, bezpieczeństwa i kompatybilności produktów oraz usług. Dzięki normalizacji producenci tworzą wyroby zgodne z określonymi normami, co zwiększa ich konkurencyjność na rynku krajowym i międzynarodowym. Wdrożenie jednolitych standardów wpływa także na bezpieczeństwo użytkowników, minimalizując ryzyko awarii lub niezgodności produktów.

Pytanie 28

Który z wymienionych przykładów przedstawia typ rekordowy?

A. struct w języku C++
B. float w języku C
C. bool w języku Java
D. int w języku Python
Typ 'struct' w języku C++ jest przykładem typu rekordowego, który pozwala na grupowanie zmiennych różnego typu pod jedną nazwą. Struktury pozwalają na przechowywanie powiązanych danych, np. informacji o pracowniku (imię, nazwisko, wiek) w jednym obiekcie. Struktury są kluczowe w programowaniu proceduralnym i obiektowym, umożliwiając efektywne zarządzanie danymi złożonymi. Typy rekordowe pozwalają na budowanie bardziej złożonych i zorganizowanych aplikacji, co zwiększa ich czytelność i ułatwia zarządzanie kodem.

Pytanie 29

Który z języków programowania jest najczęściej wykorzystywany do budowania aplikacji internetowych po stronie serwera?

A. CSS
B. JavaScript
C. HTML
D. PHP
PHP to jeden z najczęściej używanych języków programowania do tworzenia aplikacji webowych po stronie serwera. Jest to język skryptowy, który umożliwia dynamiczne generowanie treści stron internetowych, zarządzanie sesjami użytkowników, obsługę formularzy oraz integrację z bazami danych. PHP napędza popularne systemy zarządzania treścią (CMS), takie jak WordPress, Joomla czy Drupal. Dzięki swojej prostocie, szerokiemu wsparciu społeczności oraz dużej liczbie gotowych bibliotek i frameworków (np. Laravel), PHP pozostaje jednym z czołowych języków backendowych. PHP pozwala również na szybkie wdrażanie aplikacji i jest kompatybilny z wieloma serwerami WWW, co czyni go uniwersalnym wyborem w budowie aplikacji webowych.

Pytanie 30

Który rodzaj kolekcji pozwala na dostęp do elementów w porządku FIFO (First In First Out)?

A. Kolejka
B. Tablica
C. Sekwencja
D. Kolekcja LIFO
Lista to struktura, która pozwala na dowolny dostęp do elementów i nie działa zgodnie z zasadą FIFO. Stos działa na zasadzie LIFO (Last In First Out), co oznacza, że ostatni dodany element jest usuwany jako pierwszy. Wektor to dynamiczna tablica, która umożliwia szybki dostęp do elementów za pomocą indeksów, ale nie działa zgodnie z zasadą FIFO.

Pytanie 31

Który z poniższych elementów jest częścią architektury PWA (Progressive Web App)?

A. Service Worker
B. Media Encoder
C. Virtual Machine
D. DOM Renderer
Service Worker to kluczowy element architektury Progressive Web App (PWA), który umożliwia działania offline, zarządzanie pamięcią podręczną oraz lepsze doświadczenie użytkownika. Działa on jako pośrednik między aplikacją a serwerem, co pozwala na interceptowanie zapytań sieciowych i dostarczanie zasobów z pamięci podręcznej, gdy sieć jest niedostępna. Dzięki temu użytkownicy mogą korzystać z aplikacji nawet w trybie offline. Service Workers są również odpowiedzialne za powiadomienia push, co zwiększa interaktywność aplikacji. W praktyce oznacza to, że można zbudować aplikację, która działa płynnie na różnych platformach (desktop, mobilne), zachowując przy tym szybkość i responsywność. Warto zaznaczyć, że Service Workers muszą być zarejestrowane na stronie obsługiwanej przez HTTPS, co jest jednym z wymogów bezpieczeństwa. Stosowanie Service Workerów jest zgodne z najlepszymi praktykami branżowymi, a ich implementacja znacząco podnosi jakość i użyteczność aplikacji webowych.

Pytanie 32

Które z wymienionych sformułowań najlepiej definiuje oprogramowanie typu ransomware?

A. Oprogramowanie stosowane do realizacji ataków DDoS
B. Oprogramowanie uniemożliwiające dostęp do danych w celu wymuszenia zapłaty
C. Programy zbierające prywatne dane bez zgody użytkownika
D. Złośliwe aplikacje wyświetlające reklamy
Oprogramowanie typu ransomware to rodzaj złośliwego oprogramowania, które ma na celu zablokowanie dostępu do danych użytkownika, a następnie wymuszenie okupu w zamian za ich przywrócenie. Ransomware działa na zasadzie szyfrowania plików na zainfekowanym urządzeniu, co uniemożliwia użytkownikowi korzystanie z danych. Po dokonaniu szyfrowania, ofiara otrzymuje wiadomość z żądaniem okupu, zazwyczaj w kryptowalutach, które mają na celu anonimowość transakcji. Przykłady ransomware to oprogramowanie takie jak WannaCry oraz Petya, które spowodowały globalne ataki, skutkując znacznymi stratami finansowymi dla wielu organizacji. Zgodnie z definicjami i standardami, takimi jak NIST (National Institute of Standards and Technology), ransomware jest klasyfikowane jako jedno z najpoważniejszych zagrożeń dla bezpieczeństwa informacji. Warto również zauważyć, że ransomware rozwija się, a jego twórcy stosują różne techniki, aby zwiększyć skuteczność ataków, takie jak wykorzystywanie luk w oprogramowaniu oraz phishing, aby zainfekować systemy użytkowników.

Pytanie 33

Który element HTML5 służy do osadzania wideo na stronie?

A. &lt;movie&gt;
B. &lt;player&gt;
C. &lt;video&gt;
D. &lt;media&gt;
Element HTML5 &lt;video&gt; jest standardowym tagiem służącym do osadzania wideo na stronach internetowych. Umożliwia on integrację multimediów w sposób, który jest zgodny z aktualnymi standardami sieciowymi. W porównaniu do starszych metod, które wymagały użycia zewnętrznych wtyczek, takich jak Flash, &lt;video&gt; pozwala na bezproblemowe odtwarzanie wideo w przeglądarkach nowej generacji, co zwiększa bezpieczeństwo i wydajność. Element ten oferuje wiele atrybutów, takich jak controls, autoplay, loop, preload, oraz width i height, które pozwalają na dostosowanie odtwarzacza do potrzeb użytkownika. Na przykład, używając atrybutu controls, można dodać przyciski odtwarzania, zatrzymywania lub regulacji głośności, co poprawia interaktywność i użyteczność. Dodatkowo, aby zapewnić dostępność treści wideo, warto stosować atrybuty takie jak &lt;track&gt;, który umożliwia dodawanie napisów, co jest szczególnie ważne dla osób z niepełnosprawnościami słuchowymi. Używanie &lt;video&gt; w projektach webowych to najlepsza praktyka, która wspiera rozwój dostępnych i przyjaznych dla użytkownika doświadczeń wizualnych.

Pytanie 34

Oznaczenie ochrony przeciwpożarowej przedstawione na symbolu wskazuje na

Ilustracja do pytania
A. przełącznik zasilania
B. rozdzielnię elektryczną
C. punkt remote release
D. system alarmowy przeciwpożarowy
Ten symbol jednoznacznie wskazuje na ręczny ostrzegacz pożarowy, będący kluczowym elementem systemu alarmowego przeciwpożarowego. W praktyce taki przycisk znajdziesz w korytarzach szkół, biur czy dużych hal, zwykle przy wyjściach ewakuacyjnych. Po naciśnięciu wywołuje on alarm w całym obiekcie, pozwalając na szybką reakcję służb oraz ewakuację osób znajdujących się w strefie zagrożenia. Moim zdaniem zrozumienie działania i lokalizacji ręcznych ostrzegaczy jest absolutnie fundamentalne dla bezpieczeństwa pożarowego każdego budynku. Zgodnie z normą PN-EN 54-11 oraz wytycznymi Państwowej Straży Pożarnej, oznaczenie to musi być dobrze widoczne, z wyraźną, czerwoną barwą tła i prostym, czytelnym symbolem. Praktyka pokazuje, że w sytuacjach krytycznych ludzie dużo szybciej reagują na jednoznaczne oznaczenia graficzne niż na same napisy. Właśnie dlatego tak bardzo przykłada się wagę do poprawnej widoczności i rozmieszczenia tych znaków. Sam system alarmowy przeciwpożarowy, którego częścią są takie przyciski, jest podstawą nie tylko ochrony ludzi, ale też minimalizowania strat materialnych, bo pozwala na natychmiastowe powiadomienie odpowiednich służb. Warto zapamiętać, że ręczne ostrzegacze są regularnie testowane podczas przeglądów PPOŻ i ich prawidłowe oznakowanie to wymóg prawny oraz element dobrej praktyki branżowej.

Pytanie 35

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 36

Co oznacza operator '===' w JavaScript?

A. Konkatenacja stringów
B. Przypisanie wartości
C. Porównanie wartości
D. Porównanie wartości i typów
Operator '===' w JavaScript jest używany do porównania wartości oraz ich typów. To znaczy, że aby dwa elementy uznano za równe, muszą mieć zarówno tę samą wartość, jak i ten sam typ. Przykładowo, porównanie liczby 5 i stringa '5' zwróci false, ponieważ różnią się typem. Używanie '===' jest zalecane w dobrych praktykach programistycznych, ponieważ eliminuje niejednoznaczności związane z równością luźną (operator '=='), która może prowadzić do nieprzewidywalnych wyników. Na przykład, '5' == 5 zwróci true, co może być mylące. Dlatego w sytuacjach, gdzie zależy nam na ścisłym porównaniu, powinno się zawsze stosować '===' dla jasności kodu i uniknięcia błędów. W kontekście profesjonalnego programowania, korzystanie z '===' zapewnia lepszą kontrolę typów danych, co jest kluczowe w większych projektach, gdzie błędy typów mogą prowadzić do poważnych problemów z debugowaniem i utrzymywaniem kodu.

Pytanie 37

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

A. platformę Xamarin
B. bibliotekę React Native
C. środowisko XCode
D. środowisko Android Studio
Platforma Xamarin to naprawdę ciekawe narzędzie, które pozwala tworzyć aplikacje mobilne na różne platformy (np. Android, iOS) przy użyciu języka C#. Z mojego doświadczenia wynika, że Xamarin jest bardzo ceniony wśród programistów, którzy już znają .NET, bo w zasadzie pozwala używać tej samej logiki biznesowej w kodzie na wszystkie ważne systemy mobilne. To znacznie przyspiesza pracę, bo nie musisz oddzielnie pisać aplikacji na iOS i Androida, tylko duża część kodu jest współdzielona – zwłaszcza modele danych, logika, a nawet część interfejsu jeśli korzystasz z Xamarin.Forms. Przykładowo, budując prostą aplikację do zarządzania zadaniami, można stworzyć praktycznie cały kod w C#, a potem tylko lekko dostosować szczegóły UI pod każdą platformę. Co ważne, Xamarin udostępnia dostęp do natywnych API każdego systemu przez tzw. bindings, więc nie jesteś ograniczony do najprostszych scenariuszy. Microsoft mocno wspiera to rozwiązanie, a jego integracja z Visual Studio jest naprawdę wygodna. Moim zdaniem, jeśli ktoś zna C# i chce robić mobilki, to Xamarin jest jednym z rozsądniejszych wyborów. Oczywiście, obecnie coraz większą popularność zdobywa .NET MAUI, czyli następca Xamarin.Forms, który idzie jeszcze dalej i oferuje wsparcie również dla desktopów. Ale w praktyce, znajomość Xamarina to wciąż bardzo przydatna rzecz.

Pytanie 38

Wskaż język programowania, który pozwala na stworzenie aplikacji mobilnej w środowisku Android Studio?

A. Java
B. Objective-C
C. C++
D. Swift
Java to jeden z podstawowych języków programowania używanych do tworzenia aplikacji mobilnych na platformę Android. Jest to język, który został stworzony przez firmę Sun Microsystems, a jego pierwsza wersja została wydana w 1995 roku. Java charakteryzuje się silnym typowaniem, obiektowością oraz wsparciem dla programowania wielowątkowego, co czyni go idealnym do tworzenia wydajnych aplikacji mobilnych. Android Studio, oficjalne zintegrowane środowisko programistyczne (IDE) dla Androida, oferuje pełne wsparcie dla Javy, w tym możliwość korzystania z bibliotek Android SDK. Dzięki temu programiści mogą łatwo tworzyć interfejsy użytkownika, zarządzać zasobami oraz implementować logikę aplikacji. Przykładowo, pisząc aplikację do zarządzania zadaniami, programista może użyć Javy do stworzenia klas modelujących zadania oraz do obsługi interfejsu graficznego z wykorzystaniem XML i Java. Ponadto, Java jest zgodna z zasadami programowania obiektowego, co pozwala na łatwe zarządzanie kodem i jego ponowne wykorzystanie. Warto również zaznaczyć, że Java jest wspierana przez dużą społeczność, co zapewnia bogaty ekosystem bibliotek oraz narzędzi, ułatwiających rozwój aplikacji na Androida.

Pytanie 39

Co to jest PWA (Progressive Web App)?

A. System zarządzania treścią dla stron internetowych
B. Biblioteka graficzna do tworzenia animacji
C. Aplikacja webowa działająca jak natywna aplikacja mobilna
D. Framework do tworzenia aplikacji mobilnych
Jednym z powszechnych nieporozumień jest mylenie Progressive Web App z frameworkami do tworzenia aplikacji mobilnych, takimi jak React Native czy Flutter. Te frameworki pozwalają na tworzenie natywnych aplikacji, które działają na platformach mobilnych i wykorzystują ich natywne API, podczas gdy PWA jest technologią webową, która działa w przeglądarkach internetowych, niezależnie od systemu operacyjnego urządzenia. Ponadto, niektóre osoby mogą myśleć, że PWA to system zarządzania treścią (CMS), co jest błędem. CMS, jak WordPress czy Joomla, skupiają się na tworzeniu i zarządzaniu treścią stron internetowych, natomiast PWA są aplikacjami zaprojektowanymi dla użytkowników, które wykorzystują technologię webową do zapewnienia natywnego doświadczenia. Inne odpowiedzi sugerują, że PWA to biblioteka graficzna, co również jest mylną interpretacją. PWA nie jest narzędziem do tworzenia animacji, ale raczej kompletnym podejściem do budowy aplikacji internetowych, które mogą działać offline i oferować natywne funkcjonalności. Kluczowym błędem myślowym jest brak zrozumienia, że PWA nie polega na technologiach służących do tworzenia aplikacji mobilnych, lecz na wykorzystaniu możliwości nowoczesnych przeglądarek w celu dostarczenia użytkownikom aplikacji działającej płynnie i efektywnie, z poprawioną dostępnością i użytecznością.

Pytanie 40

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

A. GDPR (RODO)
B. Creative Commons
C. Open Source Initiative
D. DMCA
GDPR (RODO) to akt prawny dotyczący ochrony danych osobowych w Unii Europejskiej. Wprowadza on jednolite zasady przetwarzania danych, zwiększając ochronę prywatności obywateli. RODO daje użytkownikom prawo do dostępu do swoich danych, ich poprawiania, a także żądania ich usunięcia (prawo do bycia zapomnianym). Firmy muszą transparentnie informować o celach przetwarzania danych oraz zapewniać odpowiedni poziom zabezpieczeń. Niezastosowanie się do przepisów RODO skutkuje wysokimi karami finansowymi.