Difference between revisions of "COMP345 Fall 2020 Midterm coverage"

From Dr. Joey Paquet Web Site
Jump to: navigation, search
Line 1: Line 1:
 
* Notes:  
 
* Notes:  
 
**The following is the list of topics that are included in the midterm examination.
 
**The following is the list of topics that are included in the midterm examination.
**In general, you are responsible for all the material presented in slide set 0 to 5, along with the lab examples pertaining to them (i.e. lab 1 to lab 5)  
+
**In general, you are responsible for all the material presented in slide set 0 to 7, along with the lab examples pertaining to them (i.e. lab 1 to lab 7)  
 
**Some specific topics will not be part of the examination. These are denoted with an "X" below.   
 
**Some specific topics will not be part of the examination. These are denoted with an "X" below.   
  
Line 74: Line 74:
 
***memory allocation model
 
***memory allocation model
 
***passing as parameters
 
***passing as parameters
**array decay into a pointer (X)
+
**array decay into a pointer  
 
**static array classes
 
**static array classes
**STL containers (X)
+
**STL containers  
***declaration, usage (X)
+
***declaration, usage  
***iterators (X)
+
***iterators  
 +
 
 +
*Slide Set 6: MVC and observer
 +
** MVC design (roles of Model, View Controller components)
 +
** Role of Observer pattern
 +
** MVC example in lab
 +
 
 +
*Slide Set 7: polymorphism
 +
**Polymorphism: concept vs Object-oriented programming and its implementation in C++
 +
**Virtual methods
 +
**Pure virtual methods
 +
**Abstract classes
 +
**Virtual destructors
 +
**vs. Java interfaces
 +
**Value semantics and object slicing
 +
**Reference semantics and polymorphism
 +
**Function pointers
 +
**Virtual function tables

Revision as of 13:34, 24 October 2021

  • Notes:
    • The following is the list of topics that are included in the midterm examination.
    • In general, you are responsible for all the material presented in slide set 0 to 7, along with the lab examples pertaining to them (i.e. lab 1 to lab 7)
    • Some specific topics will not be part of the examination. These are denoted with an "X" below.
  • Slide Set 0
    • none
  • Slide Set 1:
    • program structure
    • compilation unit
    • header/cpp files
    • includes
    • redundant includes
    • namespaces
  • Slide Set 2:
    • structs and classes as data types
    • variable initialization
    • implicit/explicit type coercion
      • static_cast, dynamic_cast
      • upcasting/downcasting
    • conversion sequences
    • pointers
    • pointer artithmetic
    • pointers and const
    • void/wild/dangling/null pointers
      • stack/heap/new/delete
      • arithmetics
    • references
    • smart pointers (X)
    • parameter passing
    • strings
  • Slide Set 3:
    • input/output streams
    • cin/cout
    • files stream declarations, open/close, usage
    • << and >> operator overloading
    • MFC serialization (X)
  • Slide Set 4:
    • classes vs. structs
    • struct usage
    • class declarations (.h and .cpp files)
    • declaring/using objects
      • with or without pointers
    • inline functions/methods
    • const specifier
    • static specifier
    • friends
    • constructors/destructors
      • declaration/implementation
      • initialization list
      • implicit/explicit constructor calls
      • call chain
    • inheritance
      • overriding/overloading
      • vs. constructor/destructor implementation
      • assignment operator
      • copy constructor
      • shallow/deep copy
    • multiple inheritance
    • virtual inheritance
    • diamond problem
  • Slide Set 5:
    • statically allocated arrays (one or multidimensional)
      • declaration, usage
      • memory allocation model
      • passing as parameters
    • dynamically allocated arrays (one-dimensional) (multidimensional - X)
      • declaration, usage
      • memory allocation model
      • passing as parameters
    • array decay into a pointer
    • static array classes
    • STL containers
      • declaration, usage
      • iterators
  • Slide Set 6: MVC and observer
    • MVC design (roles of Model, View Controller components)
    • Role of Observer pattern
    • MVC example in lab
  • Slide Set 7: polymorphism
    • Polymorphism: concept vs Object-oriented programming and its implementation in C++
    • Virtual methods
    • Pure virtual methods
    • Abstract classes
    • Virtual destructors
    • vs. Java interfaces
    • Value semantics and object slicing
    • Reference semantics and polymorphism
    • Function pointers
    • Virtual function tables