Emphasizing experiences in teaching software engineering courses

Using software products as engineering artifacts is becoming more widespread in industry. It leads to increasing the need for training students and experts in the academic centers with software developing skills in accordance with the engineering principles and disciplines. However, one of the main challenges in the software engineering education is how to teach engineering disciplines to the students so that we can inspire the engineering concept to them. To do so if we use educational methods for teaching this course, which can show the usage of engineering disciplines to the students in practice and demonstrate the impact of their application on creating the engineered software products, we will achieve more qualified and engineered products in the future. To accommodate the application of engineering notion at different stages of the software development lifecycle, we have proposed an experience based approach in this paper that can help teaching software engineering principles and practices through experiments. Reviewing the results of the experiments by students will be helpful to learn software engineering concepts and use them for developing more engineered software.