Level – 4M

Course units effective from academic year 2016/2017 to date

CSC411MC0: Research Seminar
Course Code: CSC411MC0
Course Title: Research Seminar
Academic Credits: 0 (15 Hours of Discussion and Presentations)
Objectives: To provide research experience that emphasises on creative thinking, problem-solving, analytical thinking, communication and presentation skills, scientific writing and integration of findings.
  • Demonstrate the theoretical or logical rationale of a research problem
  • Develop critical thinking by performing appropriate literature review
  • Engage in a mentor-mentee relationship
  • Practice scientific writing
  • Introduction to research and identifying a study topic: Steps in the process of research, Ethics of research and informed consent
  • Introduction to research proposal writing: Primary research question, testing this question, expected test results, implications of the research, timeline of the research
  • Introduction to literature review and formulate research questions
  • Research methodologies: Familiarizing both qualitative and quantitative methodologies, Experimental designs, Evaluation and problem analysis
  • Citation formats, referencing styles and use of scientific literature digital libraries
  • Use of ICT tools for checking plagiarism and LaTeX for scientific writing


Teaching Methods: Reading assignments in journals, Small group discussions, Demonstration by instructors, Recitation oral questions.
Assessment/ Evaluation Details:
  •  Reading and presenting of research Papers ————- 20%
  • Developing a sample research proposal —————— 50%
  • Oral presentation of the research proposal ————– 30%
Recommended Readings:
  • Zobel, J., Writing for Computer Science, 2nd Ed., Springer, 2004.
  • Materials will be provided in-class and via the course website
CSC412MC3: Artificial Intelligence
Course Code: CSC412MC3
Course Title: Artificial Intelligence
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide in-depth knowledge on design and analysis of intelligent systems for solving problems that are difficult or impractical to resolve using traditional approaches.
  • Formulate an efficient Intelligent system model for a problem expressed in natural language
  • Apply appropriate uninformed, informed or local search algorithms for solving problems
  • Devise a plan of action to achieve a goal using standard AI methods
  • Demonstrate the working of natural language processing techniques


  • Introduction: Practical examples of Artificial Intelligence, Intelligent Agents, Environments, Intelligent behaviour, Rational behaviour & Turing test
  • Problem solving by Searching: Problem-Solving Agents, Uninformed Search Strategies, Informed (Heuristic) Search Strategies
  • Local search and optimization algorithms: Hill climbing search, Simulated annealing, Local beam search, Genetic algorithms, searching in different environments, adversarial search
  • Planning: Classical planning, planning as state-space search
  • Learning Methodologies: Learning by Analysing Difference, by Recording Cases, by Correcting Mistakes, by Building Multiple models, by Building Identification Tree
  • Knowledge representation: Ontology engineering, Categories and objects, events
  • Natural Language Processing: Language models, Text classification, Information retrieval, Information extraction


Teaching Methods: Lecture by Lecturer, Recitation oral questions
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Stuart J. Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, 3rd Ed., Prentice Hall, 2010
  • George F Luger, Artificial Intelligence – Structures and Strategies for Complex Problem Solving,
    6th Ed., Pearson & Addison Wesley, New York, London, Singapore, 2009
  • Patrick H. Winston, Artificial Intelligence, 1st Ed., Addison Wesley, New York, England, Singapore, 1993
CSC413MC3: Advanced Algorithms
Course Code: CSC413MC3
Course Title: Advanced Algorithms
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide in-depth knowledge for designing efficient algorithms using appropriate data structures and a variety of advanced computational techniques.
  • Perform analysis of algorithms using appropriate techniques
  • Identify most suitable data structures for efficient problem solving
  • Transform problems in order to solve them using standard algorithmic approaches
  • Apply algorithms for solving problems of various complexity
  • Demonstrate understanding of NP-Hard & NP-Complete problems
  • Analysis of algorithms: Order of growth and asymptotic notation, master method, amortised analysis
  • Advanced data structures: Hash table, binary heap, binary search tree, red-black tree, augmenting data structures, B-trees, Fibonacci heaps
  • Sorting and order statistics: Standard sorting algorithms, sorting in linear time, medians, order statistics
  • Dynamic programming: Elements of dynamic programming – optimal substructure, overlapping sub-problems, memoization; application of dynamic programming approach for standard problems
  • Greedy approach: Elements of Greedy strategy – optimal substructure, overlapping sub-problems, Greedy strategy; comparison of dynamic programming and Greedy approach, application of Greedy approach for standard problems
  • P, NP, NP-Hard and NP-Completeness: Introduction to class of problems, NP-completeness (Cook’s theorem), classic NP-complete problems, reduction techniques
Teaching Methods: Lecture by lecturer, Recitation oral questions, Tutorial discussions by instructors
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Clifford Stein, Introduction to Algorithms, 3rd Ed., MIT Press, 2009.
  • Jon Kleinberg Eva Tardos, Algorithm Design, 2nd Ed., Pearson Education, 2011.
CSC414MC3: High Performance Computing
Course Code: CSC414MC3
Course Title: High Performance Computing
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide an introduction and overview to the computational aspects of high performance computing and methods of parallel programming.
  • Discuss basics of high performance computing and their usage
  • Describe different parallel architectures, interconnection networks, programming models, and parallel algorithms for common problems
  • Assess parallel algorithms based on their complexity and scalability
  • Analyse parallel programming paradigms and their semantics and correctness issues
  • Transform problems in the computational area to efficient programming in parallel systems
  • Introduction to high performance computing: Cluster computing, Grid computing, Cloud computing, Parallel & Distributed computing, Fault tolerance, Concurrency, Nondeterminism, Locality
  • Parallel architectures: Taxonomy, Data versus Control parallelism (SIMD/Vector, Pipelines, MIMD, Multi-core, Heterogeneous), Shared versus Distributed memory, Interconnection networks for parallel computers
  • Scheduling and Analytical modeling: Cost of computation and Scalability, Model-based notions, Handling scheduling issues
  • Parallel Algorithms: Communication operations, Algorithmic paradigms (Divide and conquer, recursion, Series, parallel composition), Computation on matrices, Sorting, Graph algorithms, Search algorithms
  • Concepts of Parallel Programming: Machine model, Control statements, SPMD notions including MPI and CUDA, Semantics and correctness issues
Teaching Methods:  Lecture by lecturer, Vocabulary drills, Recitation oral questions, Practical demonstration.
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Zbigniew J. Czech, Introduction to Parallel Computing, 1st Ed., Cambridge University Press, 2017
  • Jason Sanders,‎ Edward Kandrot, CUDA by Example: An Introduction to General-Purpose GPU Programming, 1st Ed., Addison-Wesley Professional, 2010
  • Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar. “Introduction to Parallel Computing”, 2nd Ed., Addison-Wesley, 2003.
CSC415MC3: Mobile Computing
Course Code: CSC415MC3
Course Title: Mobile Computing
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide an in-depth understanding of the fundamental concepts in mobile computing and the state of the art trends in mobile computing research.
  • Describe the fundamental concepts of mobile computing
  • Explain realistic problems in wireless communication
  • Identify latest research trends in mobile computing
  • Demonstrate knowledge in mobile development platforms


  • Overview of Wireless Networks: Wireless communication properties, wireless impairments, multiplexing in wireless communications, the need for a specialized MAC
  • Routing in Wireless networks: issues in routing for wireless networks, wireless routing protocols
  • Ad-hoc networks: mobile ad-hoc networks, sensor networks and vehicular ad-hoc networks, routing in ad-hoc networks, latest trends in ad-hoc networking
  • Mobile applications development environments: mobile platforms, development and deployment of applications
  • Common paradigms in mobile computing: low power computing, mobile computing in resource constrained environments, fault tolerance, and persistence.


Teaching Methods: Lecture by lecturer, Vocabulary drills, Recitation oral questions, Tutorial discussions by instructors
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Jochen Schiller, “Mobile Communications”, 2nd Ed., Addison Wesley publishers, 2004.
  • Murat Yener and Onur Dundar, “Expert Android Studio”, 1st Ed., Wrox publications, 2016.
CSC416MC6: Research Project
Course Code: CSC416MC6
Course Title: Research Project
Academic Credits: 06 (600 Notional hours of Project Development)
Prerequisite: CSC411SC0
Objectives: To develop capability of doing scientific research for solving real world problems in computing domain.
  • Identify a hypothesis and/or a research problem\
  • Formulate the detailed problem statement
  • Frame a solution with appropriate research methodology
  • Validate the proposed solution
  • Communicate details of performed research
  • Engage in an academic year long research project under the guidance of academic supervisor(s) with optional guidance by a mentor from industry
  • Develop a research proposal with adequate literature review
  • Carry out the research using appropriate research methodology
  • Document and Present the research
Assessment/ Evaluation Details:
  • Presentation of research proposal  ——————————————- 10%
  • Implementation of proposed solution ————————————— 50%
  • Project report ——————————————————————- 20%
  • Oral presentation of project ————————————————— 10%
  • Submission of abstract/poster/paper to a scientific forum ————— 10%
CSC417MC3: Data Mining and Machine Learning
Course Code: CSC417MC3
Course Title: Data Mining and Machine Learning
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide knowledge on the concepts behind various machine learning techniques and ability to use adaptive techniques for learning from data as well as data analysis and modelling
  • Describe a range of supervised, unsupervised and reinforcement learning algorithms
  • Perform pre-processing operations on data suitably to mine useful information
  • Identify appropriate learning paradigms for given data mining problems
  • Apply machine learning algorithms on data to identify new patterns or concepts
  • Introduction to machine learning: Machine intelligence and applications, concepts, instances, attributes and their types, and handling sparse data, missing & inaccurate values in data
  • Decision tree learning: Learning trees from training examples, Entropy and information gain, ID3 algorithm
  • Supervised learning: Rule-based learning, Naive Bayes, k-Nearest neighbour, Neural networks
  • Unsupervised learning: K-means clustering, Gaussian mixture models (GMMs), Hierarchical clustering
  • Regression and Model-fitting Techniques: Linear regression, Polynomial Fitting, Kernel Based Networks
  • Experimental setup and evaluation: Training and testing, Cross-validation, Confusion matrices and ROC graphs
  • Dimensionality reduction: PCA, Feature selection, Feature extraction, Filter methods
  • Use of Weka Tool in machine learning tasks
Teaching Methods: Use of chalkboard, Vocabulary drills, Recitation oral questions, Laboratory experiments
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Christopher M. Bishop, “Pattern Recognition and Machine Learning”, 2007.
  • Richard O. Duda, Peter E. Hart, David G. Stork, “Pattern Classification”, 2nd, Wiley, 2000.
  • Mitchell,T., “Machine Learning”,  McGraw Hill, 1997.
  • Ian H. Witten, Eibe Frank, Mark A. Hall, “Data Mining: Practical Machine Learning Tools and Techniques”, 3rd Ed., Morgan Kaufmann Series, 2011.
CSC418MC3: Compiler Design
Course Code: CSC418MC3
Course Title: Compiler Design
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide knowledge in components of a compiler and principles involved in compiler design.
  • Explain the functionalities of a compiler
  • Represent a specified language using nondeterministic and deterministic finite automata
  • Analyze the syntax of a language using top-down and bottom-up parsing approaches
  • Design algorithmic routines for type checking and code generation
  • Discuss memory management in compilers
  • Introduction: Compilers, Interpreters, and phases of compilation process
  • Lexical Analysis: Regular expressions and their properties, converting regular expressions to Nondeterministic Finite Automata (NFA), Converting NFA to Deterministic finite automata (DFA), Eliminating dead states and minimising DFA
  • Syntax Analysis: Context-free grammars, Syntax trees and ambiguity, Operator precedence, Eliminating left-recursion, Left-factorisation, Top-down parsing methods, bottom-up parsing methods, Conflicts in parsing tables
  • Scopes and Symbol Tables: Dealing with scopes of identifiers, and efficient implementations of symbol tables
  • Type Checking: The design space of types, Attributes, Type checking procedures
  • Code Generation: Syntax Directed Translations, Intermediate-Code Generation, Machine-Code Generation
  • Memory management: Runtime stack, heap, dope vectors, garbage collection
Teaching Methods: Lecture by Lecturer, Vocabulary drills, Recitation oral questions, Tutorial discussions by Instructors
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Torben Egidius Mogensen, Introduction to Compiler Design, 2nd, Springer, 2017.
  • Monica S. Lam, R. Sethi A. V. Aho, Compilers: Principles, Techniques, and Tools, 2nd Ed., Pearson Education Limited, 2013.
CSC419MC3: Numerical Linear Algebra and Solutions of Differential Equations
Course Code: CSC419MC3
Course Title: Numerical Linear Algebra and Solutions of Differential Equations
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide knowledge in numerical methods for solving large systems of linear equations and an understanding on underlying mathematical concepts of computer aided numerical algorithms
  • Discuss the fundamental concepts in numerical linear algebra
  • Apply the matrix factorization algorithms to solve system of linear equations
  • Examine the convergence of iterative methods for solving system of linear equations
  • Analyze the convergence of algorithms for solving Eigen value problems
  • Discuss the fundamental concepts in differential equations and the numerical methods for solving differential equations
  • Apply the numerical methods for various types of differential equations
  • Implement basic programs in computational mathematics software
  • Numerical Methods for solving system of linear equations: Linear algebra Review, Gaussian Elimination, LU factorization, Operations count, Error Analysis, Iterative algorithms
  • Eigen Value Problems: Eigen values and Singular values, Hessenberg Form, Power Methods, QR Algorithm, Inverse iteration
  • Numerical Methods for Differential Equations: Differential Equations Review, Initial Value problems, Euler Methods, Runge-Kutta methods, Finite Elements Methods.
Teaching Methods: Lectures and demonstration by Teacher, Group tutorial discussions
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • N. Trefethen, D. Bau, Numerical Linear Algebra, SIAM, 1997.
  • R. Dormand, Numerical Methods for Differential Equations: A computational Approach, Taylor and Francis, 1996.
CSC421MC3: Systems Analysis, Design and Project Management
Course Code: CSC421MC3
Course Title: Systems Analysis, Design and Project Management
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide fundamental concepts in the phases of analysis, design, development and maintenance of an information system and efficient project management.
  • Describe the principles, methods and techniques of systems development
  • Discuss principles, methods and techniques for systems development with persons without specialized knowledge in this area
  • Describe how systems analysts interact with users, management, and other information systems professionals
  • Propose a phased system development methodology to implement a systems development project for a realistic problem
  • Use a phased system development methodology to implement a systems development project
  • Systems Analysis Fundamentals: Core concepts of system analysis and design, traditional and modern approaches to system analysis, system development life cycle, roles of a systems analyst
  • Information Requirements Analysis: Interactive and unobtrusive methods for information gathering, agile modeling and prototyping
  • The Analysis Process: Data flow diagrams, analysing systems using data dictionaries, process specifications and structured decisions, designing effective input and output, designing databases
  • Project management: Project initiation and attributes, determining feasibility, asserting software and hardware needs, project stakeholders, project management tools and techniques
  • Quality Assurance and Implementation: Ensuring data quality, six sigmas, quality assurance through software engineering, implementing information system, software testing process, evaluation techniques
Teaching Methods: Lecture by lecturer, Case studies, Vocabulary drills, Construction of summaries by students
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Jeffrey A. Hoffer, Joey F. George, Joseph Valacich, Modern Systems Analysis and Design, 7th Ed.,
    Pearson, 2014.
  • Kenneth E. Kendall and Julie E. Kendall, Systems Analysis and Design, 8th Ed., Prentice Hall, 2011.
  • Kathy Schwalbe, Information Technology Project Management, 7th Ed., Course Technology, 2014.
CSC422ME2: Systems and Network Administration
Course Code: CSC422ME2
Course Title: Systems and Network Administration
Academic Credits: 02 (15 hours of Lectures and 30 hours of Practical)
Objectives: To provide theoretical and practical knowledge required to implement and administer network and servers in small and medium sized enterprises.
  • Design a data communication network required for a small/medium organisation
  • Configure network switches to fulfil the needs of an organisation
  • Set up a server environment consisting web, domain, mail and proxy servers in an organisation using best practices
  • Demonstrate knowledge in securing and administering servers and computer networks
  • Host administration: Basic commands, Files, Directories and File System, Editors, Processes, Users and group management, Package management, Automating system administration
  • Network design: Network cabling, Network devices, designing LANs, Preparing a Bill of Materials (BOM)
  • Network administration: Setup and Administer network devices, Host network configuration, Routing and Router configuration, Switch configuration, Wireless equipment, VLAN, Inter-VLAN routing
  • Server administration: Install and configure Web server, Email server, Domain server and Proxy server
  • Securing servers and networks: Securing networks and servers, monitoring network and servers, setting up backups, setting up firewalls, and disaster recovery
Teaching Methods: Lecture by lecturer, Use of Slides and Videos, Demonstration, Case studies
Assessment/ Evaluation Details:
  • In-course Assessments —————————————–30%
  • End-of-course Practical examination ———————— 40%
  • End-of-course Theory Examination ————————– 30%
Recommended Readings:
  • Adam Haeder, Stephen Addison Schneiter, Bruno Gomes Pessanha, James Stanger, “LPI Linux Certification in a Nutshell”, 3rd Ed., O’Reilly Media, 2010.
  • Christine Bresnahan, Richard Blum, “LPIC-2: Linux Professional Institute Certification Study Guide: Exam 201 and Exam 202”, 2nd Ed., Sybex, 2016.

Course units effective from academic year 2006/2007 to 2016/2017

Core Course Units

CSC401MC4: Advanced Algorithms
CSC402MC2: Artificial Intelligence - II
CSC403MC4: Numerical Linear Algebra and Solutions of Differential Equations
CSC404MC4: Project
CSC405MC3: Parallel Computing
CSC406MC3: System Design, Analysis and Project Management
CSC407MC4: Data Mining and Machine Learning

Elective Course Units

CSC421ME3: Compiler Design
CSC422ME3: Mobile Computing

Course units before academic year 2006/2007

CSS 40: Practical Computer Science (1 Unit)
CSS 41: Numerical Solution of Differential Equations (1 Unit)

Ordinary Differential Equations
Initial value Problem : single step, multi step methods, Runge-Kutta methods, Predictor-Corrector methods, truncation error estimation, convergence and stability analysis, stiff equations, step control policy, practical implementation of ordinary differential equation solver : Gear’s method.
Boundary Value Problem : Difference methods, shooting methods, truncation error estimation, convergence and stability.
Partial Differential Equations
Finite Difference Method : Derivation of methods for Parabolic Elliptic and Hyperbolic equations, Alternating Direction Implicit (ADI) methods, Direchlet Neumann problems, convergence and stability analysis.
Finite Elements Method : Ritz-Galerkin method, boundary value problem in two dimensions, triangular and rectangular elements, element matrices, basis functions, curved elements and isoparametric transformations, assembly of element equations, error estimation and convergence, implementation details, applications.

CSS 42: Expert Systems (1 Unit)

Definitions, Examples, Difference from conventional programs,
Knowledge Representation and Logical inference
Computational approach to Representation and control :
Production Rules
Semantic Nets
Building an Expert System:
Programming language for expert systems application knowledge engineering languages
System building aids – shells, tools environments knowledge acquisition from human expert criteria for choosing tool
Future developments.

CSS 43: Operating Systems (1 Unit)

Multitasking operating systems, concurrent processes including process interaction mechanisms : locks, semaphores, message passing and monitors; system nucleus; first level interrupt handler and dispatcher; memory management; input-output, filing system; drivers, scheduling and resource allocation.
Case Studies : UNIX, MS/DOS, OS/2 operating systems

CSS 44: Compiler Design (1 Unit)

Formal Languages : Language definition, grammers, finite state automata, regular expressions, lexical analysis.
Syntax analysis : BNF, context-free grammars, recognisers, parse trees, top-down parsing, recursive descent, ambiguity, left recursion, backtracking, Warshall’s algorithm, context clashes, Bottom-up parsing, operator precedence, operator grammars, constructing, precedence matrices producing abstract syntax trees and semantic actions. Symbol and type tables, syntax directed translation.
Storage Allocation : Run-time stack, heap, dope vectors, garbage collection
Code Generation : Stack machines, assemble Language, P-Code, generating code for some typical constructs, machine code generation and optimisation.
Error recovery and Diagnostics : Types of errors, lexical errors, bracket errors, syntax errors, type errors, runtime errors.
Compiler construction tools : Yacc, Lex

CSS 45: Parallel Computing ( 1 Unit )

Parallel models and architectures : SIMD, MIMD, shared memory and interconnection models, Hypercube multicomputers, perfect shuffle, systolic arrays.
Parallel algorithms :Searching, merging, sorting, prefix sums, broadcasting, routing algorithms for numerical and optimisation problems, matrix problems : tri diagonal system; triangular and banded system. FFT, Graph algorithms.

CSS 46: Computer Graphics and Image Processing ( 1 Unit )

Three Dimensional Graphics : Transformations, Projections, Hidden line removal; object space algorithms, imagespace algorithms, line scan algorithms.
Interpolation methods : Polynomial interpolation, B-splines, beta-spline, Bezier curves and surfaces, spline patches.
Solid Models : Representation, combining operations, display.
Shading algorithms : Matt surfaces, specular reflections, Phong model, Torrence-Sparrow model, colour.
Raster algorithm : Halftoning, Flood-Fill and Boundary fill
Graphics standard : The core system, GKS; CGI; CGM; PHIGS.
Image Processing : Digitisers, Display and recording devices, Digital image fundamentals; sampling and quantization, relationships between pixels, connectivity.
Image Enhancement : Histogram Equalization, smoothing, sharpening, Noise removal.
Image Segmentation : Edge detection, boundary detection, thresholding representation and description; chain codes, signature boundary descriptors, regional descriptions.

CSS 48: Computer Networks (1 Unit)

Data Communications : Technologies available, Communications hardware, File transfer protocols, XMODEM, Kermit protocols, XON/XOFF protocols, CRC calculation.
Wide area Network (WAN) : Network Topology, protocols, OSI model and ISO Layers, Datalink Level protocol, Data transparency sliding window protocols, routing, Datagram/Virtual circuits, Connection initialization, cryptograph, X.25, SNA, DNA Architecture and DECNET, ARPANET Networks.
Local Area Network : Ethernet, IBM token ring, Cambridge ring, CSMA/CD Nowell’s Netware,3Com’s 3+ Open and Banyan’s VINES.
Internetworking : TCP/IP protocols, Gateways, Bridges, e-mail Service.