Courses – Level-4S

New Degree StructureOld Degree Structure

Course units effective from academic year 2019/2020 to date

CSC401S3: Advanced Algorithms
Course Code: CSC401S3
Course Title: Advanced Algorithms
Credit Value: 03
Hourly Breakdown: Theory Practical Independent Learning
45 105
Objectives: Provide in-depth knowledge for designing efficient algorithms using appropriate data structures and a variety of advanced computational techniques.
Intended Learning Outcomes:
  • Perform algorithm analysis using appropriate techniques
  • Apply algorithms for solving problems of various complexity
  • Identify suitable data structure(s) for efficient problem solving
  • Formulate a real world problem into a model solvable by standard algorithmic approaches
  • Defend NP-Hard & NP-Complete problems
Contents:
  • Analysis of algorithms: Order of growth and asymptotic notation, master method, amortised analysis
  • Algorithms for sorting and order statistics: Standard sorting algorithms, sorting in linear time, medians, order statistics
  • Advanced data structures: Hash table, binary heap, binary search tree, red-black tree, augmenting data structures, B-trees, Fibonacci heaps, utilising data structures for problem solving.
  • Dynamic programming: Elements of dynamic programming (optimal substructure, overlapping sub-problems, memoization), application of dynamic programming approach for problem solving
  • Greedy algorithms: Elements of Greedy strategy (optimal substructure, overlapping sub-problems, Greedy strategy), comparison of dynamic programming and Greedy approach, application of Greedy approach for problem solving
  • P, NP, NP-Hard and NP-Completeness: Introduction to class of problems, NP-completeness (Cook’s theorem), classic NP-complete problems, reduction techniques
Teaching/Learning Methods: Lectures, Tutorial discussion, e-based teaching, Open Educational Resources, Assignments, Guided learning
Assessment Strategy:
  • In-course Assessments —————————————-30%
  • End-of-course Examination ———————————-70%
References:
  • Tardos, J. K. E., Algorithm Design, 2nd Ed., Pearson Education, 2011.
  • Sedgewick, R., Algorithms, 4th Ed., Addison-Wesley Professional, 2011.
  • Thomas, H. Cormen, T. Leiserson, C. E., Rivest, R. L., and Stein, C., Introduction to Algorithms, 3rd Ed., MIT Press, 2009.
CSC402S3: Compiler Design
Course Code: CSC402S3
Course Title: Compiler Design
Credit Value: 03
Hourly Breakdown: Theory Practical Independent Learning
45 105
Objectives: Provide in-depth knowledge of compiler components and principles involved in compiler design.
Intended Learning Outcomes:
  • Discuss the functionalities of a compiler
  • Represent a specified language using nondeterministic and deterministic finite automata
  • Analyse the syntax of a language using top-down and bottom-up parsing approaches
  • Discuss implementation techniques for a compiler
  • Design algorithmic routines for type checking and code generation
Contents:
  • 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, Ambiguity in Grammar, Operator precedence, eliminating left-recursion, Left-factorisation, Top-down parsing methods, Bottom-up parsing methods, Resolving conflicts in parsing tables
  • Scope and Symbol Tables: Dealing with scopes of identifiers, 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
Teaching/Learning Methods: Lectures, Tutorial discussion, e-based teaching-learning, Open Educational Resources, Assignments, Guided Learning
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • Mogensen, T. E., Introduction to Compiler Design, 2nd Ed., Springer, 2017.
  • Lam, M. S., Sethi, R., and Aho, A. V., Compilers: Principles, Techniques, and Tools, 2nd Ed., Pearson Education, 2013.
  • Galles, D., Modern Compiler Design, 2nd Ed., Pearson Education, 2009.
CSC403S3: Data Science
Course Code: CSC403S3
Course Title: Data Science
Credit Value: 03
Hourly Breakdown: Theory Practical Independent Learning
30 30 90
Objectives: Provide theoretical and practical knowledge on data science for solving data-driven problems and improving research skills in data science.
Intended Learning Outcomes:
  • Discuss fundamental concepts of linear algebra in relation to data science
  • Analyse data-driven problems using probability and statistics
  • Apply mathematical optimization techniques for solving data-driven problems
  • Build neural networks using backpropagation algorithm
  • Transform data-driven problems into computer programs
  • Analyse data through visualization
Contents:
  • Linear algebra: Overview of scalars, vectors, matrices, tensors, multiplication of matrices and vectors, norms, trace, rank, eigenvalues, and eigenvectors
  • Probability and statistics: Overview of probability, marginal and conditional probabilities, independence and conditional independence, probability density functions, expectation, variance and covariance, and Bayes rule; Bayesian classifier, principal component analysis (PCA), linear discriminant analysis (LDA).
  • Information theory: Entropy, cross-entropy, KL divergence, mutual information
  • Multivariate calculus and mathematical optimization for parameter estimation: partial derivatives, chain rule, gradient based optimization (Gradient Descent, Stochastic Gradient Descent), Jacobian and Hessian matrices, constrained optimization, neural networks and back propagation algorithm.
  • Applications: Eigen faces, LDA based classification, Linear Regression, Least square minimization
  • Emerging Technologies in Big Data Analytics: Usage of Open source frameworks (e.g. Hadoop).
Teaching/Learning Methods: Lectures, Tutorials, Laboratory experiments, e-based teaching-learning, take home exercises, Simulations, Use of Open Educational Resources, Guided Learning
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • Goodfellow, I., Bengio, Y. and Courville, A., Deep Learning, 1st Ed, MIT Press, 2016.
  • Bishop, C.M., Pattern Recognition and Machine Learning, 1st Ed, Springer, 2006.
  • Nielsen, M., Neural Networks and Deep Learning, Determination Press, 2019.
  • Aggarwal, C. C., Linear Algebra and Optimization for Machine Learning, 1st Ed, Springer Nature, 2020
CSC404S3: Information Systems Security
Course Code: CSC404S3
Course Title: Information Systems Security
Credit Value: 03
Hourly Breakdown: Theory Practical Independent Learning
45 105
Objectives: Provide knowledge to identify various security threats and propose suitable approaches to protecting Information Systems.
Intended Learning Outcomes:
  • Identify various security threats and attacks on Information Systems.
  • Explain security design principles.
  • Elaborate techniques for data protection on Information Systems.
  • Understand the techniques used to protect Computer Networks
  • Explain the protocols that are utilised to protect the network and application layers of the Internet.
Contents:
  • Introduction: Key security concepts, Critical characteristics of Information System, Secure-System life cycle, Security Professionals and the Organization.
  • The need for security: Threats, Attacks, Secure software development.
  • Security technologies: Firewalls, Virtual private networks, Intrusion detection and prevention systems, other security tools.
  • Cryptography: Classical encryption techniques, Block ciphers, Data encryption standard, Advanced encryption standard, Public-Key cryptosystems.
  • Cryptographic data integrity algorithms: Cryptographic hash functions, Message authentication codes, Digital signatures.
  • Network security: Network access control and cloud security, Transport-level security, Wireless network security.
  • Internet security: Internet Protocol security, web security (S-HTTP), email threats and email security (S/MIME)
Teaching/Learning Methods: Lectures, e-based teaching-learning, Tutorial discussion, Assignments, Simulations, Use of Open Educational Resources, Guided Learning
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • Whitman, M. E. and Mattord, H. J., “Principles of Information Security”, 6th Ed., Cengage Learning, 2017.
  • Stallings, W., “Cryptography and Network Security: Principles and Practice”, 4th Ed, Pearson Education Limited, 2017
  • Paar, C. and Pelzl, J., “Understanding Cryptography: A Textbook for Students and Practitioners” 1st Ed, Springer, 2014.
CSC405S3: Systems and Network Administration
Course Code: CSC405S3
Course Title: Systems and Network Administration
Credit Value: 03
Hourly Breakdown: Theory Practical Independent Learning
15 60 75
Objectives: Provide theoretical and practical knowledge required to manage and maintain hosts, network connectivity devices, and various networked servers.
Intended Learning Outcomes:
  • Administer computer systems and connectivity devices
  • Configure systems and devices for different networking scenarios
  • Design a data communication network required for a small/medium organisation
  • Demonstrate ability in network and server management
  • Implement security policies in networked systems
Contents:
  • Host Management: Host hardware and maintenance, Basic commands, Files, Directories and File System, Editors, Processes, Users and group management, Package management, Automating system administration.
  • Network Design and Management: Network connectivity devices, Host network configuration, Routing and Router configuration, IP addressing, subnetting, Switch configuration, Wireless equipment, VLAN, Inter-VLAN routing,
  • Server Management: Install and manage server operating systems, Web server, e-mail server, Proxy server, DNS server, Content Servers,
  • Security Policy Implementation: Firewall configuration, IP tables, Secure remote administration, Simple Intrusion Detection Techniques, Snort.
Teaching/Learning Methods: Lectures, Practical, e-based teaching-learning, Open Educational Resources, Assignments, Online based training, Simulation, Guided Learning
Assessment Strategy:
  • In-course Assessments (Theory) —————————————20%
  • Group Project ——————————————————————-20%
  • End-of-course Examination (Practical) ——————————–60%
References:
  • Blokdyk, G., “Computer Network Administration: A Clear and Concise Reference”, 1st Ed, 5 Star Cooks, 2019
  • Frisc, A., “Essential System Administration”, 3rd Ed, O’Reilly Media Inc., 2002.
  • Odom, W., CCNA 200-301 Official Cert Guide Library, 1st Ed, Cisco Press, 2019
  • Bauer, M. D., “Linux Server Security”, 2nd Edition, O’Reilly Media Inc., 2005
CSC406S6: Research Project
Course Code: CSC406S6
Course Title: Research Project
Credit Value: 06
Hourly Breakdown: Mentoring Practical Independent Learning
20 580
Objectives: Develop capability of carrying out scientific research in the computing domain for solving real world problems.
Intended Learning Outcomes:
  • Identify a hypothesis and/or a research problem
  • Formulate the detailed problem statement
  • Frame a solution with appropriate research methodology
  • Validate the proposed solution
  • Perform scientific communication
  • Defend the performed research, results and findings
Contents:
  • Engage in an academic year long research project under the guidance of academic supervisor(s) with optional guidance by an external mentor
  • Develop a research proposal with adequate literature review
  • Carry out the research using appropriate research methodology
  • Document and present the research
Teaching/Learning Methods: Reading assignments in journals, Research seminars, Open Educational Resources, Documentation
Assessment Strategy:
  • Presentation of research proposal——————————————20%
  • Proposed solution and Implementation—————————————40%
  • Project Diary————————————————————–10%
  • Project report————————————————————-10%
  • Viva voce——————————————————————10%
  • Submission of abstract/poster/paper to a scientific forum——————10%
CSC407S6: Industrial Training
Course Code: CSC407S6
Course Title: Industrial Training
Credit Value: 06
Hourly Breakdown: Mentoring Practical Independent Learning
20 580
Objectives: Provide an opportunity to develop skills and attitude, and gain experience in finding IT solutions to problems in an industrial environment.
Intended Learning Outcomes:
  • Apply acquired knowledge in industrial environment
  • Develop interpersonal, communication, management and team working skills
  • Adapt to work readily in real industrial projects
  • Perceive state-of-the-art industrial technologies
Contents:
  • The industrial training is offered during the second semester.
  • Students will be trained in an appropriate industry for a period of four to six months which amounts to 600 notional hours under the guidance of academic and industrial mentors.
  • Any additional stay at the industry will not carry any additional credits.
  • It is the student’s responsibility to find a placement in consultation with the department. The department may assist the student in finding a placement in an appropriate industry.
  • Students shall maintain a journal to record their progress activity during the training.
  • Academic staff will visit the training institution at least once during the training period to monitor their progress.
  • On completion of the industrial training, each student shall submit the report, journal and deliver an oral presentation.
  • Students who fail to obtain a minimum grade of D+ in industrial training may opt for a general degree in Computer Science as the training is non-repeatable.
Teaching/Learning Methods: Mentoring, Weekly recording of training diaries, Code reviews, Progress meetings, Supervised study
Assessment Strategy:
  • Training journal—————————————-20%
  • Progress as per feedback from mentor(s)—————–20%
  • Final Report——————————————–20%
  • Presentation——————————————–40%

The level-4S syllabi can be downloaded here

Course units effective from academic year 2016/2017 to 2019/2020

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.
ILOs:
  • 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
Contents:
  • 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.
ILOs:
  • 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

 

Contents:
  • 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.
ILOs:
  • 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
Contents:
  • 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.
ILOs:
  • 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
Contents:
  • 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.
ILOs:
  • 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
Contents:
  • 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.
ILOs:
  • 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
Contents:
  • 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
ILOs:
  • 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
Contents:
  • 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.
ILOs:
  • 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
Contents:
  • 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
ILOs:
  • 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
Contents:
  • 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.
ILOs:
  • 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
Contents:
  • 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.
ILOs:
  • 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
Contents:
  • 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
Course Code CSC401MC4
Course Title Advanced Algorithms
Academic Credits 04 (60 hours of lectures and tutorials)
Objectives:
  • To understand the general notion of complexity classes, P and NP, completeness and hardness, and the relationships between classes by reduction.
  • To be able to develop, and reason about the correctness and performance of algorithms.
Contents:
  • Advanced data structures : B – Trees, Binomial heaps, Fibonacci Heaps, Data structures for disjoint sets. Hash tables: Direct address tables and Hash tables, Hash functions, Open addressing, Perfect hashing.
  • Matrix operations : Properties of matrices, Matrix multiplication algorithms, solving systems of linear equations.
  • Linear Programming : Standard and slack forms, Formulating problems as linear programs, Simplex algorithm, Duality, Initial basic feasible solution.
  • Number-Theoretic Algorithms : Elementary number-theoretic notions, Modular arithmetic, Solving modular linear equation, The Chinese remainder theorem, Powers of an element, The RSA public-key crypto system.
  • String Matching : The na?ve string-matching algorithms, The Rabin-Karp algorithm, String matching with finite automata, The Knuth-Morris-Pratt algorithm.
  • Computational Geometry : Line segment properties, Determining intersection of a pair of segments, Finding the convex hull, finding the closest pair of points.
  • NP-Completeness : Polynomial time, Polynomial-time verification, NP-Completeness and reducibility, NP-completeness proofs, NP-complete problems.
  • Approximation Algorithms : The vertex cover problem, traveling-salesman problem, set-covering problem.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
CSC402MC2: Artificial Intelligence - II
Course Code CSC402MC2
Course Title Artificial Intelligence – II
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To study advanced topics of Artificial Intelligence.
  • To understand the basics of expert systems, Natural Language Processing and acquire knowledge for developing such systems.
Contents:
  • Expert Systems : Expert system structure, design issues and sample applications, Design and development of the knowledge base and the inference engine, Expert system shells, Expert system developing tools.
  • Natural Language Processing : Stages of natural language processing, Morphological analysis, Syntactic analysis, Semantic and Pragmatic analysis, Natural language processing applications, Common-sense and Understanding.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
CSC403MC4: Numerical Linear Algebra and Solutions of Differential Equations
Course Code CSC403MC4
Course Title Numerical Linear Algebra and Solutions of Differential Equations
Academic Credits 02 (60 hours of lectures and tutorials)
Objectives:
  • To be able to apply a variety of numerical methods to the problems of finding solutions to large system of linear equations.
  • To be able to apply some numerical methods to find eigenvalues of large matrices.
  • To introduce the ordinary and partial differential equations.
  • To be able to derive solutions to a broad range of ordinary differential equations and to solve partial differential equations.
Contents:
  • Systems of Linear Equations, Eigen value computation.
  • Ordinary Differential Equations, Initial value Problem.
  • Partial Differential Equations, Finite Difference Method, Finite Elements Method.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
CSC404MC4: Project
Course Code CSC404MC4
Course Title Project
Academic Credits 04 (minimum 200 hours)
Objectives:
  • To test and understand the concepts learned in other course units.
  • To design, plan and complete a computer science related project individually.
Assessment/ Evaluation Details:
  • Project Report (70%)
  • Presentation (30%)
CSC405MC3: Parallel Computing
Course Code CSC405MC3
Course Title Parallel Computing
Academic Credits 03 (45 hours of lectures and tutorials)
Objectives:
  • To study the fundamentals of diverse areas of parallel and high performance computing.
  • To understand the design, development, implementation and analysis of parallel algorithms.
  • To get practical experience in parallel computing environment simulated over a local network of computers using MPI.
Contents:
  • Parallel models and architectures : SIMD, MIMD, shared memory and interconnection models, Hypercube multicomputers, perfect shuffle, systolic arrays. Distributed Memory Parallel Computers and Message Passing in MPI
  • Designing Parallel Algorithms: Methodical design, Partitioning, Communication, Agglomeration, Mapping.
  • Quantitative Design : Defining Performance’s approaches to Performance Modelling, Developing models, Scalability analysis, Experimental studies, Evaluating implementations, Communication cost model, Input /Output.
  • 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.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
CSC406MC3: System Design, Analysis and Project Management
Course Code CSC406MC3
Course Title System Design, Analysis and Project Management
Academic Credits 03 (45 hours of lectures and tutorials)
Objectives:
  • To study a methodical approach for developing computer systems including systems planning, analysis, design, testing, implementation and software maintenance.
  • To learn the strategies and techniques of systems analysis and design for producing logical methodologies for dealing with complexity in the development of information systems.
  • To find the overview of the people involved in information systems development – their roles and responsibilities, with special emphasis on the systems analyst.
Contents:
  • Information systems and their characteristics.
  • Process of systems development : Underlying principles, Phases of systems development, traditional systems development life cycle, Alternative systems development approaches (model-driven, rapid application development, packaged software).
  • Project Management : Gantt charts and project reporting.
  • Systems analysis : Fact finding techniques, Documenting user requirements with Use Cases. Feasibility Analysis.
  • System Design : Object modeling using UML, Data modeling using entity relationship diagrams, Process modeling using data flow diagrams. System testing.
  • Input Output Design : Input Design considerations & tools and User Interface Design.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
CSC407MC4: Data Mining and Machine Learning
Course Code CSC407MC4
Course Title Data Mining and Machine Learning
Academic Credits 04 (60 hours of lectures and tutorials)
Objectives:
  • To introduce basic concepts and techniques of Data Mining and Machine learning.
  • To develop skills of using recent data mining and machine learning software for solving practical problems.
Contents:
  • Introduction: Data Mining and Machine Learning, Data collection and ware house, Data cleaning and preparation for Knowledge Discovery, Knowledge Representation .
  • Classification : Basic methods, Decision Trees, Rule-based methods.
  • Neural networks : Introduction to neural networks, Multilayer neural networks, Error Back-propagation algorithm, RBF networks.
  • Stochastic methods: Simulated annealing, Genetic algorithms, Genetic programming.
  • Bayesian Learning : Bayesian decision theory (Continuous features, Discrete features), Bayesian belief networks.
  • Clustering: Unsupervised Learning, K-means clustering, Unsupervised Bayesian learning, Kohonen networks.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)

Elective Course Units

CSC421ME3: Compiler Design
Course Code CSC421ME3
Course Title Compiler Design
Academic Credits 03 (45 hours of lectures and tutorials)
Objectives:
  • To understand wide range of topics in compiler design.
Contents:
  • 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 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, assembly Language, P-Code, generating code for some typical constructs, machine code generation and optimisation.
  • Error Diagnostics and recovery: Types of errors (lexical errors, syntax errors, type errors, runtime errors), detection of errors, recovery.
  • Compiler construction tools : Yacc, Lex.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
CSC422ME3: Mobile Computing
Course Code CSC422ME3
Course Title Mobile Computing
Academic Credits 03 (45 hours of lectures and tutorials)
Objectives:
  • To understand the fundamental concepts underlying current developments in mobile communication systems and wireless computer networks.
  • To study the current trends in mobile computing, particularly wireless LAN and blutooth.
Contents:
  • Introduction to mobile computing : Wireless Communications, Wireless Networks.
  • Data link layer : Channel allocation.
  • Network layer: Mobile IP, Micro-mobility solutions to the host mobility problem, Routing in mobile Ad Hoc networks.
  • Transport layer : TCP in wireless environments.
  • Application layer: Adaptation, Disconnected/Weak-connected Operations, Mobile Applications/Services, User Interface Issues, Mobile agents, Security.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)