Software engineering combines the science and technology of design, as well as the implementation and maintenance of software. Software engineering program prepares the students to apply a structured approach to the development of a software. It gives the students the chance to experience different career opportunities and get introduced to different paths. This degree option emphasizes code development as an engineering science and facilitates the understanding and skills necessary to participate in systematic analysis and software development. The Advanced modules specific to the Specializations are:
- Developing Technologies
- Empirical Approaches
- Formal Specifications
- Software Quality Assurance
Jobs directly related to your degree include:
- Software Engineer
- Software architect
- Embedded software engineer
- Cyber security manager
Admission to the programme: In accordance with the University's regulations as defined in Section 1 of the General Academic Regulations.
Admission to specialisation: The Faculty Council determines at the end of the first semester of Y-2 (level-I) the number of students for each specialisation according to the availability of educational resources. A student is admitted to a specialisation according to:
- Overall GPA of Degree-Year-1
- His/her marks in the designated modules for a specialisation as follows: for Software Engineering (SE) : “Software Engineer-I” module ( CSSE01C)
16CSCI01I Analysis of Algorithms
The aim of the module is to enable students to analyse the amount of resources needed to solve a given computational problem and to compare the efficiency of using different algorithms in addressing and solving the problem.
16CSCI10I Computer Architecture
The module aims to impart fundamental knowledge of modern computer architectures in terms of instruction set architecture, organisation and hardware. It develops an understanding of the architectural features and the principles of operation of modern microprocessors and peripheral devices. The module further seeks to provide a sound understanding in the following:
- The main families of microprocessors and their differences;
- How computers execute their programs at machine instruction level; and
- Principles of the practical design of processor architectures and how design features influence machine coding and performance features.
16CSCI06I Computer Graphics
The aim of the module is to introduce the fundamentals concepts and basic terminology used in computer graphics. It provides theoretical concepts and basic techniques to generate, manipulate and display graphical images. It also presents fundamental primitives of 2D and 3D graphics development by addressing both the theoretical and practical aspects involved.
16CSCI04I Internet Programming
The aim of this module is to provide students with advanced level education in theory and practice relating to Internet technologies. The module also introduces techniques for programming and Internet development, including the ability to critically assess and carry out various implementation approaches. Building on this practical foundation, the module addresses both client side and server side scripting as well as developing database-driven web applications.
16CSCN01I Introduction to Networks
The aim of the module is to develop a structured approach in analysing the components and overall interconnection of networks in an abstract way. It provides the students with basic concepts of data transfers over interconnected networks. The module also aims at addressing many techniques and applications of computer networks and protocols, as well as the analysis of the functionality and purpose of essential networking devices. Internet is considered as a case study.
16SCCI09I Legal & Professional Issues in Computing
The aim of the module is to give students an informed awareness of the principal issues of professional ethics and responsibility in the design, implementation and use of computer and information systems. The module also aims to help in the recognition of ethical problems when they occur, and to enable students to deal effectively with ethical, legal and professional issues now and in their future careers.
16CSCI05I Logic & Artificial Intelligence
The aim of the module is to introduce students to the principal theory and techniques of Artificial Intelligence – AI and build an awareness of its applications and current research trends. The module also aims to develop a broad appreciation of the nature of the problems associated with AI and introduce common techniques that are used to address them.
16CSCI03I Operating Systems
The aim of this module is to provide a broad introduction into the basic concepts and constructs of operating systems - OS. It also provides students with a solid background in the principles that underlie the design and function of modern operating systems. Develop sound knowledge and understanding of the basic OS components and the general principles of OS implementation. Operating systems like Linux, Windows and MSDOS are used to reinforce this understanding.
16SCIB04I Operations Research
The aim of this module is to introduce various aspects of Operations Research to ICS students, with special emphasis on modelling.
16CSSE01I Software Engineering II
Building on topics covered on module I (Software Engineering I), the aim of the module is to elaborate on design issues supported by UML modelling and software reuse.
16CSCI08I Software Project Management
The aim of the module is to provide an understanding of the methodologies, considerations and issues particular to software projects management. The module provides knowledge and hands-on experience of the techniques practiced and tools used to plan and manage software projects in its different stages. The module further aims to build basic project management skills by highlighting the concepts of team building, organizational behaviour, motivational theories, and of the role of good management in the successful and timely delivery of software projects.
16CSIS01I Systems Analysis and Design
The aim(s) of this module is to provide the students with the chance to experience the recent issues and trends, the important aspects in software development of different software systems including interactive applications and computer games. Experiencing these issues, the students then will appreciate the systematic and organized way to develop software of specific nature like games.
16CSSE01H Advanced Object Oriented Software Engineering
The main aim of the module is to enable students to elaborate on advanced topics in software engineering in the context of object oriented software. The students will be able to apply different architecture styles and design patterns in designing software. They will be also exposed to different frameworks and component based systems.
16CSCI03H Entrepreneurship and Innovation
The aims of this module are to build awareness of the importance of commercializing technology-based ideas in the modern economy and the opportunities and introduce the students to the support available for new venture creation and to the concept of business planning.
16CSCI13H Graduation Project
The aim of this module is to allow students to develop and demonstrate their investigative and research skills and to demonstrate their analysis, design, planning, evaluation, and programming skills acquired in previous modules, by applying what they have learned to a substantial problem in Software Development.
16CSSE03H Software Development for Real Time Systems
The aim of this module is to introduce the basic concepts of real time systems; the special requirements that they place on the design process and software tools used for their design and implementation.
16CSSE04H Software Quality Assurance
The module aims at providing a broad systematic study of quality assurance aspects of the software development process with an emphasis software testing, quality standards and quality assurance.