Course details

Scripting Languages

ISJ Acad. year 2020/2021 Summer semester 5 credits

Current academic year

Basic concepts: scripts and scripting, scripting versus programming, an overview of scripting languages, macro languages, scriptable objects and components are, basics of Python, Unix system hacking, object-oriented programming in scripting languages, concurrency and parallelism.

Guarantor

Course coordinator

Language of instruction

Czech, English

Completion

Examination (written+oral)

Time span

  • 26 hrs lectures
  • 26 hrs projects

Assessment points

  • 51 pts final exam (written part)
  • 9 pts mid-term test (written part)
  • 40 pts projects

Department

Lecturer

Instructor

Course Web Pages

Subject specific learning outcomes and competences

Students will get acquainted with modern scripting languages, having successfully completed the course, students will be able to demonstrate knowledge and understanding of the nature of scripting and the role of scripting languages, the syntax and semantics of Python, write simple scripts to automate system administration tasks using appropriate languages and rapidly develop simple applications using appropriate tools.
The students will learn to solve problems in Python through regular projects. They will also improve their programming skills and their knowledge of modern development tools.

Learning objectives

To examine the topic of scripting languages and their applications. To understand the complementarity of the class of languages to systems languages, their strengths and weaknesses. To conceive basics of regular expressions, using appropriate data structures and approaches primarily in Python (and partially Ruby and others).

Why is the course taught

The content of the course goes far beyond the basic programming courses. Even though we start with regular expressions and cornerstones of Python, these topics are presented briefly to enable approaching conceptually interesting and new topics that students do not know from system languages such as C. We focus on general concepts of high-level dynamic scripting languages that are relevant not only for Python, Ruby and other currently popular languages but also for that one that has appeared recently.

Recommended prerequisites

Study literature

  • Harms, D., Macdonald, K.: Začínáme programovat v jazyce Python. Computer Press, ISBN 80-7226-799-X (in Czech).
  • Lutz, M., Ascher, D.: Naučte se Python - Pohotová příručka. Grada, 2003, ISBN 80-247-0367-X (in Czech).
  • Driscoll, M: Python 201: Intermediate Python. Amazon Digital Services LLC, ASIN: B01LMUAYSO, 2016.
  • Beazley, D.M.: Python - Podrobná referenční příručka pro programovací jazyk Python. Neocortex (in Czech).
  • Abelson, H.: Structure and interpretation of computer programs, Cambridge. MIT Press, 2002.

Syllabus of lectures

  1. Introduction, a brief history of scripting languages, pros and cons, comparison of languages
  2. Regular expressions and their support in scripting languages
  3. Simple scripting for OS Unix, automating system administration
  4. Names in Python, basic data structures and their implementation
  5. Dictionary (hash structure) and its implementation in Python
  6. Functions and their arguments, modules, exception handling
  7. Object-oriented programming  in scripting languages
  8. Advanced concepts of object-oriented programming in Python, multiple inheritance and method resolution order
  9. Ruby basics through comparison with Python
  10. Function and class decorators
  11. Iteration protocol and iterables
  12. Generators and their use in functions
  13. Concurrency and parallelism

Syllabus - others, projects and individual work of students

Projects consist of general problems to be solved, mostly by writing small scripts in Python. Electronic submission of assignments are required using IS FIT.

Instead of one or a few large projects, 8 mini-projects are assigned in the course, i.e. from the 3rd lecture almost every week. There is a server that automatically evaluates projects before the official submission via WIS, so you can find out in advance how many points will be for the current solution. The midterm test and exam are directly linked to the topics you will try within the projects.

Progress assessment

  • Mid-term test - up to 9 points.
  • Individual projects - up to 8 x 5 points.


Exam prerequisites:

Controlled instruction

The evaluation includes a mid-term test and an individual project. The mid-term test does not have a correction option.

Course inclusion in study plans

  • Programme BIT, 1st year of study, Elective
  • Programme IT-BC-3, field BIT, 1st year of study, Elective
Back to top