Module also offered within study programmes:
General information:
Name:
Scripting languages
Course of study:
2017/2018
Code:
JFT-1-043-s
Faculty of:
Physics and Applied Computer Science
Study level:
First-cycle studies
Specialty:
-
Field of study:
Technical Physics
Semester:
0
Profile of education:
Academic (A)
Lecture language:
English
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

During the course, 4 scripting languages will be introduced (shell, python, ROOT, JavaScript). They will illustrate advantages of scripting approach.

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_K001 The student is capable of constructive discussion on subjects covered in the course. Participation in a discussion
M_K002 The student is able to discuss solutions publicly. Participation in a discussion
Skills
M_U001 The student is able to adjust technique to the problem at hand during laboratory classes Execution of laboratory classes
Knowledge
M_W001 The student can write scripts in four presented languages. 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_K001 The student is capable of constructive discussion on subjects covered in the course. + - - - - - - - - - -
M_K002 The student is able to discuss solutions publicly. + - - - - - - - - - -
Skills
M_U001 The student is able to adjust technique to the problem at hand during laboratory classes - - + - - - - - - - -
Knowledge
M_W001 The student can write scripts in four presented languages. + - + + - - - - - - -
Module content
Lectures:
  1. Introduction to scripting

    Historical perspective, the proliferation of scripting languages today. Compiled program lifetime vs script lifetime. Scripts validation.

  2. Shell scripting

    Text processing, structuring textual data. BASH scripts. Overview of the associated utilities.

  3. Python

    Brief introduction: philosophy, variables and memory model, control statements. Using objects. Testing: testable code, simple tests, and testing systems. Python as integration language.

  4. ROOT

    Cling interpreter. Philosophy of the ROOT. Memory model in ROOT, current context. Types of ROOT scripts. Testing.

  5. Java Script

    Applicability and environment. Language review. Basic of jQuery. Testing.

Laboratory classes:
  1. Shell scripting 1

    Text processing in shell scripts: Connecting programs for filtering and transforming textual data.

  2. Tasks automation

    BASH scripts. Processing experimental data.

  3. Elementary python scripts

    Acquiring basic language skills, simple scripts, input, and output.

  4. Text processing in Python

    Processing files. Data extraction and transformation. Data persistency.

  5. ROOT

    Basic usage. Data visualization. Data storage.

  6. ROOT

    Cling scripts. Compiled scripts.

  7. JavaScript

    Interaction with the interpreter. Loading and using jQuery. Interaction with the XML document.

  8. JavaScript

    External script. External data loading. Result storage. Testing scripts.

  9. Projects presentation

    Students present their projects (5-10 minutes).

Project classes:
  1. Shell script

    The first project is a shell script. The scope and exact requirements will be established individually for each student. Well seen are scripts proposed by students.

  2. Python script

    Again, the scope and exact requirements will be established for each student. A rewrite of the previous shell script is possible. Most welcome are projects proposed by students.

  3. ROOT or JS script

    The third project is a script written in ROOT or JS. It is a free choice of every student to pick the technology. Again, the most welcome are scripts that are meant to be useful for students.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 100 h
Module ECTS credits 4 ECTS
Participation in lectures 10 h
Participation in laboratory classes 20 h
Completion of a project 40 h
Preparation for classes 30 h
Additional information
Method of calculating the final grade:

The final grade is calculated from an average of the points obtained for each project. Each project is graded from 0-6 points. Additional 4 points on top of that are given for its presentation. Projects not delivered in a timely manner are graded with 0 points.

Prerequisites and additional requirements:

Reasonable unix/linux experience. A bit of c++ knowledge. Knowledge of basics of HLTM documents.

Recommended literature and teaching resources:

Recommended literature and teaching resources not specified

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

Additional scientific publications not specified

Additional information:

None