Advanced programming in C++

Faculteit Science and Engineering
Jaar 2021/22
Vakcode WBCS035-05
Vaknaam Advanced programming in C++
Niveau(s) bachelor
Voertaal Engels
Periode semester II a
ECTS 5
Rooster rooster.rug.nl

Uitgebreide vaknaam Advanced programming in C++
Leerdoelen After successfully completing this part of the C++ course you are able to:
1) design and use function templates as well as class templates;
2) explain the template parameter deduction process;
3) explain why Substitution Failure Is Not An Error (SFINAE); and to explain how this principle affects template selections;
4) define (partial) specializations for class templates; and to explain why function templates do not support partial specializations;
5) design and implement variadic templates;
6) use tuples to return structured types from functions, and use them to define differently typed variables in the initialization sections of for-, if-, and switch statements;
7) define statically polymorphic classes, preventing the software from having to use dynamic or late binding;
8) use template meta programming to convert values to types, to define the organization of classes based on its template parameters, and to use compile-time selection and iteration without creatng any run-time executed code;
9) use template concepts to specify the requirements of template type arguments;
10) use precompiled headers and/or modules to reduce compilation times and to avoid the use of include guards in header files;
11) use transactional memory to avoid having to protect statements executed in multiple threads by mutexes;
12) use code generators instead of designing lexical scanners and syntax parsers ‘by hand’.
Omschrijving Continuing after Programming in C++ participants are at the level where they are familiar with all standard and predefined elements of the C++ programming language and are able to design understandable and maintainable large-scale C++ programs. Advanced Programming in C++ continues from there, and strongly focuses on compiler performed code generation.
Uren per week
Onderwijsvorm Hoorcollege (LC), Opdracht (ASM), Practisch werk (PRC)
Toetsvorm Opdracht (AST), Practisch werk (PR), Presentatie (P)
Vaksoort bachelor
Coördinator J. Bokma
Docent(en) J. Bokma ,dr. F.B. Brokken
Entreevoorwaarden Programming in C++ (WBCS034-05) or comparable
Opmerkingen Enrollment via ProgRESS.WWW
Students who want to register for this C++ programming course are strongly advised to study the information about this course on http://www.icce.rug.nl/edu. It is also highly appreciated if you register for this course via the registration page that you'll find at http://www.icce.rug.nl: it allows you to order the books that are (intensively) used during this course and it provides the lecturers with information about your study, as well as (optionally) some additional contact info.

--
Contrary to other CS bachelor courses, this course does NOT have limited enrollment for non-CS students.
Opgenomen in
Opleiding Jaar Periode Type
BSc Artificial Intelligence  (Keuzevakken) 3 semester II a keuze
BSc Computing Science  (Optional electives for CS students) 3 semester II a keuze
BSc Courses for Exchange Students: AI - Computing Science - Mathematics - semester II a