Software Development is one of the main courses that I often teach. In order to teach this course to my students at undergraduate level, I use an eclectic approach by combining various teacher-centered and student-centered teaching techniques. In fact, due to the nature of this course, both theoretical education and practical work are required (Damian, Hadwin, & Al-Ani, 2006; Dubinsky & Hazzan, 2005; Gnatz, Kof, Prilmeier, & Seifert, 2003). Therefore, teacher-centered techniques are not sufficient, and some student-centered techniques should be employed to fulfill the requirements of this course that is a key subject for software engineering students (Catalano & Catalano, 1997).
In general, my teaching strategy for this course consists of four different elements, including: a briefing session, teaching and explanation sessions, laboratory sessions, and a final project. While the first two elements are mostly based on teacher-centered techniques, the other elements absolutely focus on students’ activity and participation (Felder & Silverman, 1988). Each of these components will be discussed in the following paragraphs. With this regard, the related teaching techniques used in each stage of my teaching are justified.
The first stage of my teaching is based on lecturing, in which students are introduced to the subject and its significance. I start with a brief introduction about software development methods and their usage. This stage gives students a big picture of the whole course and they get the idea of the subject. I usually try to keep this stage short so that students do not get bored with my lecture. Then, I continue the course with the next stage that includes teaching and explanation sessions. For this stage, I use exposition and demonstration together with case study and Socratic (Q&A) techniques. I
References: Catalano, G. D., & Catalano, K. C. (1997). Transformation: from teacher-centered to student-centered engineering education. Proceedings of the Frontiers in Education Conference, 1997. 27th Annual Conference, 'Teaching and Learning in an Era of Change '. Damian, D., Hadwin, A., & Al-Ani, B. (2006). Instructional design and assessment strategies for teaching global software development: a framework. Proceedings of the 28th international conference on Software engineering. Dubinsky, Y., & Hazzan, O. (2005). A framework for teaching software development methods. Computer Science Education, 15(4), 275-296. Felder, R. M., & Silverman, L. K. (1988). Learning and teaching styles in engineering education. Engineering education, 78(7), 674-681. Gnatz, M., Kof, L., Prilmeier, F., & Seifert, T. (2003). A practical approach of teaching software engineering. Proceedings of the 16th Conference on Software Engineering Education and Training, (CSEE&T 2003). Larman, C. (2002). Applying UML and Patters: An introduction to Object-oriented analysis and design and the Unified Process, Prentice Hall, ISBN: 130925691.