0-68 Lublin tel. (+48 8) 538 47 / fax (+48 8) 538 45 80 Przedmiot: Programowanie aplikacji Rok: 4 Semestr: 7 Rodzaj zajęć i liczba godzin: Studia stacjonarne Studia niestacjonarne Wykład 30 4 Ćwiczenia 0 0 Laboratorium 0 0 Projekt 0 0 Liczba punktów ECTS: Cel przedmiotu Przedstawienie studentom najpopularniejszych platform ich systemów operacyjnych i języków C programowania na te platformy oraz trendów ich rozwoju C Zapoznanie studentów z zabezpieczeniami systemów operacyjnych urządzeń C3 Przedstawienie studentom metod programowania i zabezpieczania działania aplikacji C4 Zapoznanie studentów z metodami ataków i zabezpieczeń transmisji sieciowej urządzeń C5 Zapoznanie studentów z metodami bezpiecznego składowania danych Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji Wiedza z zakresu programowania obiektowego Podstawowa wiedza na temat programowania w języku Java 3 Podstawy wiedzy o bazach danych i języku SQL 4 Znajomość podstaw działania sieci komputerowych 5 Umiejętność posługiwania się narzędziami IDE Efekty kształcenia W zakresie wiedzy: EK Znajomość sytuacji i trendów na rynku urządzeń ich systemów operacyjnych i wspieranych języków programowania EK Podstawowa wiedza z zakresu mechanizmów systemów operacyjnych Podstawowa wiedza dotycząca zabezpieczania aplikacji i danych przechowywanych na EK3 urządzeniu mobilnym EK4 Podstawowa znajomość metod zabezpieczania komunikacji sieciowej aplikacji W zakresie umiejętności: EK Umiejętność stworzenia projektu i prostej aplikacji w narzędziach IDE dla systemów Android i ios 5 uwzględniającej mechanizmy systemu W zakresie kompetencji społecznych EK 6 Świadomość potrzeby samokształcenia i rozwijania wiedzy w zakresie systemów i mechanizmów ich W Treści programowe przedmiotu Forma zajęć wykłady Treści programowe Wstęp. Przegląd rynku platform, rodzajów urządzeń, systemów operacyjnych i języków programowania Liczba godzin Studia stacjonarne Liczba godzin Studia niestacjonarne W Charakterystyka i bezpieczeństwo systemu Android
0-68 Lublin tel. (+48 8) 538 47 / fax (+48 8) 538 45 80 W3 Podstawy programowania dla systemu Google Android Android SDK, Android NDK, Eclipse ADT, Java, XML W4 Charakterystyka i bezpieczeństwo systemu ios W5 Podstawy programowania dla systemu Apple ios iphone SDK, Xcode IDE, ios Developer Program, Objective-C W6 Zabezpieczenia przed niepowołanym dostępem do 0,5 urządzenia W7 Przechowywanie i zabezpieczenia danych użytkownika 0,5 W8 Bezpieczeństwo aplikacji, stosowanie systemu uprawnień aplikacji i podpisu elektronicznego W9 System plików, dostawcy treści i tworzenie oprogramowania do bezpiecznego składowania danych W0 Programowanie zabezpieczeń kryptograficznych danych na urządzeniu mobilnym W Ataki na komunikację systemów W Programowanie bezpiecznej komunikacji sieciowej W3 Malware zagrożenia ze strony niepożądanego oprogramowania, sposoby zabezpieczeń W4 Mechanizmy i zasady dystrybucji oprogramowania: Google Play, App Store W5 Kolokwium Suma godzin: 30 4 Narzędzia dydaktyczne Prezentacje multimedialne w postaci slajdów zawierających treści wykładowe Przykładowe aplikacje uruchamiane w zintegrowanych środowiskach programistycznych i na emulatorach urządzeń F P Sposoby oceny Ocena formująca Krótki sprawdzian pisemny z omówieniem wyników Ocena podsumowująca Kolokwium pisemne w formie testu z pytaniami zamkniętymi i otwartymi ( godz. studia stacjonarne, godz. niestacjonarne) Forma aktywności Godziny kontaktowe z wykładowcą, realizowane w formie zajęć dydaktycznych łączna liczba godzin w semestrze Godziny kontaktowe z wykładowcą, realizowane w formie np. konsultacji w odniesieniu łączna liczba godzin w semestrze Obciążenie pracą studenta Średnia liczba godzin na zrealizowanie aktywności na studiach stacjonarnych Średnia liczba godzin na zrealizowanie aktywności na studiach niestacjonarnych 8 3 Przygotowanie do zaliczenia 5 Suma 35 5 Sumaryczna liczba punktów ECTS dla przedmiotu
0-68 Lublin tel. (+48 8) 538 47 / fax (+48 8) 538 45 80 Literatura podstawowa i uzupełniająca Steele J.: The Android Developer's Cookbook: Building Applications with the Android SDK., Addison- Wesley Professional, 00 Hashimi S., Komatineni S., MacLean D.: Pro Android 3, Apress, 0. Baxter-Reynolds M.: Multimobile Development: Building Applications for the iphone and Android 3 Platforms., Apress, 00 4 Eckel B.: Thinking in Java. Edycja polska. Wydanie IV., Helion, Gliwice, 006 IOS Security, October 0, 5 <http://images.apple.com/iphone/business/docs/ios_security_oct.pdf> 6 Enck W., Ongtang M, McDaniel P.: Understanding Android Security, IEEE Security & Privacy, 009 Android security overview, <https://source.android.com/tech/security/#androidapplication-security> 7 8 Best Practices for Security & Privacy, <http://developer.android.com/training/best-security.html> Efekt kształcenia Odniesienie danego efektu kształcenia do efektów zdefiniowanych dla całego programu (PEK) IA_W04,IA_W, IA_W5 IA_W5 Macierz efektów kształcenia Cele przedmiotu Treści programowe Narzędzia dydaktyczne Sposób oceny EK C W, W, W3, W4, W5 F, P EK C W, W4, W6, W7, W3, F, P EK 3 IA_W08, IA_W5 W6, W7, W8, C3, C5 W9, W0, F, P EK 4 IA_W06, IA_W5 C3, C4 W, W, F, P W3, W5, W8, EK 5 IA_U C3, C5 W9, W0,W, F, P W4 EK 6 IA_K0 C W, W, W3, W4, W5, W3 F, P EK EK Formy oceny szczegóły Na ocenę (ndst) Na ocenę 3 (dst) Na ocenę 4 (db) Na ocenę 5 (bdb) Potrafi wymienić i Nie zna sytuacji na opisać cechy Potrafi dogłębnie rynku systemów języków i. Nie potrafi Potrafi wymienić programowania w ocenić popularność wymienić popularnych systemy operacyjne i kontekście różnych platform platform i języków języki systemów. Potrafi programowania. Nie programowania operacyjnych na wskazać trendy zna trendów rozwoju platform które tworzy się w rozwoju rynku rynku urządzeń nich urządzeń oprogramowanie Nie zna typów zagrożeń systemów, ani mechanizmów zapobiegających zagrożeniom Potrafi wymienić podstawowe typy zagrożeń systemów Potrafi zagrożenia systemów i wskazać mechanizmy systemu Potrafi wyczerpująco zagrożenia systemów, dopasować odpowiednie zabezpieczenia do zagrożenia i opisać różnice zabezpieczeń
0-68 Lublin EK 3 EK 4 EK 5 EK 6 Nie zna zagrożeń, ani metod zapobiegania ujawnieniu lub utracie danych przechowywanych na urządzeniach Nie wie nic na temat komunikacji sieciowej urządzeń, ani sposobów zapewniania transmisji Nie wie jak tworzy się projekt i buduje aplikacje w narzędziach IDE dla systemów Nie zna i nie wykazuje potrzeby poznania trendów rozwoju rynku aplikacji, metod programistycznych i aplikacji tel. (+48 8) 538 47 / fax (+48 8) 538 45 80 Zna metody zabezpieczeń dostępu do urządzenia mobilnego, wie o uprawnieniach aplikacji, zna podstawy zabezpieczeń danych użytkownika Zna podstawowe metody i protokoły komunikacyjne stosowane w połączeniach sieciowych i radiowych urządzeń Zna i potrafi wymienić zastosowania narzędzi do tworzenia aplikacji dla systemów Posiada podstawową wiedzę dotyczącą systemów oraz ich. Nie widzi potrzeby rozwoju i samokształcenia. Zna i potrafi metody zabezpieczeń aplikacji i systemu plików, potrafi uprawnienia aplikacji, zna pojęcie dostawcy treści Potrafi metody komunikacji urządzeń i stosowane protokoły, zna możliwości ich zabezpieczania Zna narzędzia IDE, wie jak stworzyć w nich projekt programistyczny, z czego składa się projekt i jak skompilować aplikację. Interesuje się przedmiotem i rozszerza wiedzę uzyskaną na zajęciach o wiadomości dostępne w literaturze przedmiotu. różnych systemów operacyjnych urządzeń Potrafi szczegółowo opisać metody zabezpieczeń aplikacji i danych przechowywanych na urządzeniach w systemach plików i bazach danych, potrafi metody wykonywania lokalnych i zdalnych kopii zapasowych Potrafi dogłębnie opisać metody komunikacji urządzeń w sieci Internet, GSM i poprzez połączenia radiowe. Potrafi ataki na taką transmisję oraz metody zapobiegania atakom, zna i potrafi metody szyfrowania przesyłanych danych danych Potrafi szczegółowo części składowe aplikacji dla różnych systemów operacyjnych, opisać w kolejności kroki wykonywania aplikacji z uwzględnieniem mechanizmów systemu i modelu aplikacji Wykazuje wyraźnie potrzebę samokształcenia. Wyszukuje samodzielnie informacje rozszerzające treści wykładowe. Zadaje pytania i podejmuje dyskusje na tematy poruszane na zajęciach.
0-68 Lublin tel. (+48 8) 538 47 / fax (+48 8) 538 45 80 Autor programu: Adres e-mail: Jednostka organizacyjna: Dr inż. Piotr Kopniak p.kopniak@pollub.pl Instytut Informatyki, WeiI, Politechnika Lubelska