Programowanie urządzeń mobilnych_
Cele kształcenia: Poznanie najpopularniejszych mobilnych systemów operacyjnych. Nabycie umiejętności programowania urządzeń mobilnych (typu telefon komórkowy, tablet) na przykładzie urządzeń wyposażonych w powszechnie stosowane systemy operacyjne. Treści kształcenia: Przegląd i porównanie najpopularniejszych systemów operacyjnych . Kryteria programowania, bezpieczeństwa i dystrybucji aplikacji urządzeń mobilnych. System operacyjny Android. Język JAVA i środowisko DALVDC. Architektura typowej aplikacji. Obsługa plików, dostęp do systemu plików, lokalna baza danych.. Multimedia w systemie Android - dźwięk, sekwencje wideo. Współpraca z internetem. Modele aplikacji klient-serwer. Bezpieczeństwo aplikacji sieciowych. Współpraca z sensorami (akcelerometr, kompas, itp.). Kierunki rozwoju mobilnych systemów operacyjnych. Zaawansowane elementy interfejsu graficznego - widgety, grafika 3D._
Programowanie współbieżne i rozproszone_
Cele kształcenia: Poznanie; (1) podstaw programowania współbieżnego oraz
rozproszonego, (2) metod komunikacji międzyprocesowej i synchronizacji procesów, (3) problemów dzielenia zasobów, (3) specyfiki komunikacji i synchronizacji w przetwarzaniu rozproszonym.
Treści kształcenia: Paradygmaty programowania równoległego. Program, proces, wątek, programowanie wielowątkowe. Komunikacja asynchroniczna. Mechanizmy synchronizacji procesów w modelu scentralizowanym i rozproszonym. Wykorzystanie mechanizmu monitorów do realizacji problemu producent-konsument, problemu czytelnicy i pisarze oraz innych praktycznych problemów._
Projekt grupowy_
Cele kształcenia: Wprowadzenie w wiedzę, umiejętności i kompetencje z zakresu realizacji zespołowych projektów informatycznych, szczególnie kooperacji w grupie i zarządzania projektem. Rozwijanie i praktyczne wykorzystanie umiejętności budowania aplikacji informatycznych i ich dokumentowania.
Treści kształcenia: Łączenie nabytej wiedzy teoretycznej, praktycznej i umiejętności ze specjalistycznym obszarem informatyki. Stosowanie poznanych metod sporządzenia planu projektu i podziału zadania na pakiety robocze. Komunikowanie się z opiekunem i innymi członkami grupy projektowej. Dokumentowanie i prezentowanie wyników. Implementowanie zaprojektowanego oprogramowania._
Projektowanie systemów wbudowanych i mobilnych_
Cele kształcenia: Poznanie metod i środowisk projektowania, analizy i realizacji systemów wbudowanych i mobilnych na układach programowalnych i mikrokontrolerach.
Treści kształcenia: Podstawy metodyki projektowania systemów wbudowanych. Etapy projektowania systemów cyfrowych. Koncepcja czasu rzeczywistego. Prototypowanie systemów wbudowanych. Projektowanie multimedialnych systemów wbudowanych. Rozwiązania prototypowe w PLD. Projektowanie na poziomie systemowym (specyfikacja systemu, modele obliczeniowe). Analiza projektu (walidacja, testowanie). Strukturalny poziom przetwarzania danych (potokowe, blokowe, wektorowe). Projekt multimedialnego procesora uniwersalnego. Projekt procesora ASIP dla filtra cyfrowego. Perspektywy rozwoju modelowania i analizy systemów wbudowanych.