Here’s a tentative outline for the ColdFusion (Advanced Server-Side Languages) course I’ll be teaching. Unfortunately, the state of intellectual property being what it is, I probably won’t ever get to go into any more detail than this. But, it’s a solid start, and you can see that it’s more comprehensive than you’d expect.
- Course Introduction
- Revision Control and SCM
- Test-Driven Development
- ColdFusion Methodology
- Introduction to CFML
- ColdFusion Debugging
- ColdFusion Queries
- ColdFusion Persistent Scopes
- ColdFusion Functions
- ColdFusion Objects
- ColdFusion Exception Handling
- ColdFusion Media Generation: Images, PDF, FlashPaper
- ColdFusion and XML
- ColdFusion HTTP and Remote Data
- ColdFusion AJAX
- ColdFusion Caching
- ColdFusion Forms and Validation
- ColdFusion Threads
- ColdFusion Frameworks
- ColdFusion Gateways
You may notice that there are a number of lectures at the beginning that aren’t CF-centric. I’d really like to get the students into team-oriented habits. The Revision Control and Test-Driven Development lectures are Day 1, then all deliverables/assignments for the class will be test code first, then implementation second, both submitted for grading by committing them to Git source control. Labs will be short-term iterative development (not quite Agile, but close enough), mostly done via pair programming and full-class planning.
The projects we will be doing in Lab will be as real-world as I can make them. We’ll probably do simpler things like shopping carts, wikis, and community sites for the smaller classes, and scale up to SOHO ERP and mid-size (40-60 table) projects for larger classes.
Long story short, I’m trying to create a classroom environment as close to an actual web development shop as I can. I really want these students finishing the course with the appropriate skills to be dropped into a professional team and able to hit the ground running.
So my question to you is this: if you had one thing that students would absolutely need to have coming out of this course, what would it be? (Maybe it’s on the list above, maybe it’s not.)