It looks like I might be giving a course on Beginning .NET Development to non developers with IT backgrounds. I'm putting together my lectures and it's really hard. I want to make sure that I explain things so others can understand them.
Even though this is a .NET course (with a web-based slant), I really see it as a fundamental software development (crash) course. You can’t become a great developer without understanding what’s going on behind the scenes. If you have any thoughts or advice on any of the topics at hand (am I missing a topic? are they poorly ordered? do you have a great analogy for something?) or just some general thoughts or advice, I'd be grateful if you would pass them along.
Here's what I have in regards to topics for the course:
Principals in software engineering
- What are numbers (decimal, binary, hex)
- Memory & microprocessors (rundown on how code gets executed)
Into to OOP
- What's assembly language
- C and low level languages
- Beginning OOP (concepts relevant to OOP)
Microsoft .NET Platform
- Native executable vs intermediate language (history, how it works)
- Basic types & operators
- Pass by Value vs reference
- Using Visual Studio
Principals of web architecture
- What's the internet?
- State vs stateless
Fundamentals of ASP.NET
- What is ViewState?
- Configuration
Proficiency in C#
- Basic structure
- Flow control, ifs, fors, whiles, methods
- OOP (classes, interfaces, polymorphism)
- Generics*
- Lambda expressions & functional programming*
* These topics might have to be left for the next, more advanced course depending on time contraints