Egzamin dyplomowy 2009/2010 – zagadnienia
Architektura komputerów
1.
Struktura i organizacja typowego systemu komputerowego.
2.
Budowa i działanie typowego procesora ogólnego przeznaczenia.
3.
Wykonywanie rozkazów przez procesor(y), przerwania, wyjątki.
4.
Dane i ich przetwarzanie w systemie komputerowym.
5.
Koncepcja „konwencjonalnej maszyny”, język maszynowy, asembler.
6.
Połączenia wewnątrz- i zewnątrzsystemowe, urządzenia wejścia/wyjścia.
7.
Realizacja przetwarzania równoległego w systemach komputerowych.
8.
Optymalizacja wydajności procesora(ów) i systemu komputerowego.
Systemy operacyjne
1.
Koncepcja systemu operacyjnego, typowa funkcjonalność, realizacje.
2.
Zarządzanie zasobami, abstrakcje systemowe.
3.
Procesy i wątki, wielozadaniowość/wielowątkowość, wielodostęp.
4.
Mechanizmy komunikacji wewnątrzsystemowej.
5.
Zarządzanie zbiorami danych, pliki, systemy plików.
6.
Interfejsy systemowe dla wykonywanego kodu, dla programisty, dla uŜytkownika.
7.
Wirtualizacja sprzętu i zasobów systemowych.
8.
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.
Modele barw.
2.
Metody kompresji obrazów.
3.
Formaty plików graficznych.
4.
Rzutowanie.
5.
Rendering.