Computer Science for Modern Physicists

Login to KOS for course enrollment Display time-table
Code Completion Credits Range Language
17IMF KZ 3 0+3 Czech
František Havlůj
František Havlůj
Department of Nuclear Reactors

Although the computers became an everyday and inherent part of the science and engineering, use of them is often reduced to ?office? tasks and to use of specialized computing tools. Surprisingly few researchers are able to use their computers for automated data processing in order to boost their efficiency. The subject in a form of an interactive seminar gets the students acquainted with the basic automation principles, mainly in data processing, but also in automated preparation of input decks for computing applications or in generation of charts and reports and in results presentation. Every lesson starts with a short lecture and a definition of a selected automation problem, which in turn the students try to solver under the teacher?s guidance. The most effort is put into individual, independent work and into preparation of the students for practical use of the lessons learned.


Introduction to Nuclear Reactor Physics 1

Syllabus of lectures:
Syllabus of tutorials:

1. Automation basics and scripting (3 lessons)

Topics: Automation principles and methods. Introduction to Ruby language. Basic data formats and data file reading. Chart generation using gnuplot. Creation of text tables. Text processing. 2. Interaction with computing tools (2 lessons) Topics: Extraction of data from scientific application output files. Templating of input decks. Complex task - evaluation of critical positions of control rods using MCNP.

3. Automated document generation (3 lessons)

Topics: LaTeX text processor basics. ERb templating systems. Automated processing of PDF documents, including charts and tables.

4. Interactive documents (3 lessons)

Topics: Using HTML language for automated document generation. Style sheet basics with CSS. Javascript basics and the jQuery library. Complex task - interactive database of reactor records.

5. Advanced software tools for engineers (1 lesson)

Topics: Text encodings. Source code version control tools. Introduction to web applications.

Study Objective:

Knowledge: The students are well oriented in the practice of automated data processing and are acquainted with a core portfolio of relevant tools. They have a good overview of the automation processes and of the major methods used.

Skills: The students are by themselves able to design and implement basic automation processes, ranging from simple text and numeric processing to automated generation of documents, both in textual (using LaTeX text processor) and interactive (HTML-based) form. They are able to use the Ruby scripting language at the level needed for the day-to-day engineering scientific tasks and they are acquainted with a wide range of reference resources in order to be able study further whenever needed.

Study materials:

Key references:

Dave Thomas, with Chad Fowler and Andy Hunt, Programming Ruby 1.9 & 2.0 (4th edition): The Pragmatic Programmers' Guide, Pragmatic Programmers, 2013

Andrew Hunt, David Thomas, The Pragmatic Programmer: From Journeyman to Master, Addison-Wesley, 1999

Recommended references: Philipp K. Janert, Gnuplot in Action - Understanding Data with Graphs, Manning Publications, 2009 Brian Marick, Everyday Scripting with Ruby: For Teams, Testers, and You, Pragmatic Programmers, 2007

Time-table for winter semester 2019/2020:
Time-table is not available yet
Time-table for summer semester 2019/2020:
Time-table is not available yet
The course is a part of the following study plans:
Data valid to 2020-08-08
For updated information see http://bilakniha.cvut.cz/en/predmet3192506.html