1. Students are instructed to complete a lab assignment involving template functions and classes. They are to generalize an existing trapezoidal rule function to work with any user-defined function, and generalize a matrix class to work with any arithmetic type as a template parameter.
2. For the trapezoidal rule function, students are asked to add a fourth argument to pass a function object, then make the function a template to accept any function type. They must test it by defining object functions for unit circle, line, trigonometric, and bilinear functions.
3. For the matrix class, students are to make it a template class that accepts any number type by modifying the class declaration and implementation files. They