Teaching

 Blockchain and Application

A Blockchain combines theory and practice of cryptography, game theory, and distributed systems. Recent developments have shown that Blockchain has the potential to create broad-scale transformative impacts on society in many different industries. 

This course introduces Distributed Ledger Technology (DLT), focusing on both the Blockchain and the applications landscape it has inspired. Topics will include cryptographic tools employed in Blockchain (symmetric, asymmetric. digital signatures algorithm), consensus algorithms (proof of work, etc), ecosystem of a blockchain use-case (eg cryptocurrencies), smart contracts programming. Other issues on Blockchain: ICOs, smart contracts vs real-world contract law; standards, regulations, ethics, and legal issues including the relationship with maqasid shariah and contribution to the efforts of rahmatan-lil-‘alamin.

 Elements of Programming

This course has been designed to introduce students to the fundamentals of structured programming using C++. Students will have the opportunity to learn about C++ program structure, how to create and use functions, arrays, pointers and structures in C++ programs, how to manipulate and use selection and repetition statements/controls and finally on how to import and export an input/output file.

 Final Year Project 1

The course provides students a hands-on experience in designing a project (research and development) using appropriate systematic techniques. Students enrolled in this course should have covered the major subjects and a reasonable number of elective subjects prior to this course. 

 Final Year Project 2

The course provides students a hands-on experience in developing and evaluating projects using systematic techniques. 

 Introduction to Software Engineering

This course emphasizes on the fundamentals of software development processes such as planning, formal specification, program development methodology, program testing, evaluation, maintenance and costing.  In addition, this course will expose the students to the nature of software engineering approaches, practices and disciplines and also to help them better understand the application of these methods in software development.

 Principles of IT Security

This course provides an overview of the major topics in IT Security based on 10 major domains of Common Body of Knowledge (CBK) defined by the International Information Systems Security Certifications Consortium ((ISC)2). Students will be exposed to information and organizational security, risk management, disaster recovery, cryptography and public key infrastructure, network and infrastructure security, and security baselines. Apart from that, the course covers attacks and malware, email security and web components, access control and privilege management, computer forensic, ethics and laws related to information security. Attempts will be made to cover the international standards for Information Security Management Systems (ISO27001:2013 ISMS) best practices

 Probability and Statistics

Probability theory is the branch of mathematics that deals with modelling uncertainty. Statistics on the other hand is involving with the data itself, for examples how the data is collected and the different analysis techniques that can used to analyze the data. This course covers an introduction to probability and statistics, which encompasses the following sub-topics:

  • nature of probability and statistics
  • frequency distributions and graphs
  • data description
  • probability and counting rules
  • discrete probability distributions
  • normal distribution
  • confidence intervals and sample size
  • hypothesis testing
  • testing the difference between two means, two proportions, and two variances
  • correlation and regression
  • nonparametric statistics
  • sampling and simulation

Other than that, this course will also cover the introduction to statistical computing programming language.