There is a high probability that you are reading this document on a computer screen, a smartphone, or a tablet. Even if you are reading from a printed version, these words reached your hands through some kind of a computer. I am deeply passionate about computers and technology. I wish all people in the world could have access to the latest technology to improve their life. As Computer Science is leading the technological revolution, I think the community should consider integrating Computer Science fundamentals curriculum in all majors. Learning Computer Science is not about classes. It is all about the learning environment. It is not a teaching-centric process, but a learning-centric one. Therefore, I believe that my role as a Computer Science teacher is mainly to support students during their learning journey of a specific topic. This support takes several forms from lecturing, organizing practice sessions, advising students and mentoring their careers. I divide the learning journey into three phases: Connecting, Learning and Applying, and I call it the CLA Journey.
In the Connecting phase, I do activities that prepare students to build up their knowledge based on their existing knowledge. Architects cannot build skyscrapers without a robust infrastructure and a floor-by-floor build process. They do not skip the seventh and eighth floors to build a ninth floor up on the air – all must be connected. Similarly, learning computer science builds up on accumulated knowledge. In general, a human brain cannot fully absorb new knowledge unless it is linked to some previous knowledge; that is how the neural cells work. So, in this phase, my goal is to link between what students know and what they are going to learn. As an example, surveying students’ backgrounds through pre-class tests gives me a better idea on how diverse they are and allows me to introduce the class syllabus by reflecting on how the topics to be covered are related to their prior knowledge. Then, it is important to invest the first few classes in raising all students to the level of the class by discussing the prerequisites and ensuring that everyone has access to recommended readings. This phase ensures that students are ready to accept what is to be discussed in the material.
The Learning phase is when knowledge is actually built. I execute various forms of activities to support this phase. First, lecturing is where I transfer a capsule of experiences on a specific subject to students. Second, designing and running group projects provides a suitable atmosphere for students to reflect on the lectures and gives them a chance to rehearse by themselves. Third, organizing study groups fosters collaboration, which improve interpersonal skills. In a rapidly growing field like computer science, it is possible that what I teach in class won’t be useful anymore sometime later. Hence, my focus is to improve their skills to learn any related topic on their own later. To check that they reached the goal of this phase, I flip roles. They illustrate what they learned by delivering a presentation, writing blog posts, or using other media tools to communicate their ideas. The ground rule is: If they cannot explain it simply, they do not understand it well enough.
The brain’s neural cells won’t keep knowledge unless they are circulated in the brain by practicing. The Applying phase boosts this activity by letting students make use of the learned concepts in a real-world setting. Unless they get the chance to apply, their next step in their learning journey in other classes will be frustrating because there will be no hooks to build upon. My preferred direction in this phase is to adopt service learning. Students work on community projects that require the knowledge and skills they learned in class. For example, I ask them to develop a software for a charity organization. Not only do they use their knowledge, but also add a value to the community. This phase paves their road for future learning adventures.
Through the CLA journey, my supportive role for a healthy learning environment dominates my role as a teacher. It encourages students to enjoy learning, not just pass exams. A connecting phase prepares them for a class. A learning phase gives them a comfortable environment to learn new advancements in the field by themselves. Finally, an Applying phase gives an opportunity for students to reflect on their gained knowledge and make a real impact on the community. Computer Science cannot be taught, rather it should be learned and my role as a teacher is to facilitate this learning journey.
Updated September 2016