The contemporary convolutions of teaching and learning computer science/software engineering are increased in a diverse learning environment where students are diverse in their disciplinary backgrounds, language skills, and cultures. Some of the characteristics that are negatively impacting computer science students learning achievements are: the gap between the students' and the teacher’s perspective of learning outcomes and task completion (Thompson, Hunt, & Kinshuk, 2006)1; the initial perception of students that “learning programming is hard” (Tan et al., 2009).
Computer programming “requires the use of complex cognitive skills, such as reasoning, problem solving and planning” (Tie et al., 2010)2. “A programmer forms abstract representations of a process, expresses them in the form of logic structures, and finally translates them into correct code using the formal language” (Wiedenbeck et al., 2004)3. The three primary pedagogical goals in teaching a programming language are therefore covering the language’s syntax, developing program design skills and creative thinking. The selection of the most suitable programming language and the teaching approach are presented as two fundamental issues related to teaching programming (Al-Imamy 2006)4.
Computer science pedagogy varies from developing skills in design and implementation focusing on the understanding of the machine aspects or real world application aspects such as object-oriented design and development (Berglunda, et al., 2009)5. For this reason, I believe that students should be empowered with reflective lifelong learning skills to be successful in the highly dynamic field of ICT where programming languages and tools constantly evolve. In general, with respect to computer science/software engineering, I realize any task that involve practical applications helps students become and remain engaged in a cognitive process. While traditional teacher-centric pedagogy is focused on the course content and transferring knowledge to the students whereas a learner-centric view is focused on assisting students to develop or build knowledge (Wright, 2011)6, but it is considered not effective in systematically guiding computer science students to be able to learn and feel very comfortable with new ideas and their applications.
Bearing in mind the challenges that computer programming represents to students, I believe that finding and implementing an appropriate teaching approach will be one of the crucial factors in students’ to be able to succeed in mastering the course content. Fortunately, one of the most rewarding aspects of an academic position is the opportunity to teach and interact with students. Whether or not they realize it, students have the freedom to explore and to think about problems in new ways. As teachers, we have the opportunity to guide students’ discoveries and learn a great deal in the process.
Hence, I have found several approaches helpful in systematically guiding computer science/software engineering students to be able to learn and feel very comfortable with new ideas and their applications; among the approaches are constructive alignment, collaborative learning theory, and Maslow's hierarchy of needs theory. In constructive alignment: learner constructs his or her own learning through relevant learning activities, while teacher creates a learning environment that supports the learning activities relevant to achieving the desired learning outcomes (Biggs, 2003)7. Collaborative learning facilitates: cognitive constructivism where peer discussion leads to enhanced conceptual understanding (Crouch & Mazur, 2001)8; social construction of new knowledge by reflecting on the new material, cognitive rehearsal, and assimilation, through teamwork and deeper understanding, promoted by interaction among team members with varying levels of prior knowledge (Sangin, Molinari, Nüssli, & Dillenbourg, 2011)9. While Maslow's theory (Maslow, 1943)10 is a motivational theory in psychology consisting of five hierarchy of human needs. For an individual to be self-actualized, all the five hierarchy of needs most be satisfied in a sequential manner as shown in figure 1.
Figure 1: Maslow’s Hierarchy of needs
By examining the literature related to this philosophy, I, however, have to argue with Maslow’s, 1943 theory of Humanism, for fact that most people reached self-actualisation without going through the hierarchy of needs in sequence (e.g. a person that came from a poor family but yet become successful in life). Hence, not everyone will move through the hierarchy in a uni-directional manner but may move back and forth between the different types of needs (McLeod, 2017)11.
Consequently, I would like to propose a student-centered learning and teaching method that integrates constructive alignment (consistency), collaborative learning theory (collaboration, conception, and cognition), and bits of Maslows theory (love/belonging and self-actualisation) in a student-centered teaching pedagogy as shown in figure 2.
Figure 2: Integration of Learning Theories into Student-Centered Teaching Pedagogy
Figure 2 is designed to transforms the traditional 2-hour lecture to a flipped classroom (by assigning recorded video lectures as homework, and use class time for active learning exercises/activity and direct engagement/discussion with students) but classified into five different sessions:
1. Explanation/ Elaboration Session: By explaining where necessary, elaborating on the concept to be taught using simulations and real-world examples, and referring back to previously-taught concepts (“teaching by facilitating” (Rogers, 1967)12, which is “driven by what learner’s need to know” (Knowles, 2005)
2. Conceive and Communication Session: Facilitating collaborative learning through this session, by taking 5 to 10 minutes to form some small group discussions. The group discussions are to be guided by questions related to the main concept and are intended to enable the social construction of new knowledge (“learners using their prior experience” (Knowles, 2005). These communication sessions will reduce the difficulties experienced by students in framing questions and expressing their doubts in the early stages of the course (“because learning is pervasive – involving the whole person” (Rogers, 1967).
3. Interaction Session: During the interaction session, students will raise questions or share their insights gained during their group discussions (“which is developing learner’s full potential” (Rogers, 1967). Based on this feedback, the new concept is further explained and linked to existing schemas in the knowledge construction process (“through identifying what needs to be learned, which is relevant” (Knowles, 2005). It will further enable the students to share their group learning experiences with the whole class.
4. Collective Problem Solving Session: During this session, students will work together in small teams in solving a given problem or undertaking an activity where they could apply the newly-learned concepts. This will facilitate the application of concepts to specific problems supported by exploration, critical thinking, and analysis. This will also stimulate evaluation as group members will examine different approaches within the team (“more like learners taking responsibility for own learning by applying their prior experience” (Knowles, 2005).
5. Presentation Session: During this session, students will have the opportunity to present their own developed programming application to the class and discuss the source code. This session will promote creativity among the students. It will also promote continuous learning as students will have more interest in studying outside the classroom (“promoting personal involvement through internal motivation” (Rogers, 1967), which is connected to “self-esteem” (Knowles, 2005), as well as “promoting unconditional positive regard” (Rogers, 1967).
The aforementioned sessions would be very effective and efficient when applied to a programme of study for 30 student cohort but could not be translated into a programme of study for 300 students or more, because: class size is too big for effective facilitations; less effective for physical and real time interactions between lecturer and students; challenging and less effective for assessments and feedbacks.
In conclusion, the integration of constructive alignment, collaborative learning theory, and bits of Maslows theory into student-centered teaching pedagogy would reduce the negative emotional issues and stress impacting students learning (the gap between the student’s and the teacher’s perspective of learning outcomes and task completion and the initial perception of students that “learning programming is hard”).
Moreover, the aforementioned flip classroom sessions (five sessions) for the programme of 30 students would motivate students to become active learners and improve overall students’ performance and deeper understanding. It will also improve creativity and soft skills of communication, team work, critical thinking with the latter being one of the skills most sought after by industry, and thus promote deep learning while systematically guiding computer science/software engineering students to be able learn and feel very comfortable with new ideas and their applications.
- Thompson, E., Hunt, L., & Kinshuk, K. (2006, January). Exploring learner conceptions of programming. In Proceedings of the 8th Australasian Conference on Computing Education-Volume 52 (pp. 205-211). Australian Computer Society.
- Tan, P. H., Ting, C. Y., & Ling, S. W. (2009, November). Learning difficulties in programming courses: Undergraduates' perspective and perception. In Proceedings, Computer Technology and Development (ICCTD) 2009 (Vol. 1) (pp. 42-46). doi: 10.1109/ICCTD.2009.188
- Tie H H, Umar I N: The Impact of Learning Styles and Instructional Methods on Students’ Recall and Retention in Programming Education, Proceedings of the 18th International Conference on Computers in Education, Putrajaya, Malaysia, 2010, pp. 191-195.
- Wiedenbeck S, LaBelle D, Kain V N R: Factors Affecting Course Outcomes in Introductory Programming, Proceedings of the 16th Workshop on Psychology of Programming, 2004, pp. 97-109.
- Al-Imamy S, Alizadeh J: On the Development of a Programming Teaching Tool: The Effect of Teaching by Templates on the Learning Process, Journal of Information Technology Education, Vol. 5, 2006, pp. 271-283.
- Berglunda, A., Eckerdala, A., Pearsa, A., Eastb, P., Kinnunenc, P., Malmic, L., Thomask, L.(2009). Learning computer science: perceptions, actions and roles. European Journal of Engineering Education, 34(4), 327 - 338. doi: 10.1080/03043790902989168.
- Wright, G. B. (2011). Student-centered learning in higher education. International Journal of Teaching & Learning in Higher Education, 23(1), 92-97.
- Biggs, J. (2003). Aligning teaching for constructing learning. Higher Education Academy, 1(4).
- Crouch, C. H., & Mazur, E. (2001). Peer instruction: Ten years of experience and results. American Journal of Physics, 69(9), 970-977. doi: 10.1119/1.1374249.
- Sangin, M., Molinari, G., Nüssli, M.-A., & Dillenbourg, P. (2011). Facilitating peer knowledge modeling: Effects of a knowledge awareness tool on collaborative learning outcomes and processes. Computers in Human Behavior, 27(3), 1059-1067. doi:10.1016/j.chb.2010.05.032.
- Maslow, A.H. (1943). "A theory of human motivation". Psychological Review. 50(4): 370–96. doi:1037/h0054346.
- McLeod, S. A. (2017). Maslow's hierarchy of needs. Retrieved from simplypsychology.org/maslow.html
- Rogers, C. R., Stevens, B., Gendlin, E. T., Shlien, J. M., & Van Dusen, W. (1967). Person to person: The problem of being human: A new trend in psychology.
- Knowles, M. S, E. F & Swanson, R. A. (2005). The Adult Learner: The Definitive Classic in Adult Education and Human Resource Development.
Dr. Ahmed Abba Haruna is a Senior Lecturer of Computer and Information Science in Skyline University Nigeria. He has a PhD. in Information Technology from Universiti Teknologi PETRONAS (UTP), Malaysia..