The students will gain an understanding of the foundations of the software engineering discipline for developing and maintaining computer-based systems. The students will be exposed to the life-cycle processes, modelling techniques, quality concepts, testing methods, standards, and ethical and professional responsibility.