1. Official Python Documentation, The Python Language Reference:
Section 7.4. The del statement: This section explicitly defines the syntax and semantics of the del statement for removing name bindings. It states, "Deletion of a name removes the binding of that name from the local or global namespace...". The syntax shown includes del targetlist, where a target can be a simple name like coursename.
URL: https://docs.python.org/3/reference/simplestmts.html#the-del-statement
2. Official Python Documentation, The Python Standard Library:
Built-in Functions, globals(): The documentation for globals() states, "Return a dictionary representing the current global symbol table. This is always the dictionary of the current module...". Modifying this returned dictionary, such as by deleting a key, directly modifies the global namespace.
URL: https://docs.python.org/3/library/functions.html#globals
3. MIT OpenCourseWare, 6.0001 Introduction to Computer Science and Programming in Python:
Lecture 5 Notes: In discussions on scopes and namespaces, the course materials explain that variables exist within specific namespaces (local, global, etc.). The del statement is introduced as the mechanism to remove a name from a namespace. The concept of the global namespace being accessible via globals() aligns with using dictionary operations on its return value.
Reference: MIT OCW 6.0001, Fall 2016, Lecture 5: Tuples, Lists, Aliasing, Mutability, Cloning. (The principles of namespaces and variable management are foundational in this lecture).