Here are a few things I have learned about programming computers, in no particular order. I didn’t invent any of them, and I don’t always follow them. But since nobody seems to know very much about making good software, it makes sense to try to distill a little wisdom when possible.
Computer science as a field requires curricular guidance, as new innovations are filtered into teaching its knowledge areas at a rapid pace. Furthermore, another trend is the growing number of students with different cultural backgrounds. These developments require taking into account both the differences in learning styles and teaching methods in practice in the development of curricular knowledge areas. In this paper, an intensive collaborative teaching concept, Code Camp, is utilized to illustrate the effect of learning styles on the success of a course. Code Camp teaching concept promotes collaborative learning and multiple skills and knowledge in a single course context. The results indicate that Code Camp as a concept is well liked, increases motivation to learn and is suitable for both intuitive and reflective learners. Furthermore, it appears to provide interesting creative challenges and pushes students to collaborate and work as a team. In particular, the concept also promotes intuition.
I want to show that the notion of scalability is every bit as valid when applied to programming languages as it is when applied to programs or algorithms. I'll also discuss several well-known and not so well-known programming languages from this perspective and give some concrete recommendations, as well as discuss some of the social factors which hinder progress in this field.
J. Gil, and I. Maman. OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, page 97--116. San Diego, CA, USA, ACM, (2005)