Egzamin dyplomowy 2015-2016

Transkrypt

Egzamin dyplomowy 2015-2016
Egzamin dyplomowy 2015/2016 – zagadnienia
Architektura komputerów
1.
2.
3.
4.
5.
6.
7.
8.
Struktura i organizacja typowego systemu komputerowego.
Budowa i działanie typowego procesora ogólnego przeznaczenia.
Wykonywanie rozkazów przez procesor(y), przerwania, wyjątki.
Dane i ich przetwarzanie w systemie komputerowym.
Koncepcja „konwencjonalnej maszyny”, język maszynowy, asembler.
Połączenia wewnątrz- i zewnątrzsystemowe, urządzenia wejścia/wyjścia.
Realizacja przetwarzania równoległego w systemach komputerowych.
Optymalizacja wydajności procesora(ów) i systemu komputerowego.
Systemy operacyjne
1.
2.
3.
4.
5.
6.
7.
8.
Koncepcja systemu operacyjnego, typowa funkcjonalność, realizacje.
Zarządzanie zasobami, abstrakcje systemowe.
Procesy i wątki, wielozadaniowość/wielowątkowość, wielodostęp.
Mechanizmy komunikacji wewnątrzsystemowej.
Zarządzanie zbiorami danych, pliki, systemy plików.
Interfejsy systemowe dla wykonywanego kodu, dla programisty, dla użytkownika.
Wirtualizacja sprzętu i zasobów systemowych.
Współczesne koncepcje budowy systemów operacyjnych.
Sieci komputerowe
1. Modele referencyjne systemu sieciowego, usługi, protokoły, interfejsy,
standaryzacja.
2. Koncepcja kanału komunikacyjnego, media komunikacyjne, współdzielenie medium.
3. Sieci komputerowe z komutacją pakietów, enkapsulacja danych, przełączanie,
przełączniki.
4. Sieci komputerowe z komutacją obwodów, obwody wirtualne, tunelowanie.
5. Trasowanie, sterowanie ruchem, obciążeniem, przepływnością, jakością usług.
6. Typowe protokoły sieciowe i transportowe.
7. Typowe usługi sieciowe, związane z nimi protokoły i aplikacje.
8. Zagrożenia bezpieczeństwa w środowiskach sieciowych, ochrona i przeciwdziałanie.
Algorytmy i struktury danych
1. Klasyczne algorytmy:
a. badanie, czy liczba jest liczbą pierwszą,
b. algorytmy Euklidesa (przez odejmowanie i przez dzielenie),
c. liniowe przeszukiwanie ciągu w poszukiwaniu żądanego elementu z
wykorzystaniem wartownika,
d. wyszukiwanie elementu w zbiorze uporządkowanym (wyszukiwanie binarne),
e. znajdowanie najmniejszego lub największego elementu w zbiorze,
f. znajdowanie jednocześnie najmniejszego i największego elementu w zbiorze
(algorytm optymalny),
g. obliczanie wartości wielomianu – schemat Hornera,
h. szybkie podnoszenie do potęgi.
2. Złożoność obliczeniowa algorytmu (czasowa i pamięciowa).
3. Notacja asymptotyczna i jej znaczenie w teorii algorytmów, rzędy wielkości funkcji.
4. Algorytmy sortowania. Dokładny opis, wraz z pseudokodem, sortowania przez
wstawianie oraz przez wybieranie. Zasada działania sortowania przez scalanie oraz
szybkiego. Właściwości wszystkich powyższych algorytmów oraz ich złożoności
czasowe.
5. Algorytmy rekurencyjne; zapisywanie (o ile ma to sens) klasycznych algorytmów w
postaci rekurencyjnej. Metoda dziel i zwyciężaj.
6. Abstrakcyjne struktury danych: stosy, kolejki FIFO, kolejki priorytetowe, słowniki
oraz ich zastosowania.
7. Algorytm Huffmana.
Programowanie
1. Rodzaje instrukcji języka programowania.
2. Tworzenie własnych typów.
3. Nagłówek funkcji, zasady wywoływania funkcji. Przeciążanie funkcji. Funkcje
operatorowe.
4. Obiekty, ich identyfikatory, typy, tożsamość, stan.
5. Tworzenie i niszczenie obiektów. Definiowanie działań na obiektach. Kolekcje
obiektów. Agregacje (łączenie) obiektów.
6. Klasa jako projekt obiektu. Struktury klas.
7. Polimorfizm.
8. Szablony (templates).
9. Programowanie zdarzeniowe.
10. Interfejsy.
11. Wyjątki i ich obsługa.
12. Zasady testowania programów.
13. Algorytm iteracyjny i rekurencyjny.
Podstawy inżynierii oprogramowania
1. Kaskadowy model cyklu życia oprogramowania.
2. Przyrostowy model tworzenia oprogramowania.
3. Podstawowe cechy lekkich metodologii tworzenia oprogramowania.
4. Fazy realizacji projektu wg Rational Unfied Process.
5. Karty CRC i ich zastosowanie.
6. Analiza wymagań i jej zapis w dokumentach.
7. Przypadek użycia.
8. Zasady i praktyki XP (programowanie ekstremalne).
9. Metodyka testowania – rodzaje testów.
10. TDD (Test Driven Development).
11. UML. Diagramy UML.
12. Pojęcia : kontrola wersji , ciągła integracja, repozytorium.
13. Szacowanie oprogramowania.
14. Punkty funkcyjne.
15. Iteracyjne podejście do tworzenia oprogramowania.
16. Refaktoryzacja kodu.
Podstawy sztucznej inteligencji
1. Zadanie wnioskowania, reprezentacja wiedzy, rodzaje i cele wnioskowania.
2. Reprezentacja bazy wiedzy w języku Prolog, przykłady reguł prologowych.
3. Przeszukiwanie przestrzeni stanów, grafowa reprezentacja problemu
przeszukiwania, przeszukiwanie w głąb i wszerz.
4. Przeszukiwanie w grach dwuosobowych, drzewo gry, algorytm min-max.
5. Zadanie uczenia pod nadzorem i uczenia nienadzorowanego. Przykłady algorytmów.
6. Zadanie uczenia klasyfikacji, ocena klasyfikatora.
7. Podstawowe architektury sieci neuronowych, reguła uczenia perceptronu,
perceptron wielowarstwowy. Reguła propagacji wstecznej błędu.
Bazy danych
1. Relacyjny model danych i algebra relacji: atrybuty, dziedziny atrybutów, krotki i
relacje; operacje na relacjach.
2. Język SQL – zapytania, selekcja, sortowanie, grupowanie, funkcje agregujące,
podzapytania.
3. Zapytania DML – usuwanie, aktualizacja i dołączanie danych.
4. Zapytania DDL – tworzenie tabel, modyfikacje struktury tabel, usuwanie tabel.
5. Zależności funkcyjne. Aksjomaty Armstronga. Integralność danych (klucze,
klucze obce). Opcje propagacji.
6. Postacie normalne: 1NF, 2NF, 3NF, BCNF. Normalizacja.
7. Indeksy. Widoki. Procedury składowane. Wyzwalacze.
8. Modelowanie danych: diagramy związków encji (E/R).
9. Transakcje. Własności ACID. Poziomy izolacji.
10. Administrowanie użytkownikami bazy danych.
Elementy grafiki komputerowej
1.
2.
3.
4.
5.
Modele barw.
Metody kompresji obrazów.
Formaty plików graficznych.
Rzutowanie.
Rendering.