Courses

Level 1GLevel 2GLevel 3GLevel 3MLevel 4MOld Syllabus

Course units effective from academic year 2016/2017 to date

CSC101G3: Foundations of Computer Science
Course Code: CSC101G3
Course Title: Foundations of Computer Science
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
45 105
Objectives: Provide logical and mathematical foundations of computer science, and illustrate the use of formal languages in computer science
Intended Learning Outcomes:
  • Describe the fundamentals of mathematical and logical aspects
  • Outline the concepts of programming
  • Illustrate the use of formal languages in computer science
  • Explain basic computer network organisation
Contents:
  • Fundamental organisation of computer hardware and software: Motherboard, I/O Peripherals, Expansion slots and cards, application software, arithmetic-logic unit, registers, central processing unit, memory, storage devices
  • Theoretical foundations of sets: Basic notation, representations and examples, membership and subsets, operations on sets, cartesian products, power sets, cardinality, infinite sets
  • Introduction to relations and functions: Domain and range of a relation, one-to-one, one-to-many, many-to-one, inverse, reflexive, symmetric, transitive relations, into, onto, one-one, Bijective functions.
  • Concepts of flowcharts and algorithms
  • Introduction to propositional and predicate logic: Propositions, quantifiers, predicates, arguments
  • Boolean algebra and logic gates: Combinatorial circuits, Boolean functions, Karnaugh map
  • Number systems and their representations: Representation of integers and floating-point numbers in signed-magnitude and two’s-complements
  • Trees, Graphs and their applications: Graphs, representation of graphs, paths and circuits, planar graph, Binary trees, decision trees, tree traversal, spanning trees
  • Automata, grammars and languages: Finite state machines, languages and grammars, language recognition, Turing machines
  • Introduction to computer networks: Network topologies, transmission media and network devices, ISO OSI stack, IP addressing
Teaching/Learning Methods: Use of chalkboard, Vocabulary drills, Flowcharts, Recitation oral questions, Timelines, Photographs, Tutorial discussions
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • B. A. Forouzan, Foundations of Computer Science, 3rd Ed., 2014.
  • P. Norton, Introduction to Computers, 7th Ed., Tata McGraw Hill Education, 2011.
  • R. L. Graham, Donald E. Knuth, and Oren Patashnik. Concrete Mathematics: Foundation for Computer Science, 2nd Ed., Addison-Wesley Professional, 1994
CSC102G3: Computer Programming I
Course Code: CSC102G3
Course Title: Computer Programming I
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
135 165
Objectives: Provide fundamentals of programming concepts in Java and introduce the concepts of object-oriented programming
Intended Learning Outcomes:
  • Demonstrate fundamental programming concepts
  • Identify classes, objects, members of a class and relationships among them needed for a specific problem
  • Solve variety of computational problems
  • Create programs using fundamental concepts of object-oriented programming
Contents:
  • Interaction with a computer: Graphical user interface, command line interface, files and folders, using text editors / IDEs, programming principles
  • Program development in Java: Programming principles, Edit-Compile-Run cycle, basic components of a Java program, syntax and semantics, data types, variables and constants, expressions, built-in classes
  • Introduction to Object-Oriented Programming: Classes and objects, fields and methods, arguments and parameters, constructors, class and instance data values
  • Control Flow: Sequence, selection, repetition, explicit control-flow statements
  • Arrays and Collections: 1D & 2D Arrays, arrays of objects, for-each loop, passing arrays to methods, searching and sorting in arrays
  • Concepts of recursion and backtracking: Recursion concepts, examples using recursion, recursion vs. iteration, recursive backtracking
  • Implementing standard algorithms: String matching, counting coins, Knapsack problem, Huffman coding, activity-selection, scheduling problem
  • Inheritance and Polymorphism: Principles of Inheritance, member accessibility, inheritance over accessibility, principles of polymorphism and polymorphic constructors/methods
Teaching/Learning Methods: Laboratory experiments, Supervised study, Practical records, Tutorial discussions
Assessment Strategy:
  • In-course Assessments
    • Assessment on practical records ———————– 10%
    • End-of-First Semester Practical Assessment ———– 30%
  • End-of-Second Semester Practical examination ———- 60%
References:
  • C. T. Wu, An Introduction to Object-Oriented Programming with Java, 5th Ed., McGraw-Hill Education, 2009.
  • P. Deitel and H. Deitel, Java How to Program, 9th Ed., Pearson Education, Inc., 2012.
  • H. Schildt, Java: The Complete Reference, 9th Ed., McGraw-Hill Osborne Media, 2014.
CSC103G2: Multimedia Technologies
Course Code: CSC103G2
Course Title: Multimedia Technologies
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Provide in-depth knowledge in technologies to develop multimedia-based contents
Intended Learning Outcomes:
  • Explain the fundamental principles of multimedia
  • Demonstrate compression techniques used in multimedia
  • Discuss theories behind the multimedia components
  • Design contents using multimedia technologies
Contents:
  • Introduction: Uses of multimedia, interaction technologies, multimedia hardware and devices
  • Compression techniques in multimedia: compression basics, lossless and lossy compression techniques
  • Text in multimedia: Visual representation of text, digital representation of characters
  • Fundamentals of colours, colour models and dithering
  • Fundamentals of images:  characteristics of images, image file formats, and image compression standards
  • Digital audio: sound processing, representation of audio files
  • Fundamentals of video and animation: analogue and digital video standards, video processing, video compression standards and file formats, basics of animation
  • Designing multimedia contents: Development phases, multimedia authoring and tools, multimedia in the internet
Teaching/Learning Methods: Lectures, recitation of oral questions, use of chalkboard and multimedia presentations
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • Z.N. Li and M.S. Drew, “Fundamentals of Multimedia”, 2nd Ed., 2014.
  • A. Banerji; A. M. Ghosh, “Multimedia technologies”, 2010.
  • T.M. Savage and K.E. Vogel, “An Introduction to Digital Multimedia”, 2nd Ed., 2013.
CSC104G2: Design of Algorithms
Course Code: CSC104G2
Course Title: Design of Algorithms
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Provide in-depth knowledge in different algorithmic approaches for problem solving
Intended Learning Outcomes:
  • Demonstrate familiarity of various algorithm design techniques and their applications
  • Use different strategies to compare the performance of algorithms
  • Discuss the usages of different Iterative and recursive algorithms
  • Apply different algorithmic approaches and concepts for solving computational problems
Contents:
  • Algorithm Analysis: Informal comparison of algorithm efficiency, best, expected, and worst case behaviors, time and space trade-offs in algorithms, Asymptotic analysis (big O, little o, big Ω and big Θ notations)
  • Problem-solving strategies: Iterative and recursive algorithms
  • Brute-force and Greedy methods: Concepts of Brute-force and Greedy methods, applications of Brute-force and Greedy methods for solving problems (String matching, counting coins, Knapsack problem, Huffman Coding, Activity-selection, Scheduling problems)
  • Searching and sorting in arrays and their complexities: Linear search, binary search, selection sort, insertion sort, bubble sort
Teaching/Learning Methods: Lectures, class discussions, textbook assignments, laboratory practical
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • T. Cormen, C. Leiserson, R. Rivest, C. Stein, Introduction to Algorithms, 3rd Ed., MIT Press, 2009.
  • R. Sedgewick and K. Wayne, Algorithms, 4th Ed., Addison Wesley Publishers, 2011.

The level-1G syllabi can be downloaded here

Course units effective from academic year 2013/2014 to 2016/2017

CSC111GC3: Foundations of Computer Science
Course Code CSC111GC3
Course Title Foundations of Computer Science
Academic Credits 03 (45 Hours of lectures and tutorials)
Prerequisite/s None
Objectives:
  • Describe the fundamentals of Mathematical and Logical aspects.
  • Outline the concepts of programming.
  • Illustrate the use of formal languages in Computer Science.
  • Explain basic computer network organisation.
Contents:
  • Fundamental organisation of computer hardware and software: Motherboard, I/O Peripherals, Expansion slots and cards, Application software, Arithmetic-logic unit, Registers, Central processing unit, Memory, Storage devices.
  • Theoretical foundations of sets: Basic notation, representations and examples, membership and subsets, operations on sets, Cartesian products, Power sets, cardinality, infinite sets.
  • Introduction to relations and functions: Domain and range of a relation, one-to-one, one-to-many, many-to-one, inverse, reflexive, symmetric, transitive relations. Into, Onto, One-one, Bijective functions.
  • Concepts of Flowcharts and Algorithms
  • Introduction to Propositional and Predicate Logic: Propositions, quantifiers, predicates, Proofs.
  • Boolean Algebra and Logic Gates: Combinatorial Circuits, Boolean Functions, Karnaugh map and Applications.
  • Number systems and their representations: Representation of integers and floating-point numbers in sign-magnitude and twos-complements.
  • Trees, Graphs and their applications: Graphs, representation of graphs, paths and circuits, planar graph, Binary trees, decision trees, tree traversal, spanning trees.
  • Automata, Grammars and Languages: Finite state machines, Languages and Grammars, Language Recognition, Turing Machines.
  • Introduction to Computer Networks: Network topologies, transmission media and network devices, ISO OSI stack, IP addressing.
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Behrouz A. Forouzan, Foundations of Computer Science, 2013
  • Peter Norton, Introduction to Computers (7e), Tata McGraw Hill Education Private Limited, 2011.
  • Ronald L. Graham, Donald E. Knuth, and Oren Patashnik. Concrete Mathematics: Foundation for Computer Science(2e), Addison-Wesley Professional, 1994
CSC112GC3: Computer Programming I
Course Code CSC112GC3
Course Title Computer Programming I
Academic Credits 03 (135 Hours of practical and assignments)
Prerequisite/s None
Objectives:
  • Convert scientific problems into computational frameworks
  • Use a high-level programming language for problem solving
  • Recognise the process of writing, testing and debugging a program
  • Express competence and confidence in computational problem solving
Contents:
  • Familiarise with a personal computer: Graphical user interface, Command line interface, files and folders, using an editor, programming principles.
  • Programming concepts: Sequential, selection (single-selection, double-selection, repetition) and repetition (counter-controlled repetition, sentinel-controlled repetition, and nested-control statements). String manipulation: substring, concatenating strings, equality of strings, finding index of character or a substring, reversing. Declaring and creating arrays, examples using arrays, multidimensional arrays.
  • Develop small programs using methods and functions: Computing the average of a list of numbers, finding the min, max, and mode in a list, approximating the square root of a number, or finding the greatest common divisor.
  • Introduction to data structures: Trees, stack, queue, linked lists, graphs.
  • Searching and Sorting techniques: Linear search, binary search, bubble sort, selection sort, insertion sort, divide-and-conquer technique, merge sort, quick sort
  • Concepts of recursion and backtracking: recursion concepts, examples using recursion: factorial, Fibonacci series, towers of Hanoi, recursion vs. iteration, recursive backtracking.
  • Web development using HTML, CSS and JavaScript: Applets for drawing a string, executing an applet in a web browser, loading and playing audio clips.CSS development
  • Develop small programs using GUI components and graphics: Using dialog boxes, creating simple drawings (rectangles, ovals, and arcs), colors and filled shapes, displaying text and images.
Assessment/ Evaluation Details:
  • Continuous assessment on practical records———————————30%
  • Two mid-semester examinations (each of two hours duration)————-30%
  • Two end-of-semester examinations (each of three hours duration)———40%
Recommended Readings:
  • P. Deitel and H. Deitel. Java how to program (9e), Pearson Education, Inc., 2012
  • Herbert Schildt, Java: The Complete Reference (9e), McGraw-Hill Osborne Media, 2014
  • http://docs.oracle.com/javase/7/docs/api/
CSC113GC2: Data Structures and Algorithms I
Course Code CSC113GC2
Course Title Data Structures and Algorithms I
Academic Credits 02 (30 hours of lectures and tutorials)
Prerequisite/s None
Objectives:
  • Explain fundamental data structures
  • Choose appropriate data structures for problem solving
  • Recall sorting and searching algorithms
  • Demonstrate different algorithmic approaches for problem solving
Contents:
  • Introduction to scientific and engineering basis for comparing algorithms: Differences among best, expected, and worst case behaviors of an algorithm.
  • Asymptotic Analysis of Algorithms: Asymptotic analysis of upper and expected complexity bounds, Empirical measurements of performance, Time and space trade-offs in algorithms.
  • Data structures: Array, Stack, Queue, Linked List, Graphs and Trees.
  • Algorithm design strategies: Iterative and recursive algorithms, Brute-force algorithms, Greedy algorithms, Divide-and-conquer, Recursive backtracking.
  • Searching and Sorting algorithms, and their complexities.
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein. Introduction to Algorithms, Third Ed., MIT Press, 2009, ISBN: 978-0262033848.
  • Robert Sedgewick and Kevin Wayne, Algorithms, 4th Ed., Addison Wesley Publishers, 2011, ISBN-13: 978-0321573513.

Course units effective from academic year 2003/2004 to 2013/2014

CSC101GC2 : Foundations of Computer Science
Course Code CSC101GC2
Course Title Foundations of Computer Science
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To introduce the historical background of computers and computer languages and to introduce computer architecture, Operating systems, and File structure
  • To provide background knowledge in discrete mathematics essential to Computer Science
Contents:
  • Evolution of Computer Systems: Brief history of computer and computer languages; Introduction to Computer architecture, Operating systems, and File structure.
  • Fundamentals of Computer Science: Number systems and their representations. Set theory and Boolean algebra; Propositional and Predicate Calculi; Vectors, Matrices, and Linear systems; Trees and Graphs; Formal machines; Complexity analysis; Combinatorics.
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Two Short exams based on tutorials (10-15 minutes each) ————– 10%
    • Two other exams (20 minutes each) ————————————- 20%
  • End-of-course Examination ————————————————– 60%
CSC102GC2 : Object Oriented Programming
Course Code CSC102GC2
Course Title Object Oriented Programming
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To demonstrate principles underlying object oriented programming.
  • To give students experience and confidence in the use of an object oriented programming language for problem solving activities.
Contents:
  • Brief introduction to structured programming techniques: Concepts of variables and fundamental data types and structures; control constructs of programs; subroutines.
  • Introduction to object oriented concepts: Concept of objects; Data abstraction and Encapsulation; Inheritance and polymorphism.
  • Programming in object oriented language: Introduction to Java; Fundamental structures in Java; Objects and Classes; Inheritance; Interfaces and inner classes; Graphics Programming; Event Handling; User interface component with swing; Exceptions and debugging; Streams and files. Concurrent Programming.
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Two Short exams based on tutorials (10-15 minutes each) ————– 10%
    • Two other exams (20 minutes each) ————————————- 20%
  • End-of-course Examination ————————————————– 60%
CSC104GC2 : Practical Computing I
Course Code CSC104GC2
Course Title Practical Computing I
Academic Credits 02 (90 hours of Practical)
Objectives:
  • To make students familiarize themselves with network environment and to use network for their needs.
  • To enable students to use internet facilities for their studies.
  • To enable students to solve problems using computers.
Contents:
  • 90 hours practical works scheduled by the department.
Assessment/ Evaluation Details:
  • Attendance at practical sessions ——————————————— 10%
  • Continuous assessment on practical records ——————————– 20%
  • Two mid-semester exams each of 30-45 minutes duration —————- 20%
  • Two end semester examinations each of two hours duration ————- 50%
CSC105GC2 : Computer Networks and Internet Computing
Course Code CSC105GC2
Course Title Computer Networks and Internet Computing
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To introduce concepts of networks and its usage.
  • To enable students to design and create applets using Java.
  • To enable students to design and create web pages using script programs and hyper media.
Contents:
  • Introduction to Networks: Types of networks; Network topologies; transmission media; Networking devices; Protocols of networks; Domain Name System; Types of Servers .
  • Applications in Internet: Use of search engines, email, telnet, ftp and WWW.
  • Web authoring: Introduction to Mark-up and script languages; Use of Hypermedia and tools; Applets.
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Two Short exams based on tutorials (10-15 minutes each) ————– 10%
    • Two other exams (20 minutes each) ————————————- 20%
  • End-of-course Examination ————————————————– 60%

Course unit effective from academic Year 2003/2004 to 2010/2011

CSC103GC2 : Computer Networks and Internet Computing
Course Code CSC103GC2
Course Title Computer Networks and Internet Computing
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To introduce concepts of networks and its usage.
  • To enable students to design and create applets using Java.
  • To enable students to design and create web pages using script programs and hyper media.
Contents:
  • Introduction to Networks: Types of networks; Network topologies; transmission media; Networking devices; Protocols of networks; Domain Name System; Types of Servers .
  • Applications in Internet: Use of search engines, email, telnet, ftp and WWW.
  • Web authoring: Introduction to Mark-up and script languages; Use of Hypermedia and tools; Applets.
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Two Short exams based on tutorials (10-15 minutes each) ————– 10%
    • Two other exams (20 minutes each) ————————————- 20%
  • End-of-course Examination ————————————————– 60%

Course units before academic year 2003/2004

CSG 11: Introduction to Computing and Pascal Programming

Introduction to Computing: Functional parts of computer, Representation of information in a of computers, Concept of Programming and Programming languages, Input and output devices, An overview of computer Applications, Classification of computers and Computer Systems, Concepts of Algorithms.

Pascal Programming: Basic concept of data and data types, standard types in Pascal, Type statement, Variable declaration, Input/output statement in Pascal, Control structure in Pascal, Array declaration, Sub Program declaration, in Pascal.

Top-down design, Modular design, Stepwise refinement structure Charts, Writing structured programming using Pascal.

CSG 12: Theoretical Foundations of Computer Science

Mathematical Reasoning, Set theory, Propositional logic, Boolean algebra, Number systems, Relations and functions, Combinatorial circuits, Difference equation, Linear algebra, Coordinate Geometry and coordinate transformation, Probability theory, Graph theory, Automata languages, Turing machines, Algorithm analysis.

CSG 13: Computer Architecture and Assembly Language Programming

Computer System Organisation: Representation of data, Internal Architecture of CPU instruction sets and addressing, principles of data 1/0, microprocessor systems.
Assembly Language Programming: Detail of an instruction set of a microprocessor and writing simple program.
Computer Input/Output System: Secondary storage, I/O interfaces peripheral devices, Computer communications, Principles and Techniques.
(Prerequisites: CSG 11, CSG12)

CSG 14: Data Structures

Arrays, Lists, Stacks, Ques, Trees, Graphs, Files and their Applications in Computer Science, Recursion.
Sorting Algorithms: Elementary methods such as Selection sort, Bubble sort, etc., advanced sorting methods such as Tree sort, Quick sort, Heap sort, etc., Study their computation complexity.
(Prerequisites: CSG 11, CSG12)

Course units effective from the academic year 2016/2017 to date

CSC201G2: Database Systems Concepts and Design
Course Code: CSC201G2
Course Title: Database Systems Concepts and Design
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Introduce database system concepts and fundamentals necessary for designing, implementing, and manipulating databases.
Intended Learning Outcomes:
  • State key characteristics of a database
  • Develop conceptual models for databases
  • Create efficient databases
  • Apply query language to create and manipulate databases
Contents:
  • Introduction to database concepts and architecture: File systems, database system concepts, three-schema architecture, classifications of database systems and database users
  • Data Modeling: Entity Relationship model, relational model, network model, hierarchical model, object relational model, UML class diagrams.
  • Relational database design: Relational model concepts, defining a relational schema from an ER diagram, basics of functional dependencies and normalization (1NF, 2NF, 3NF and BCNF)
  • Developing and manipulating databases: Data development and manipulation using SQL, MySQL, PostgreSQL and MongoDB
  • Relational algebra and relational calculus: Binary operations, Cartesian product, extended relational operator, tuple relational calculus and domain relational calculus
  • File organization for conventional DBMS: Storage devices and their characteristics, file organization, fixed-length records, variable-length records, sequential file organization, indexed sequential access method
  • Introduction to transaction management, concurrency control and recovery: Concept of transactions, concurrency in transaction processing, recovering databases from failure
Teaching/Learning Methods: Lectures, Recitation oral questions, Guided learning, Tutorial discussions
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • Ramez Elmasri and Shamkant B. Navathe, Fundamentals of Database Systems, 7th Ed, Addison-Wesley, 2015.
  • J. Date, An Introduction to Database Systems, 8th Ed, Addison-Wesley, 2003
  • Ramakrishnan and Gehrke, Database Management Systems, 3rd Ed., McGraw-Hill, 2003.
CSC202G2: Computer Programming II
Course Code: CSC202G2
Course Title: Computer Programming II
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
90 110
Objectives: Develop proficiency in writing programs to solve computational problems using suitable data structures.
Intended Learning Outcomes:
  • Implement appropriate data structures to manipulate data for various computational problems
  • Devise programs to solve complex computational problems
  • Create databases using database management systems
  • Develop web based applications that interact with databases
Contents:
  • Designing and Implementing algorithms: Recursion, backtracking, Divide-and-conquer, and Dynamic programming.
  • Fundamental data structures and their applications: Arrays, Lists, Stacks, Queues, Linked lists, Trees, and Graphs
  • Database design, modeling and development: SQL (MySQL, MariaDB) and NoSQL (MongoDB, PostgreSQL)
  • Develop web based applications: Web development using HTML, CSS and Scripting languages (PHP, JavaScript, JQuery, NodeJS)
Teaching/Learning Methods: Lectures, Laboratory practicals, Guided learning, Assignments, Continuous practical recordings
Assessment Strategy:
  • Assessment on practical records———————————–10%
  • End-of-First Semester Practical Assessment———————-30%
  • End-of-Second Semester Practical examination——————60%
References:
  • P. Deitel and H. Deitel, Java How To Program (Early Objects), 10th Ed, Prentice Hall, 2014.
  • R. Sedgewick and K. Wayne, Algorithms, 4th Ed., Addison Wesley Publishers, 2011.
  • N. Karumanchi, Data Structures and Algorithms Made Easy: Data Structures and Algorithmic Puzzles, 5th Ed, 2016
  • D. Kalemis, The Fundamental Concepts of Object-Oriented Programming, 2013.
  • R. Elmasri and S. B. Navathe, Fundamentals of Database Systems, 7th Ed, Addison-Wesley, 2015.
  • D. Bartholomew, Getting Started with MariaDB, 2nd Ed, 2015.
CSC203G2: Operating Systems
Course Code: CSC203G2
Course Title: Operating Systems
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Provide fundamental concepts and functionalities of operating systems.
Intended Learning Outcomes:
  • Describe the objective and functions of modern operating systems
  • Explain how resources (such as CPU, memory, storage, file and devices) are managed by the operating system
  • Demonstrate the operations of a prototypical process manager
  • Compare various techniques used for concurrency control
Contents:
  • Introduction to operating system: Architecture of modern operating systems (OS), evolution of OS, OS operations and functionalities, and open source OS
  • Processes and Threads: Concept of process, process states, process control block, schedulers, context switch, interprocess communication, process scheduling, overview of threads, multicore programming and multithreading models
  • Concurrency: Process synchronisation (race condition, critical-section problem, mutex locks, semaphores, classic problems of synchronization and monitors), deadlock (characterization, prevention, avoidance, detection and recovery)
  • Memory management: Swapping, memory allocation, fragmentation, paging, segmentation, virtual memory and address translation
  • Storage management: Mass Storage, host attached storage, network attached storage, storage area network and RAID
  • File and I/O Device management: File organization and access, file system security, device drivers, direct memory access and interrupt handling
Teaching/Learning Methods: Lectures, Case studies, Use of chalkboard, Simulation, Recitation oral questions, Guided learning, Tutorial discussions
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • W. Stalling, Operating systems: Internals and Design Principles, 8th Ed, Pearson, 2014.
  • A. Silberschatz, P. B. Galvin, G. Gagne, Operating System Concepts, 9th Ed, 2013.
  • S. Tanenbaum and H. Bos, Modern Operating Systems, 4th Ed, 2014.
CSC204G2: Data Structures & Algorithms
Course Code: CSC204G2
Course Title: Data Structures & Algorithms
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Introduce common data structures and standard algorithms for solving various types of problems.
Intended Learning Outcomes:
  • Analyse the correctness and the performance of complex algorithms
  • Discuss the implementation of standard data structures
  • Demonstrate skills in solving complex computational problems using suitable data structures
  • Explain the divide-and-conquer paradigm and dynamic programming strategies and their usages
Contents:
  • Proof of correctness of algorithms: Contrapositive and contradiction, Induction, and Loop invariants
  • Recurrence relations: Analysis of iterative and recursive algorithms (Quick sort and merge sort, etc.)
  • Fundamental Data Structures: Arrays, Lists, Stacks, Queues, Linked lists, Trees, and Graphs
  • Algorithm Design and Implementation Techniques: Divide-and-conquer paradigm, Dynamic programming algorithms, Recursive, and backtracking
  • Applications of Trees and Graphs: Binary search, Dijkstra’s shortest path, minimum spanning tree
Teaching/Learning Methods: Lecture, class discussions, tutorial discussions, Assignments
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • T. Cormen, C. Leiserson, R. Rivest, and C. Stein, Introduction to Algorithms, 3rd Ed., MIT Press, 2009.
  • R. Sedgewick and K. Wayne, Algorithms, 4th Ed., Addison Wesley Publishers, 2011.
  • N. Karumanchi, Data Structures and Algorithms Made Easy: Data Structures and Algorithmic Puzzles, 5th Ed. 2016.
  • S. S. Skiena, The Algorithm Design Manual, 2nd Ed., Springer, 2011.
CSC205G2: Software Engineering
Course Code: CSC205G2
Course Title: Software Engineering
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Introduce all phases of the life cycle of a software system including requirements analysis and specification, design, construction, testing, deployment, operation, and maintenance.
Intended Learning Outcomes:
  • Discuss the software engineering principles and life-cycle
  • Identify different roles played by personnel in software development and their responsibilities
  • Construct software designs based on user requirements
  • Apply appropriate techniques in software development, testing, maintenance, and evolution
Contents:
  • Introduction to Software Engineering: Software characteristics, impact of software, importance of engineering approaches, challenges and ethics in software development
  • Introduction to systems analysis and design: Types of systems (transaction processing, management information, decision support, etc.), need for systems analysis and design, the system development life cycle, roles played by different personnel in system development life cycle including the role of the systems analyst
  • Software development process models: Waterfall model, prototyping model, spiral model, evolutionary model, iterative model and agile methodology
  • Software requirements and specifications: Types of requirements, requirement gathering processes and techniques, documenting requirements
  • Software analysis techniques: Data flow diagrams, data dictionaries, process specifications and structured decisions
  • Software design techniques: Object-oriented design using UML, Agile methodologies using SCRUM
  • Software testing: Development testing, test-driven development, release testing and user testing
  • Software maintenance and evolution: Evolution processes, program evolution dynamics, software maintenance and legacy system management
Teaching/Learning Methods: Lecture, case studies, Recitation oral questions, small groups discussions, Guided learning
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • L. Sommerville, Software Engineering, 10th Ed, 2015.
  • E. Kendall and J. E. Kendall, System Analysis and Design, 9th Ed, 2013.
  • R. E. Beasley, Software Engineering: Principles and Practices, 2nd  Ed, 2015.

The level-2G syllabi can be downloaded here

Course units effective from academic year 2014/2015 to 2017/2018

Core Course Units

CSC231GC2: Software Engineering
Course Code: CSC231GC2
Course Title: Software Engineering
Academic Credits: 02 (30 Hours of Lectures and Tutorials)
Prerequisite/s: None
Objectives: This course aims to provide fundamental knowledge and skills to carry out the fundamental activities in Software Engineering.
Intended Learning Outcomes:
  • Describe the importance of Software Engineering
  • Use appropriate techniques to gather requirements
  • Create software designs based on gathered requirements
  • Apply best practices in software development, maintenance and evolution
Contents:
  • Introduction to Software Engineering: Software characteristics, Impact of Software, Importance of Engineering approach, Challenges and Ethics
  • Models of Software Process: Waterfall model, Prototyping model, Spiral model, Evolutionary model, Iteration model and Agile model
  • Software Requirements and Specifications: Types of Requirements, Requirement gathering processes and techniques, Documenting requirements
  • Software Design and Implementation: Object-oriented design using UML, Design patterns, Implementation issues, Open Source development
  • Software Testing: Development testing, Test-driven development, Release testing and User testing.
  • Software maintenance and evolution: Evolution processes, Program evolution dynamics, Software maintenance and Legacy system management
Teaching Methods: Lecture by teacher, class discussion, recitation oral, lecture demonstration, small groups discussions, use of slides, textbook assignments, case studies
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Ian Sommerville, Software Engineering, 10th Edition, 2015
  • Robert E Beasley, Software Engineering: Principles and Practices, 2nd Edition, 2015
CSC232GC2: Computer Programming II
Course Code: CSC232GC2
Course Title:  Computer Programming II
Academic Credits: 02 (90 Hours of practical and assignments)
Prerequisite/s: None
Objectives: This course aims to introduce the object oriented programming paradigms.
Intended Learning Outcomes:
  • Demonstrate the concepts of Object Oriented Programming paradigm
  • Create applications using Object Oriented Programming concepts
  • Design Relational Databases using database management principles
  • Develop web based applications that interact with database management systems
Contents:
  • Introduction to Concepts of Object Oriented paradigm: Objects, classes, methods, parameter passing, information hiding, inheritance, encapsulation and polymorphism
  • Object Oriented Programming using a high level programming language
    Data management using a relational model
  • Database design, modeling and development using Structured Query Language
  • Develop web based applications using PHP and MariaDB
Teaching Methods: Laboratory experiments, Supervised study, Practical records, Tutorial discussions by Instructors
Assessment/ Evaluation Details:
  • Continuous assessment on practical records ————30%
  • Two mid-semester practical examinations —————30%
  • Two end-of-semester practical examinations ————40%
Recommended Readings:
  • P. Deitel and H. Deitel. Java How To Program (Early Objects), 10th Edition, Prentice Hall, 2014.
  • D. Kalemis, The Fundamental Concepts of Object-Oriented Programming, 2013.
  • R. Elmasri and S. B. Navathe, Fundamentals of Database Systems, 7th edition, Addison-Wesley, 2015.
  • Daniel Bartholomew, Getting Started with MariaDB, 2nd edition, 2015.
CSC233GC2: Database Management Systems
Course Code: CSC233GC2
Course Title: Database Management Systems
Academic Credits: 02 (30 Hours of Lectures and Tutorials)
Prerequisite/s: None
Objectives: This course aims to introduce the fundamental concepts necessary for designing, using, and implementing database systems and applications.
Intended Learning Outcomes:
  • State key characteristics of a database
  • Develop a conceptual model for given requirements
  • Create an efficient relational database
  • Apply Structured Query Language to create and manipulate database
Contents:
  • Information Management Concepts: Information capture and representation, Information storage and retrieval, supporting human needs (searching, retrieving, linking, browsing, navigating, Analysing and indexing), Quality issues (Reliability, security, scalability, efficiency) and Information management applications
  • Database Systems: File systems, Evolution of DBMS, Database architecture, Data independence, DBMS user (designer, application developer, administrator), DBMS functions and system components
  • Data Modeling: Entity Relationship model, Relational model, Network model, Hierarchical model and object relational model
  • Relational Database Design: Schema design, mapping conceptual schema to relational schema, Normal Forms (1NF, 2NF, 3NF and BCNF)
  • Structured Query Language: Basic structure, Subqueries, Set operations, Aggregate functions, Derived relations, and Views
  • Relational algebra: Relational algebra, Tuple relational calculus and domain calculus
Teaching Methods: Use of diagrams and tables, Vocabulary drills, Recitation oral questions, Tutorial discussions by Instructors
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • RamezElmasri and Shamkant B. Navathe, Fundamentals of Database Systems, 7th edition, Addison-Wesley, 2015.
  • C.J. Date, An Introduction to Database Systems, 8th edition, Addison-Wesley 2003
  • Ramakrishnan and Gehrke, Database Management Systems, 3rd edition, McGraw-Hill 2003.
CSC234GC2: Operating Systems
Course Code: CSC234GC2
Course Title: Operating Systems
Academic Credits: 02 (30 Hours of Lectures and Tutorials)
Prerequisite/s: None
Objectives: This course aims to provide fundamental concepts and functionalities of an operating system.
Intended Learning Outcomes:
  • Outline modern operating systems
  • Describe the core functionalities of an Operating System
  • Demonstrate the operations of a prototypical process manager
Contents:
  • Introduction to Operating System: Architecture of Modern Operating Systems (OS), Evolution of OS, OS operations and functionalities, and Open source OS
  • Processes and Threads: Concept of Process, Process states, Process Control Block, Schedulers, Context switch, Interprocess Communication, Process scheduling, Overview of Threads, Multicore Programming and Multithreading Models
  • Concurrency: Process synchronization (Race Condition, Critical-Section Problem, Mutex Locks, Semaphores, Classic Problems of Synchronization and Monitors), Deadlock (Characterization, Prevention, Avoidance, Detection and Recovery)
  • Memory management: Swapping, Memory allocation, Fragmentation, Paging, Segmentation, Virtual memory and Address Translation
  • Storage management: Mass Storage, Host attached storage, Network attached storage, Storage Area Network and RAID
  • File and I/O Device management: File Organization and Access, file system security, Device drivers, Direct Memory Access and Interrupt handling
Teaching Methods: Case studies, Simulation, Use of chalkboard, Recitation oral questions, Tutorial discussions by Instructors
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Stallings, W. Operating systems: internals and design principles, 8th edition, Pearson, 2014.
  • Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Operating System Concepts, 9th edition, 2013.
  • S. Tanenbaum and Herbert Bos, Modern operating systems ,4th edition, 2014.

Elective Course Units

CSC235GE2: Group Project I
Course Code: CSC235GE2
Course Title: Group Project I
Academic Credits: 2 (15 hours of mentoring and 100 hours of project development)
Prerequisite/s: None
Objectives: This course aims to provide an opportunity to improve the skills and knowledge of students to develop software as a team using software engineering principles.
Intended Learning Outcomes:
  • Apply software engineering principles and practices for the planning and the development of a software product
  • Practice as an effective player of a software project team
  • Create professional-quality deliverables
  • Demonstrate abilities to manage pressures and procedures of a team work in an industrial setup
Contents:
  • This course unit introduces and applies a range of topics in software engineering in the context of a team project
  • Students will be assigned to a group of three to four members and each group works to specify, design, implement, and document a software project
  • The course unit is oriented around directed and self-paced learning, supported by weekly mentoring and discussions
Teaching Methods: Lecture by teacher, recitation of oral questions, lecture demonstration, textbook assignments, small group discussions, case studies, class projects, coaching.
Assessment/ Evaluation Details:
  • Group Project Report —————– 40%
  • Software product ———————- 30%
  • Project Presentation —————— 10%
  • Individual viva voce —————— 20%
CSC236GE2: Data Structures and Algorithms II
Course Code: CSC236GE2
Course Title: Data Structures and Algorithms II
Academic Credits: 02 (30 Hours of Lectures and Tutorials)
Prerequisite/s: CSC113GC2
Objectives: This course aims to introduce more complex data structures for the manipulation of data by using complex algorithms, evaluate solution methods and choose most appropriate solution.
Intended Learning Outcomes:
  • Explain the structure of complex data structures, their implementation, the algorithms that manipulate them and their amortized analysis
  • Develop efficient algorithms to solve complex problems
  • Evaluate complexity of algorithms
  • Demonstrate skills with applied algorithmic settings on operational research, parallel and distributed computing, and operating systems
Contents:
  • Proof of correctness of algorithms: Inductive proofs and loop invariants
  • Divide-and-conquer paradigm: Sorting and Searching algorithms that use this paradigm, synthesize divide-and-conquer algorithms, Derive and solve recurrences describing the performance of divide-and-conquer algorithms
  • Abstract data types: Implementation of Trees and Graphs, Dijkstra’s Algorithm, Depth-First vs Breadth-First Searches and their complexity
  • Greedy approach: Principles of Greedy Algorithms and their applications, Synthesize greedy algorithms, and analyze them
Teaching Methods: Lecture by teacher, class discussions, textbook assignments, laboratory exercises
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Helen Sharp, Yvonne Rogers, and Jenny Preece. Interaction Design: Beyond human-computer interaction, 4th ed., Wiley Publishers, 2015.
  • Ben Shneiderman, Catherine Plaisant, Maxine Cohen and Steven Jacobs. Designing the User Interface: Strategies for Effective Human-Computer Interaction, 5th ed., Addison Wesley publishers, 2009.
CSC237GE2: Numerical Methods
Course Code: CSC237GE2
Course Title: Numerical Methods
Academic Credits: 02 (30 Hours of Lectures and Tutorials)
Prerequisite/s: CSC111GC3
Objectives: This course aims to enable the students to develop their programming skill in solving a variety of numerical problems.
Intended Learning Outcomes:
  • Explain the concepts of number representation and error analysis in digital computers
  • Apply numerical methods to solve systems of linear, nonlinear and differential equations
  • Use Curve fitting, Interpolation and Polynomial approximation techniques
Contents:
  • Numerical Representation and Error Analysis: floating-point arithmetic, Precision and Accuracy, rounding rules, Absolute and Relative error, and computational error analysis
  • Solving Systems of Linear Equations: Eigen values, Eigen vector, vector and matrix norms, LU decomposition, Gaussian elimination, Pivoting, Jacobi method, Gauss-Seidel method
  • Solving Systems of Nonlinear Equations: Bisection, false-position, incremental searches, Fixed-point iteration, Newton-Raphson, Secant method
  • Curve fitting, Interpolation and Polynomial Approximation: Lagrange interpolating polynomials, Newton interpolating polynomials, cubic and natural spline interpolation, convergence and error bound for polynomial interpolation of a continuous function
  • Numerical Integration and Differentiation: Newton-Cotes quadrature, Trapezoidal rule, Simpson’s rule, Romberg integration, and numerical differentiation
Teaching Meth Lecture – demonstration, tutorial discussions, recitation of oral questions, use of chalkboard and presentations
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • K. Sankara Rao: Numerical Methods for Scientists and Engineers, 2008
  • George W. Collins: Fundamental Numerical Methods and Data Analysis, 2003.
CSC238GE2: Information Security Management
Course Code: CSC238GE2
Course Title: Information Security Management
Academic Credits: 02 (30 Hours of Lectures and Tutorials)
Prerequisite/s: CSC112GC3
Objectives: This course aims to introduce computer security, including network security, platform security, and familiarize defense mechanisms to handle attacks.
Intended Learning Outcomes:
  • State various types of threats and attacks, and countermeasures
  • Describe various measures to avoid vulnerabilities in programs
  • Analyse network and platform to detect threats
  • Perform basic digital forensics
Contents:
  • Threats and Attacks: Types of Attacks, and Attacker goals, capabilities and motivations.
  • Defensive Programming: Input validation and data sanitization, Handling of exceptions and unexpected behaviours
  • Network specific threats and attacks: Denial of Service, spoofing, sniffing and traffic redirection, man-in-the-middle, message integrity attacks, routing attacks, traffic analysis, architectures for secure networks, and defense mechanisms and countermeasures
  • Platform Security: Code integrity and code signing, Secure booting, TPM and secure coprocessors, Attestation, and Security of embedded devices
  • Digital forensics: Principles and methodologies, attack detection and investigation
Teaching Meth Lecture by teacher, recitation of oral questions, lecture demonstration, textbook assignments, small group discussions, use of slides, use of recordings, use of motion pictures, case studies, class projects.
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • William Stallings, Cryptography and Network Security: Principles and Practice, 6th edition, Pearson, 2013.
  • Michael Jang, Security Strategies in Linux Platforms and Applications (Information Systems Security & Assurance), 1st edition, Jones & Bartlett Learning, 2010.
  • Charles P. Pfleeger and Shari Lawrence Pfleeger, Analyzing Computer Security: A Threat / Vulnerability / Countermeasure Approach, 1st Edition, Prentice Hall, 2011
CSC239GE2: Multimedia Technologies
Course Code: CSC239GE2
Course Title: Multimedia Technologies
Academic Credits: 2 (30 hours of lectures and tutorials)
Prerequisite/s: None
Objectives: This course aims to bring awareness regarding the numerous resources available in the area of multimedia and to discuss the relevance and underlying infrastructure of the multimedia.
Intended Learning Outcomes:
  • Explain the fundamental principles of multimedia
  • Demonstrate compression techniques used in multimedia
  • Discuss theories behind the multimedia components
Contents:
  • Introduction: Uses of Multimedia, Interaction Technologies, Multimedia Hardware and Devices
  • Compression Techniques in Multimedia: Compression Basics, Lossless and lossy compression techniques
  • Text in Multimedia: Visual Representation of Text, Digital representation of characters
  • Fundamentals of Colours, Colour Models and Dithering
  • Fundamentals of Images: Characteristics of Images, Image file formats, and Image compression standards
  • Digital Audio: Sound Processing, Representation of Audio files
  • Fundamentals of Video and Animation: Analogue and Digital Video Standards, Video Processing, Video compression standards and file formats, Basics of animation
  • Designing Multimedia: Development Phases, Multimedia Authoring and Tools, Multimedia in Internet and World Wide Web.
Teaching Methods: Lecture-demonstration, recitation of oral questions, use of chalkboard and multimedia presentations
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Ze-Nian Li and Mark S. Drew, “Fundamentals of Multimedia”, Second Edition, 2014
  • Ashok Banerji; Ananda Mohan Ghosh, “Multimedia technologies”, 2010
  • T.M. Savage and K.E. Vogel, “An Introduction to Digital Multimedia”, Second Edition, 2013.
CSC241GE2: Bioinformatics
Course Code: CSC241GE2
Course Title: Bioinformatics
Academic Credits: 2 (30 hours of lectures and tutorials)
Prerequisite/s: CSC112GC3
Objectives: This course aims to provide theoretical and practical knowledge in Bioinformatics methods including accessing the major public sequence databases, use of different computational tools to find sequences, analysis of protein and nucleic acid sequences by various web-based tools.
Intended Learning Outcomes:
  • Appraise concepts, methods and tools used in Bioinformatics
  • Demonstrate the fundamental computational knowledge required to tackle problems in bioinformatics
  • Develop computational applications in bioinformatics using computer algorithms
Contents:
  • Introduction to Bioinformatics: aims and tasks of Bioinformatics, history and scope of bioinformatics and its applications, bioinformatics databases.
  • Structural Bioinformatics: protein structure basics, protein structure visualization, comparison and classification, protein secondary structure prediction, protein tertiary structure prediction, RNA structure prediction.
  • Sequence Alignment: pairwise sequence alignment, multiple sequence alignment, Hidden Markov Models.
  • Pattern Recognition: Clustering and Visualisation
  • Genomics and Proteomics: genome mapping, genome assembly, genome comparison, functional genomics, proteomics and metabolomics
Teaching Methods: Class discussion, recitation oral questions, vocabulary drills, simulations.
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • B. Bergeron, Bioinformatics Computing, Prentice Hall, 2002.
  • Krawetz. Stephen A: Introduction to Bioinformatics: A Theoretical and Practical Approach, 2003
  • F. Azuaje and J. Dopazo, Data Analysis and Visualization in Genomics and Proteomics, John Wiley, 2005

Course units effective from academic year 2004/2005 to 2014/2015

Core Course Units

CSC201GC2: Data Structures and Algorithms
Course Code CSC201GC2
Course Title Data Structures and Algorithms
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To understand basics of algorithms, concepts of time and space complexity in worst, average and best cases, and the asymptotic behaviour and order of magnitude of functions.
  • To be able to develop efficient algorithms for simple computational tasks and to compute complexity measures of algorithms, including recursive algorithms using recurrence relations.
  • To know and apply a range of algorithm design techniques.
  • To know and understand a wide range of searching and sorting techniques and to implement them
  • To be familiar with several data structures and to get to know their constructions and uses.
Contents:
  • General concepts : Introduction to Algorithms and Mathematical background – Time and space Complexity, Asymptotic Analysis; Average, best and worst case analysis, recurrence relations and their use in algorithm analysis
  • Data structures: Introduction and Implementation of Stacks and Queues, Linked Lists, Hash Tables, and Trees, and their applications
  • Algorithm design techniques: Greedy methods, Divide and conquer methods, Dynamic programming, Recursion, Influence of data structure on algorithm performance
  • Graphs and digraphs: Representations, Breadth and depth first searches, Shortest path, Minimal spanning tree, Hamiltonian path and travelling salesperson problems etc.
  • Sorting: selection, insertion, bubble sort. Quicksort, mergesort, heapsort , Bucket sorting, Worst case and average behaviour, Order statistics
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Two Short exams based on tutorials (10-15 minutes each) ————– 10%
    • Two other exams (20 minutes each) ————————————- 20%
  • End-of-course Examination ————————————————– 60%
CSC202GC2: Database Management Systems
Course Code CSC202GC2
Course Title Database Management Systems
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To give principles and practical solutions for storage and retrieval of information.
  • To emphasis both on the use and on the implementation of database management systems, enabling students in both logical and physical database design and complex query execution using standard query languages.
  • To introduce the modern databases for multimedia and spatial requirements.
  • To familiarize with a broad range of data management issues including data integrity, security, transaction and concurrency.
Contents:
  • Introduction to Database: Evolution of Database technology, Data models, three level schema architecture, Database languages, Physical file structures and Indexing techniques.
  • Database design: ER model, Relational Model, Normalisation – First, Second, Third and Boyce-Codd normal forms.
  • Relational algebra and calculus: Query languages, Relational algebra operations, relational algebra query expressions, tuple calculus and domain calculus query expressions.
  • Introduction to SQL: Basic structure, Sub queries, Set operations, Aggregate functions, Derived relations, Views.
  • Advanced Features: Transaction, concurrency control and recovery; Security levels, Integrity constraints,
  • Modern databases: Object Oriented Databases and Relational object Database design, Persistence Objects, Query languages.
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Two Short exams based on tutorials (10-15 minutes each) ————– 10%
    • Two other exams (20 minutes each) ————————————- 20%
  • End-of-course Examination ————————————————– 60%
CSC203GC2: Software Engineering
Course Code CSC203GC2
Course Title Software Engineering
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To offer a foundation in programming skills for popular languages and platforms.
  • To systematically address theories and methods of typical software engineering processes and models governed by industry standards.
  • To emphasize the development of reliable and maintainable software via system requirements and specifications.
  • To enable students capable in software design methodologies including object-oriented design implementation, integration, and testing.
Contents:
  • Introduction to Software Engineering: Software characteristics, Software applications, software process models.
  • Project Management: Project planning, risk management, human interactions in software development.
  • Analysis principles: Analysis modelling, design methods, software testing methods
  • Computer Aided Software Engineering: Taxonomy of CASE tools, application of case tools, integrated case environment.
  • Client-Server Software Engineering: Structure and usage of client-server systems, distribution of software component.
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Mini project (implementation + presentation) ————————— 30%
  • End-of-course Examination ————————————————– 60%
CSC204GC2: Practical Computing - II
Course Code CSC204GC2
Course Title Practical Computing – II
Academic Credits 02 (90 hours of Practical)
Objectives:
  • To enable to implement several data structures and algorithms
  • To enable to be familiar with designing and creation of databases and to manipulate them using query languages.
  • To enable to efficiently find solutions to numerical and non-numerical problems.
  • To enable to be familiar with programming in logic.
Contents:
  • 90 Hours practical works scheduled by the Department.
Assessment/ Evaluation Details:
  • Attendance at practical sessions ——————————————— 10%
  • Continuous assessment on practical records ——————————– 20%
  • Two mid-semester exams each of 30-45 minutes duration —————- 20%
  • Two end semester examinations each of two hours duration ————- 50%
Elective Course Units

CSC221GE2: Numerical Computing
Course Code CSC221GE2
Course Title Numerical Computing
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To enable the students to gain basic knowledge in numerical methods.
  • To learn a programming language and tools suitable for numerical computing.
  • To develop their programming skill in solving a variety of numerical problems.
Contents:
  • Data Representation and Computational Error: floating-point numbers, rounding rules, machine precision, floating-point arithmetic; well-posed problems, problems vs. algorithms, data error vs. computational error, forward error vs. backward error, conditioning of a problem, stability of an algorithm.
  • System of Linear Equations: vector spaces, matrices and other relevant matters; vector norm, matrix norm, condition number of a matrix; LU factorization, Gauss-Seidel elimination, Error estimation; refinement of special cases.
  • System of Non Linear Equations: Simple vs. multiple root; bisection, fixed-point iteration, Newton-Raphson method, secant method; fixed-point iteration, Jacobian matrix, Newton’s method; convergence rate and order analysis.
  • Interpolation and Polynomial Approximation: Lagrange and Newton forms, Hermite interpolation, cubic and natural spline interpolation; convergence and error bound for polynomial interpolation of a continuous function; Chebyshev polynomials; Weierstass Approximation Theorem, best uniform approximation, least squares approximation.
  • Numerical Integration and Differentiation: Newton-Cotes quadrature, Trapezoid rule, Simpson’s rule; Romberg integration.
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Mini project (implementation + presentation) ————————— 30%
  • End-of-course Examination ————————————————– 60%
CSC222GE2: Programming in Logic
Course Code CSC113GC2
Course Title Data Structures and Algorithms I
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To explain the fundamentals of simple predicate logic and its use for knowledge representation and deduction.
  • To understand the fundamentals of logic programming, in particular the sources of non-determinism, the significance of displays of computational spaces and the significance of language semantics.
  • To demonstrate familiarity with the language Prolog and its practical use.
Contents:
  • Formal Logic: revision of Propositional and First Order Predicate Logic, conjunctive normal form, clausal form, knowledge representation by clausal form.
  • Logic Programming: basic concepts, the resolution rule of inference, application strategies, pattern matching, backtracking, computational space – total and standard, non-determinism, procedural and declarative semantics.
  • Prolog: Horn Clauses, terms and terminology, built-in predicates, non-determinism and input/output, the cut, negation, list processing, abstract data types.
  • Applications: Realising the suitability of Logic Programming in solving problems, Identifying problems that can be solved by Logic Programming, Conversion of problems in to those suitable for Logic programming, Implement solving methods to find solutions.
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Mini project (implementation + presentation) ————————— 30%
  • End-of-course Examination ————————————————– 60%

Course units before academic year 2004/2005

CSG 25: Numerical Methods I

Handling of Errors
Fixed point and Floating point arithmetic, implication of finite precision, errors in numerical computation.

Interpolation
Polynomial and interpolations.

Approximations
Uniform approximation, discrete least squares approximation, polynomial approximation, Fourier’s approximation, Chebyshev economisation.

Numerical Integration and Differentiation
Interpolatory numerical quadrature, Gaussian quadrature, adaptive integration, Romberg integration, numerical differentiation.

Solutions of Non – Linear Equations
Bisection method, fixed point iteration, Newton’s method, Aitken’s process, rates of convergence of the various methods.

Algorithms
Algorithms to implement the above methods in a computer using Pascal, C or FORTRAN.

(Prerequisites CSG 11).

CSG 26: Design of Algorithms

Introduction
Definition as a methodology introduced by a mathematician named Abuja’far Mohammed ibn Musa al Khowarizmi: characteristics of algorithms; designing, devising and expressing algorithms, use and removal of recursion; validation, analysis, testing and profiling.

Greedy Method
Graph algorithms such as finding spanning tree and single source shortest path etc. Knapsack problem, job sequencing, etc.

Divide and Conquer
Binary search; merge sort; quick sort, etc.

Backtracking
N-queen problem; sum of subsets, graph colouring; Hamiltonian cycle; knapsack problem.

Dynamic Programming
All pairs shortest paths; optimal binary search trees; Knapsack problem; travelling sales person problem.

Branch and Bound
Knapsack problem; travelling sales person problem.

Graph / Tree Algorithm
Breadth-first search in graph (AND-graph, OR-graph etc.); tree traversal on binary, threaded AVL and game trees, handling Btree and disk memory management.

Symbol Table Algorithm
Dynamic tree tables, Hash tables.

(Prerequisites CSG 14)

CSG 27: Introduction to Programming in Logic and Expert systems.

Introduction to Predicate Calculus
Syntax and semantic of predicate calculus, existential and universal quantifiers and variables; first `order predicate calculus; matching of predicate calculus expressions: binding and unification of variables; inference rules: Sound, complete rules: modus ponens, modus tolens, and – elimination, and – introduction, universal instantiation, and resolution etc.

Resolution Procedure
Conversion of predicate calculus expressions into clause forms, horn clauses; resolution refutation and theorem proving.

Prolog Programming
Introduction to prolog as a declarative language as well as a procedural language, syntax of prolog; representation of facts, rules, and queries; predicates, clauses, goals; flow of control; variable binding, unification and backtracing, cut fail, efficiency.

Introduction to Expert Systems
A brief introduction to Artificial Intelligence (A1), its techniques and to expert systems (ES); various definitions of ES, components of ES:” knowledge acquisition and representation;
inference mechanism; forward and backward chaining; handling uncertainty; examples of expert systems and expert system shell/tools.

(Prerequisites CSG 12)

CSG 28: Introduction to Database Management Systems

Introduction
Definition as a centralised storage of database; prevention of redundancy and inconsistency; data independence; data abstraction; data models; data definition and data manipulation language (DDL and DML); database manager, administrator, users; overall system structure: Indexing and hashing.

Entity Model – Relationship Model
Entities, relationships, entity-sets, relationship-sets, attributes. mapping constraints, keys, E-R diagrams, reduction of E-R diagrams to tables, design of an E-R database scheme.

Relational Model
Structure of relational database, relational algebra and calculus;

Normalisation and Relational Database Design
Relational database design and its pitfalls; normalisation (First second, and third) using functional dependencies and multivalued functional dependencies.

Query Processing
SQL, query – by – example, Quell; Query interpretation, equivalence of expressions

Recovery and Concurrency
Transaction recovery, system media recovery, concurrency problems, locking, timestamping.

Security and integrity
General considerations and violations, security specification in SQL; other aspects of security (encryption etc.).

Case Study
Construction and manipulation of database using dBASE III+, dBASE IV, ACCESS or ORACLE etc. and SQL or alike.

(Prerequisite CSG 14.)

Course units to be effective from the academic year 2018/2019

CSC301G3: Rapid Application Development
Course Code: CSC301G3
Course Title: Rapid Application Development
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
45 105
Objectives: Provide knowledge, skills, and attitudes to rapidly develop software applications by choosing suitable approaches and best practices
Intended Learning Outcomes:
  • Describe the concepts of software development methodologies
  • Demonstrate the importance of Rapid Application Development (RAD) and its key elements
  • Discuss how systems analysts interact with users, management, and other information systems professionals for gathering requirements
  • Analyse the development lifecycle of a given software project
  • Develop a software rapidly by best practices and tools
Contents:
  • Introduction to RAD: Issues with traditional software development, advantages and disadvantages of RAD practices, pillars of RAD
  • Key elements of RAD: Teamwork, risk management, project scheduling, project estimation
  • Agile Software Development: Agile manifesto, agile methodologies such as SCRUM, extreme programming, Lean, and Kanban, Agile vs waterfall model
  • Information Requirements Analysis: Determining system requirements, Interactive information gathering methods such as interviewing, Joint Application Development and Questionnaires. Unobtrusive information gathering methods such as sampling and investigation.
  • Analysis Process: Data flow diagrams, analysing systems using data dictionaries, process specifications and structured decisions, designing effective input and output, designing databases
  • Testing: Fundamentals of testing, black-box testing techniques, white box testing techniques, levels of testing, test cases
  • Quality Assurance and Implementation: Ensuring data quality, six sigmas, quality assurance through software engineering, implementing information system, software testing process, evaluation techniques
  • Best Practices and Tools: Software architectural patterns, software design patterns and software version control (SVC)
  • Software Project Management: Work breakdown and cost estimation, Break-even analysis, cash-flow analysis, present value analysis, project scheduling using Gantt chart and PERT diagrams
Teaching/Learning Methods: Lectures, Tutorial discussions, Case studies, Assignments, Guided Learning
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • A. Stellman and J. Greene, Learning agile: Understanding Scrum, XP, lean, and kanban. O’Reilly, 2014.
  • S. McConnell, Rapid development: Taming wild software schedules, Pearson Education, 1996.
  • J. Loeliger, Version Control with Git, O’Reilly Media, 2012.
  • E. Kendall and J. E. Kendall, System Analysis and Design, 9th Ed, Pearson, 2013.
CSC302G2: Computer Programming III
Course Code: CSC302G2
Course Title: Computer Programming III
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
90 110
Objectives: Provide hands on practice in network socket programming, computer graphics, rapid application development, and network & server management
Intended Learning Outcomes:
  • Apply rapid development methodologies used in the software industry
  • Create software applications using development frameworks
  • Practice application programming interface (API) for computer graphics
  • Make use of computer graphics algorithms for its applications
  • Write socket programming using Python libraries
  • Setup web servers to enable interactions with other web servers using network protocols
  • Demonstrate skills to configure, administer and secure local area network devices
  • Administer Linux based systems
Contents:
  • Version Control Systems: Introduction to GitHub and its workflow, branching, merging pull requests, working with teams on GitHub, creating task lists
  • Development frameworks: Introduction to frameworks such as Laravel, setting up and install Laravel framework
  • Software Applications: View/Session/Application management, databases in web application with Laravel
  • Socket programming using Python: Client-server and TCP/UDP programming, multithreaded proxy server, reliable transport layer programs, distributed programs to implement routing algorithms, open and proprietary network applications development
  • Network Design, Management and Troubleshooting: Setting up LAN, configuring and managing devices such as switches and routers with access controls, IP address configurations and troubleshooting
  • Host Administration with LINUX: Basic commands, files, directories and file system, editors, processes, users and group management, package management, shell scripts
  • OpenGL: Construction of interactive user interfaces, fundamentals of 2D and 3D graphics
  • Computer Graphics Algorithms and Methods: Object modelling and representation, mapping and clipping, 2D and 3D transformations, rendering for visual realism
Teaching/Learning Methods: Lectures, Use of multimedia presentations, Laboratory experiments, Tutorial discussions, Assignments
Assessment Strategy: Semester-1

  • In-course Assessments (Practical) —————————————20%
  • End-of-Semester Practical Examination ———————————30%

Semester-2

  • In-course Assessments (Practical) —————————————20%
  • End-of-Semester Practical Examination ———————————30%
References:
  • M. Stauffer, Laravel: Up and Running: A Framework for Building Modern PHP Apps, O’Reilly Media, 2019.
  • J. Kurose and K. Ross, Computer Networking: A Top-Down Approach, 7th Ed., Addison Wesley, 2017.
  • S. Guha, Computer Graphics Through OpenGL: From theory to experiments 3rd Ed., CRC, 2019.
  • W. Odom, CCNA Routing and Switching 200-125 Official Cert Guide Library, 1st Ed., Cisco Press, 2016.
CSC303G2: Data Communication and Computer Networks
Course Code: CSC303G2
Course Title: Data Communication and Computer Networks
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Provide in-depth understanding of architectures, algorithms, and standards in data communication
Intended Learning Outcomes:
  • Describe data communication principles, layered architectures and protocols
  • Discuss routing and switching principles, and algorithms
  • Distinguish Local Area Network (LAN) standards, topologies, hardware and their selection criteria for enterprise usage
  • Formulate network services and applications by taking into account of quality of service, scalability and maintenance
Contents:
  • Fundamentals of Digital Communications: Design issues related to data transfer, compare and contrast the circuit and packet switching technologies, multiplexing techniques and error control mechanisms
  • Network Architectures: Principles of layered architecture, roles of layers in the OSI and TCP/IP models
  • Internet Protocols: Application layer protocols in the Internet, TCP/IP protocol suite, transport and network protocols with an emphasis on TCP/IP model, IP addressing and subnetting, troubleshooting in IP networks, IP routing mechanisms, IP versions 4 and 6, MAC layer and its protocols
  • Routing and Switching: Routing and switching fundamentals, router architecture, routing algorithms, issues to consider in designing routing protocols
  • LAN: Technologies such as IEEE 802 LAN standards, channel allocation in LAN segments and solutions, Ethernet and Ethernet networking using hubs and switches, problems associated in deploying wireless LANs and solutions
Teaching/Learning Methods: Lectures, Recitation oral questions, Tutorial discussions, Supplementary reading
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • J. F. Kurose and K. W. Ross, Data Communication and Computer Networks: A top-down approach, 7th Ed. Addison Wesley, 2017.
  • A. S. Tanenbaum, and D. J. Wetherall, Computer Networks, 5th Ed., Pearson Education, 2011.
  • L. L. Peterson and B. S. Davie, Computer Networks: A Systems Approach, 5th Ed., Morgan Kauffman, 2011.
CSC304G3: Team Software Project
Course Code: CSC304G3
Course Title: Team Software Project
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
20 280
Objectives: Provide an opportunity to improve the skills and knowledge of students to develop software as a team using software engineering principles
Intended Learning Outcomes:
  • Apply software engineering principles and practices for the planning and development of a software product
  • Practice as an effective player of a software project team
  • Use appropriate tools, principles and best practices for developing an application
  • Create professional-quality deliverables
  • Develop an application based on a given set of requirements in order to deploy the application at the client site
  • Demonstrate abilities to manage pressures and procedures of a team work in an industrial setup
Contents:
  • This course unit introduces and applies a range of topics in software engineering and rapid application development in the context of a team project
  • Students will be assigned to a group of three to four members and each group works to specify, design, implement, and document a software project
  • The course unit is oriented around directed and self-paced learning, supported by weekly mentoring and discussions
Teaching/Learning Methods: Mentoring, Small group discussions, Case studies, Presentations, Demonstrations
Assessment Strategy:
  • Team Software Project Report ——————————————-30%
  • Software product and deployment of the software ——————–40%
  • Project Presentation and individual viva-voce ————————–30%
CSC305G2: Graphics and Visual Computing
Course Code: CSC305G2
Course Title: Graphics and Visual Computing
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Provide in-depth knowledge in the core concepts of computer graphics including object modelling, transformations, and rendering
Intended Learning Outcomes:
  • Discuss the fundamental concepts in computer graphics
  • Describe the standard methods in object modelling and representation
  • Apply transformation functions to animate 2D and 3D objects on view-planes
  • Use rendering methods and algorithms to create photo-realistic interactive scenes from 2D and 3D models
Contents:
  • Fundamental Concepts: Applications of computer graphics, image representations, vector vs. raster graphics, colour models
  • Object Modeling and Representation: Rasterization of lines and circles, parametric forms of curves and surfaces, solid modelling with polygonal meshes
  • Mapping and Clipping: Window to viewport mapping, algorithms for clipping lines, and polygons
  • 2D and 3D Transformations: Affine transformations in 2D and 3D, coordinate transformations, view plane and view volume, projections, viewing transformation
  • Basic rendering for visual realism: Visibility and occlusion (such as depth buffering, Painter’s algorithm, and ray tracing), polygon filling, texture mapping, and shading models
Teaching/Learning Methods: Lectures, Tutorial discussions, Assignments, Guided learning
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • S. Marschner, and P. Shirley, Fundamentals of Computer Graphics, CRC Press, 4th Ed., 2015.
  • S. Guha, Computer Graphics Through OpenGL: From Theory to Experiments 3rd Edition, CRC, 2019.
  • D.D. Hearn, M.P. Baker, and W. Carithers, Computer Graphics with OpenGL, 4th Ed., 2010.
  • S.J. Gortler, Foundations of 3D Computer Graphics, MIT Press, 2012.

The level-3G syllabi can be downloaded here

Course units effective from academic year 2015/2016 to 2018/2019

CSC311GC3: Graphics and Visual Computing
Course Code: CSC311GC3
Course Title: Graphics and Visual Computing
Academic Credits: 03 (30 hours of lectures and 45 hours of practical)
Aim: Provide knowledge in computer graphics, and to introduce a standard Application Programming Interface for computer graphics
ILOs:
  • Discuss the fundamental concepts in computer graphics
  • Use a standard Application Programming Interface (API) for the applications in Computer Graphics
  • Apply transformation functions to animate 2D and 3D objects on view- planes
  • Write programs to implement standard algorithms in computer graphics
  • Construct photo-realistic images or interactive scenes from 2D and 3D models
Contents:
  • Introduction to computer graphics: Image representations, vector and raster graphics, colour models, applications of computer graphics
  • OpenGL: Construction of interactive user interfaces, 2D and 3D Fundamentals
  • Mapping and clipping: Window to viewport mapping, algorithms for clipping lines and polygons
  • Transformations and viewing: Affine transformations in 2D and 3D, coordinate transformations, view-plane and view-volume, projections, viewing transformation
  • Geometric Modeling: Parametric form of 2D primitives such as lines and circles, representation of curves and surfaces
  • Basic rendering for visual realism: Visibility and occlusion such as depth buffering, Painter’s algorithm, and ray tracing; Polygon filling, texture mapping, and shading models
  • Implementation of standard algorithms of computer graphics
Teaching Methods: Lecture-demonstration by Lecturer, Recitation of oral questions, Use of multimedia presentations, Assignments
Assessment/ Evaluation Details:
  • In-course Assessments —————————-20%
  • End-of-course Practical Examination ———– 30%
  • End-of-course Theory Examination ————- 50%
Recommended Readings:
  • Steve Marschner, Peter Shirley, Fundamentals of Computer Graphics, CRC Press, (4th Edition), 2015.
  • Sumanta Guha, Computer Graphics Through OpenGL: From Theory to Experiments (2nd Edition), 2014.
  • Donald D. Hearn, M. Pauline Baker, Warren Carithers Computer Graphics with OpenGL (4th Edition), 2010.
  • Steven J. Gortler, Foundations of 3D Computer Graphics (MIT Press), 2012.
CSC312GC1: Computer Programming III
Course Code: CSC312GC1
Course Title: Computer Programming III
Academic Credits: 01 (45 hours of practical)
Aim: Introduce Prolog for programming in logic, and .Net framework for developing standalone and web-based applications
ILOs:
  • Use the fundamentals of logic programming with the significance of language semantics
  • Write programs in Prolog for solving logical problems
  • Develop .Net applications using best practices in programming
  • Construct web services and integrate them to .Net applications
Contents:
  • Introduction to Prolog: Syntax, interpreter, matching, simple programming
  • Arithmetic operations and list processing: Arithmetic and logical operations, the member and append predicates in list, and list operations
  • Backtracking, cut, and negation: The cut operator for controlling backtracking, negation as failure and its uses
  • Introduction to .NET Framework: .Net programming concepts and object-oriented programming
  • Windows-based applications: Forms, controls and ADO.NET
  • NET for web applications: View/Session/Application management, databases in web application with ADO.NET
  • Building and Exposing XML Web services: Remoting, integrating Web Services and consuming data objects in web application
Teaching Methods:  Demonstration by Lecturer and Instructors, Use of multimedia presentations, Write practical records, Assignments
Assessment/ Evaluation Details:
  • Continuous assessment on practical records ———————–20%
  • Mid-semester practical examination   —————————— 30%
  • End-of-course practical examination ——————————- 50%
Recommended Readings:
  • Bratko, I., PROLOG programming for artificial intelligence. Addison-Wesley, 4th Ed., 2001.
  • Clocksin, W., and Mellish, C.S., Programming in Prolog: Using the ISO Standard, 5th Ed., 2003.
  • Joseph Albahari and Ben Albahari, C# 6.0 in a Nutshell: The Definitive Reference, 6th Edition, O’Reilly Media, 2015.
  • Jamie Kurtz and Brian Wortman, ASP.NET Web API 2, 2nd edition, Apress, 2015
CSC313GC2: Rapid Application Development
Course Code: CSC313GC2
Course Title: Rapid Application Development
Academic Credits: 02 (30 Hours of lectures and Tutorials)
Aim: Provide knowledge, skills, attitudes to develop a software application rapidly by choosing suitable approaches and best practices
ILOs:
  • Describe the importance of Rapid Application Development methodologies
  • Appraise the importance of teamwork, risk management, scheduling and estimation in Rapid Application Development
  • Develop a software rapidly by choosing a suitable agile methodology, best practices and tools
Contents:
  • Introduction to Rapid Application Development (RAD): Issues of traditional software development; evolution, constraints and characteristics, advantages and disadvantages of RAD practices
  • Key elements of RAD: Teamwork, risk management, project scheduling, project estimation
  • Agile Software Development: Agile software development and its tools, agile methodologies: Scrum, Extreme Programming, Lean, Kanban
  • Best practices and tools: Software architectural patterns, software design patterns and Software Version Control
Teaching Methods: Lecture by Lecturer, Demonstration, Group discussions, Vocabulary drills, Construction of summaries by students
Assessment/ Evaluation Details:
  • In-course Assessments —————————- 30%
  • End-of-course Examination ———————- 70%
Recommended Readings:
  • Andrew Stellman and Jennifer Greene, Learning agile: Understanding scrum, XP, lean, and kanban. O’Reilly Media, Inc., 2014.
  • Steve McConnell, Rapid development: taming wild software schedules, Pearson Education, 1996.
  • Erich Gamma, Design patterns: elements of reusable object-oriented software. Pearson Education India, 1995.
  • Jon Loeliger, Version Control With Git, O’Reilly Media, 2012.
CSC314GC2: Group Project II
Course Code: CSC314GC2
Course Title: Group Project II
Academic Credits: 02 (15 hours of mentoring and 100 hours of project development)
Aim: Provide knowledge, skills and attitude to develop a software application rapidly using best practices for a given context
ILOs:
  • Use appropriate tools, principles and best practices for developing an application rapidly
  • Practice as an effective player of a software project team
  • Develop an application based on a given set of requirements and deploy the application at the client site
Contents:
  • This course unit introduces and applies a range of topics in Rapid Application Development
  • Students can form a group of three to four members and each group works to develop an application rapidly for a given context without compromising the user experience and the user satisfaction
  • The course unit is oriented around directed and self-paced learning, supported by weekly updates, mentoring and discussions
Teaching Methods: Mentoring, Group discussion, Presentation, Demonstration, Use of Slides and Video
Assessment/ Evaluation Details:
  • Continuous updates and Use of an Agile practice————————– 20%
  • Project Report   —————————————————————- 20%
  • Final Project Presentation and Demonstration —————————- 40%
  • Individual viva-voce ———————————————————-  10%
  • Deployment of the software ————————————————– 10%
Recommended Readings:
  • Erich Gamma, Design patterns: elements of reusable object-oriented software. Pearson Education India, 1995.
  • Jon Loeliger, Version Control With Git, O’Reilly Media, 2012.
  • Semmy Purewal, Learning Web App Development: Build Quickly with Proven JavaScript Techniques, O’Reilly Media, 1st edition, 2014.
  • Josh Lockhart, Modern PHP: New Features and Good Practices, O’Reilly Media, 1st Edition, 2015.

Elective Course Units

CSC315GE2: Knowledge Representation and Programming in Logic*
Course Code: CSC315GE2
Course Title: Knowledge Representation and Programming in Logic
Academic Credits: 02 (30 Hours of lectures and Tutorials)
Aim: Introduce different knowledge representation paradigms and algorithmic techniques for logical reasoning
ILOs:
  • Depict knowledge using different knowledge representation techniques
  • Compare various schemes used in logic-based knowledge representation
  • Develop logic programs with the significance of language semantics
  • Appraise the unique perspective Prolog gives to problem solving and algorithm design
Contents:
  • Introduction to knowledge-based technologies and knowledge representation: Approaches to knowledge representation, issues on knowledge representation
  • Representation of problems and inference using predicate calculus
  • Automatic theorem proving: The principle of resolution, skolemization, unification, the Horn clause, logic programming
  • Representing knowledge using rules: Procedural versus declarative knowledge, forward versus backward reasoning
  • Representing knowledge using slot-and-filler structures: Semantic nets, frames, conceptual dependency diagram, scripts
  • Prolog: Declarative representation, inference control, programming and metaprogramming, Constraint Programming (CP), methods and tools,  Answer Set Programming (ASP)
Teaching Methods: Lecture by Lecturer, Vocabulary drills, Recitation of oral questions, Tutorial discussions by Instructors
Assessment/ Evaluation Details:
  • In-course Assessments —————————- 30%
  • End-of-course Examination ———————- 70%
Recommended Readings:
  • Frank van Harmelen and Vladimir Lifschitz, Handbook of Knowledge Representation, Elsevier Science, 2008.
  • Russell, S. and Norvig, P. Artificial Intelligence: A Modern Approach, 3rd Edition, Pearson, 2010.
  • Brachman, R. and Levesque, H., Knowledge Representation and Reasoning, Morgan Kaufmann, 2004.
CSC316GE2: Introduction to Systems and Network Administration
Course Code: CSC316GE2
Course Title:  Introduction to Systems and Network Administration
Academic Credits: 02 (15 hours of lectures and 30 hours of practical)
Aim: Introduce theoretical and practical knowledge required to implement and administer a Local Area Network with Web, File and Proxy servers for Small/Medium Enterprises
ILOs:
  • Design and configure a Local Area Network for an organisation
  • Perform system and network operations
  • Configure a server environment consisting web server, file server and proxy server using best practices
  • Demonstrate ability to administer and secure servers, and Local Area Networks
Contents:
  • Network design: Cabling, network protocols, IP addressing, preparing Bill of Materials
  • Host administration: Basic commands, Files, Directories and File System, Editors, Processes, Users and group management, Package management, shell scripts.
  • Network administration: Host Network configuration, Switch configuration, Wireless equipments, VLAN and setting up Local Area Networks.
  • Server and network administration: Setup Web Server, file server and Proxy server, administering servers and computer networks, system and network security, backups.
Teaching Methods: Lecture by Lecturer, Use of Slides and Video, Demonstration, Case studies
Assessment/ Evaluation Details:
  • Continuous assessment on practical records —————————- 30%
  • End-of-semester theory examination ———————————— 30%
  • End-of-semester practical examination ——————————— 40%
Recommended Readings:
  • Adam Haeder, Stephen Addison Schneiter, Bruno Gomes Pessanha, James Stanger, LPI Linux Certification in a Nutshell, 3rd Edition, O’Reilly Media, 2010.
  • Brain Ward, How Linux Works: What Every Super user Should Know, 2nd edition, No Starch Press, 2014.

* This unit is compulsory for those offering Special Degree in Computer Science.

Course units effective from academic year 2010/2011 to 2015/2016

CSC303GC2: Operating Systems
Course Code CSC303GC2
Course Title Operating Systems
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To introduce the concepts underlying Operating Systems, the major services provided and how different choices in Operating System Design and Implementation effects the application programmer’s and user environments.
Contents:
  • Introduction: Role of an operating system. Abstract view of an operating system development. Evolution of hardware and operating systems, multi programming, time sharing.
  • Process Control and Scheduling: processes, threads, process states, context switching, scheduling algorithms.
  • Process Synchronization: Problem with unrestricted concurrency, Race conditions and critical sections, Mechanisms for process synchronization, classical problems.
  • Memory Management: Allocation strategies for main memory, fragmentation, fixed and dynamic partitioning strategies. The buddy system. Swapping and relocation. Address translation, page tables and paging, Memory protection and multilevel paging mechanisms, Page problem of shared pages.
  • File Systems: Definition and purpose of a file system. Files and file attributes, operations on files, files as generic interfaces for I/O channels. Access methods, directories and directory organization. Operation on directories, file allocation policies and storage management strategies, free space management.
  • Deadlocks: Definition of deadlock, conditions for deadlock. Safe and unsafe system states, resource allocation graphs, Methods for prevention, avoidance, and detection. Safe states. The Bankers Algorithm.
  • Access Control and Security: Domains of protection. Domain structure, domain implementation in UNIX, Access Control Lists and Capabilities, The safety problem, the confinement problem.
  • Device I/O: Device drivers: character and block mode devices, polling vs. interrupts: Interrupt handling, vectored interrupts, DMA, Buffer allocation and management.
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Two Short exams based on tutorials (10-15 minutes each) ————– 10%
    • Two other exams (20 minutes each) ————————————- 20%
  • End-of-course Examination ————————————————– 60%
CSC305GC2: Rapid Application Development
CSC306GC2: Practical Computing - III
CSC307GC2: Graphics and Visual Computing
CSC322GE2: Multimedia Technologies
Course Code CSC322GE2
Course Title Multimedia Technologies
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To understand the relevance and underlying infrastructure of the multimedia.
  • To understand core multimedia technologies and standards.
  • To be aware of factors involved in multimedia systems performance, integration and evaluation.
Contents:
  • Introduction: Multimedia applications and requirements (e.g., overview of multimedia systems, video-on-demand, interactive television, video conferencing, hypermedia courseware, groupware, World Wide Web, and digital libraries).
  • Audio/Video fundamentals: Analog and digital representations, human perception, and audio/video equipment, applications.
  • Audio and video compression: Perceptual transform coders for images/video, scalable coders and perceptual audio encoders. Application and performance comparison of various coding algorithms including hardware/software trade-offs. Image and video processing applications and algorithms.
  • Multimedia hardware and software: Computer architecture and devices, OS support, network protocols, multicast networks (MBONE), continuous media system services and toolkits, and digital media servers and storage systems.
  • Content authoring tools: image/video/audio editors, asset management database systems, web authoring tools, scripting languages, web/database tools, automatic web/page generation.
  • Advanced multimedia: Virtual reality, Augmented reality, Multimedia databases/digital libraries Multimedia systems: Case studies (e.g., galleries, simulated environments, documents, educational courseware)
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Two Short exams based on tutorials (10-15 minutes each) ————– 10%
    • Two other exams (20 minutes each) ————————————- 20%
  • End-of-course Examination ————————————————– 60%
CSC323GE2: Bioinformatics Computing

Course units effective from academic year 2005/2006 to 2010/2011

CSC301GC2: Rapid Application Development
Course Code CSC301GC2
Course Title Rapid Application Development
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To offer a foundation in Rapid Application concepts and methodology, advantages and limitations of RAD.
  • To enable to acquire knowledge sufficient to undertake a moderately complex systems development project using RAD tool.
Contents:
  • RAD concept and Introduction to programming task: RAD phases, comparison between RAD and traditional methodologies, introduction to the latest tools available, introduction to a RAD environment.
  • Dialog boxes, SDI, MDI applications.
  • Component development: introduction to COM, DCOM, DLLs, VBXs, OCXs, Active X and other technologies such as Java Beans, RMI, component based development, re usability.
  • Database design and Modelling tools: DAO, RDO, ADO technologies, Client/Server Architecture, Data service, Reverse Engineering, Round trip engineering.
  • Internet Integration and Network Communication: Adding Web browsing, network and socket programming, Client/Server debugging.
  • Project: using RAD Tools etc.
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Individual Project (Implementation + Presentation) ———————- 40%
  • End-of-course Examination ————————————————— 50%
CSC302GC2: Internet Programming
Course Code CSC302GC2
Course Title Internet Programming
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To introduce the principles, methods and programming languages used in the World Wide Web.
Contents:
  • Introduction to Internet Programming: Technologies for web applications, HTML, SGML, extending functionality of the browser.
  • Client-server interaction: HTTP-HyperText Transfer Protocol, SHTTP-Secure HTTP, Server side programming, CGI-Common Gateway Interface, SSI-Server Side Includes.
  • Server side programming: CGI, PERL-Practical Extraction Report Language, Environment variables of CGI, Special PERL variables, String processing and regular expressions in PERL, HTML forms and CGI, Manipulating files in PERL.
  • Client side programming: DOM-Document Object Model, PHP, Using JavaScript with forms Java, DHTML-Dynamic HTML
  • Web services: introduction to XML, XML applications, XHTML-Extensible HTML, XML and Java, SOAP, WSDL and UDDI.
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Two Short exams based on tutorials (10-15 minutes each) ————– 10%
    • Two other exams (20 minutes each) ————————————- 20%
  • End-of-course Examination ————————————————– 60%
CSC304GC2: Practical Computing - III
Course Code CSC304GC2
Course Title Practical Computing – III
Academic Credits 02 (90 hours of Practical)
Objectives:
  • To enable to be familiar with designing and creating dynamic web pages with different techniques.
  • To enable to program some algorithms used in Operating Systems using a high level language.
  • To enable to efficiently implement different algorithms used in computer graphics.
Contents:
  • 90 hours practical works scheduled by the Department.
Assessment/ Evaluation Details:
  • Attendance at practical sessions ——————————————— 10%
  • Continuous assessment on practical records ——————————– 20%
  • Two mid-semester exams each of 30-45 minutes duration —————- 20%
  • Two end semester examinations each of two hours duration ————- 50%
CSC321GE2: Computer Graphics
Course Code CSC321GE2
Course Title Computer Graphics
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To provide background knowledge in the graphics concepts, method and algorithms.
  • To enable students to implement applications, user interfaces and software packages using computer graphics concepts and algorithms.
Contents:
  • Introduction to Computer Graphics: concept of graphics, computer graphics applications, colour representation (grey scale representation, colour models and representation).
  • Computer graphics systems: computer graphics hardware (CRTs, Raster graphics devices, vector graphics devices, input devices), computer graphics software.
  • Two dimensional graphics primitives: scan conversion of points and lines, line drawing algorithms, circle drawing algorithms, filled areas drawing algorithms (Flood fill, boundary fill algorithms).
  • Two dimensional geometric transformations: basic transformations, matrix representations and homogenous coordinates, other transformations (shear, reflection), composite transformations.
  • Two dimensional viewing: the 2D viewing pipeline, windows, viewports, window to viewport mapping, clipping operations.
  • Three dimensional graphics concept: three dimensional coordinate system, three dimensional display methods, hidden lines and surface removal (Z-buffer algorithm).
  • Three dimensional geometric transformations: translation, scaling, rotation, skewing, reflections, composite transformations.
  • Three dimensional viewing: viewing pipeline, viewing coordinates, projections (Parallel and Perspective).
  • Bezier curves, B-spline curves, NURB curves.
Assessment/ Evaluation Details:
  • In-course Assessments
    • Attendance at lectures and submission of tutorials ——————— 10%
    • Two Short exams based on tutorials (10-15 minutes each) ————– 10%
    • Two other exams (20 minutes each) ————————————- 20%
  • End-of-course Examination ————————————————– 60%

Course units before academic year 2005/2006

CSG 35: Numerical Methods II

Solving System of Linear Equations
Direct method – Gaussian elimination, direct factorisation methods.

Error Analysis and Norms
Vector norms and matrix norms, condition numbers and error estimates, iterative improvement of solutions.

Iterative Methods
Jacobi method, Gauss-Seidel method, SQR method, criteria for convergence of these methods.

Solving Ordinary Differential Equations
Taylor series method, Euler’s method with local and global error analysis, Runge-Kutta method, predictor corrector method, automatic error monitoring change of step size and order, stability.

Algorithms
Algorithms to implement the above methods in a computer using Pascal, C or FORTRAN.

(prerequisite: CSG 25)

CSG 36: Software Engineering

Introduction
Well engineered software, software process and evolution, software reliability, knowledge processing, group working, ergonomics.

Software Specification
Requirements and its evolution; system modelling; context, analysis, model description, real – time system modelling, data modelling; requirements definition and specification; requirements validation and prototyping, formal, algebraic and model – based specification.

Software Design
Top – down design, systems design, design decomposition, quality, design description language; object- oriented design: objects, object classes, inheritance; function – oriented design: data flow diagrams, structure charts; user interface design: objective, metaphors, user guidance; quality assurance.

Programming Techniques
Data abstraction: abstract data typing; portability and reuse; computer-aided software engineering; environment: operating system layer, database layer, object management system,

Software Validation
Program verification and validation: top down, bottom-up testing, scheduling, debugging; testing techniques, verification.

Software Management:
Management activities, structures, programmer productivity; project planning and scheduling; software cost estimation, maintenance, documentation, quality assurance.

Case Study
Application on object-oriented design using Pascal, C++, or Visual BASIC.

(Prerequisite CSG 14)

CSG 37: Introduction to Computer Graphics

Graphics Devices
Input devices: Keyboard, trackball, joystick, mouse, light pen, stylus tablet, sonic tablet, digitizing camera, output devices: raster-scan cathode ray tube (CRT), memory – tube display, plasma display, liquid crystal display, plotters, printers;

Image Storage
Image – 0nly storage, display- memory storage, compressed storage, information storage, run length encoded storage, quad-tree storage.

Scan Conversion
Scan-converting of a point, a straight line a circle, an ellipse, arcs and sectors, a rectangle; region filling; interior- defined and boundary defined regions and filling algorithms; boundary block transfer.

Two – Dimensional graphics
Windows and view ports; clipping algorithms: midpoint algorithms, Sutherland – Hodgman algorithm; introduction to homogeneous coordinates and transformation of object: translation, scaling, rotation, mirror image;

Three – Dimensional Graphics
Parallel and perspective projections; clipping algorithms, transformation of objects; hidden line and hidden surface removal

Graphics Models
Mathematical models for two – dimensional and three dimensional curves and curved – surfaces (Bezier curves and B- splines etc.)

GKS
introduction to graphics kernel systems (GKS) and the counter parts in Turbo Pascal / C/ BASIC, Visual BASIC, QBASIC

(Prerequisite CSG 14)

CSG 38: System Software

Introduction
Definition and history of operating systems; structure of an operating system; parallel and distributed computation.

Process Management
Concept of process, semaphores, concurrent process and programming, deadlock: prevention avoidance, detection, recovery and postponements

Storage Management
Real and virtual storage management: basic concepts contiguous and non – contiguous storage allocation: fixed and variable partition multiprogramming, storage swapping, paging/segmentation systems;

Processor Management
Job and processor scheduling; distributed computation view. Auxiliary Storage Management Disk performance optimisation; file and database systems

Performance
performance coprocessors , reduced instruction set computing (RISC), data flow; analytic modelling: queuing theory, Markov process

Networks and Security
Distributed computing – open systems interconnection view, operating systems security.

Compilers
Introduction to compilers, lexical analysis, syntax analysis and code generation.

Case Study
MS – DOS, PC-DOS, OS/2, UNIX.

(Prerequisite: CSG 13, CSG 26)

Course units to be effective from the academic year 2018/2019

CSC301M3: Advanced Database Design and Systems
Course Code: CSC301M3
Course Title: Advanced Database Design and Systems
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
45 105
Objectives: Provide in-depth understanding of the design, implementation and administration features of database management systems to effectively develop, and manage medium to large-scale databases
Intended Learning Outcomes:
  • Describe the concepts of database & distributed database design, and their logical & physical organisations
  • Design a database using standard practices and tools
  • Develop advanced queries to handle information retrieval from databases
  • Explain the concepts of transaction process, concurrency control, and recovery mechanisms
  • Discuss new developments in database technologies and the impacts of emerging database standards
Contents:
  • Relational Modeling: Concepts of data modeling, enhanced entity-relationship(EER) model, use of unified modeling language (UML), higher level normalisation
  • Physical Organisation of Databases: Storage and file structure, indexing, database efficiency and tuning
  • Query Optimisation: Factors governing query optimization, centralized query optimization
  • Transaction: Transaction processing, concurrency control, recovery techniques
  • Distributed Database Management Systems: Data fragmentation, replication and allocation, transaction processing, concurrency control and recovery in distributed databases
  • Advanced DBMS Concepts: Advanced technologies in DBMS and enhanced data models
Teaching/Learning Methods: Lectures, Tutorial discussions, Assignments, Guided learning
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • R. Elmasri and S.B. Navathe, Fundamentals of Database Systems, 7th Ed., Addison-Wesley, 2015.
  • C.J. Date, An Introduction to Database Systems, 8th Ed., Addison-Wesley, 2003.
  • Ramakrishnan and Gehrke, Database Management Systems, 3rd Ed., McGraw-Hill, 2003.
CSC302M3: Advanced Topics in Computer Networks
Course Code: CSC302M3
Course Title: Advanced Topics in Computer Networks
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
45 105
Objectives: Provide in-depth knowledge in advanced and emerging trends in network virtualisation and software defined networks
Intended Learning Outcomes:
  • Demonstrate a deeper understanding of modern computer networks, applications, and network services
  • Explain how different networking technologies at the same or different layers interact and affect each other in a large-scale system
  • Appraise network technologies with respect to system requirements, based on information from recent research and technical documentation
  • Perceive trends in large scale networks such as virtualization and software defined networking capability
  • Evaluate network technologies, applications, and services through simulation and emulation experiments
Contents:
  • Routing in the Internet: Intra and interdomain routing, unicast and multicast routing protocols, traffic classes and measurements, multi-protocol label switching(MPLS), storage area networks (SAN), data and the control planes
  • Fundamental Properties of Computer Networks: Congestion control, queueing and scheduling, quality of service, quality of experience, Power laws
  • Software Defined Networks: Distinguish between traditional networks and software defined networks, SDN origins and evolution, centralized and distributed control and data planes, openflow protocol, SDN controllers, Mininet, NOX/POX, network programming using SDNs
  • Network Virtualization: Introduction to network virtualization, constructing virtual network topologies on top of physical network topologies, virtual machines, architectural issues
  • Network Measurement: Measurement, modeling and analysis methods using real network data, Wireshark tool to monitor active networks, network simulations and emulations
Teaching/Learning Methods: Lectures, Recitation of oral questions, Supplementary reading, Practical demonstration
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • J. F. Kurose and K. W. Ross, Data Communication and Computer Networks: A top-down approach, 7th Ed. Addison Wesley, 2017.
  • A. S. Tanenbaum, and D. J. Wetherall, Computer Networks, 5th Ed., Pearson Education, 2011.
  • L. L. Peterson and B. S. Davie, Computer Networks A Systems Approach, 5th Ed., Morgan Kauffman, 2011.
CSC303M3: Artificial Intelligence
Course Code: CSC303M3
Course Title: Artificial Intelligence
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 30 140
Objectives: Provide in-depth knowledge on design and analysis of intelligent systems for solving problems that are difficult or impractical to resolve using traditional approaches
Intended Learning Outcomes:
  • Formulate an efficient Intelligent system model for a problem expressed in natural language
  • Use knowledge representation for theorem proving based on resolution procedure
  • Apply appropriate uninformed, informed or local search algorithms for solving problems
  • Develop logic programs with the significance of language semantics
  • Devise a plan of action to achieve a goal using standard AI methods
  • Illustrate 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
  • Knowledge Representation: Horn clause, resolution, theorem proving, ontology engineering, representing objects and events
  • Natural Language Processing: Language models, text classification, information retrieval, information extraction
Teaching/Learning Methods: Lectures, Tutorial discussions, Guided learning, Assignments
Assessment Strategy:
  • In-course Assessments (Theory) —————————–15%
  • In-course Assessments (Practical) —————————15%
  • End-of-course Examination ———————————-70%
References:
  • S. J. Russell and P. Norvig, Artificial Intelligence: A Modern Approach, 3rd Ed., Prentice Hall, 2010.
  • G.F. Luger, Artificial Intelligence – Structures and Strategies for Complex Problem Solving, 6th Ed., Pearson & Addison Wesley, 2009.
  • P. H. Winston, Artificial Intelligence, 1st Ed., Addison Wesley, 1993.
CSC304M3: High Performance Computing
Course Code: CSC304M3
Course Title: High Performance Computing
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 30 140
Objectives: Provide in-depth knowledge on the computational aspects of high performance computing and methods of parallel programming
Intended Learning Outcomes:
  • Discuss basics of high performance computing and their usage
  • Describe different parallel architectures, interconnection networks
  • Transform sequential algorithms into efficient parallel algorithms
  • Devise parallel programming models and parallel algorithms for solving computational problems
  • Analyse parallel programming paradigms and their semantics and correctness issues
  • Assess parallel algorithms based on their complexity and scalability
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: Distributed-memory programming (MPI), shared-memory programming (OpenMP, CUDA)
Teaching/Learning Methods: Lectures, Practical demonstration, Assessments, Tutorial discussions, Guided learning
Assessment Strategy:
  • In-course Assessment (Theory) —————————–15%
  • In-course Assessment (Practical) —————————15%
  • End-of-course Examination ———————————-70%
References:
  • J.C. Zbigniew, Introduction to Parallel Computing, 1st Ed., Cambridge University Press, 2017.
  • J. Sanders, and E. Kandrot, CUDA by Example: An Introduction to General-Purpose GPU Programming, 1st Ed., Addison-Wesley Professional, 2010.
  • A. Grama, A. Gupta, G. Karypis, and V. Kumar. “Introduction to Parallel Computing”, 2nd Ed., Addison-Wesley, 2003.
CSC305M3: Image Processing and Computer Vision
Course Code: CSC305M3
Course Title: Image Processing and Computer Vision
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 30 140
Objectives: Provide in-depth knowledge in image processing and computer vision techniques to solve real-world problems, and develop skills for research in these fields
Intended Learning Outcomes:
  • Describe the basic concepts of image processing and computer vision
  • Perform visual tasks in sequences of image analysis operations, representations, specific algorithms, and inference principles
  • Explain image processing techniques in the spatial and frequency domain
  • Analyse a range of algorithms for image processing and computer vision
  • Develop basic computer vision algorithms for image retrieval and image recognition
  • Apply image processing and computer vision techniques to solve real-world problems
Contents:
  • Digital Image Fundamentals: Image representation, sampling and quantisation, image size, resolution, pixel neighbours, connectivity, arithmetic and logical operations for images
  • Image Enhancement in Spatial Domain: Intensity transformations, histogram equalization and specification, filter operations for smoothing, sharpening images, and noise reduction
  • Image Enhancement in Frequency Domain: The Fourier transform and its properties, Fast Fourier Transform (FFT), filter operations for smoothing, sharpening images, and noise reduction
  • Morphological Image Processing: Dilation and erosion, opening and closing, basic morphological applications
  • Image Segmentation: Thresholding, edge detection, region growing
  • Introduction to Computer Vision and its Applications: Human eye-brain system as a model for computer vision, biometric applications, automated navigation
  • Introduction to Object Recognition: Feature types and descriptors, template matching, bag-of-features framework, feature matching, convolutional neural networks (CNNs)
Teaching/Learning Methods: Lectures, Assignments, Poster presentation, Guided learning
Assessment Strategy:
  • In-course Assessment (Theory) —————————–15%
  • In-course Assessment (Practical) —————————15%
  • End-of-course Examination ———————————-70%
References:
  • W. Burger and M.J. Burge, Principles of Digital Image Processing: Fundamental Techniques, Springer, 3rd Ed., 2009.
  • M. Sonka, R. Boyle and V. Hlavac, Image Processing, Analysis and Machine Vision, 3rd Ed., Springer, 2008.
  • R.C. Gonzalez and R.E. Woods, Digital Image Processing, 3rd Ed., Pearson, 2007.
  • L.G. Shapiro and G. Stockman, Computer Vision, Prentice Hall, 2001.
CSC306M3: Machine Learning
Course Code: CSC306M3
Course Title: Machine Learning
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 30 140
Objectives: Provide knowledge on the concepts of machine learning techniques for data analysis and modelling
Intended Learning Outcomes:
  • Describe a range of supervised, unsupervised and reinforcement learning algorithms
  • Explain different deep learning techniques
  • Perform pre-processing operations on data 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, handling categorical data
  • Supervised Learning: Introduction to classification and regression, rule-based learning, decision tree learning, Naive Bayes, k-nearest neighbour, support vector machines, neural networks, linear regressions, introduction to boosting
  • Unsupervised Learning: K-means clustering, Gaussian mixture models (GMMs), hierarchical clustering
  • Reinforcement Learning: Markov decision processes (MDP), value functions, returns and value functions, Bellman equation and optimality
  • Introduction to Deep Learning: Convolutional neural network (CNN), Recurrent neural network (RNN)
  • Dimensionality Reduction: PCA, feature selection
  • Experimental Setup and Evaluation: Training and testing, cross-validation, confusion matrices and evaluation measures such as accuracies, mean square errors, ROC values
Teaching/Learning Methods: Lectures, Vocabulary drills, Assignments, Laboratory experiments, Guided learning
Assessment Strategy:
  • In-course Assessment (Theory) —————————–15%
  • In-course Assessment (Practical) —————————15%
  • End-of-course Examination ———————————-70%
References:
  • C.M. Bishop, “Pattern Recognition and Machine Learning”, 2007.
  • R.O. Duda, P.E. Hart, D.G. Stork, “Pattern Classification”, 2nd Ed., Wiley, 2000.
  • T. Mitchell, “Machine Learning”, McGraw Hill, 1997.
  • I.H. Witten, E. Frank, M.A. Hall, “Data Mining: Practical Machine Learning Tools and Techniques”, 3rd Ed., Morgan Kaufmann Series, 2011
CSC307M3: Mobile Computing
Course Code: CSC307M3
Course Title: Mobile Computing
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
45 105
Objectives: Provide in-depth understanding of the concepts in mobile computing and the state of the art trends in mobile computing research
Intended Learning Outcomes:
  • Describe the concepts of mobile wireless communications
  • Discuss realistic problems in wireless communication
  • Identify latest research trends in mobile computing
  • Apply knowledge for mobile applications development
  • Appraise routing and forwarding protocols for mobile ad hoc networks
  • Recommend ad-hoc network based solutions for real world problems
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/Learning Methods: Lectures, Assignments, Tutorial discussions, Guided learning
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • J. Schiller, “Mobile Communications”, 2nd Ed., Addison Wesley publishers, 2004.
  • M. Yener and O. Dundar, “Expert Android Studio”, 1st Ed., Wrox publications, 2016.

The level-3M syllabi can be downloaded here

Course units effective from academic year 2015/2016 to 2018/2019

CSC311MC3: Advanced Database Design and Systems
Course Code: CSC311MC3
Course Title: Advanced Database Design and Systems
Academic Credits: 03 (45 Hours of lectures and tutorials)
Aim: Provide knowledge and skills on advanced concepts of database design and management
ILOs:
  • Apply advanced relational modeling techniques to design database
  • Perform query optimisation and transaction processing
  • Plan concurrency control and recovery mechanisms to improve data management
  • Describe distributed database design and concepts
Contents:
  • Relational Modeling: Concepts of data modeling, Enhanced Entity-Relationship model, use of Unified Modeling Language (UML), higher level normalisation
  • Physical organisation of databases: Storage and file structure, Indexing, Database efficiency and tuning
  • Query optimisation: Factors governing query optimization, Centralized query optimization
  • Transaction processing: Transactions, Concurrency control, Transaction management, Failure and recovery in centralised database
  • Distributed Database Management Systems: Distributed database design, distributed transaction management, Concurrency control and recovery
  • Advanced concepts and technologies in DBMS: Enhanced data models for advanced applications and Parallel DBMS architectures
Teaching Methods: Lecture by Lecturer, Recitation of oral questions, Tutorial discussions by Instructors
Assessment/ Evaluation Details:
  • In-course Assessments —————————- 30%
  • End-of-course Examination ———————- 70%
Recommended Readings:
  • Ramez Elmasri and Shamkant B. Navathe, Fundamentals of Database Systems, 7th edition, Addison-Wesley, 2015.
  • J. Date, An Introduction to Database Systems, 8th edition, Addison-Wesley 2003.
  • Ramakrishnan and Gehrke, Database Management Systems, 3rd edition, McGraw-Hill 2003.
CSC312MC4: Data Communications and Computer Networks
Course Code: CSC312MC4
Course Title: Data Communications and Computer Networks
Academic Credits: 04 (60 Hours of lectures and tutorials)
Aim: Provide an in-depth understanding of the architectures, algorithms and implementations of computer networks, and latest advancements in data communications
ILOs:
  • Appraise the principles underlying data communications
  • Describe different layered architectures and protocols in computer networks
  • Discuss routing and switching principles, algorithms and practical examples in computer networks
  • Differentiate LAN standards, topologies, hardware and LAN selection criteria for enterprise usage
  • Plan a network design about services and application by taking into account of quality of service, scalability and maintenance
  • Examine data security and integrity techniques in networking perspectives
  • Illustrate latest advancements in networking technologies
Contents:
  • Fundamentals of digital communications: Design issues related to data transfer, compare and contrast the circuit and packet switching technologies, multiplexing techniques, error control mechanisms
  • Network architectures: Principles of layered architecture, roles of layers in the OSI and TCP/IP models
  • Internet protocols: Application layer protocols in the Internet, TCP/IP protocol suite, Transport and network protocols with an emphasis on TCP/IP model, IP addressing and subnetting, troubleshooting in IP networks, IP routing mechanisms, IP versions 4 and 6, MAC layer and its protocols
  • Routing and Switching: Routing and switching fundamentals, router architecture, routing algorithms, issues to consider in designing routing protocols
  • Local area networks: LAN technologies such as IEEE 802 LAN standards, channel allocation in LAN segments and solutions, Ethernet and Ethernet networking using hubs and switches, problems associated in deploying wireless LANs and solutions
  • Wide Area Networks: Technical issues related to the WAN, technologies available in establishing WAN infrastructure, WAN architectures, routing in WANs
  • Network Security: Error detection and correction, encryption and decryption, viruses, worms, and hacking
  • Latest advancements in computer networking: Software Defined Networks and Information Centric Networks
Teaching Methods: Lecture by Lecturer, Vocabulary drills, Recitation of oral questions, Tutorial discussions by Instructors
Assessment/ Evaluation Details:
  • In-course Assessments —————————- 30%
  • End-of-course Examination ———————- 70%
Recommended Readings:
  • J. F. Kurose and K. W. Ross, Data Communication and Computer Networks: A top-down approach, 6th Ed. Pearson Education, 2013.
  • A. S. Tanenbaum, and D. J. Wetherall, Computer Networks, 5th ed., Pearson Education, 2011.
CSC313MC3: Digital Image Processing
Course Code: CSC313MC3
Course Title: Digital Image Processing
Academic Credits: 03 (45 Hours of lectures and tutorials)
Aim: Provide principles and techniques of image processing together with skills in the design and implementation of computer vision programs
ILOs:
  • Perform visual tasks in sequences of image analysis operations, representations, specific algorithms, and inference principles
  • Analyse a range of algorithms for image processing and computer vision
  • Use point processing, filters and arithmetic operations in digital images
  • Describe the roles of machine learning in computer vision
  • Develop basic image processing and computer vision algorithms
Contents:
  • Basic image processing: Sampling and quantization, image size, resolution, and image file formats, image compression
  • Image enhancement in the spatial domain: Intensity transformations of brightness, contrast, inverting images and thresholding operation, histogram processing: histogram equalisation and specification
  • Filters and convolution: First order and second order operators for smoothing and sharpening
  • Morphological image processing: Dilation and erosion, opening and closing, basic morphological applications
  • Feature extraction: Shape features using template matching and Hough transform, multi-scale feature detection and matching: SIFT (scale invariant feature transform), SURF (speeded-up robust features)
  • Frequency domain processing: The Fourier transform and its important properties, Fast Fourier Transform (FFT), processing images in frequency domain
  • Understanding image data and performing classification and recognition: Introduction to biometric applications, approaches to object recognition, human eye-brain system as a model for computer vision
Teaching Methods: Use of chalkboard, Vocabulary drills, Reading assignments in journals, poster presentation by students, Recitation of oral questions
Assessment/ Evaluation Details:
  • In-course Assessments —————————- 30%
  • End-of-course Examination ———————- 70%
Recommended Readings:
  • Burger, W., and Burge, M.J., Principles of Digital Image Processing: Fundamental Techniques, Springer, 2009.
  • Sonka, Hlavac and Boyle, Image Processing, Analysis and Machine Vision, 3rd Ed., PWS Publishing, 2008.
  • Gonzalez et al., Digital Image Processing, 3rd Ed., Pearson, 2008.
  • Stockman and Shapiro, Computer Vision, Prentice Hall, 2001.
CSC314MC8: Industrial Training
Course Code: CSC314MC8
Course Title: Industrial Training
Academic Credits: 08 (4-6 months of Industrial Training)
Aim: Provide experience, skills and attitude to work in an industrial environment
ILOs:
  • 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:
  • Students will be trained during the second semester of Level-3 in an appropriate ICT field in an industry for a period of Four to Six months which amounts to 800 notional hours under the guidance of academic and industrial supervisors.
  • Any additional stay at the industry will not carry any additional credits.
  • It is the student’s responsibility to find a placement in an industry for him/her in consultation with the Department. The department may assist the student in finding a placement in the industry.
  • Student 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 in training.
  • 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 C- and prefers to process to Level-4 will be required to do an additional project, considering the 40% marks given to the final project report as indicated in the evaluation criteria.
    • The project work will be assigned by an academic panel of the Department.
    • The individual project amounts to 300 notional hours that shall be continually monitored, assessed and evaluated by an academic panel of the Department.
    • On completion each student should submit a project report with demonstration.
    • The final grade of the students who complete their individual projects shall not exceed a grade of B.
Assessment/ Evaluation Details:
  • Training journal —————————————————————- 20%
  • Evaluation of Mentor report from the industrial supervisor ————– 20%
  • Presentation ——————————————————————–20%
  • Final Report* —————————————————————— 40%

Course units effective from academic year 2005/2006 to 2015/2016

CSC301MC3: Advanced Database Design and Systems
CSC302MC3: Artificial Intelligence - I
CSC303MC4: Data Communication and Computer Networks
CSC304MC3: Digital Image Processing
CSC305MC3: Practical Computing - 3M

Course units before academic year 2005/2006

CSS 31: Numerical Linear Algebra (1 Unit)

Systems of Linear Equations :
Gaussion Elimination, LU-factorization, Doolittle, Crouts, Choleski Methods, iterative methods, Stein-Rosenbeg Theorem, Kahan Theorem, Ostrowski-Reich Theorem.
Condition number and relative errors, iterative refinement. Sparse matrix techniques, storage schemes, graph representation of matrices, reducing the band width of a matrix. Cuthill and Mckee algorithm, reverse Cuthill-Mckee algorithm, pivoting strategies for the local minimization of fill in, Markowitz algorithm.
Conjugate gradient method for large sparse matrices.
Eigen value computation :
Gerschgorin circle theorem, Power method, inverse power method, Householder’s methods, Jacobi and given – rotation, QL method, shifting techniques, deflation.

CSS 32: Artificial Intelligence (1 Unit)

Introduction :
The AI problems, assumptions, criteria for success.
Problems and Problem Space :
Defining the problem as a state space search.
Problem characteristics.
Search techniques :
Issues in the Design of Search programs.
Heuristic search techniques :
Generate and test, hill climbing, best-first search, problem reduction, constraints satisfaction, means-ends analysis.
Introduction to LISP Language :
Application Areas :
Game Playing
Expert Systems
Natural Language Processing
Perception and Action
Learning and Understanding
Planning
Parallel and distributed AI
Connectionist models
Common-sense

CSS 33: Computer Architecture and Microprocessor System Design (1 Unit)

Basics of computer architecture and computer organization, CPU architecture, memory architecture, cache structure and design, virtual memory structure, pipeline processor architecture, pipeline memory structure, parallel architectures, RISC Vs CISC architecture, buses and system concept, CPU interface and memory system design, I/O interfacing, interrupt, DMA and multiprocessor configuration, segmentation and memory management mechanism, Bit-Sliced Microprocessor architecture and microprogramming.
Study of some Representative Microprocessors.

CSS 34: DataBase Design (1 Unit)

Data models and Data analysis, file organization, B+ trees.
Relational model : Relations, ordering, attributes and domains, Cartesian products; keys, normal forms, functional dependence, relational algebra and calculus, views, null values, data normalisation into first, second and third normal forms, Boyce Codd normal form.
Relational database manipulation : SQL, QUEL, QBE, Query processing.
+Recovery, concurrency, security, integrity and control, Distributed and deductive databases.

Course units effective from academic year 2019/2020 to date

CSC401M3: Advanced Algorithms
Course Code: CSC401M3
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.
CSC402M3: Compiler Design
Course Code: CSC402M3
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.
CSC403M3: Data Science
Course Code: CSC403M3
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
CSC404M3: Information Systems Security
Course Code: CSC404M3
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.
CSC405M3: Systems and Network Administration
Course Code: CSC405M3
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
CSC406M6: Research Project
Course Code: CSC406M6
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%
CSC407M6: Industrial Training
Course Code: CSC407M6
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-4M syllabi can be downloaded here

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.
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
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.
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
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.
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.
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.
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.
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.
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.
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.
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%
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
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.
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.
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.
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
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.
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.
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.
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.
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%)

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
Frames
Scripts
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.