CS I FINAL EXAM STUDY TOPICS Final Exam Date/Time: Thursday, May 3, 10:15am-12:30pm in MSB 228 Exam week consulation: Wednesday, May 2, 10:45am-12:30pm in MSB 356 TOPICS (by no means exhaustive list) * classes - advantages over structures, public/private members, mutators/accessors, constructors, friend functions * pointers - definition and usage, pointers and constants, array names and pointers, null/loose pointer, pointers to objects * dynamic memory allocation - for basic types, for arrays, for objects, allocation of objects with dynamic members: the big three (destructor, copy constructor, assignment overloading) * vectors - advantages over (raw) arrays, declaring, adding/removing element, comparing/assigning vectors, passing by value/reference returning, iterators * exception handling - try/catch, exception types, default exceptions, catching outside functions, standard exceptions * parallel programming - advantages over serial programming, need for special vector implementation (concurrent vector), Microsoft's parallel patterns library and parallel_for, Lambda expressions, prefix sum algorithm * program diagrams - purpose, structural vs. behavior diagrams, class diagrams (multiplicity, aggregation), object diagrams, use case diagram (actors, system boundary, use cases) interaction/sequence diagrams - processes and messages * recursion - purpose, program stack, function frame, stopping case/infinite recursion, recursion vs. iteration * bitwise operators, - purpose, octal/decimal/hex/binary data format, conversion between formats, input/output of data in different formats, bitwise AND/OR/NOT/XOR