BS Software EngineeringThe 21st century is loaded with a large number of challenges. These challenges include globalized business environment, keeping pace with innovative technologies, the availability of information with respect to time, speed, volume, mode, nature and management of this exponentially growing information, keeping control on international and inter-organizational business processes in real time, optimization of business processes across multiple sites, highly uncertain and chaotic business environments, a new level of national & international competition (hyper-competition), social & cultural diversity, rapidly changing products and processes, government regulations, increasing importance of skills, qualities, productivity and other stresses. To face these challenges and to bring a high level of agility, control and transparency organizations now increasingly focus on maximizing their existing technology and human infrastructure through automating various processes that can free human resource to add value elsewhere within the organization. Accordingly, the software industry looks for graduates who are not only equipped with conventional computing skills but also have the capability to develop complex software that can provide verifiable insight into underlying business processes.
Software Engineering is the discipline of developing and maintaining software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them. Software engineering is different in character from other engineering disciplines due to both the intangible nature of software and the related operations. It seeks to integrate the principles of mathematics and computer science with the engineering practices developed for tangible, physical artifacts. Software engineering students learn more about software reliability and maintenance and focus more on developing and maintaining software techniques. While Computer Science students just acquire abstract knowledge of these aspects.
Software Engineering is a bridge connecting the basic concepts and principles of Computer Science with a variety of users who can benefit from technologies based upon those principles. It includes the design and development of software systems which are effective, efficient, robust, maintainable, and maximally useful and usable. It also includes the design and development of techniques, processes and higher level tools by which these applications can be developed in a timely, cost effective and sustainable manner. At both levels, it requires a systematic approach which deals with quantifiable measures of quality and effectiveness, as well as attention to the critical nature of various products of the process. Software Engineering, therefore, requires familiarity with the basic needs and processes in the various application domains, with the principles of good engineering practices and with the underlying concepts and principles of computer science. It requires facility in problem analysis, solution design, program development and documentation. It also requires a basic understanding of ways in which humans interact with technological systems and necessary skills to create high-quality software systems in a systematic, controlled and efficient manner. It involves the application of engineering concepts, techniques, and methods to the design, development, deployment and maintenance of software systems.
The key rationale behind BS Software Engineering program is to produce graduates who have mastery in the above discussed aspects. The program intends to impart knowledge and training which enable students to harmonize a theory with practice, a concept with an application, and a problem with a solution. It will prepare them to apply ably engineering principles, practices, and processes to design, develop, deploy, and maintain software systems. The program will lead to development of students’ professional and interpersonal skills. It will help them to enhance their ability in oral and written communication, and their adaptability to team environments. The program will inculcate among students a strong sense of civic, professional and ethical responsibility. The program will also strive to develop a capacity for innovation and a passion for lifelong learning.
Program’s ObjectivesThe objective of the program is to prepare students for professional careers and graduate studies with a balance between computing theory and practical application of software engineering concepts, methodologies, tools and technologies in the modern software development environments. The curriculum is designed to ensure breadth across allied disciplines and supporting subjects; and depth in most areas of the software engineering body of knowledge. Various components have been included in the curriculum to ensure that the graduates will:
- Understand and be able to apply mathematics, physical science, computer science and related disciplines.
- Understand and be able to apply the principles of software engineering practices and processes, subject to realistic constraints.
- Be able to model, analyze, document and track system requirements, both functional and non-functional.
- Be able to design, implement, deploy and maintain quality oriented software systems.
- Be able to verify and validate quality oriented software systems.
- Have an awareness of current industry standards and practices.
- Be able to work in one or more application domains.
- Understand and apply the principles of software quality assurance.
- Be able to understand and apply software project management skills: measurement, estimation, costing, planning, documenting, deployment and tracking of resources.
- Have strong communication, team management and interpersonal skills.
- Be capable of independent learning.
- Understand professional responsibility and application of ethical principles.
- Have knowledge of economics, humanities and social sciences.