Dalej: Semestr IV
W górę: Krótki opis przedmiotów
Wstecz: Semestr II
Systemy operacyjne II (2w, -ć, 2l)
Zarządzanie procesami: model procesu, wątki, blok kontrolny
procesu i przełącznie kontekstu, algorytmy szeregowania procesów,
zarządzanie procesami w systemie UNIX, synchronizacja procesów,
metody implementacji techniki wzajemnego wykluczania, problem
zakleszczenia i metody jego rozwiązywania; rozproszone systemy
operacyjne, podstawy zarządzanie procesami i pamięcią w rozproszonych
systemach operacyjnych, rozproszone systemy plików, systemy czasu
rzeczywistego; elementy administracji w systemie UNIX: zarządznie
procesami w systemie UNIX - programista systemowy.
Architektura systemów liczących (3w, -ć, 2l)
Wprowadzenie; architektura i implementacja; technologiczne i
organizacyjne generacje komputerów; poziomy opisu sprzętu;
arytmetyka komputerów; budowa maszyny von Neumana; lista rozkazów,
kodowanie rozkazów; hierarchiczna budowa pamięci;
układ sterowania komputera; mikroprogramowanie; przerwania,
obsługa wejścia-wyjścia; zarządzanie pamięcią: segmentacja i
stronicowanie, ochrona pamięci; wybrane architektury i implementacje
systemów CISC; wybrane architektury i implementacje systemów RISC;
systemy wieloprocesorowe; systemy wielokomputerowe; superkomputery;
nowe koncepcje architektur systemów cyfrowych.
Inżynieria oprogramowania I (2w, -ć, 2l)
Czynniki stymulujące rozwój inżynierii oprogramowania; cykl
rozwojowy i modele produkcji oprogramowania; składowe dokumentacji
produktu programistycznego; specyfikowanie oprogramowania:
specyfikacje nieformalne, przegląd półformalnych i formalnych metod
specyfikowania; metodyki strukturalne i obiektowe w fazach planowania,
analizy i projektowania: standardy modeli danych i procesów oraz
interfejsu z użytkownikiem, notacje na diagramach, rola słownika danych
i repozytorium; charakterystyka środowisk CASE; odzyskiwalność oprogramowania.
Badania operacyjne (2w, 2ć, -l)
Przedmiot badań operacyjnych; podstawy programowania
liniowego; programowanie dyskretne; programowanie nieliniowe;
programowanie dynamiczne; elementy teorii decyzji i teorii gier;
analiza sieci; sieciowe modele decyzyjne; probabilistyczne problemy
szeregowania; deterministyczne problemy szeregowania.
Wprowadzenie do optymalizacji kombinatorycznej (3w, -ć,
1l)
Wyznaczanie najkrótszych dróg w grafie, przepływy w sieciach
i zagadnienia pokrewne, algorytmy zachłanne i matroidy, wybrane
problemy szeregowania zadań, generalizacja grafów losowych, problemy
podziału grafu, wyznaczanie niezmienników, testowanie izomorfizmu
garfów, wybrane zastosowania metod grafowych, złożoność obliczeniowa
problemów optymalizacyjnych, algorytmy aproksymacyjne, hierarchia
złożoności obliczeniowej. W ramach zajęć laboratoryjnych studenci
poznają systemy programowania logicznego z węzłami CHIP i ILOG.
Programowanie obiektowe (1w, -ć, 2l)
Podstawowe pojęcia programowania obiektowego: klasa,
obiekt, dziedziczenie; obiektowe języki programowania: SmallTalk,
Objective Pascal, C++; programowanie obiektowe w języku C++ dla
środowiska MS-DOS i MS-Windows: powtórzenie elementów języka C,
definiowanie klas, tworzenie obiektów, przeciążanie operatorów,
dziedziczenie jedno i wielokrotne, funkcje wirtualne, biblioteki
funkcji, biblioteki klas; zastosowanie programowania obiektowego:
analiza obiektowa, programowanie współbieżne, obiektowe bazy danych.
Programowanie deklaratywne (1w, -ć, 2l)
Programowanie funkcyjne: rachunek lamdba i funkcje rekurencyjne
(jako teoretyczne podstawy tego stylu programowania), podstawowe
elementy programowania funkcyjnego i ich interpreter, listy własności,
formy specjalne, efekty uboczne, inferencja typów; programowanie w logice:
termy, formuły, reguły, fakty, podstawienia i ich składanie, unifikacja
termów, reguły selekcji literałów i klauzul, drzewo dowodu, nawroty,
odcięcia, negacja; systemy regułowe; zastosowania i nowe tendencje.
Dalej: Semestr IV
W górę: Krótki opis przedmiotów
Wstecz: Semestr II