Unit 9 Study Guide
    -  Explain how expressions are evaluated based on precedence,
    associativity, and operand evaluation order. 
 
    -  Evaluate expressions correctly given rules for precedence,
    associativity, and operand evaluation order. 
 
    -  Define side effects and referential transparency, and explain their
    relationship. 
 
    -  State the advantages and disadvantages of operator overloading. 
 
    -  Explain the dangers of type conversions. 
 
    -  Explain what short-circuit operators are and give an example of how
    they are useful. 
 
    -  List common binary and unary assignment operators, explain how they
    work, and use them properly to construct expressions. 
 
    -  Correctly evaluate expressions containing various common operators.
    
 
    -  Explain the form of control structures and basic design features of
    good control structures. 
 
    -  Explain how statement level control can be achieved using only
    selection and iteration constructs. 
 
    -  Discuss the design issues for two-way and multiple selection control
    structures and provide illustrative examples from various languages. 
 
    -  Explain the difference between counter controlled and logically
    controlled loops as well as the design issues with each kind of loop. 
 
    -  Discuss the various looping mechanisms available in popular languages.
    
 
    -  Explain the issues in the controversy over the 
goto
    statement and provide a rationale for the general modern consensus on the
    issue.  
    -  Explain Dijkstra’s guarded command constructs and why they are
    important.