Teaching high school kids ASP.NET programming

During the 2011 Microsoft MVP Global Summit, I have been talking to people about teaching kids ASP.NET programming. I want to work with volunteer organizations to provide kids volunteer opportunities while learning technical skills that can be applied elsewhere. The goal is to teach motivated kids enough skill to be productive with no more than 6 hours of instruction. Based on my prior teaching experience of college extension courses and involvement with high school math and science competitions, I think this is quite doable with classic ASP but a challenge with ASP.NET. I don’t want to use ASP because it does not provide a good path into the future. After some considerations, I think this is possible with ASP.NET and here are my thoughts:

· Create a framework within ASP.NET for kids programming.

· Use existing editor. No extra compiler and intelligence work needed.

· Using a subset of C# like a scripting language. Teaches data type, expression, statements, if/for/while/switch blocks and functions. Use existing classes but no class creation and OOP.

· Linear rendering model. No complicated life cycle.

· Bare-metal html with some MVC style helpers for widget creation; ASP.NET control is optional. I want to teach kids to understand something and avoid black boxes as much as possible.

· Use SQL for CRUD with a helper class. Again, I want to teach understanding rather than black boxes.

· Provide a template to encourage clean separation of concern.

· Provide a conversion utility to convert the code that uses template to ASP.NET MVC. This will allow kids with AP Computer Science knowledge to step up to ASP.NET MVC.

Let me know if you have thoughts or can help.

6 Comments

  • Seriously, I would consider teaching them MVC first. MVC is much less confusing to people who don't know the difference between ASP.NET and MVC.

  • John, The reason I don't go for full MVC is there is impossible to teach them in 6 hours. They would have to learn OO to write presenters and models. Things like routing and model-binding are big black boxes and are not easy to teach. So that is a step-up scenario. In the first course, I want to stay with the bare-metal so they learn with understanding.

  • Just a thought, but it seems like you can skip routing and model binding. Just have them use the default route format and by default MVC does the FormCollection thing instead of model binding... They can also do procedural code in the controller actions, complete with database access...

  • Calvin, that is an interesting idea. That would allow me to avoid the routing and model binding discussion. I still have to use attributes to indicate get/post methods, but that would be OK since I have to discuss the get/post methods in HTTP.

  • I think it's a good idea to create simplified framework for highschool kids.

    I've started learn programming at 15-years old and it was Pascal. Now the world is different and kids should learn to develop for the web.

    Could be WebMatrix such product in a future?

  • I think this is good. Kids' feedback is welcome :)

Comments have been disabled for this content.