SubjectsSubjects(version: 898)
Course, academic year 2021/2022
  
Advanced programming and technologies of programming - P409011
Title: Pokročilé programování a programovací technologie
Guaranteed by: Department of Chemical Engineering (409)
Actual: from 2019
Semester: both
Points: 0
E-Credits: 0
Examination process:
Hours per week, examination: 3/0 other [hours/week]
Capacity: winter:10 / unknown (unknown)
summer:unknown / unknown (unknown)
Min. number of students: unlimited
Language: Czech
Teaching methods: full-time
Level:  
For type: doctoral
Note: course is intended for doctoral students only
can be fulfilled in the future
you can enroll for the course in winter and in summer semester
Guarantor: Zubov Alexandr Ing. Ph.D.
Grof Zdeněk doc. Ing. Ph.D.
Interchangeability : D409023
Is interchangeable with: AP409011
This subject contains the following additional online materials
Annotation -
Last update: Grof Zdeněk doc. Ing. Ph.D. (08.06.2021)
Seminars will be organized during both the winter and summer semesters (October to April). We ask all students who wish to participate in this course to contact the teachers before winter semester starts (middle of September) at the latest. Information about seminars will be send to all who have applied. Become familiar with basic programming technologies, data structures and algorithms. Learn to write clear and easily maintained computer programs. The course will focus on Fortran 90/95 programming language and its latest generations (Fortran 2003/2018). Generally become familiar with the characteristics and possibilities of other computer languages such as C/C++ and Python, for example, and techniques for interoperation of these languages. Become familiar with the concepts of paralelization (MPI and OpenMP).
Aim of the course -
Last update: Grof Zdeněk doc. Ing. Ph.D. (08.07.2021)

The student will be able to

  • focus on the most important programming technologies
  • write concise, clear and easily maintainable computer programs and to use the programming handwriting
  • use Fortran programming language (Fortran 95 and some features of Fortran 2003)
  • understand programs written in C, C++ and Python
  • design and use complex data structures
  • analyze and implement algorithms for various purposes
  • parallelize programs by using MPI approach

Literature -
Last update: Grof Zdeněk doc. Ing. Ph.D. (08.07.2021)
  • Metcalf M, Reid J, Cohen M: Modern Fortran explained, Oxford University Press, 2011.
  • Metcalf M, Reid J, Cohen M: Modern Fortran explained: icorporating Fortran 2018, Oxford University Press, 2018.
  • Adams J C, et al: The Fortran 2003 Handbook: complete syntax, features and procedures, Springer, 2009.
  • Clerman N S, Spector W: Modern Fortran: style and usage, Cambridge University Press, 2012.
  • Horton I: Ivor Horton's Beginning Visual C++ 2013, Willey, 2014.
  • Hubbard J R: Programming with C++, Schaum's outline series, McGraw-Hill, 1996.
  • Chacon S, Straub B, Pro Git, Apres, 2014. [open source, available from https://git-scm.com/book]
  • Additional references from Internet (programming languages: manuals, tutorials, etc.)

Syllabus -
Last update: Grof Zdeněk doc. Ing. Ph.D. (08.07.2021)

1. Introduction, data representation, programming in Fortran I.

2. Programming in Fortran II.

3. Programmer's handwriting, teamwork in software writing, version control systems (git and github).

4. Data structures (array, list, stack, queue). Use of pointers and basic principles of OOP.

5. Recursion, divide and conquer algorithms, sorting algorithms, searching for an exit from a labyrinth.

6. Parallelization with MPI I.

7. Parallelization with MPI II.

8. Python and C++ programming languages and their binding with Fortran programs.

Registration requirements -
Last update: Grof Zdeněk doc. Ing. Ph.D. (08.07.2021)

Good knowledge of working in a Windows or Linux operating system environment. Knowledge of programming in a higher programming language (preferably Fortran or C/C++) together with the knowledge how to compile, debug and run user-written programs will be an advantage. Knowledge of some programming technology such as structured and object programming will be also an advantage.

Course completion requirements -
Last update: Grof Zdeněk doc. Ing. Ph.D. (08.06.2021)

Development of programming projects that will be handed out during the seminars.

A final discussion on submitted projects.

Coursework assessment
Form Significance
Report from individual projects 100

 
VŠCHT Praha