Course Brief Description
Software Engineering To develop in-depth understanding of software engineering principles, practices and ability to apply them in developing large scale software systems.
Software Systems Analsis and Design Provides an introduction to software engineering concepts and techniques to undergraduate students. Enables the students to work in smaller teams and deliver software systems.
Software Foundations Provides mathematical foundations of programs and software systems so as to be able to prove properties about their behaviour.
Software Quality Engineering Imparts quality analyses of software systems. Topics include verification, software quality assurance, standards, etc. Concepts and skills necessary to design and and validation, metrics and measurements are also part of the curriculum.
Internals of Application Servers Understand essence of middleware and distributed object technology. J2EE Technology and Architecture overview. J2EE App Server architecture. Life cycle of a J2EE application-deployment through running and deployment.
Principles of Programming Languages This course is an introduction to the principles behind the design of programming languages, including object-oriented programming, and the use of formal methods in reasoning with programs. During the course, students build a series of interpreters, each a mini abstract or virtual machine for a specific language.