Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Języki skryptowe - metodologia pracy
Tok studiów:
2018/2019
Kod:
JFT-2-007-s
Wydział:
Fizyki i Informatyki Stosowanej
Poziom studiów:
Studia II stopnia
Specjalność:
-
Kierunek:
Fizyka Techniczna
Semestr:
0
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
dr hab. inż. Bołd Tomasz (tomasz.bold@fis.agh.edu.pl)
Osoby prowadzące:
dr hab. inż. Bołd Tomasz (tomasz.bold@fis.agh.edu.pl)
Krótka charakterystyka modułu

Podczas kursu przedstawione zostaną 4 języki skryptowe (UNIX shell, python, ROOT, JavaScript). Zilustrują one zalety i wady tego podejścia.

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Umiejętności
M_U001 Student potrafi sprawnie automatyzować pracę z w systemach typu UNIX. Wykonanie ćwiczeń laboratoryjnych
M_U002 Student rozumie model pracy z językami skryptowymi ich słabości i mocne strony a także potrafi dostosować podejście programistyczne do rozwiązywanego problemu. Student potrafi uzasadnić użycie języków skryptowych ze względu na ich wydajność, modularność i rozwijalność. Jednocześnie będzie wiedział w jakich sytuacjach techniki skryptowe nie powinny być stosowane. FT2A_U05 Projekt
M_U003 Zna podstawowe techniki przetwarzania danych tekstowych i nmerycznych. FT2A_U05 Wykonanie projektu
Kompetencje społeczne
M_K004 Studen sprawdzi się w pracy zespołowej. W szczególności będzie się uczył tego w jakis posób uzasadnić wybrane sposoby rozwiązania problemów (tu, dot. sposobów przetwarzania informacji). FT2A_K01 Referat,
Sprawozdanie
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Umiejętności
M_U001 Student potrafi sprawnie automatyzować pracę z w systemach typu UNIX. - - + - - - - - - - -
M_U002 Student rozumie model pracy z językami skryptowymi ich słabości i mocne strony a także potrafi dostosować podejście programistyczne do rozwiązywanego problemu. Student potrafi uzasadnić użycie języków skryptowych ze względu na ich wydajność, modularność i rozwijalność. Jednocześnie będzie wiedział w jakich sytuacjach techniki skryptowe nie powinny być stosowane. + - - - - - - - - - -
M_U003 Zna podstawowe techniki przetwarzania danych tekstowych i nmerycznych. + - - - - - - - - - -
Kompetencje społeczne
M_K004 Studen sprawdzi się w pracy zespołowej. W szczególności będzie się uczył tego w jakis posób uzasadnić wybrane sposoby rozwiązania problemów (tu, dot. sposobów przetwarzania informacji). + - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:
  1. Języki skryptowe

    • Rys historyczny – a stan obecny, rozpowszechnienie języków skryptowych.
    • Cykl życia oprogramowania – etapy i koszty z nimi związane.
    • Programy skryptowe wielorazowego użytku – proces uwiarygadniania programu skryptowego.
    • Jednorazowe programy skryptowe – automatyzacja pracy.

  2. Techniki przetwarzania tekstu, podstawy

    • Regularyzacja danych tekstowych.
    • Język powłoki unix.
    • Użyteczne acz proste programy przetwarzające tekst.

  3. Język python

    • Język python – wprowadzenie i ogólna charakterystyka.
    • Filozofia programowania.
    • Zmienne, instrukcje sterujące, model pamięci.
    • Obiektowość w języku python.
    • Testowanie skryptów i modułów języka python.
    • Łączenie z bibliotekami kompilowanymi – numpy jako przykład.

  4. Język CINT systemu ROOT

    • ROOT i CINT – dialekt c++ – ogólna charaktyerystyka.
    • Filozofia programowania.
    • Zmienne, instrukcje sterujące, model pamięci, bierzący kontekst.
    • Testowanie skryptów CINT.

  5. Język JavaScript

    Stosowalność języka JS.
    Środowisko urucomienia programów w JS.
    Podstawy języka.
    Podstawowe informacje o bibliotece jQuery.

Ćwiczenia laboratoryjne:
  1. Przetwarzanie potokowe danych tekstowych

    Modułowość programów systemu UNIX – przykłady łączenia programów celem filtrowania danych.
    Współpraca poleceń cat, grep, egrep, cut, tr, awk…. Program gnuplot.
    Skrypt filtrujący dane eksperymentalne.

  2. Powtarzalne procesy i ich automatyzacja

    Wstęp do programowania z użyciem skryptów. Prosta wizualizacja danych.
    Skrypt do przetwarzania danych z laboratorium studenckiego.

  3. Python, podstawy użytkowania

    Python jako poręczny kalkulator. Podstawowe typy danych, instrukcje sterujące, funkcje, moduły.
    Samotestowanie.

  4. Python, przetwarzanie tekstu

    Czytanie zawartości plików, filtrowanie i przetwarzanie. Wyrażenia regularne. Persystencja danych w języku python.

  5. CINT i środowisko ROOT

    Uruchamianie programu ROOT. Praca z interpreterem CINT. Makra CINT. Kompilowne makra.

  6. Przetwarzanie danych tekstowych i numerycznych naturalny format danych ROOT

    Konwersja danych tekstowych do danych numerycznych. Zapisywanie obiektów w plikach wyjściowych.

  7. Wizualizacje danych w systemie ROOT

    Różne rodzaje wykresów oferowane przez ROOT. Funkcje analityczne, fitowanie.
    Makro wizualizujące wyniki pomiarów laboratoryjnych.

  8. Prosta aplikacja internetowa z użyciem JavaScript

    Zaznajomienie się ze środowiskiem do programowania w języku JS.
    Konsola programisty w poprularnych przeglądarkach (np Firebug).
    Proste przykłady przeszukiwania dokumentu HTML.
    Interakcja z dokumentem.
    Zewnętrzna żródła danych.
    Przykłady prezentacji danych.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 80 godz
Punkty ECTS za moduł 3 ECTS
Udział w wykładach 15 godz
Udział w ćwiczeniach laboratoryjnych 15 godz
Dodatkowe godziny kontaktowe z nauczycielem 10 godz
Wykonanie projektu 20 godz
Przygotowanie do zajęć 20 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Punkty ze sprawdzianów na ćwiczeniach laboratoryjnych (30%) i projektowych (70%) sumowane po czym procent uzyskanych punktów przeliczany jest na ocenę zgodnie z Regulaminem Studiów AGH.

Zasady zaliczania ćwiczeń laboratoryjnych:
-Zajęcia laboratoryjne zaliczane są na podstawie oceny przez prowadzącego przygotowania do zajęć ( wiedza teoretyczna) i wykonanie małych projektów.
-Ze względu na specyfikę zajęć laboratoryjnych tryb wyrównywania zaległości na zajęciach ustalany jest indywidualnie. Jednak student, który bez usprawiedliwienia opuścił więcej niż jedne zajęcia może zostać pozbawiony możliwości ich odrabiania.

Wymagania wstępne i dodatkowe:

Znajomość podstaw systemu UNIX.
Znajomość podstaw języka C++/Java.

Zalecana literatura i pomoce naukowe:

C. Newham, B. Rosenblatt, Bash – wprowadzenie, Helion, 2006
M. Lutz, Python, wprowadzenie, Helion, 2002.
G. van Rosum, Przewodnik po języku Python, pl.python.org.
R. Brun, F. Rademaker, ROOT User’s guide, root.cern.ch

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Zasady zaliczania ćwiczeń laboratoryjnych:
-Zajęcia laboratoryjne zaliczane są na podstawie oceny przez prowadzącego przygotowania do zajęć ( wiedza teoretyczna) i opracowania wyników pomiarów.
-Ze względu na specyfikę zajęć laboratoryjnych tryb wyrównywania zaległości na zajęciach ustalany jest indywidualnie. Jednak student, który bez usprawiedliwienia opuścił więcej niż jedne zajęcia może zostać pozbawiony możliwości ich odrabiania.