Course detail

Language C++

FSI-SCPAcad. year: 2024/2025

C++ is a modern programming language, with a focus on high performance. It is widely being used in very different contexts and has excellent support in both tools and libraries. The course provides the basics of C ++ and an introduction to object-oriented programming. Introduces students to classes, objects, the concept of heredity, etc.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Entry knowledge

The basic knowledge and experience with programming language (C#, Java ) are expected.

Rules for evaluation and completion of the course

The evaluation of the course consists of points for the semestral project (presentation of a Java program) (70 %) and points for unassisted homework (30 %) . The condition for obtaining course credits is to obtain at least 50% points from the semestral project.
Attendance at lectures is recommended, attendance at seminars is required. Lessons are planned according to the week schedules. Absence from lessons may be compensated by the agreement with the teacher supervising the seminars.

Aims

The aim of this course is to get up-to-date on modern programming techniques, up to and including C++19. There is a wealth of numerical libraries for scientific computing in C++. Students will be able to develop modern scientific applications.
Students will obtain the basic skills and experiences of program writing and debugging using programming language C++.

Study aids

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Ivor Horton, Peter Van Weert Beginning C++17: From Novice to Professional Apress 2018 ISBN 1484233658 (EN)
Bjarne Stroustrup A Tour of C++ [2nd ed.] C++ In-Depth Series Addison-Wesley 2018 ISBN 978-0-13-499783-4 (EN)
George Em Karniadakis and Robert M. Kirby II Parallel Scientific Computing in C++ and MPI Cambridge University Press 2003 ISBN 9780511812583 (EN)
Jacek Galowicz C++17 STL Cookbook Packt Publishing 2017 ISBN 978-1-78712-049-5 (EN)
Miroslav Virius Programování v C++ od základů k profesionálnímu použití GRADA 2018 ISBN 978-80-271-0502-1 (CS)
William H. Press Numerical Recipes 3rd Edition: The Art of Scientific Computing Cambridge University Press 2007 ISBN10: 0521880688 (EN)
Yair Shapira Mathematical Objects in C++: Computational Tools in A Unified Object-Oriented Approach Chapman & Hall 2009 ISBN 9781439811474 (EN)

Recommended reading

Joe Pitt-Francis, Jonathan Whiteley Guide to Scientific Computing in C++ (2nd edition) Springer 2017 ISBN 978-3-319-73132-2 (EN)
Mikael Olsson C++17 Quick Syntax Reference Apress 2018 ISBN 978-1-4842-3599-7 (EN)
Miroslav Virius Programovací jazyk C++ (1.-3. díl) ČVUT 2016 ISBN 9788001059616 (CS)

Type of course unit

 

Lecture

13 hod., optionally

Teacher / Lecturer

Syllabus

1. Introduction to the C ++ programming language
2. Fundamental data types
3. Arrays and loops, pointers and references
4. Classes, objects, inheritance
5. Polymorphism, encapsulation
6. Methods, overriding, abstract and virtual methods
7. Basics of input, output, data streams
8. Data files
9. Exceptions
10. Templates
11. STL containers and algorithms
12. Libraries for scientific and technical calculations
13. Lecturer's reserve

Computer-assisted exercise

26 hod., compulsory

Teacher / Lecturer

Syllabus

The PC labs are focused on practical usage of the topics discussed in lectures, see Syllabus. Emphasis is placed on the ability to work independently, ie to create a simple application, often within individual tasks.
Students will get acquainted with the tools for the C ++ programming language:
Visual studio 2019, MSBuild, CMake, vcpkg, Armadillo, Eigen, MKL atd.