Module also offered within study programmes:
General information:
Name:
Języki skryptowe - metodologia pracy
Course of study:
2016/2017
Code:
JFT-2-007-s
Faculty of:
Physics and Applied Computer Science
Study level:
Second-cycle studies
Specialty:
-
Field of study:
Technical Physics
Semester:
0
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr hab. inż. Bołd Tomasz (tomasz.bold@fis.agh.edu.pl)
Academic teachers:
dr hab. inż. Bołd Tomasz (tomasz.bold@fis.agh.edu.pl)
Module summary

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
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_K03 Scientific paper,
Report
Skills
M_U001 Student potrafi sprawnie automatyzować pracę z w systemach typu UNIX. Execution of laboratory classes
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_U08, FT2A_U12 Project
M_U003 Zna podstawowe techniki przetwarzania danych tekstowych i nmerycznych. FT2A_U08 Execution of a project
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
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). + - + - - - - - - - -
Skills
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. + - - - - - - - - - -
Module content
Lectures:
  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.

Laboratory classes:
  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.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 80 h
Module ECTS credits 3 ECTS
Participation in lectures 15 h
Participation in laboratory classes 15 h
Contact hours 10 h
Completion of a project 20 h
Preparation for classes 20 h
Additional information
Method of calculating the final grade:

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

Prerequisites and additional requirements:

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

Recommended literature and teaching resources:

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

Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

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.