This commit is contained in:
MikolajPaterka 2022-02-06 22:47:41 +01:00
parent f274822620
commit 2db80c6cb9

View File

@ -4,7 +4,7 @@
### 1. Podstawowe pojęcia matematyczne: definicja, twierdzenie, warunek konieczny i dostateczny, funkcje (definicje, przykłady, podstawowe własności).
**definicja** - \
**twierdzenie* - \
**twierdzenie** - \
**warunek konieczny** - \
**warunek dostateczny** - \
**funkcje** - \
@ -106,4 +106,218 @@ Na ile sposobów można wybrać 2 osoby w klasie 30 osobowej? (30 po 2)
### 21. Prawdopodobieństwo warunkowe, niezależność zdarzeń. Wzór łańcuchowy. Wzór Bayesa.
### 22. Elementy teorii grup, pierścieni. Ciała skończone.
## Zagadnienia informatyczne:
### 1. Podstawowe informacje o prawie autorskim w informatyce (licencje: open source, closed source, shareware, SaaS, licencje: GPL, MIT, CreativeCommons).
open source - właściciel praw autorskich przyznaje użytkownikom prawa do badania, zmiany i rozpowszechniania oprogramowania (kodu) w ramach licencji wolnego oprogramowania. Zazwyczaj rozwijane przez szeroką społeczność programistów\
closed sourse - zamknięte, zastrzeżone oprogramowanie, które nie jest rozpowszechniane publicznie. Pierwotni autorzy mają prawo do kopiowania, modyfikowania, aktualizowania i edytowania kodu źródłowego. W modelu oprogramowania zamkniętego uprawnienia użytkownika końcowego w odniesieniu do aplikacji są ograniczone — użytkownikom nie wolno jest modyfikować, udostępniać, kopiować ani wtórnie publikować kodu źródłowego\
shareware - umożliwia wypróbowanie pełnej wersji programu komputerowego (lub jego wybranych funkcji) przez użytkownika przed zakupem. Jest on udostępniany za darmo lub za niedużą opłatą. Jest to rozwiązanie, które proponowane jest jedynie na wcześniej ustaloną liczbę uruchomień lub na pewien okres (czyli tzw. trial, który może trwać od 7 do 90 dni). Po jego upłynięciu użytkownik powinien się zarejestrować i ponieść ewentualne koszty. Jeśli tego nie zrobi, musi usunąć testowane oprogramowanie. Dalsze korzystanie z niego jest nielegalne i w przypadku wykrycia, karalne\
SaaS - model udostępniania oprogramowania w chmurze, w którym dostawca chmury rozwija i utrzymuje aplikacje chmurowe, zapewnia ich automatyczne aktualizacje i udostępnia oprogramowanie swoim klientom za pośrednictwem Internetu na zasadzie „pay-as-you-go”, czyli w zależności od wykorzystania zasobów\
GPL - Celem licencji GNU GPL jest przekazanie użytkownikom czterech podstawowych wolności:
- wolność uruchamiania programu w dowolnym celu (wolność 0)
- wolność analizowania, jak program działa i dostosowywania go do swoich potrzeb (wolność 1)
- wolność rozpowszechniania niezmodyfikowanej kopii programu (wolność 2)
- wolność udoskonalania programu i publicznego rozpowszechniania własnych ulepszeń, dzięki czemu może z nich skorzystać cała społeczność (wolność 3)\
MIT - opiera się na jednym wymaganiu: we wszystkich rozpowszechnianych wersjach należy zachować warunki licencyjne i informacje o autorze. Powstała MIT - amerykaniskiej uczelni\
Creative Commons - Korzystając z utworów na licencjach Creative Commons, licencjobiorca jest zobowiązany do uzyskania zgody na wszelkie czynności związane z korzystaniem z utworu, które prawo zastrzega wyłącznie na rzecz licencjodawcy lub licencja wyraźnie na to nie zezwala. Każda licencja Creative Commons działa na całym świecie i trwa tak długo, jak obowiązujące tam prawo autorskie. \
Podstawowe warunki:
- Wolno kopiować, rozprowadzać, przedstawiać i wykonywać objęty prawem autorskim utwór oraz opracowane na jego podstawie utwory zależne pod warunkiem, że zostanie przywołane nazwisko autora pierwowzoru.
- Użycie niekomercyjne. Wolno kopiować, rozprowadzać, przedstawiać i wykonywać objęty prawem autorskim utwór oraz opracowane na jego podstawie utwory zależne jedynie do celów niekomercyjnych.
- Na Tych Samych Warunkach Na tych samych warunkach. Wolno rozprowadzać utwory zależne jedynie na licencji identycznej do tej, na jakiej udostępniono utwór oryginalny.
- Bez utworów zależnych. Wolno kopiować, rozprowadzać, przedstawiać i wykonywać utwór jedynie w jego oryginalnej postaci tworzenie utworów zależnych nie jest dozwolone
### 2. Typy danych XML i JSON.
XML to:
- uniwersalny język znaczników przeznaczony do reprezentowania różnych danych w strukturalizowany sposób
- standard, opisany w rekomendacji W3C, oparty o standard SGML.
- to sposób zapisywania danych wraz z ich strukturą w dokumentach tekstowych
- metajęzyk, czyli klasa języków zwanych zastosowaniami XML. Są nimi np. XML Schema, WSDL, XSLT, XHTML, SVG
- jest oparty o model dokumentu jako drzewa, którego węzłami są elementy a liśćmi - pola tekstowe
Zasadniczo XML służy do przechowywania lub przesyłania danych tekstowych wraz z ich strukturą. Konkretne zastosowania XML mogą służyć bardziej specyficznym celom\
Czy mnie jest:
- językiem programowani
- sposobem prezentacji
- sposobem tworzenia stron WWW
JSON to otwarty format zapisu struktur danych. Jego przeznaczeniem jest najczęściej wymiana danych pomiędzy aplikacjami; dwukropek oddziela klucz od wartości\
``` JSON
{
"title" : "This Is What You Came For"
}
```
Wartościami w JSONie mogą być:
- ciąg znaków,
- liczba (można pominąć cudzysłów),
- obiekt JSON (zagnieżdżony),
- tablica,
- wartość prawda/fałsz (zapis małymi literami true albo false)
- null
### 3. Język maszynowy oraz języki wyższego rzędu. Kompilacja, interpretacja i konsolidacja programu.
### 4. Pojęcie funkcji; przekazywanie parametrów i zwracanie wyniku. Czas życia i zakres ważności nazwy.
### 5. Zarządzanie pamięcią. Wskaźniki, referencje i dereferencje. Dynamiczna alokacja pamięci, sterta.
### 6. Techniki algorytmiczne: dziel i zwyciężaj, programowanie dynamiczne, rekurencja, metoda z powrotami na przykładzie np. algorytmów sortowania, szybkie wyszukiwanie.
### 7. Podstawowe struktury danych: drzewa, kolejki, stosy, listy, kopce, drzewa.
tablica - jest prawdopodobnie najprostszą strukturą danych. Jest to reprezentacja ciągu elementów jakiegoś typu ułożonych w określonej kolejności. Każdy element ma określony indeks (kolejny numer)\
drzewo - składa się z wierzchołków (węzłów) i krawędzi, przy czym krawędzie łączą wierzchołki w taki sposób, iż istnieje zawsze dokładnie jedna droga pomiędzy dowolnymi dwoma wierzchołkami. Wierzchołki mogą posiadać rodzica, który jest umieszczony na wyższym poziomie oraz dzieci, które są umieszczone na niższym poziomie. Niektóre dzieci nie posiadają własnych dzieci i są liśćmi.\
Binarny zapis drzewa: [4]-[5]-[1]-[9]-[6]-[3]; pierwszy element to korzeń, ostatnie to liście
[4]\
|---|\
[5] [1]\
| |-------|\
| |\
|---| |\
[9] [6] [3]\
Poziom wierzchołka w drzewie jest równy długości drogi łączącej go z korzeniem. Korzeń drzewa jest na poziomie 0.\
Wysokość drzewa równa jest maksymalnemu poziomowi drzewa, czyli długości najdłuższej spośród ścieżek prowadzących od korzenia do poszczególnych liści drzewa\
kolejka -
FIFO - first in first out - dane dodawane na końcu pobierane z początku (nie ma mozliwości pobierania i dodawania z innego miejsca)\
kolejka piorytrtowa - elemnty dodwane są na na końcu (standardowo), z pobierane są względem piorytetu (najmniejszy lub największy), a nie względem długości czekania\
LIFO - last in last out - moze być kolejką lub stostem\
stos - stktura danych, w której dodajemy elemanty na samą górę i zdjemujemy z góry LIFO (last in last out)
listy - to struktura danych zawierająca tak zwane węzły (node). Węzeł przechowuje jakąś daną, oraz umożliwia dostanie się do kolejnego elementu listy. Taka lista nazywa się listą jednokierunkową. Istnieją również listy dwukierunkowe, w których węzły dodatkowo dają możliwość pobrania poprzedniego elementu, a nie tylko następnego. niemożliwe jest szybkie dostanie się do dowolnego elementu listy. Aby pobrać k-ty element, konieczne jest przejście z pierwszego do drugiego, z drugiego do trzeciego, z trzeciego do czwartego i tak dalej, aż do k-tego\
kopce - Drzewo binarne jest kopcem jeżeli jest:
- częściowo uporządkowane, czyli wartości przechowywane w następnikach każdego węzła są mniejsze od wartości w danym węźle (tzw. kopiec maksymalny) lub wartości przechowywane w następnikach każdego węzła są większe od wartości w danym węźle (tzw. kopiec minimalny)
- doskonałe, czyli zrównoważone i wszystkie liście najniższego poziomu znajdują się na jego skrajnych, lewych pozycjach
### 8. Złożoność czasowa, klasy P i NP, problem P=NP. Redukowalność w czasie wielomianowym, NP-zupełność.
### 9. Systemy plików (atrybuty pliku, katalogi, dowiązania twarde i symboliczne).
### 10. Współbieżność, synchronizacja procesów: semafory, semafory binarne, monitory, problemy współbieżności (sekcja krytyczna, producent/konsument, czytelnicy i pisarze, n-filozofów).
### 11. Wirtualizacja: pojęcie i typy wirtualizacji, pojęcie hypervisora.
### 12. Podstawowe struktury i elementy języka SQL, indeksy w bazach danych.
SQL - SQL to język zapytań (ang. Structured Query Language), który zapewnia komunikację między
użytkownikiem lub aplikacją, a relacyjną bazą danych. Za pomocą SQLa możemy nie tylko
pobierać dane, ale także je wstawiać i modyfikować oraz tworzyć i modyfikować bazy
danych. Język SQL składa się z zapytań (ang. query) \
Podstwawowe elementy w języku: select, from, where, agregaca (sum, avg, min, max przy jednoczesnym zastosowaniu group by), orger by (ASC, DESC), tabele tymczasowe (CTE)
indeksy - Indeksowanie jest podstawowym mechanizmem wykorzystywanym w celu optymalizacji baz danych MySQL. Gdyby porównać bazę danych do książki, indeksy są czymś w rodzaju spisu treści. Indeksy są zatem pomocniczymi strukturami danych, które znacząco wpływają na szybkość wykonywania się zapytań SQL. Z technicznego punktu widzenia (i mocno uogólniając) indeksy to zbiór wartości typu „klucz lokalizacja”. Podczas realizowania zapytania optymalizator (SQL Server) najpierw przeszukuje indeks, który jest uporządkowany, a następnie na podstawie indeksu odczytuje odpowiednie rekordy. Indeksy dzielimy na główne (dla kluczy głównych), zgrupowane (dla nieunikalnych wartości grupujące te same wartości), niezgrupowany (podobnie jak zgrupowany tylko pamieta wszystkie pozycje elementów, jest gęstszy). Gwarantuje to logarytmiczny (względem rozmiaru) czas wykonywania podstawowych operacji takich jak wstawianie, wyszukiwanie czy usuwanie elementów.\
W praktyce indeksy tworzymy dla:
- Kolumn z ograniczeniem PRIMARY KEY.
- Kolumn z ograniczeniem FOREIGN KEY oraz kolumn wykorzystywanych przy łączeniu tabel.
- Kolumn przechowujących dane wykorzystywane jako argument wyszukiwania.
- Kolumn przechowujących często sortowane dane.
### 13. Normalizacja schematu relacyjnej bazy danych.
Normalizacja to proces organizowania danych w bazie danych. Obejmuje to tworzenie tabel i ustanawianie relacji między tymi tabelami zgodnie z regułami opracowanymi w celu zarówno ochrony danych, jak i zapewnienia większej elastyczności bazy danych przez wyeliminowanie nadmiarowości i niespójnych zależności.
https://docs.microsoft.com/pl-pl/office/troubleshoot/access/database-normalization-description
### 14. Pojęcie transakcji; własności ACID; poziomy izolacji i anomalie.
Transakcja - to zestaw operacji do wykonania, które wykonują sie jedna po drugiej. Do zaistnienia transakcji konieczne jest pomyślne wykonanie wszystkich operacji. W przeciwnym wypadku wszystkie operacje są odrzucane. Nie ma mowy o częściowym wykonaniu. \
Załóżmy, że mamy transakcję składającą się z 10 zapytań. Jeżeli ostatnie zapytanie będzie skutkowało błędem, to zmiany dokonane przez poprzednie 9 zapytań zostaną cofnięte, a transakcja nie zostanie zakończona pomyślnie.
ACID - Jednym ze zbiorów zasad definiujących cechy jakie powinny spełniać trasakcje jest ACID.\
A - Atomowość (atomicity) oznacza, że każda operacja na bazie danych jest traktowana jako osobny, niepodzielny byt. Co więcej, albo wszystkie operacje zakończą się pomyślnie, albo żadna z nich nie zostanie zaaplikowana. Mówiąc w skrócie wszystko albo nic.\
Transakcja mimo tego, że jest zbiorem działań musi zostać wykonana jako jedna jednostka. Musi odbywać się w jednym momencie i nie może zostać podzielona na podzbiory.
C - Spójność (consistency) ta zasada stoi na straży spójności danych. Każda transakcja zmienia stan bazy z jednego poprawnego stanu na inny stan, również poprawny. Oznacza to także, że transakcja nie może łamać nałożonych na bazę reguł, ograniczeń i wyzwalaczy. \
System musi być spójny po zakończeniu transakcji.
I - Izolacja (isolation), równolegle uruchomione transakcje powinny być wyizolowane i nie powinny wpływać na siebie nawzajem. Oznacza to, że powinny się zachowywać tak, jakby były wykonywane sekwencyjnie.\
Każda transakcja musi być wykonywana niezależnie od innych transakcji, które mogą być wykonywane w tym samym czasie.
D - Trwałość (durability), zmiany poczynione w trakcie transakcji są permanentne. Oznacza to, że rezultaty transakcji są trwale zapisane w bazie danych niezależnie od dalszych awarii. \
Wykonana transakcja musi zostać utrwalona na stałe.
Poziomy izolacji - jak transakcje mogą wpływać na siebie, bardzo mocno, mocno, słabo albo wcale. I w zależności od tego jak wpływają to albo mamy więcej tych zjawisk (niepożądanych zjawisk dodajmy), albo mniej. (Def 2) definiuje dostęp do określonych zasobów przez wiele równoległych procesów\
- READ UNCOMMITTED możliwy brudny odczyt, odczyt nie dający się powtórzyć i odczyt widmo. Problemem tutaj jest to, że chcesz wykonać jedną transakcje na jakiś danych, ale te dane w między czasie zostały już uprzednio zmodyfikowane przez inną
- READ COMMITTED - jest to domyślna opcja, która powoduje, że we wspomnianym przykładzie zostaną odczytane dane sprzed rozpoczęcia pierwszej transakcji. Podstawową wadą tej opcji jest oczywiście odwrotna sytuacja niż poprzednio w momencie zatwierdzenia transakcji dane zostaną zmienione czyli nasz pierwotny odczyt będzie nieaktualny.
- REPEATABLE READ - w tym przypadku odczytywane są jedynie dane z zatwierdzonych transakcji, a żadna z transakcji nie może zmodyfikować danych, które zostały odczytane
- SERIALIZABLE - odczyt danych z tabeli za pośrednictwem instrukcji select powoduje zablokowanie danego zakresu. W efekcie żadna inna transakcja nie będzie miała możliwości zmiany danych w tym okresie.
Anomali transakcji -
- brudny odczyt - odczyt wewnątrz transakcji danych, które są zmieniane przez inną transakcję, która nie została zatwierdzona, moze zostać ona wycofana, więc pierwsza transakcja odczytała dane, które juŜ nie istnieją
- utracona modyfikacja - powstaje w sytuacji, gdy dwie transakcje równolegle przystępują do aktualizacji tych samych danych i zmiany, wprowadzone
przez jedną z transakcji, zostają nadpisane przez zmiany z drugiej transakcji
- niepowtarzalny odczyt - odczyt zbioru danych, który przy ponownym odczycie tych samych danych daje zupełnie inny rezultat.
- odczyt widmo - występuje, gdy jedna transakcja odczytuje lub aktualizuje tabele, a druga transakcja w tym czasie dodała nowy wiersz, który powinien zostać dodany później, problem podobny do zjawiska poprzedniego
- utracone aktualizacje do bazy danych zapisywane są dwie różne aktualizacje i druga zmiana powoduje, że pierwsza zostaje utracona
- fantomy - jest powstaje w sytuacji, gdy dwie transakcje równolegle przystępują do aktualizacji tych samych danych i zmiany, wprowadzone przez jedną z transakcji, zostają nadpisane przez zmiany z drugiej transakcji
https://wazniak.mimuw.edu.pl/images/2/25/BD-1st-2.4-lab9.tresc-1.1.pdf
### 15. Paradygmat programowania obiektowego (Abstrakcja, Hermetyzacja, Polimorfizm, Dziedziczenie, przeciążanie operatorów i metod, klasy abstrakcyjne, interfejsy).
abstrakacja - \
hermetyzacja - \
polimorfizm - \
dziedziczenie - \
przeciązenie opreatorów - \
przeciązenie metod - \
klasa abstrakcji - \
interfejsy - \
### 16. Czas życia obiektów, definiowanie klas, atrybuty, metody, inicjalizacja obiektów, zakres widoczności klas i składowych, organizacja kodu źródłowego, pakiety na przykładzie wybranego języka zorientowanego obiektowo.
### 17. Typy witryn internetowych: statyczne i dynamiczne, elementy witryny, zasada działania protokołu HTTP.
### 18. Cykl życia oprogramowania z uwzględnieniem różnych modeli. Wyróżnienie składowych procesu rozwoju oprogramowania. Przykładowe modele cyklu życia oprogramowania (model kaskadowy, spiralny (np. RUP), zwinny (np. SCRUM).
model kaskadowy - jest to przykład sekwencyjnego podejścia do wytwarzania oprogramowania. Jest szytwnie określony, nie powinno go się zmianiać i dostosowywać do własnego projketu. Podstawą jest 5 iteracji o nazwach: wymagania, analiza, projektowanie, programowanie, testowanie. Istotnym elementem jest zaplanowanie całego procesu z wyprzedzeniem. Do kolejnej fazy przychodzi się po zakończeniu poprzedniej. \
model sprialny - Twórcą jest Barry Boehm. Model ten składa się z czterech głównych faz wykonywanych cyklicznie:
- analizy,
- konstrukcji,
- testowania,
- planowania.
RUP - proces wziął inspirację z modelu spiralnego Barrego Boehma. Powstał przez scalenie metody Rational i Objectory. Proces RUP został zaprojektowany w taki sposób by móc go dostosować do potrzeb własnego projektu. Opiera się na fazach. Jest ich cztery: incepcji, elaboracji, konstrukcji, przekazania. Po kazdej fazie osiąga się kamień milowy i przechodzi do kolejnej. Fazy mozna podzielić na iteracje. \
zwinny - (ang. agile) zazwyczaj błędnie jest określany jako metodyka prowadzenia projketów. jest jednak czyś więcej - filozofią postępowania, sposobem myślnia. Powstał w kontrze do kaskadowych metod. Kocnetruje się na efektywnym wykorzystaniu potencjału ludzkiego. Załozenia zwinnego myślenia zostały spisane w *Agile Manifesto* \
Scrum - to zwinne podejście do wywarzania oprogramowania. Są o ramy postępowania, które mozna dostosować do własnego zespołu czy projketu. Podjeście dobrze sprawdzi się w projekcie, gdzie jest duzo zmiana. Cała praca jest podzielona na sprinty, które są waznym elementem tej metody. Wyróznia się trzy role: Scrum Master, Prouct Owner, Członek zaspołu developerskiego. Wykorzystuje się backlog do zapisania zadań.\
### 19. UML w projektowaniu systemu informatycznego (diagramy klas, sekwencji, maszyny stanowej).
diagram klas - obrazuje pewien zbiór klas, interfejsów i kooperacji oraz związki między nimi. Jest on grafem złożonym z wierzchołków (klas, interfejsów, kooperacji) i łuków (reprezentowanych przez relacje). Diagram klas stanowi opis statyki systemu, który uwypukla związki między klasami, pomijając pozostałe charakterystyki. Najsilniej prezentuje on więc strukturę systemu, stanowiąc podstawę dla jego konstrukcji.\
sekwencji - służy do prezentowania interakcji pomiędzy obiektami wraz z uwzględnieniem w czasie komunikatów, jakie są przesyłane pomiędzy nimi. Zasadniczym zastosowaniem diagramów sekwencji jest modelowanie zachowania systemu w kontekście scenariuszy przypadków użycia. Diagramy sekwencji pozwalają uzyskać odpowiedź na pytanie, jak w czasie przebiega komunikacja pomiędzy obiektami.\
maszyny stanowej - Diagram maszyny stanowej przedstawia maszynę stanową, która zawiera proste stany i przejścia pomiędzy nimi.\
stan - modeluje niezmienną sytuację, w której znajduje się obiekt podczas całego swojego życia. Niezmienna sytuacja obiektu oznacza spełnienie jakiegoś warunku, wykonanie czynności lub oczekiwanie na jakieś zdarzenie
przejście - związek pomiędzy dwoma stanami, wskazujący, że obiekt znajdujący się w pierwszym stanie wykona pewną akcję i przejdzie do drugiego stanu ilekroć znajdzie określone zdarzenie i będą spełnione określone warunki. Przejście jest niepodzielne, tzn. nie można go przerwać, i trwa minimalny okres czasu. Mogą posiadać parametry. Pierwszym dodatkowym parametrem jest zdarzenie uruchamiające.
### 20. Wzorce architektoniczne (monolit, klient-serwer, aplikacje wielowarstwowe, repozytorium, przetwarzanie wsadowe), wzorce projektowe (MVC, ORM).
monolit - \
klient-serwer - \
aplikacje wielo warstwowe - \
repozytorium - \
przetwarzanie warstwowe - \
wzorce proejktowe - .Przykłady: \
- MVC -
- ORM -
### 21. Rodzaje testów oprogramowania. Testy prowadzone przez programistę (testy jednostkowe, testy modułowe, testy integracyjne). Ciągła integracja. Scenariusze testowe i testy akceptacyjne. Testy użyteczności.
jedostkowe - Jedna z wieu definicji: to kod wykonujący inny kod w kontrolowanych warunkach w ramach jednego precesu w pamięci, w celu weryfikacji (bez ingerencji programisty), ze testowana logika działa w ściśle określony sposób. \
odpowiednio i świadomie wykorzystane bardzo pomagają w procesie tworzenia i rozwijania oprogramowania. Ale, co mniej oczywiste mogą też zaszkodzić! \
testujemy pojedynczą część kodu zazwyczaj klasę lub metodę
https://devstyle.pl/2020/06/25/mega-pigula-wiedzy-o-testach-jednostkowych/
modułowe - oznacza to nic innego jak testowanie każdej metody, funkcji, klasy, modułu czy elementu w pojedynczy sposób. Kazdy elemant jest traktowany osobno (?)\
integracyjne - testujemy kilka komponentów systemu jednocześnie. Testy integracyjne wykorzystają moduły przetestowane jednostkowo, grupując je w większe agregaty. Kolejnym etapem jest zastosowanie testów zdefiniowanych dla tych agregatów w planie testów integracji. Efektem testów jest zintegrowany system gotowy na testy systemowe \
ciągła integracja - \
scenariusze testowe - \
testy akceptacyjne - Cele testowania akceptacyjnego to najczęściej:
- budowanie zaufania do systemu;
- sprawdzanie kompletności systemu i jego prawidłowego działania;
- sprawdzanie zgodności zachowania
funkcjonalnego i niefunkcjonalnego systemu ze specyfikacją.\
testy mające na celu odpowiedzieć na pytanie czy aplikacja spełnia wymagania biznesowe \
testy uzytecznośći - pozwalają dowiedzieć się w jaki sposób serwis, aplikacja są używane, jakie budzą emocje, jakie wywołują reakcje, jakie nastawienia powodują. Jakie przeszkody klienci napotykają, wchodząc na daną stronę/ aplikację. Pozwalają sprawdzić czy uzytkwonicy poprawnie rozumieją funkcje i zakres uzytecznosci strony/ aplikacji \
### 22. Styl architektoniczny REST.
### 23. Protokoły TCP/UDP oraz IP, przestrzeń adresowa IPv4 i IPv6.
### 24. Model warstwowy sieci, enkapsulacja.
### 25. Podstawowe protokoły i usługi sieciowe ARP, DHCP, DNS, FTP, SMTP, IMAP. POP3, SSH, SNMP
a. fizyczne sieci komputerowe: ethernet, wifi; zasada działania podwarstwy MAC;
b. struktura Internetu, systemy autonomiczne, rodzaje routingu;
c. metody/ próby zapewnienia jakości w Internecie (głównie na użytek multimediów);
d. zabezpieczanie sieci komputerowych (SSL/TLS, IPsec, wifi/WEP/WPA).
### 26. Reprezentacja zmiennopozycyjna liczb. Błędy w obliczeniach, uwarunkowanie zadania, numeryczna stabilność algorytmów.
### 27. Algorytm Hornera.
Schemat Hornera jest algorytmem służącym do bardzo szybkiego obliczania wartości wielomianu. Redukuje on liczbę mnożeń do minimum.\
Pozwala na:
- dzielenie wielomianów przez dwumian x-a
- sprawdzenie czy dana liczba jest pierwiastkiem wielomianu
- obliczanie wartości wielomianu dla pewnego argumentu
https://www.matmana6.pl/schemat-hornera
### 28. Czym jest sztuczna inteligencja. Sposoby definiowania sztucznej inteligencji. Test Turinga.
### 29. Przeszukiwanie przestrzeni stanów. Wybrane algorytmy. Heurystyki.
### 30. Uczenie maszynowe. Regresja liniowa i logistyczna. Wykorzystanie sztucznych sieci neuronowych w sztucznej inteligencji.
### 31. Automat skończenie stanowy (wersja deterministyczna i niedeterministyczna), język akceptowany przez automat skończenie stanowy.
### 32. Wyrażenia regularne i języki oznaczane przez te wyrażenia.
### 33. Maszyna Turinga - model podstawowy i modele równoważne.
### 34. Podstawowe pojęcia: potok graficzny, transformacje liniowe, interpretacja w przestrzeni Euklidesa.
### 35. Algorytmy grafiki komputerowej: z-bufor, culling, clipping.
### 36. Model oświetlenia i cieniowania Phonga.
### 37. Model jednej próby prostej. Rozkłady teoretyczne. Parametry modelu. Estymatory nieobciążone. Metoda największej wiarogodności.
### 38. Przedziały ufności. Konstrukcja dokładnych przedziałów ufności. Przybliżone przedziały ufności - metoda bootstrapowa.
### 39. Testy statystyczne. Konstrukcja testów statystycznych. Hipotezy, poziom istotności testu, p- wartość.
### 40. Symetryczne i asymetryczne protokoły szyfrowania. Algorytmy szyfrowania z kluczem tajnym oraz z kluczem publicznym.
### 41. Algorytmy czasu wielomianowego i wykładniczego ze względu na liczbę bitów danych. Notacja wielkie O.
### 42. Funkcje jednokierunkowe. Bezpieczeństwo systemów kryptograficznych.