MSc of Science (Computer Science)

This page will provide an overview of the Master in Computer Science courses sorted out based on the core and elective subject.

Core Courses

CCS 591 ~ Research & Empirical Methods in Computer Science

This course aims to introduce techniques in conducting research, academic writing and presentation especially in the field of Computer Science. It will guide students to choose a title or a research problem, understand the process and the related technique and also tools that can be used to support research. Students will conduct literature review, synthesise reference sources, argue logically and evaluate scientific literature critically. It also covers the explanation on common methods used in research such as survey, comparison, case study and experiment and how to produce a research methodology and pre-proposal of high quality research project. This includes methods in data analysis and conducting evaluation towards the obtained results either qualitatively or quantitatively to prove a research contribution based on research design and hypothesis. This course will also give guidance in techniques to present research materials, paper writing and high quality thesis. Students should work under the supervision of a lecturer. This course is a pre-requisite for the dissertation. 

At the end of this course, the students will be able to:

  • Critique research and research proposal of their peers.
  • Design research proposal.
  • Defend the research proposal and expected contribution of the research in the form of poster presentation.
  • Perform research comfortably and responsibly in a research team.
  • Practice the research tasks, writing and publications in an ethical manner.
  • Identify research problem based on reference materials in the chosen field.
  • Propose a research project with proper planning, judgements and decisions as well as correct planning of empirical data analysis.

CCS 592 ~ Advanced Algorithms and Complexity

This course provides a strong foundation in the theory of algorithms by giving the fundamentals of algorithm analysis and complexity. The course covers several major strategies in algorithm design such as the greedy method, divide and conquer, dynamic programming, randomized algorithms and approximation algorithms. This course also discusses in detail, important algorithms in several areas of computer science such as graph connectivity, shortest paths, minimum spanning trees, network flow and matching, string matching, Fast-Fourier transform, and NP-Complete problems.

At the end of this course, the students will be able to:

  • Critique various algorithms and designs of algorithms.
  • Adapt suitable algorithmic techniques and algorithmic designs in problem solving.
  • Perform complexity analysis of algorithm.

CCS 599 ~ Dissertation

The course aims to enhance students’ knowledge and skills in planning and implementation of a research project in the field of computer science. Students can choose research topics in related areas in computer science but they are encouraged to choose research topic in their respective focus area, and then proceed to conduct extensive review of literature pertaining to the topic and eventually carry out the research under the supervision of a lecturer. At the end of the course, students are required to produce a satisfactory dissertation in order to fulfill their degree requirements.

At the end of this course, the students will be able to:

  • Design a research project in the field of computer science.
  • Formulate new solutions for computer science problems.
  • Defend orally the research outcomes in the field of computer science.
  • Practice the research tasks and processes in an ethical manner.
  • Perform research at a higher level in the field of computer science.
  • Perform a research project with proper planning, judgements and decisions.

Students need to plan early and consult prospective supervisors for a suitable research topic/title at the beginning of the pre-requisite course CCS591. CCS591 and Dissertation must be taken in two consecutive semesters (CCS591 followed by CCS599). Students are strongly encouraged to choose a research topic from their chosen focus area.


Elective Courses

CCS 516 ~ Computational Intelligence

The course introduces computational intelligence. It begins with an introduction to evolutionary algorithms, artificial neural networks, and fuzzy system. Various variants of evolutionary algorithms, artificial neural networks, and fuzzy system are explored. Several issues within evolutionary algorithms (e.g. parameter tuning and control), artificial neural networks (e.g. learning rules, architecture and deep learning), and fuzzy system (e.g. fuzzy assessment, fuzzy reasoning) are pursued. 

At the end of this course, the students will be able to:

  • Analyse basic principles and concepts of evolutionary algorithms, artificial neural networks and fuzzy systems.
  • Adapt evolutionary algorithms, artificial neural networks and fuzzy systems in problem solving.
  • Integrate evolutionary algorithms, artificial neural networks and fuzzy systems as hybrid intelligent system.

More Elective Courses to Come