WYDZIAŁ ELEKTRONIKI Nazwa w języku polskim: Nazwa w języku angielskim: Kierunek studiów: Stopień studiów i forma: Rodzaj przedmiotu: Kod przedmiotu Grupa kursów: Zał. nr do ZW 33/01 KARTA PRZEDMIOTU Praktyczne aspekty wytwarzania oprogramowania Practical Aspects of Software Production Automatyka i robotyka, Elektronika, Informatyka, Telekomunikacja, Teleinformatyka I stopień / II stopień, stacjonarne wybieralny ETEW011 TAK Liczba godzin zajęć zorganizowanych w Uczelni (ZZU) Liczba godzin całkowitego nakładu pracy studenta (CNPS) Forma zaliczenia Wykład Ćwiczenia Laboratorium Projekt Seminarium 15 30 30 60 Zaliczenie na ocenę Dla grupy kursów zaznaczyć X kurs końcowy (X) Liczba punktów ECTS 3 w tym liczba punktów ECTS odpowiadająca zajęciom o charakterze praktycznym (P) w tym liczba punktów ECTS odpowiadająca zajęciom wymagającym bezpośredniego kontaktu (BK) Zaliczenie na ocenę - 1 1 1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI CELE PRZEDMIOTU C1 Nabycie podstaw teoretycznych pracy w projekcie przy użyciu metodyk zwinnych. C Nabycie podstawowej wiedzy w zakresie zcentralizowanych systemów kontroli wersji na przykładzie Subversion. C3 Nabycie wiedzy z zakresu rozproszonych systemów kontroli wersji. C Nabycie podstawowej wiedzy w zakresie technik i narzędzi umożliwiających ciągłą integrację oprogramowania (Continuous Integration). C5 Poznanie podstawowych konstrukcji programistycznych w języku Python. C6 Zdobycie umiejętność praktycznego posługiwania się metodologią Scrum w zarządzaniu projektami informatycznymi. C7 Zdobycie umiejętności praktycznego posługiwania się systemami kontroli wersji w codziennym procesie tworzenia oprogramowania. Nabycie praktycznych umiejętności z zakresu tworzenia nowych repozytoriów, konfiguracji, zarządzania gałęziami. C9 Zdobycie umiejętności posługiwania się narzędziami zapewniającymi ciągłą integrację ze 1
szczególnym uwzględnieniem narzędzi Jenkins/Hudson. C10 Nabycie podstawowych umiejętności programowania obiektowego w języku Python. C11 Nabycie podstawowych umiejętności tworzenia prostych scenariuszy testów jednostkowych. PRZEDMIOTOWE EFEKTY KSZTAŁCENIA Z zakresu wiedzy: PEK_W01 Posiada wiedzę o cyklu życia projektu i metodach zarządzania kompleksowymi projektami informatycznymi. PEK_W0 Posiada wiedzę z zakresu scentralizowanych i rozproszonych systemów kontroli wersji, ich charakterystyk i podstawowych różnic. PEK_W03 Posiada wiedzę dotyczącą ciągłej integracji (CI), jej znaczenia w cyklu życia oprogramowania oraz wpływu CI na jakość wytwarzanego oprogramowania. PEK_W0 Zna specyfikę tworzenia aplikacji obiektowych w języku Python. Z zakresu umiejętności: PEK_U01 Potrafi użyć metodologii Scrum do prowadzenia projektu informatycznego. PEK_U0 Potrafi wykorzystać podstawowe systemy kontroli wersji do zarządzania jakością i integralnością oprogramowania. PEK_U03 Potrafi skonfigurować i wykorzystać narzędzia ciągłej integracji oprogramowania do kolejkowania i zrównoleglenia budowy oprogramowania. PEK_U0 Posiada praktyczne podstawy programowania obiektowego i przetwarzania danych i testowania oprogramowania w języku Python. Z zakresu kompetencji społecznych: PEK_K01 ma świadomość wpływu zarządzania wersjami oprogramowania (Software Configuration Management) na integralność, odtwarzalność i jakości tworzonego oprogramowania. Wy1 Wy Wy3 Wy Wy5 Wy6 Wy7 TREŚCI PROGRAMOWE Forma zajęć - wykład Umieszczenie tematyki poszczególnych wykładów w kontekście pracy dużego projektu programistycznego. Omówienie obszarów prezentowanych w ramach cyklu oraz zależności pomiędzy nimi. Podstawy metodyk zwinnych. Pojęcia, role i reguły na przykładach z codziennego życia projektu programistycznego. Zalety i wyzwania pojawiające się podczas pracy zorganizowanej przy pomocy Agile. Wprowadzenie do systemów kontroli wersji. Charakterystyka Subversion jako jednego z najpopularniejszych systemów kontroli wersji. GIT jako przykład rozproszonego systemu kontroli wersji. Cechy oraz możliwości GIT a, jako nowoczesnego systemu kontroli wersji. GIT Workflows - różne warianty pracy z narzędziem GIT. Wprowadzenie do systemów Continuous Integration. Charakterystyka systemów CI na przykładzie narzędzia Jenkins/Hudson. Alternatywne systemy CI. Podstawy programowania w języku Python: podstawowe typy danych, podstawowe operacje na liczbach i napisach, instrukcje sterujące, funkcje, realizacja obiektowości (klasy, metody, dziedziczenie). Podstawy programowania w języku Python: struktury danych (listy, słowniki, krotki), operacje na strukturach danych, obsługa modułów, wyjątki, podstawowe operacje na plikach, wyrażenia regularne. Liczba godz. Wy8 Testowanie kodu w języku Python. 1
Suma godzin 15 Forma zajęć - ćwiczenia Liczba godzin Cw1 Szkolenie stanowiskowe BHP. Sprawy organizacyjne. Wprowadzenie przygotowanie stanowisk do ćwiczeń semestralnych. 3 Cw-3 Praktyczne użycie systemu kontroli wersji SVN. Uruchomienie serwera SVN lokalnie, wstępna konfiguracja, polaczenie z serwerem SVN, użycie podstawowych komend systemu. Cw-5 Praca z systemem GIT. Użycie głównych elementów takich jak: submoduły, gałęzie, remote y, wskaźniki. Cw6-7 Instalacja, konfiguracja i administracja Jenkinsem. Definiowanie zadań (jobs) w Jenkinsie, konfigurowanie zaawansowanych opcji, pluginy, połączenie z systemem kontroli wersji. Cw8 Poznanie interpretera języka Python. Wykorzystanie podstawowych instrukcji języka Python (print, import, help, dir) Cw9 Operacje na typach danych w języku Python. Tworzenie struktur danych (lista, słownik, krotka), operacje na strukturach danych, kontrola przypływu danych (if, for, while) Cw10 Tworzenie własnych funkcji w języku Python. Operacje na plikach, obsługa wyjątków. Cw11 Wyrażenia regularne w języku Python. Użycie najpopularniejszych funkcji z biblioteki standardowej języka. Cw1- Praktyczne wykorzystanie obiektowości języka Python tworzenie klas, 13 metod, dziedziczenie. Wykorzystanie zewnętrznych bibliotek Cw1 Ćwiczenia obsługi modułów doctest i unit test. 3 Suma godzin 30 STOSOWANE NARZĘDZIA DYDAKTYCZNE N1. Wykład z użyciem środków multimedialnych N. Prezentacja syntetyczna problematyki ćwiczeń (ok. 10 min - przez prowadzącego) N3. Ćwiczenia praktyczne przy użyciu komputerów z dyskusją rozwiązań zadań N. Konsultacje N5. Praca własna przygotowanie do ćwiczeń N6. Praca własna samodzielne studia, przygotowanie do końcowego sprawdzianu OCENA OSIĄGNIĘCIA PRZEDMIOTOWYCH EFEKTÓW KSZTAŁCENIA Oceny (F formująca (w trakcie semestru), P podsumowująca (na koniec semestru) F1 F P = F1*0,6+F*0, Numer efektu kształcenia PEK_W01- PEK_W0, PEK_K01 PEK_U01-PEK_U0, PEK_K01 Sposób oceny osiągnięcia efektu kształcenia Aktywność na wykładach, ocena z pisemnego kolokwium końcowego. Aktywność na ćwiczeniach. 3
LITERATURA PODSTAWOWA I UZUPEŁNIAJĄCA LITERATURA PODSTAWOWA: [1] Matyas S., Glover A., Continuous Integration: Improving Software Quality and Reducing Risk, Addison-Wesley, 008 [] Lutz M., Ascher D., Python. Wprowadzenie, O'Reilly, 010 [3] Myers G. J., Sandler C., Badgett T., Thomas T.M, Sztuka testowania oprogramowania, Helion 005 [] Dawson M., Python Programming for the Absolute Beginner, Cengage Learning, 010 [5] Ziadé T., Expert Python Programming: Learn Best Practices to Designing, Coding, and Distributing Your Python Software, Packt Publishing, 008 LITERATURA UZUPEŁNIAJĄCA: [1] Hetland M. L., Python Algorithms: Mastering Basic Algorithms in the Python Language, Apress, 010 [] Martin R. C., Czysty kod. Podręcznik dobrego programisty, Helion, 010 Pozycje desygnowane przez wykładowcę na zakończenie każdego wykładu. OPIEKUN PRZEDMIOTU (IMIĘ, NAZWISKO, ADRES E-MAIL)
MACIERZ POWIĄZANIA EFEKTÓW KSZTAŁCENIA DLA PRZEDMIOTU Teoria Systemów Z EFEKTAMI KSZTAŁCENIA NA KIERUNKU Elektronika, Informatyka, Telekomunikacja, Automatyka i robotyka, Teleinformatyka Przedmiotowy efekt kształcenia Odniesienie przedmiotowego efektu do efektów kształcenia zdefiniowanych dla kierunku studiów i specjalności (o ile dotyczy) Cele przedmiotu Treści programowe Numer narzędzia dydaktycznego PEK_W01 PEK_W0 PEK_W03 PEK_W0 PEK_U01 PEK_U0 PEK_U03 PEK_U0 PEK_K01 K1TEL_W08, K1TIN_W0 K1AIR_W1, K1EKA_W11, K1INF_W1, K1TEL_W11, K1TIN_W11, K1AIR_W13, K1EKA_W1, K1INF_W13, K1TEL_W1, K1TIN_W1 K1TEL_W08, K1TIN_W0 K1AIR_W1, K1EKA_W11, K1INF_W1, K1TEL_W11, K1TIN_W11, K1AIR_W13, K1EKA_W1, K1INF_W13, K1TEL_W1, K1TIN_W1 K1TEL_W08, K1TIN_W0 K1AIR_W1, K1EKA_W11, K1INF_W1, K1TEL_W11, K1TIN_W11, K1AIR_W13, K1EKA_W1, K1INF_W13, K1TEL_W1, K1TIN_W1 K1TEL_W08, K1TIN_W0 K1AIR_W1, K1EKA_W11, K1INF_W1, K1TEL_W11, K1TIN_W11, K1AIR_W13, K1EKA_W1, K1INF_W13, K1TEL_W1, K1TIN_W1 K1TEL_U07, K1TIN_U08, K1AIR_U1, K1INF_U1, K1TEL_U11, K1TIN_U1 K1TEL_U07, K1TIN_U08, K1AIR_U1, K1INF_U1, K1TEL_U11, K1TIN_U1 K1TEL_U07, K1TIN_U08, K1AIR_U1, K1INF_U1, K1TEL_U11, K1TIN_U1 K1TEL_U07, K1TIN_U08, K1AIR_U1, K1INF_U1, K1TEL_U11, K1TIN_U1 K1TEL_U07, K1TIN_U08, C1, C6 Wy1, Wy, Cw1 C, C3, C7 Wy3, Wy, Cw, Cw3, Cw, Cw5 C, C9 Wy5, Cw6, Cw7 C5, C10 Wy6, Wy7, Wy8, Cw8, Cw9, Cw10, Cw11, Cw1, Cw13, Cw1 C1, C6 Wy1, Wy, Cw1 C, C3, C7 Wy3, Wy, Cw, Cw3, Cw, Cw5 C, C9 Wy5, Cw6, Cw7 C5, C10 C, C3, C Wy6, Wy7, Wy8, Cw8, Cw9, Cw10, Cw11, Cw1, Cw13, Cw1 Cw, Cw3, Cw, Cw5, Cw6, Cw7