l(define x 100)
(define bar (lambda (x) (foo 1 2)))
(define foo (lambda (y z)
  (let ((w (+ y 1)))
    (let ((y w))
      (+ x y)))))

 

lUsing lexical scoping, (bar 5) 103
lUsing dynamic scoping, (bar 5) 4
The call stack is followed to find the binding of the variables

The mistake I had on the original slides were simply a misnaming of the formal arguments to foo.  Now that these are fixed, it is clear that the question is how the x inside foo is resolved: always to the statically enclosing (global declaration, in this case) or to the most recently bound x during execution (the parameter to bar).