It's worth adding that since everything is an expression then a notebook can be set up where each cell has its own namespace though this is not the default. (not something you'd cover in a 2 week course though!) The Option
to the Cell
expression that can do this is CellContext
. For example, execute the following in a notebook to create a Cell with a unique context to that cell.
CellPrint@ExpressionCell[Defer[f = 9], "Input", CellContext -> Cell]