Level – 4S

Course units effective from academic year 2016/2017 to date

CSC411SC0: Research Seminar
Course Code: CSC411SC0
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
CSC412SC3: Artificial Intelligence
Course Code: CSC412SC3
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
CSC413SC3: Advanced Algorithms
Course Code: CSC413SC3
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.
CSC414SC3: High Performance Computing
Course Code: CSC414SC3
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.
CSC415SC3: Mobile Computing
Course Code: CSC415SC3
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.
CSC416SC6: Research Project
Course Code: CSC416SC6
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%
CSC417SC3: Data Mining and Machine Learning
Course Code: CSC417SC3
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.
CSC418SC3: Compiler Design
Course Code: CSC418SC3
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.
CSC419SC3: Mathematics for Computing IV
Course Code: CSC419SC3
Course Title: Mathematics for Computing IV
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.
CSC421SC3: Systems Analysis, Design and Project Management
Course Code: CSC421SC3
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.
CSC422SE2: Systems and Network Administration
Course Code: CSC422SE2
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.