Course detail
Language C++
FSI-SCPAcad. year: 2020/2021
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 language received a huge overhaul in 2011 with C++11, lifting it into the 21st century.
Supervisor
Department
Learning outcomes of the course unit
Students will obtain the basic skills and experiences of program writing and debugging using programming language C++.
Prerequisites
The basic knowledge and experience with programming language (C#, Java ) are expected.
Co-requisites
Not applicable.
Recommended optional programme components
Not applicable.
Recommended or required reading
Ivor Horton, Peter Van Weert
Beginning C++17: From Novice to Professional
Apress 2018
ISBN 1484233658 (EN)
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)
Bjarne Stroustrup
A Tour of C++ [2nd ed.]
C++ In-Depth Series
Addison-Wesley 2018
ISBN 978-0-13-499783-4
(EN)
Miroslav Virius
Programovací jazyk C++ (1.-3. díl)
ČVUT 2016
ISBN 9788001059616 (CS)
George Em Karniadakis and Robert M. Kirby II
Parallel Scientific Computing in C++ and MPI
Cambridge University Press 2003
ISBN 9780511812583
(EN)
Yair Shapira
Mathematical Objects in C++: Computational Tools in A Unified Object-Oriented Approach
Chapman & Hall 2009
ISBN 9781439811474 (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)
Jacek Galowicz
C++17 STL Cookbook
Packt Publishing 2017
ISBN 978-1-78712-049-5 (EN)
William H. Press
Numerical Recipes 3rd Edition: The Art of Scientific Computing
Cambridge University Press 2007
ISBN10: 0521880688 (EN)
Planned learning activities and teaching methods
The course is taught through lectures explaining the basic principles and theory of the discipline. Exercises are focused on practical topics presented in lectures.
Assesment methods and criteria linked to learning outcomes
Graded course-unit credit is awarded on the following conditions: 30% on weekly programming assignments, 70% on the individual project. Participation in the lessons may be reflected in the final mark.
Language of instruction
Czech
Work placements
Not applicable.
Aims
The aim of this course is to get up-to-date on modern programming techniques, up to and including C++17. There is a wealth of numerical libraries for scientific computing in C++. Students will be able to develop modern scientific applications.
Specification of controlled education, way of implementation and compensation for absences
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.
Type of course unit
Lecture
13 hours, optionally
Teacher / Lecturer
Syllabus
1. Basic parts of modern C++
2. Fundamental types of data
3. Arrays and Loops
4. Pointers and References
5. Defining Functions
6. Function Templates
7. Preprocessing directives
8. Classes and object-oriented Programming
9. Operator Overloading
10. Inheritance, polymorphism
11. Class templates
12. STL containers and algorithms
13. Scientific computing libraries
Computer-assisted exercise
26 hours, compulsory
Teacher / Lecturer
Syllabus
1. Visual studio 2019
2. MSBuild, CMake, vcpkg
3. -8. Small projects
9. C++/CLI
10. Interoperability (Matlab, .NET)
11. Armadillo, Eigen, MKL
12. Boost.Numeric.Odeint
13. Accreditation
eLearning
eLearning: currently opened course