Computer science is based on logical thinking and programming. The course empowers the student’s ability in theoretical thinking as well as programming. It enhances the student’s opportunity in the industry, and it prepares the students for a variety of career paths. This course has full coverage of computer science modules and skills. Graduates of the Computer Science degree Specializations will gain sound understanding of the process of computer systems, their design, architecture and implementation, covering a broad range of Computer Science issues to facilitate the in-depth study of a number of more advanced topics and their practical applications and implementations. The Advanced modules specific to the Specializations are:
- Artificial Intelligence
- Compilers and Syntax Tools
- Distributed systems
- Computer Vision and Image Processing
- Graphics ,sound and Games computing
- Theoretical Computing
Jobs directly related to your degree include:
- System analyst
- Systems consultant
- Systems programmer
- Artificial intelligence programmer
- Scientific application programmer
- User interface designer
- Embedded systems and application programmer
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 Computer Science (CS):"Introduction to Data Structures and Algorithm Design"(CSCI01C)
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 ArchitectureAims:
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 GraphicsAims:
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.
16CSCI07I Distributed SystemsAims:
The module aims at explaining the fundamental principles of distributed systems, their design and implementation. Students are provided with sound theoretical knowledge, and sufficient practical experience with the tools and techniques currently available in distributed programming. These tools and techniques are necessary to develop distributed system solutions for a broad range of applications over heterogeneous computer networks.
16CSCI04I Internet ProgrammingAims:
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 NetworksAims:
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 ComputingAims:
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.
16CSCI03I Operating SystemsAims:
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 ResearchAims:
The aim of this module is to introduce various aspects of Operations Research to ICS students, with special emphasis on modelling.
16CSIS01I Systems Analysis and DesignAims:
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.
16CSCI08I Software Project ManagementAims:
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.
16CSCI04H Compilers Design
The aim of the module is to provide thorough knowledge of the principles of compiler design/architecture and development. The module also seeks to develop an in-depth understanding of the major processes entailed in compilation and examines the underlying design theory and associated implementation techniques applicable in each process.
16CSCI03H Entrepreneurship and InnovationAims:
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.
16CSCI01H Theory of ComputingAims:
The aim of the module is to give an understanding of the theoretical basis for modern computing. The module seeks to expose students to a general model of computation and to illustrate the limits of the power of computers in terms of their problem solving capabilities.
16CSCI02H Modelling and SimulationAims:
The aim of the module is to familiarise students with the concepts and principle techniques for computer modelling and simulation giving particular focus to discrete event simulation.
16CSCI13H Graduation ProjectAims:
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.
16CSCI34H Computer Systems SecurityAims:
To provide students with a deep understanding of the security issues associated with computer systems. The emphasis is on the underlying theory, mechanisms and techniques for implementing security, so as to develop a critical comprehension of the fundamentals of secure specification and design.