Oktober | 16. 10. 2018: Lecture User Interfaces and Usability - A brief history: command line, menues, graphical user interfaces
- Usability: what is it, how to measure it, design goals, design elements, walk through
| 16. 10. 2018: Exercise Working on Exercises 1 and 2 |
| 23. 10. 2018: Lecture From C to C++: A First Introduction - Why C++?
- Comparison of C and C++?
- Object-oriented techniques in C: pseudo-virtual functions, function pointers, and attributes as structs
- Styles and paradigms in C++
- Technical terms and concepts: class, sub class, super class, attribute, operators, inheritance, messages, polymorphism
| 23. 10. 2018: Exercise Working on Exercises 2a and 2b |
| 30. 10. 2018: Lecture Basic Programming Techniques in C++ - C++: types, literals, declaration, and initialization
- The C++ memory structure: stack, free store, static data and code segment
- C++-classes: from struct to class, objects, member, this-pointer, public and private, constructor, new, initialization list, single inheritance
- C++ language features
- C++ functions, function overloading, default arguments
| 30. 10. 2018: Exercise Working on Exercises 2c and 2d |
November | 6. 11. 2018: Lecture The Design of a Graphical User Interface - The X-windows system: hardware, drivers, X-server, X-clients, window managers, mouse, and keyboard
- Graphical elements: windows, and manipulations, such as zooming, resizing, and iconifying
- Events in window systems
| 6. 11. 2018: Exercise Working on Exercises 2e to 4 |
| 13. 11. 2018: Lecture Graphical Systems and Introduction into Qt - The design of the Qt library
- Events in Qt: Qt’s signals & slots concept
- First steps in Qt: the tutorials
- Qt’s implementation of signals & slots: the meta object compiler (MOC)
| 13. 11. 2018: Exercise Working on Exercises 5 and 6 |
| 20. 11. 2018: Lecture More Complex Widgets, Colors, and Proper Signatures - How MOC connects signal/slot names with methods
- How to adapt different signatures in signals & slots
- Colors in Qt
- Timer objects in Qt
| 20. 11. 2018: Exercise Working on Exercises 7 and 8 |
| 27. 11. 2018: Lecture Dialogs, Applications and The Make Tool - Dialogs: how to implement, their internals, how to connect them with the application
- The main application window: the menue bar, tool bars, the central widget, the status bar, and action objects
- The Make Tool
| 27. 11. 2018: Exercise Working on Exercises 8-10 |
Dezember | 4. 12. 2018: Lecture Advanced Design and Implementation Techniques Part I - Using declarations/directives
- Templates in C++
- Namespaces in C++
- Basics left overs: enumerations, const class members, input and output, references, and functions (call by value, call by reference, call by const-reference)
- Memory leaks
- Classes: destructor, constructors from one \ or more arguments, default constructor, copy constructor, copy assignment
| 4. 12. 2018: Exercise Working on Exercises 10a and 10b |
| 11. 12. 2018: Lecture Advanced Design and Implementation Techniques Part II - Operator overloading
- Abstract classes with protected/pure virtual functions
Error Handling and the Standard Template Library - Exceptions mittels try and catch
- Standard Template Library
- Generic programming and basic model: algorithms, containers, and iterators
- Predicates: functions, functions objects, lambdas, and inline code
- Automatic and range-based loops
| 11. 12. 2018: Exercise Working on Exercises 10c and 10d |
| 18. 12. 2018: Lecture Error Handling and the Standard Template Library - Exceptions mittels try and catch
- Standard Template Library
- Generic programming and basic model: algorithms, containers, and iterators
- Predicates: functions, functions objects, lambdas, and inline code
- Automatic and range-based loops
| 18. 12. 2018: Exercise Working on Exercises 10e to 10g |
Januar | | 8. 1. 2019: Exercise Working on the final programming project: developing and testing various concepts |
| | 15. 1. 2019: Exercise Working on the final programming project: design and implementation of low-level widgets |
| | 22. 1. 2019: Exercise Working on the final programming project: bringing everything together |
| 29. 1. 2019: Lecture Final Project Presentation | 29. 1. 2019: Exercise Preparing for the project demonstration |