Effective Teaching Pedagogies for Undergraduate Computer Science
Ali, Sanwar, Mathematics and Computer Education
Teaching is a scholarly activity and a life-long learning process with no single method or pedagogy that is always most effective. Applications of teaching pedagogies properly vary from content-based to discipline-based areas. In this paper, various teaching pedagogies, including scaffolding, concept mapping, constructivism, and learning strategies including problem-based learning, collaborative learning, and active learning, is discussed and their applications in effective teaching of undergraduate Computer Science is demonstrated.
Teaching is a form of art which is often enhanced by years of experience with students. Teachers open the door of knowledge and invite the student in, but students must be willing to enter themselves. To facilitate students' learning, teachers have to create an environment to effectively transmit knowledge to the learners. How can we teach effectively? Although there is no single method or pedagogy to teach effectively it can be summarized by three factors: (a) how to teach, (b) what to teach, and (c) what aids to use in the process. Good teaching means the teacher must: (i) be knowledgeable in his/her discipline, (ii) show enthusiasm in teaching, (iii) emphasize concepts and critical thinking, (iv) encourage questions from the students, and (v) be caring to his/her students. This article discusses how to employ effective teaching pedagogies in undergraduate computer science.
2. EFFECTIVE TEACHING
Foundational elements of effective teaching include: (i) Teaching Philosophy, (ii) Syllabus and Curriculum Development, (iii) Critical Thinking and Teaching Pedagogies.
2.1 Teaching Philosophy
The phrase "teaching philosophy" has a wide variety of meanings. To me the concept of teaching philosophy is an expression of individual values. It is my personal mission statement. My teaching philosophy is based on the following basic principles derived from my experiences and expectations as a teacher:
* Encourage students' natural curiosity about the world and facilitate creative thinking that will serve them well beyond the classroom.
* Create an active learning environment in the classroom.
* Encourage students to question from every angle and to reinforce that information with their experiences and beliefs.
* Remain current on subject matter and communicate it in a way that is meaningful and relevant to the students.
* Adapt the course to current interests and concerns.
* Provide an environment where students are encouraged to share their thoughts without fear of embarrassment.
* Encourage evaluative feedback from the students.
2.2 Syllabus and Curriculum Development
In a continuously changing field such as computer science, it is crucial to regularly update course syllabi, as well as develop new courses as needed. A syllabus should include why the course should be taught, the course content, and what requirements students must fulfill to understand the material presented in the course. A syllabus may be considered as a contract between a teacher and his/her students. The major content areas of a syllabus are: (i) course description, (ii) prerequisite (if any), (iii) course objectives, (iv) instructor's information including his/her office hours, (v) textbook and supplementary reading materials, (vi) weekly course schedule, (vii) grading policies, and finally (viii) attendance and academic honesty policies.
2.3 Critical Thinking and Teaching Pedagogies
According to Kurfiss  critical thinking "is an investigation whose purpose is to explore a situation, phenomenon, question, or problem to arrive at a hypothesis or conclusion about it that integrates all available information and that can therefore be convincingly justified". It stresses the individual's ability to evaluate and interpret information, make predictions, identify assumptions, and draw conclusions from data. …