**Session 2020/2021 Semester 2**

**SECI2143 Probability & Statistical Data Analysis**

This course is designed to introduce some statistical techniques as tools to analyse the data. In the beginning, the students will be exposed to various forms of data. The data represented by the different types of variables are derived from different sources, daily, and industrial activities. The analysis begins with the data representation visually. The course will also explore some methods of parameter estimation from different distributions. Further data analysis is conducted by introducing hypothesis testing. Some models are employed to fit groups of data. At the end of the course, the students should be able to apply some statistical models in analysing data using available software.

**SECJ1023 Programming Techniques 2**

This course presents the concept of object orientation and object-oriented programming (OOP) techniques using the C++ programming language. It equips the students with the theory and practice of problem-solving techniques using the object-oriented approach. It emphasizes the implementation of the OOP concepts including encapsulations, associations, and inheritance. At the end of this course, students should be able to apply the OOP techniques to solve problems.

**Session 2021/2022 Semester 1** & **Session 2022/2023 Semester 1**

**SECI1013 Discrete Structure**

This course introduces students to the principles and applications of discrete structure in the field of computer science. The topics that are covered in this course are set theory, proof techniques, relations, functions, recurrence relations, counting methods, graph theory, trees and finite automata. At the end of the course, the students should be able to use set theory, relations and functions to solve computer science problems, analyze and solve problems using recurrence relations and counting methods, apply graph theory and trees in real-world problems and use deterministic finite automata finite-state machines to model electronic devices and problems.

**SECB3203 Programming for Bioinformatics**

This course provides students with the fundamental skills for programming in bioinformatics. It starts with introducing students to the command line environment in the Unix/Linux operating system. It will include broad coverage of Unix/Linux utilities as well as shell scripting. This course will then use the Python programming language to illustrate the fundamentals of bioinformatics programming. Python-based data science tools will be used, including NumPy, SciPy, Pandas and Jupyter Notebook. This course will focus on solving real-world biological problems using bioinformatics algorithms and approaches.

**Session 2021/2022 Semester 2**

**SECI1113 Computational Mathematics**

This course is a combination of linear algebra and numerical methods as preparation for computer science students to apply mathematics knowledge to core knowledge of computer science. The first part of this course is an introduction to linear algebra. The topics that are covered in linear algebra are linear equations, linear combinations, linear independence, linear transformation, and vector spaces. The second part of this course covers numerical methods that can be used to solve non-linear equations, linear systems, eigenvalue problems, interpolation, differentiation, and integration. At the end of the course, students should be able to apply mathematics knowledge to solve mathematical problems. Implementation of engineering tools such as MATLAB would enhance students using simple programming techniques for solving mathematical problems.

**SECJ2154 Object Oriented Programming**

This course presents the concepts of object orientation and object-oriented programming techniques using Java programming language. It provides students with a thorough look at the basic constructs of the Java programming language such as its basic data types and operations. It also emphasizes the use of standard Java APIs that allow students to develop text-based and GUI applications. It will also provide the programming techniques on exception handling and input/output files. At the end of this course, students should be able to use the basic constructs in object-oriented programming and utilize the selected Java APIs.