As an educator I have some interest in developing students' knowledge and skills in software development. The most able students will simply go ahead and produce software, using whatever they need. Other students may need to be encouraged, and given a protected environment in which to work. Their progress will probably be by a large number of small steps, with encouragement, rather than a couple of large steps, which will most probably result in failure, and discouragement, and perhaps completely turning off anything to do with computers.
Some of us may be happy to turn students off, but generally this seems a negative approach. The intention of a good educator should surely be to enable students, to encourage them to find things out for themselves, and to give them sufficient confidence to become largely self sufficient.
There are also judgements to be made about what knowledge and experience students should be given. The recently updated ACM syllabuses have identified that different types of students have different needs. No longer can it be assumed that all students need to have knowledge of hardware and software, and that all students must be capable of writing a compiler, or an application program, or constructing a computer. There are now business students who are studying computer subjects alongside mathematics and computer software. Either these students are very capable, since they are studying from a wide area, or they are only obtaining a very shallow knowledge in each of the subjects which they study. This seems the most likely. Software professionals may not wish to see such people be trained, but the alternative, which is that they are not trained, is probably worse. Obviously there are situations in which some understanding is worse than no understanding, but this is probably not the case for most students studying business and computing.
It is unreasonable to expect that students who have limited knowledge and experience should be given exposure to large scale problems as their earliest software experience. There is a need for universities and colleges to provide protected environments in which students can learn and practice.
It is also unrealistic to assume that software knowledge only resides in knowledge of computer languages, such as CeePlusPlus or the JavaLanguage, or knowledge of computer packages. There is also a need for an understanding of SoftwareEngineering, which includes topics such as: