Where do you get a domain? You ‘rent’ domain names from domain name providers. This can be coupled with your website hosting, or it may be separate. In either case, you rent or lease your domain name either yearly or for five years. The cost of the domain depends on the top level domain as well as other mysterious things – some providers charge more or less to register domain names. Typically, you can expect to pay $12-$15 per year for a domain name.
If this is your first time buying a domain, I recommend that you use the same provider as your hosting provider - see Buying Hosting.
You do not pay for subdomains. You can create as many subdomains as you want on your mid-level domain.
Buying domain names can get expensive if you buy new ones for everything you do. Subdomains are free, so it is often better to just subdomain off your main domain.
Bluehost (formerly GoDaddy) is the most common domain name provider; however, many people opt to purchase their domain names from their hosting provider. One benefit to this is that you can usually purchase it as a ‘bundle’ and your hosting provider will automatically setup the necessary configuration to make your domain work.
Reclaim Hosting is a name and hosting service that is specifically designed for students and educators. I recommend them because they have excellent customer service which is really helpful when you are first learning.