摘要

Computer programming is a subject that requires problem-solving strategies and involves a great number of programming logic activities which pose challenges for learners. Therefore, providing learning support and guidance is important. Collaborative learning is widely believed to be an effective teaching approach; it can enhance learners' social interaction and offer a learning environment which provides rich learning experiences. However, the social interaction in collaborative learning does not occur automatically. Without proper guidance strategies or supporting tools for collaborative learning, the learning effects can be disappointing. To solve such a problem, a problem posing-based practicing strategy was proposed to support the development of a collaborative learning activity in a computer programming practice course. The students were guided to raise computer programming problems to boost the discussion among team members. The problems raised in each team were then exchanged and solved by another team to examine the coding and to provide feedback. To investigate the effectiveness of the proposed approach, an experiment was conducted in a C# programming course. Two classes of students from a university participated in the experiment. One class with 25 students was randomly assigned as the experimental group, and learned with a collaborative learning activity using the problem posing-based practicing strategy; the other class with 28 students was the control group, which learned with a conventional collaborative learning activity. The results show that the proposed strategy benefited the students in terms of improving their learning achievement, in particular, their programming skills. Moreover, it was found that the students who learned with the proposed approach had higher self-efficacy and lower cognitive load than those who learned with the conventional collaborative learning approach.