The key part of OP's post is the following line.
1st year (freshman) students who don't necessarily have any programming knowledge or know how the web works.
I've worked with similar students and I've learned a few lessons, hopefully these can help. Keeping that in mind, I have some other suggestions for Iain.
1. What is the Goal for the course? You seem to be a little all over the board. Ajax and JS programming, DOM and XML's? What exactly do you want to achieve by the end of the course? My concern here is that you'll scare off/overwhelm these students. You can't say "Go Look it up on W3" and expect students to understand concepts. Based on personal experience this just leads to misery on both sides I know similar students who can take a week to understand and use basic CSS. HTML can be done in one lesson, but make sure students can keep up. This has been the main priority when I teach students. I'll provide you with an ideal schedule soon.
2. Keep the Advanced Stuff, but not as early.
The power of building something and seeing that it works inspires students to work harder to build something that is better and cooler. If you start working with JQuery and DOM all of a sudden, it'll give power for advanced students to excel, but the students that I've mentioned earlier, will flounder.
3. Work with CMS's. Most of the time this will create at the very least an understanding of how CMS's operate and how they can manage them. This empowers them to do other things with a CMS. They then can apply their CSS knowledge to tweak and alter the CMS settings. Some Job's can ask for knowledge of WP knowledge and this could help them. Often times, students love working with it, but this also can help to build interest and develop skills.
4. That schedule has the right pace, but you are missing some components.
My Alternative (based off personal experience)
Lesson 0 - Course intro. What will we be learning, what won't we. What is a
web server, URL etc. How we talk to servers. Ping Commands. IPv4. Have them ping if possible. How Webpages are built. Take to a sample page and check out the Source Code. Homework:Find 2 Cool Sites. (Not Facebook (though its a good example of PHP) or Google)
Lesson 1 - HTML basics (head, body, title, img, table, a, lists, h1,
strong etc). Show them what exactly a Page looks like and how to build one. Show them that its really really simple. Just type, and it comes out. Explain the tagging concept. Show how h1 tags just tell the browser that this text is important and it makes it bigger. Explain how browsers get the HTML and display it. Have them build a REALLY simple site (I'm talking about a list of links using the tags mentioned above) Homework: If possible have them make a simple HTML file or assign reading with a little bit more advanced html.
Lesson 2 - CSS for styling and layout - fonts, webfonts, float etc. This will be confusing for students, so you need to show this clearly. Often time people (cough, me) feel the urge to use align="right" instead of CSS. That's because I never really learned proper CSS until a little while back. Follow the same rules of having them build something.
Lesson 3 - Intro to programming JS. Really simple though. There is way to much stuff to cover here. Just choose 4-8 commands and demo them. Have the students work with it while you are doing it as well. Then after the lesson show them where they can learn more.
Lesson 4 - PHP Basics. I love PHP, since its so simple. Explain the to them structure and examples of code ie echo, get, post, simple math. Server Side. Now is a good time to introduce forms. Do a login example where it POSTS and the PHP script echoes it
Lesson 5 - CMS. Show how easy it is to use and how it uses, HTML,PHP,CSS,JS,and DB's to work. Create new post manage users etc. Really simple overview. Have them mess around with it if possible. Show them how they can mess with JS and CSS to tweak the appearance.
Lesson 6 - Build Day. How do you integrate JS,CSS, and HTML? Show examples of how they beautifully work together. This is when you challenge students to do something cool with their skills. Show them how to do something like building a sample maze site or something similar. You can use CSS, JS, and HTML to do this. Have the students tell you how to build it, or better yet have them build it with you. Let them use whatever tools they want, but if they use a CMS make sure they can point to how they applied their newfound skills to modify/create something cool.
Lesson 7 - MySQL. Might be hard to do so create a sandbox and just show them how to connect and how to check a database. Assign further reading or homework if you feel like its required. Complete the login example from last lesson, except now it checks the database.Good time to mention SQL injection and Hacks
Lesson 8 - jQuery how to. HTML5 how to. Review some examples of how to use these common web tools. Go over jQuery Mobile if possible. Review how to build a Mobile Web App (Meta tags). This will be really brief (30-40 minutes) In the mean time cover AJAX examples.
Lesson 9 - Integrating and working with Templates + CMS Templates (Pretty Useful and Will Make the sites 10x as pretty)
Lesson 10 - Advanced Review. Now that you have the fundamentals , this would be a review lesson showing them where they can get more advanced details. W3Schools may not be the best place, but you can probably come up with a list of books and links. This is also where you ask students what THEY want to learn. <- This is huge for students. As much as I try, and as much exposure as I have with students of that age, I can't predict what they want to learn.
Ask them. In fact, Ask them early on. If you can assign a project and give them the tools to succeed. An idea: Design a site for themselves or something similar.
5. Include a fundamentals lesson. But this needs to be carefully done. It's not worth spending too much time on this. I will include some more details soon. Basically, you should not bore students with not so interesting HTTP fundamentals (yet). They don't really matter at that point. An idea way to do this is to assign it as reading. But do not hand it out as the first thing in the course. Nothing puts off students like a 50 page reading on TCP/IP fundamentals. They should know this, but it shouldn't be the first thing. Make sure students BUILD something very early on, so you don't lose them. This is REALLY important, and perhaps create a sort of system where you can make sure they are on track .
6.Notice How I Didn't Include some Advanced Segments
That's because students (especially freshmen), who aren't experienced, can't handle it. Break them in. I've seen this with students too many times to count:
Uh, CSS? What? Uh? Hmm....yeah no clue. I'll just ignore it and go back to using "p align".
This is why you need to break them in. They can be overwhelmed quickly. If you start of mentioning how TCP/IP communicates packets over ports using Secure Socket Layer that are sent to servers over fiber optic cables in flashes of light that your ISP then interprets and sends to a server which has a few open prots (made that up to sound confusing) they'll be overwhelmed. The formula is below:
Simplify and Build.
While they are building, you can explain what they are doing. This works great from my experience.
Good Luck and If you need any more advice, feel free to contact me.