Well, if your course is based on Dreamweaver, QUIT! Dreamweaver will NEVER teach you how to code (and generates the crappiest code you can think off)
Joomla is a CMS, you are correct. It is mostly used by coders who don't want to code either, or by amateurs. It is a very heavy library of functions, images etc (26Mb in size). A good coder does NOT use these open source libraries.
Apache is, as you say, a web server: it controls the pieces of code the developer has uploaded to the server's machine. It does not concern you (learn it if you want to set-up a web hosting company - and have a few 100's of 1000's to do so, in which case you will just recruit a proper programmer, specialised in Apache)
Php IS the main language that runs on the server, "making" the pages.
So, How do they work "together" ?
Dreamweaver builds a website using "drag and drop" facility, and generates some code that should be a webpage. You upload it to the server (through DW or an FTP program), then you view that page on your browsers.
Then, you write pieces of code in Php to add a little functionality to your page.
And Dreamweaver screews it
And the page does things you did not want.
DW and Php? They work very badly together! (And since joomla is written mostly in Php, that makes it even worse)
First step?
Quit DW: it will take you longuer to learn DW than to learn HTML, CSS and Php together!
Use Notepad++ for the code and Photoshop for your images.
Learn HTML first. Make a simple page with a few texts and images.
Then a bit of CSS: add formatting to your page.
Then a bit of Javascript: add some "local" functionality (ie something that moves)
Then Php (the bulk of your learning process): now the big part. This is what will allow you to make fully DYNAMIC websites (with a contents that varies according to circumstances)
Then mysql: you learn how to build and use a database, ie, for your members usernames and passwords.
Finally, understand AJAX: this little feature will give you the ability to make FULLY INTERACTIVE websites!
You will then be on your way to become a "pro" !
Good luck
Get some examples of code as free scripts at http://www.web2coders.com