The Bachelor of Computer Science (Honours) degree programme has been designed to allow students to tailor the programme to suit their particular interests, needs and circumstances. There are three Major (specialisation) areas (See Section 4.1 for list of courses for Major Core and Field Elective Tracks for each Major) and students must choose one Major area at the beginning of the second semester of the second year. The Major areas and their respective description and expected outcomes are as follows:
(a) Major: Intelligent Computing (Perkomputeran Cerdas)
In the digital world we live in, the element of intelligence permeates our daily lives. From homes to cities and from apps to robots - intelligent computing helps us monitor activities, plan schedules, secure information and make right decisions. The demand for intelligent and smart systems by governments, organisations and end-users has given new impetus to the area of intelligent computing. This has created a demand for computing professionals who are able to fulfil this requirement.
Students majoring in Intelligent Computing will develop and expand their knowledge on machine learning, computational intelligence, programming language implementation and paradigms and theory of computation. These would lay the foundation for students to further pursue specific interest in either Data Analytics, or Media Computing.
Ultimately, graduates majoring in Intelligent Computing will be able to:
* apply intelligent techniques and approaches to solve domain-specific problems which include intelligent systems, data analytics, computer vision, natural language processing and multimedia information systems [Technical Knowledge].
* develop and design intelligent or smart applications and software on various platforms including web-enabled systems, and mobile and game platform-based development [Design Solutions in Context].
(b) Major: Computing Infrastructure (Infrastruktur Komputeran)
Computing infrastructure which encompasses among others computers, embedded systems, security technologies and Internet technology, represents the focal point of the 21st century. In line with the advancement in this field, it has steered the country to be more resilient in economy, progressive in increasing productivities and aggressive in enhancing the quality of the country’s well-being. This major will address demand in computing professionals who are able to explore technical knowledge and skills that are needed by the industry as key players in pioneering ideas and technological advancements in related fields.
In this major, the essentials of the emerging technological architecture are covered from computer hardware to design and implementation of computer languages, modern operating systems and networks. Students will also be introduced to creating, developing and implementing algorithms, scheduling and optimisation in distributed and cloud computing as well as information security. Students may then pursue their specific interests in either Net-Centric Computing & Embedded Systems or Cybersecurity.
Ultimately, graduates majoring in Computing Infrastructure will be able to:
* apply practical knowledge and skills of this field in managing computer networks in modern organisation and network service provider, devising interfacing for embedded systems and addressing cyber menaces and preventive measures in digital forensics, security management and information assurance [Technical Knowledge].
* create, develop and implement algorithms and/or components for managing, scheduling and optimizing computer services for distributed and cloud computing environments, and network-centric services which include client-server, network and communication security, and low-level network programming [Design Solutions in Context].
(c) Major: Software Engineering (Kejuruteraan Perisian)
Software plays a central and critical role in almost all aspects of life including commerce, industry, healthcare, communication and recreation. Software products help us to be more efficient and productive. They provide information, make us more effective problem solvers and provide us with safer, more flexible and less confining work, entertainment and recreation environments. Development in this field has created demand for computing professionals who are able to produce high quality software.
Software engineering is concerned with managing relevant processes for building high quality software systems. It includes requirements, design, testing, software metrics, configuration management and continuous maintenance. This major is designed to prepare students for careers in the field of software engineering who are knowledgeable and competent in the software engineering process, activities and the management of software projects. Students will then be able to pursue their specific interests in either Information Systems Development or Specialised Systems Development.
Ultimately, graduates majoring in Software Engineering will be able to:
* show mastery of software engineering knowledge, skills and the professional standards necessary to begin practice as a software engineer [Professional Knowledge].
* demonstrate an understanding of and apply appropriate theories, models, and techniques that provide a basis for problem identification and analysis, software design, development, implementation, verification, and documentation [Technical Knowledge].
* work both individually and as part of a team to develop and deliver quality software artefacts [Teamwork].
* demonstrate an understanding and appreciation of the importance of negotiation, effective work habits, leadership, and good communication with stakeholders in a typical software development environment [End-User Awareness].
* design appropriate solutions in one or more application domains using software engineering approaches that integrate ethical, social, legal, and economic concerns [Design Solutions in Context].
* reconcile conflicting project objectives, finding acceptable compromises within the limitations of cost, time, knowledge, existing systems, and organizations [Perform Trade-Offs].
* learn new models, techniques and technologies as they emerge, and appreciate the necessity of such continuing professional development [Continuing Professional Development].
The major areas including the field electives together with the common core courses have been carefully designed to ensure that graduates will have the widest choice in their later careers in business, industry, public sector, research and education, occupying a variety of positions such as System Analyst, Programmer Analyst, Software Developer, Software Engineer, System Developer, Database Administrator, Research Officer and IT officer. Other occupations usually depending on the major specialisation areas and field electives include:
(i) Intelligent Computing: Intelligent Systems Engineer, Knowledge Engineer, Data Engineer, Data Scientist, Data Analyst, Web Developer, Games Developer, Interaction Designer, Multimedia Programmer, Multimedia Project Manager and Digital Media Specialist.
(ii) Computing Infrastructure: System Administrator, Computer Systems Analyst, System Engineer, System Programmer, Information Security Analyst, Computer Forensic Analyst, Network Manager, Embedded System Specialist and Network Engineer/Architect.
(iii) Software Engineering: Software/IT/Information Systems Project Manager, Software Architect, Software Test Engineer, Software Quality Officer, Information Systems/Information Technology Officer/Specialist, Information Research Manager, Information Systems Manager and Web Developer.