OAVENP0003 Programming

Institute of physics in Opava
winter 2020
Extent and Intensity
0/0/0. 6 credit(s). Type of Completion: zk (examination).
Guaranteed by
RNDr. Martin Kološ, Ph.D.
Institute of physics in Opava
Prerequisites (in Czech)
(FAKULTA(FU) && TYP_STUDIA(N))
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
fields of study / plans the course is directly associated with
Course objectives (in Czech)
Obsahem předmětu je seznámení se základními znalostmi a pojmy potřebnými pro programování vědeckých i komerčních aplikací nezávisle na použitém programovacím jazyce. Úvodní část kurzu bude věnována základním myšlenkovým schématům a algoritmům nutným k pochopení principů sekvenčního programování. Další část bude věnována základním prvkům obvyklých programovacích jazyků, jako jsou konstanty, proměnné, klíčová slova a řídící struktury. V návaznost na popis formální definice programovacího jazyka budou demonstrovány konkrétní způsoby softwarových vývojových prostředí, kompilace a interpretace kódu. Budou popsány různé metody realizace uživatelského rozhraní kódu a jeho vazby na použité hardwarové a softwarové technologie. V závěru kurzu budou diskutovány alternativy přístupu ke strukturování a výstavbě kódu jako jsou např. procedurální programování, objektové programování, neprocedurální a deklarativní jazyky, paralelizace kódu. Ač je volba programovacího jazyka pro studentské projekty arbitrární, kurz bude primárně orientován na jazyk C++ a na vysokoúrovňové programovací jazyky jako např. Python nebo IDL.
Syllabus (in Czech)
  • Přednášky pokryjí následující témata: • Pojem počítačového programu, Von Neumanova architektura počítače, procesor, paměť, program, data, strojový kód, programovací jazyk, souborový systém, vstupní a výstupní zařízení. • Filozofie sekvenčního programování, provádění programu, řídící struktury programu (podmínky a cykly), algoritmy a jejich implementace. • Základní prvky syntaxe programovacího jazyka: klíčová slova, proměnné, konstanty, operátory, funkce, procedury, syntaktická pravidla. • Vývojová prostředí, tvorba a ladění kódu: Integrovaná vývojová prostředí, kompilátory, linkery, knihovny funkcí, debuggery, interprety. • Uživatelský vstup a výstup, I/O operace, zápis do souborového systému, grafický výstup, interface kódu pro GUI, přímý přístup do paměti. • Alternativy výstavby a strukturování kódu: procedurální jazyky, objektové programování, deklarativní a neprocedurální jazyky • Paralelizace kódu: OpenMP, MPI – symetrický multiprocesing versus programování na clusterech
Literature
    required literature
  • sUčebnice jazyka C, Pavel Herout, Kopp, České Budějovice, 2009, ISBN 978-80-7232-383-8
  • Numerical Recipes. The Art of Scientific Computing, 3rd Edition, 2007, ISBN 0-521-88068-8. (C++ code)
    recommended literature
  • Numerical Recipes in Fortran. The Art of Scientific Computing, 2nd Edition, 1992, ISBN 0-521-43064-X.
  • B. Stroustrup: The C++ Programming Language. 3rd edition. Addison-Wesley 1997. ISBN 0-201-88954-4.
Assessment methods (in Czech)
Student vypracuje semestrální projekt (počítačový program) řešící astrofyzikálně problém dohodnutý s cvičícím. Funkčnost vyvinutého kód je podmínkou pro zápočet. Úspěšná obhajoba a diskuze řešení – vyvinutého kódu - je předmětem zkoušky.
Language of instruction
Czech
Further comments (probably available only in Czech)
The course is taught annually.
The course is taught: in blocks.
Information on the extent and intensity of the course: 10 hodin přednášek, 30 hodin cvičení.
The course is also listed under the following terms winter 2021, winter 2022, winter 2023, winter 2024.
  • Enrolment Statistics (winter 2020, recent)
  • Permalink: https://is.slu.cz/course/fu/winter2020/OAVENP0003