CS I CONSULTATION TIME, FINAL EXAM TIME AND STUDY TOPICS Consultation: Monday, Dec 8, 12:00-3:00pm, MSB 356 Final Exam: Tuesday, Dec 9, 10:15am - 12:30pm LCI 101 TOPICS (not an exhaustive list) * classes - purpose, advantages over structures, public/private members, inline/outside function defintion, mutators/accessors, constructors, constructor overloading and default constructor, friend functions, static constants * pointers - definition and usage, pointers and constants, array names and pointers, null/loose pointer, pointers to objects (arrow operator), pointer arithmetic, passing pointers by value and by reference, returning pointers * dynamic memory allocation - static/dynamic/automatic variables, allocation for basic types, for arrays, for objects, allocation of objects with dynamic members: the big three (destructor, copy constructor, assignment overloading); memory leak problem for assignement overloading: protection against self-assingment, stackability * vectors - advantages over (raw) arrays, declaring, adding/removing element, comparing/assigning vectors, passing by value/reference returning, iterators, iterator arithmetic, using interators to insert, erase elements, sort vector * multidimensional arrays: indexing, using with nested loops, passing to functions; vectors of vectors: defining, initializing, accessing; the concept of a jagged array * recursion - purpose, program stack, function frame, difference between function invocation and function definition, stopping case/infinite recursion, recursion vs. iteration * namespaces - purpose, name collision, defining namespace, defining constructs (functions) outside of namespace; advantages/disadvantages of the three styles of using names of a namespace; importing names from a namespace; std (standard) namespace * program diagrams - purpose, structural vs. behavior diagrams, class diagrams (multiplicity, aggregation lines, reference lines, member visibility), object diagrams (difference from class diagrams), use case diagrams (actors, system boundary, use case), interaction/sequence diagrams (processes and messages, denoting end of object lifetime)