GRADUATE LABORATORY II
(a.k.a PROGRAMMING SEMINAR/OBJECT-ORIENTED PROGRAMMING IN C++)
-
SESSION 1 - Getting Started in the CIS Compute Environment
- Introductions
- Installation of environment and IDE (Qt Creator)
- A quick "Hello World"
- Input/output streams
- Development of a "Point" and "Line" class
- Data types
- Classes
- Public and private class elements
- Class members (decoration)
- Class member function definition and implementation
- Passing mechanisms
- Value
- Reference
- const modifier
- Parameters
- Functions
- Exercise description (Quadratic formula)
- Constructor(s)
- Getters (Accessors) / Setters (Mutators)
- Roots()
- Eval(x)
- Print()
- What is a templated data type?
- Complex object type
- std::complex<T>
- The <vector> class
- .push_back()
- .front()
- .back()
- Template functions
- Examples
- PrintVector
- Divide
- Max
- Explicit declaration of template types with <> list
- Implicit declaration of template types
- Lambda functions
- Examples
- PrintVector
- Divide
- Max
- Namespaces
- Templated classes
- Passing functions to functions
- The <functional> class
- std::function<type(type)>
- Example: Integral class
- Passing member functions
- Binding member functions to an object
- Using lambda functions
- CMake (additions)
- target_include_directories()
- Exercise description (Blackbody and Integral Classes)
- Blackbody class
- Constructor(s)
- Getters/setters
- Exitance
- Vector of exitances
- Radiance
- Vector of radiances
- Peak wavelength
- Integral class
- Constructor(s)
- Function only
- Data only
- Function with limits
- Function with limits and number of samples
- Getters/setters
- Limits [a, b]
- Number of samples/points
- Function to integrate
- Trapezoidal rule
- Other approaches
- Simpson's rule
- Monte Carlo
- A main() function to demonstrate it all is working
SESSION 2 - Developing an Object-Oriented Project
SESSION 3 - Templated Data Types, Templated Functions, and Lambda Functions
SESSION 4 - Namespaces, Templated Classes, and Passing Functions
SESSION 5 - TBD
SESSION 6 - TBD
SESSION 7 - TBD
SESSION 8 - TBD
SESSION 9 - TBD
SESSION 10 - TBD
SESSION 11 - TBD
SESSION 12 - TBD
SESSION 13 - TBD
SESSION 14 - TBD