Kod: Nazwa przedmiotu 00 00 0000 00 Liczba punktów ECTS: 0 Programowanie w językach skryptowych Nazwa w języku angielskim Język prowadzenia zajęć polski Kierunek studiów Informatyka Poziom studiów studia II stopnia magisterskie Jednostka prowadząca WEEIA - Instytut Informatyki Stosowanej I-24 Kierownik i realizatorzy Formy zajęć i liczba godzin w semestrze Grabowski Szymon, dr hab. Bieniecki Wojciech, dr inż. Wyk. Ćw. Lab. Proj. Sem. Inne 15 0 30 0 0 0 Suma godzin w se estrze 45 Efekty kształcenia Celem przedmiotu jest zapoznanie studentów z koncepcjami programowania w językach skryptowych i ich wybranymi obszarami zastosowań Efekty kształcenia: Poznanie nowoczesnych, obiektowych języków skryptowych. Zastosowanie struktur danych do przetwarzania danych tekstowych. Zastosowanie skryptów w technologiach internetowych. Programowanie rozproszone, sieciowe, równoległe w językach skryptowych Wymagania wstępne Algorytmy i struktury danych, Metody i języki programowania, Systemy operacyjne, Sieci komputerowe. Organizacja przedmiotu i treści kształcenia WYKŁAD 1. Języki statyczne a języki dynamiczne. Specyfika języków skryptowych. 2. PYTHON: podstawy składni, wbudowane typy danych (string, lista, krotka, słownik, zbiory i in.). Zakresy i iteracje. Obsługa plików. Tworzenie funkcji (domyślne i nazwane wartości argumentów, funkcje zwracające wiele wartości itd.). Tworzenie własnych modułów. Wykrywanie i obsługa błędów. Programowanie obiektowe w Pythonie. Serializacja. Elementy programowania funkcyjnego w Pythonie. Przegląd wybranych modułów standardowych. Obsługa wyrażeń regularnych. Podstawy programowania sieciowego w Pythonie. Wybrane zewnętrzne biblioteki: Python Image Library (PIL), PyGame. Wstęp do programowania interfejsów graficznych z wykorzystaniem środowiska wxPython. Python a bazy danych. Rozważania nad kwestiami wydajności. Wybrane techniki optymalizacji kodu w Pythonie. Pomiar czasu. 3. RUBY: Elementy programowania strukturalnego i obiektowego. Programowanie modułowe. Operacje wejścia i wyjścia. Programowanie wielowątkowe. Testy. Powłoka interaktywna. Programowanie sieciowe. Programowanie dynamiczne. 4. REBOL. Pojęcie bloku. Funkcje wbudowane. Tworzenie GUI. Obsługa zdarzeń. Rysowanie w 2D, proste animacje. Obsługa danych binarnych, praca z wybranymi protokołami obsługiwanymi natywnie. Programowanie sieciowe. XML-RPC. Współpraca z MySQL. Tworzenie dialektów. ĆWICZENIA LABORATORYJNE 1. Zapoznanie się z podstawami składni i wbudowanymi typami danych w Pythonie. 2. Przetwarzanie tekstu w Pythonie. Obsługa plików. 3. Ćwiczenia z wybranymi modułami Pythona. 4. Obiektowość w Pythonie. 5. Podstawy programowania wielowątkowego. 6. Biblioteki PIL i PyGame. 7. Tworzenie GUI przy pomocy wxPython. 8. Komunikacja z bazą danych. 9. Mechanizmy obiektowości w języku Ruby. 10. Przegląd wybranych bibliotek języka Ruby. 11. Tworzenie GUI i obsługa zdarzeń w REBOL-u. 12. Obsługa wybranych protokołów sieciowych. Forma zaliczenia sprawdzenia osiągnięcia efektów kształcenia Kolokwium wykładowe (40% oceny końcowej) oraz średnia z oceny 5 zadań laboratoryjnych (60% oceny końcowej). Literatura podstawowa Thomas D., Foowler C., Hunt A.: Programowanie w języku Ruby. Helion, 2006. Peter C. Norton et al.: Python. Od podstaw. Helion, 2006. Martelli A., Ravenscroft A., Aster D.: Python. Receptury. O'Reilly, 2006. Peter C. Norton et al.: Python. Od podstaw. Helion, 2006. http://www.plain.at/vpavlu/REBOL/tutorial/ Goldman E., Blanton J.: Rebol: The Official Guide. Rebol Press, 2000. Literatura uzupełniająca Przeciętne obciążenie studenta pracą własną 55 Uwagi Uwagi Aktualizacja Data Całkowite obciążenie studenta pracą 100