I'm glad you like the tutorials. More are on the way
I had a motherboard go AWOL on me and while I'm waiting on a replacement computer I'm using my father's old eMachine (yes, your sympathy is appreciated). But I still anticipate having the quiz program finished by the end of this weekend, and I'll make it available for download. To go along with it, I'll be throwing up a webpage reviewing materials covered in the first five tutorials, and some sample program assignment to reinforce those concepts. So stay tuned...
You understand correctly that the .NET Framework must be installed on target machines in order for them to run programs written in any .NET programming language (C#.NET, C++.NET, VB.NET, etc.).
I should also state, however, that programming tools for authoring .NET programs will typically have an option -- when you are building an installation -- for your setup program to check the target computer for the .NET Framework and download and install it if it is not found.
Some people naysay the .NET Framework because it is required, but it's really no different than VB6 requiring the VB6 runtime DLL, and look how successful VB6 was. A tremendous advantage of the .NET Framework is that it's authored by some of the most knowledgeable, experienced programmers anywhere, and they're able to draw upon a wealth of expertise to give us a very robust, complete group of assemblies containing just about any functionality you could ever imagine needing for your coding.
The .NET Framework is becoming ubiquitous. Most end-users will already have it installed, and if not it's easily acquired. True, native and unmanaged code, such as that produced by non-.NET C++, is independent of the .NET Framework, but .NET makes the programmer's job much easier in many situations.
If you are learning C# as a first language, you shouldn't feel any serious misgivings. Although professional developers have some concerns related to .NET's long-term longevity and free accessibility, I don't think they would argue that C# is a great choice.