One approach, which I usually follow and students like much, is a project based assignment where students work in groups of 3-5 and apply the software development method on a real problem. In this case, you get students engaged in a practical task where they can apply the theories they learn in the class and feel the work experience.
One approach, which I usually follow and students like much, is a project based assignment where students work in groups of 3-5 and apply the software development method on a real problem. In this case, you get students engaged in a practical task where they can apply the theories they learn in the class and feel the work experience.
What you can do depends a bit on how much time you have for a course, and how many students take it. Even if it is a short-time course you can have exercises that follow the software engineering activities in a sequential manner. For example, lecture on planning and then have students plan their first small software project. They present next time in class, and everyone discusses. Now follows lecturing on requirements engineering. Students get an exercise on requirements for their hypothetical project. Then you lecture on design...until you are finished with testing. Be sure to add a lecture on software development methodologies, stressing that this sequential flow of things is good for learning it but frowned upon from a standpoint of agility.
If you have more time and ideally an industrial partner, do the same thing, but not with a hypothetical piece of software, but with a real project. However, to do this sufficiently you need at least four months, and such a course takes much time for a teacher to supervise. However, the combination of teaching theoretical knowledge and giving practical experience can hardly get any better.
I agree heartily with the project oriented approach, that was my experience in grad school and one of the courses I learned the most from. I might add our professor coupled team formation with personality type assessments as teams with the optimal distribution of leaders, followers, SMEs, detail oriented types, etc. succeed, whereas imbalanced teams - all leaders or all followers - often do not. knowing the makeup allows the team leader to compensate for such. One caution regarding agile methods, they work well in most cases but in developing a system comprised of both hardware and software, its important not to have the software developed in a vacuum and/or get ahead of the hardware. I think that is a worthy lesson for your students.
Active learning methods are usually time-consuming for teachers. However some tests may have an automated evaluation and feedback. See for example the website https://www.codecademy.com/ The method consists of a very short course portion followed by a self-assessed practical exercise.