Synopsis of Courses Offered
a. CCS511/4 – Evolutionary Computing
The course introduces an emerging field within artificial intelligence. The main goal is to understand the metaphors and concepts of evolutionary computing, and to learn some of the techniques within evolutionary computing. Starting with the general evolutionary algorithm and optimisation, it will be followed by a detailed study of some of the following algorithms: genetic algorithm, evolution strategies, evolutionary programming, genetic programming and learning classifier systems. This will be followed by looking at some of the following issues: parameter control, models, hybrids and other pertaining issues. Finally, a look at some of other related methods: simulated annealing, tabu search, ant algorithm or other emerging approaches.
b. CCS512/4 – Language Engineering
The aim of this course is to introduce students to the field of Language Engineering (LE). LE is concerned with the computer processing (analysis, understanding, and generation) of natural language texts, in written and spoken forms. LE can be viewed as the extension of Natural Language Processing (NLP) and Computational Linguistics (CL) applications. The aim of LE is to fill the gap that exists between researchers and industries. Thus LE takes advantages of the theories, techniques, and language resources developed in CL and NLP to be used as practical applications to the real-world demands. Four main sections will be covered in this course: speech processing, text annotation, machine translation, and document processing. The two main methods in processing natural languages, that is, symbolic and empirical approaches, are illustrated through the different sub-topics: text to speech generation, speech to text generation, text normalisation, morphological analysis, part of speech tagging, syntactic parsing, semantic interpretation and annotation, language identification, and information extraction. On completion of the course and through discussions on published papers, tests, and assignments, the student should be able to explain the implications of LE in the era of information technology, to have a broad view of current LE systems, to explain the strengths and weaknesses of these current systems, to design and implement a simple LE application, and to participate in projects related to the area of LE.
c. CCS513/4 – Computer Vision and Image Analysis
The aim of the course is to provide a brief introduction to the basic concepts of formation, representation, and enhancement of digital images. It also introduces concepts and methodologies for image analysis. Besides, it reviews and introduces relevant mathematical and artificial intelligence methodologies required for image analysis and computer vision. The students taking this course will gain experience in the design and implementation of image analysis and computer vision algorithms. The course will also include the study of recent research in image retrieval in digital libraries and medical image analysis. The main topics to be covered include introduction to image acquisition, digitisation, digital image concepts and preprocessing, introduction to colour fundamentals, texture analysis and morphological processing, review of mathematical concepts in statistics and neural networks, image segmentation, classification and decision making, and also their application involving, image retrieval in digital libraries and medical image analysis.
d. CCS514/4 – Envisioning Information
This course will discuss the use of computer-supported, interactive, visual representations of data to amplify cognition (Card, McKinlay and Scneidermann). It consists of techniques from two branches of visual representation of data namely scientific and information visualisation. Among the topics covered in the course are simple graphs and charts, multivariate data exploration, connection and document visualisation, interaction, time and good design principles (tufte's principles). The student will also learn techniques from scientific visualisation such as contours, isosurface, volume rendering, and flow visualisation.
e. CCS521/4 – Advanced Distributed Systems Concepts and Design
This course focuses on concepts and principles that involved in the design and implementation of distributed applications. Topics covered include communication in distributed systems, synchronisation, coordination and agreement in distributed systems, distributed object-based systems, process scheduling in distributed systems, distributed file systems, distributed shared memory, grid computing and service-oriented architecture.
f. CCS522/4 – Advanced Data Communications and Computer Networks
This course focuses on the advanced principles and workings of Computer Networks. The type of networks covered will include Local Area Network (LAN), Metropolitan Area Network (MAN), and Wide Area Network (WAN). Focus will be on layers 2, 3 and 4 of the OSI Network Model, concentrating on the TCP/IP suite for Internet. Some important topics are: Ethernet Technologies and High Speed Networks, IPv6, traffic congestion and flow control, and QoS support in modern networks. The course will also cover UNIX network programming. At the end of this course, the students will be able to understand the technical features of major LAN and WAN technologies; understand fundamental Internet protocols for flow and congestion control; understand and analyse algorithms for Quality of Service in the Internet; and write network programs under UNIX platform.
g. CCS523/4 – Computer Security and Cryptography
The course presents an overview of the history, concepts, practice and theoretical foundations of modern cryptographic algorithms. The course also addresses the issue of using trusted computers to provide various computer security services. The first part of the course will cover historical background, basic concepts and symmetric cryptography (including DES, Blowfish, AES, and other ciphers). The second part of the course will cover asymmetric cryptography and discussion on how these cryptography primitives (symmetric, asymmetric and unkeyed cryptography) address issues such as confidentiality, integrity, authentication, and non-repudiation. In the third part of the course, the class will analyse the most popular implementations of cryptography used on the Internet such as PGP, SSL/TLS, IPSec, Kerberos etc.
h. CCS524/4 – Parallel Computing Architectures and Algorithms
The course will study the principles of parallel computing which will include parallel architecture, parallel programming models, system software, parallel algorithms and parallelising compilers. Issues such as synchronisation, data distribution, load balancing, data partitioning, interconnection networks and data communication will be considered for various parallel architecture such as shared-memory architecture and distributed-memory architecture. The course will include a significant laboratory involving the design, implementation, and evaluation of parallel programmes on a message-passing architecture using Message Passing Interface (MPI) and also multithreading on multicare architecture.
i. CCS590/20 – Dissertation
The course provides an exposure to the students on the preparation of an academic research in the area of computer science. Other than mastering the way of research, students are also required to demonstrate an ability to write a dissertation in the area of computer science. Students will conduct research after taking the course on research and empirical methods which will equip them with the necessary skills.
j. CCS591/4 – Research & Empirical Methods in Computer Science
The aim of this course is to introduce techniques in conducting research, academic writing and presentation particularly in the area of computer science. This course will provide guidance to the students in selecting research title or problems, in understanding the research process and techniques as well as tools that can be used to support research. It also includes information on methods that are normally used in research such as questionnaire, comparison, proposal, case studies and experiments as well as implementing quality research project. These include methods in analysing data and conducting evaluation on results obtained either qualitatively or quantitatively to prove the research contribution based on the research design and hypothesis. This course will also provide guidance on presentation of research materials, and quality paper and thesis writing. Students have to work under the supervision of a lecturer. This course is prerequisite for dissertation.
k. CCS592/4 – Advanced Algorithms and Complexity
The 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 greedy method, divide-and-conquer, dynamic programming, backtracking and branch-and-bound. This course also discusses in detail, important algorithms in several areas of computer science such as graph connectivity, fault tolerance of networks, matching, network flow algorithm, internet algorithm, distributed network algorithm, string matching and document processing, probabilitistic and randomiser algorithms, Fast Fourier transform, and NP-Complete problems.