Re: Proper programming language
Good points. This is one reason we went back from Java (still used by us for teaching OO) to C for our initial programming course. We find the students learn to understand what is going on better. Having to do your own malloc and free can be a pain, but learning what memory management actually is about is useful.
More importantly, I think it is important to teach the students programming rather than teaching them a programming language. The first is a way to think about solving problems, the second is a tool to achieve a result. You need to learn both of course. In terms of programming languages, the most important skill is to learn how to teach yourself a new one.
Another point is that there are two reasons to learn a new programming language:
1) because you want to work on a project written in that language
2) because you want to learn new ways of thinking about programming
If you have learnt to program in Pascal, learning C does not give you a fundamentally different way of approaching programming problems, but Haskell or Erlang will. A thoughtful discussion on this is found here.