A module is a logical collection of code within an Assembly. You can have multiple modules inside an Assembly, and each module can be written in different .NET languages (VS, as far as I'm aware, doesn't support creation of multi-module assemblies).
Assemblies contain modules.
Modules contain classes.
Classes contain functions.
Yes you can access assemblies, modules, classes, functions, properties, fields etc all via reflection at runtime.
A module is sub-assembly (satellite
assembly).
I really don't agree with that. Any chance you pass a link that backs that up?