Courses

Level 1SLevel 2SLevel 3SLevel 4S

Course units effective from academic year 2016/2017 to date

CSC101S3: Foundations of Computer Science
Course Code: CSC101S3
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
CSC102S3: Computer Programming I
Course Code: CSC102S3
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.
CSC103S3: Introduction to Computer Systems
Course Code: CSC103S3
Course Title: Introduction to Computer Systems
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 30 90
Objectives: Provide the students a conceptual level understanding of the structure and operation of computers and the Internet. In addition, this course also provides a basic understanding on threats to computer systems and computer networks
Intended Learning Outcomes:
  • State the conceptual and physical structure of a computer
  • Describe the operation of a computer system and the components
  • Demonstrate the structure and operations of the Internet
  • Troubleshoot a computer for hardware and software related issues
Contents:
  • Conceptual design and operation of modern computers: Data and Information, Conceptual design of modern computers (John von Neumann) and stored program concept, CPU and memory organisation, execution of programmes, Booting process, digital storage devices
  • Basics of the Internet: Structure of the Internet, Operation of Internet – TCP IP, IP Addressing, Domain naming system, Role of servers and clients, Management and control of the Internet – ISP, Internet Consortium
  • Internet services and applications: WWW, e-mail, e-learning, Social Networking, Blogs, Cloud computing
  • Threats to computer systems and information: Computer malware, ways to protect computer systems from malware, securing information – encryption technique, digital signature, biometric devices, email filtering, firewall, and precautions on Web; prevention of electronic theft
  • Computer related ethical issues: copyright, software licenses, information privacy, intellectual property, content filtering, Spam, and laws enacted with regards to SPAM, protecting web and electronic communication from antisocial and anti-cultural elements
  • Maintaining Computer hardware and software: Servicing a computer, installing operating systems and configuring a computer, installing software and drivers, troubleshooting computers, setting up a computer network
Teaching/Learning Methods: Lectures, Workshop sessions, Visit to Network Operating centre, Tutorial discussions
Assessment Strategy:
  • In-course Assessments (Theory) —————————————15%
  • In-course Assessments (Practical) ————————————-15%
  • End-of-course Examination ———————————————70%
References:
  • P. Norton, Introduction to Computers, 7th Ed., Tata McGraw Hill Education Private Limited, 2011.
  • R. White and T.E. Downs, “How Computers Work”, 3rd Ed., 2008.
CSC104S2 : Mathematics for Computing I
Course Code: CSC104S2
Course Title: Mathematics for Computing I
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Provide fundamental mathematical concepts and techniques in finding the solution methods for real world problems and then to apply those techniques for the proposed solutions by a computer
Intended Learning Outcomes:
  • Apply proof techniques in the construction of a sound argument
  • Perform the operations associated with sets
  • Analyse connections between various types of relations
  • Classify various types of functions
  • Illustrate the use of Boolean algebra in logic circuit designs
Contents:
  • Proof Techniques: Notions of implication, equivalence, converse, inverse, contrapositive, negation, and contradiction. Direct proofs, Disproving by counterexample, Proof by contradiction
  • Set theory: Venn diagrams, set operations, Cartesian product, Power sets, Cardinality of finite sets
  • Relations and functions: Reflexivity, symmetry, transitivity of relations, Equivalence relations, partial orders; Surjections, injections, bijections; Inverses, Composition of functions
  • Boolean algebra: Introduction, Duality, Representation theorem, Sum-of-products from Boolean algebra
Teaching/Learning Methods: Lectures, class discussions, textbook assignments
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • S. Lipschutz, “Set theory and related topics”, McGraw-Hill, 1998.
  • R. R. Stoll, “Set theory and logic”, 1979.
CSC105S3: Statistics for Computing I
Course Code: CSC105S3
Course Title: Statistics for Computing I
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
45 105
Objectives: Provide a solid theoretical foundation of Statistics with a combination of experience in solving real world problems with a computer
Intended Learning Outcomes:
  • Describe the concepts of probability
  • Apply Bayes’ Theorem
  • Utilise the probability distributions for real world problems
  • Describe the concept of Random variable
Contents:
  • Introduction to probability: Permutations, combinations, Venn diagram, events, sample space, mutually exclusive events, axioms of probability, laws of probability, conditional probability, independence
  • Bayes’ Theorem and Applications: Partition, total probability theorem, Bayes’ theorem, tree diagram
  • Random variable: Discrete and continuous random variables, probability mass function, probability density function, expectation, moments, mean and variance, moment generating functions, probability generating functions
  • Probability distribution: Discrete uniform, Bernoulli, binomial, Poisson, geometric, uniform, exponential and normal distributions, applications of the normal distribution, sampling distribution of the sample means
  • Joint distributions: Joint distributions, marginal distribution, conditional distributions, conditional expectation and variance
Teaching/Learning Methods: Lectures, class discussions, textbook assignments
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • Ghahramani, “Fundamentals of Probability”, 2004.
  • M. R. Spiegel, “Probability Schaum’s Outline Series”, 2000.
CSC106S3: Human Computer Interaction
Course Code: CSC106S3
Course Title: Human Computer Interaction
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 30 90
Objectives: Introduce principles and methods to build effective computer interfaces for users
Intended Learning Outcomes:
  • Explain the fundamental theories of Human Computer Interaction (HCI), key features of interaction and common interaction styles.
  • Evaluate heuristic user interfaces by using a variety of analysis and design methods
  • Apply user-centered and contextual design techniques for human computer interface design scenarios
  • Implement a prototype of a user interface for a system that satisfies usability requirements
Contents:
  • Foundations of Human Computer Interaction (HCI) and the Design Process: Human Capabilities, Interaction Design Basics, HCI in the Software Process, Design Rules, Universal Design, The Human Body and Device Design
  • Human Cognition and Interaction Styles: Goals, Operators, Methods, and Selection (GOMS), Keystroke-Level Modelling, Time-scales and the Illusion of Multitasking, Metaphor, Direct Manipulation, Command Languages
  • Usability Engineering: Observing Users, Usability Analysis – Error Handling, Error Prevention, Cognitive Walkthroughs, Heuristic Evaluation, Usability Guidelines, Usability Methods; Prototyping, Task Analysis, User-Centered Design
  • User Interface Programming: Interface Implementation, Events and Handlers, Development Tools
  • Recent Development in HCI: Groupware, Ubiquitous Computing, Virtual and Augmented Realities, Hypertext and Multimedia
Teaching/Learning Methods: Lectures, Modelling in various media, Construction of diagrams, Case studies
Assessment Strategy:
  • In-course Assessments (Theory) —————————————15%
  • In-course Assessments (Practical) ————————————-15%
  • End-of-course Examination ——————————————–70%
References:
  • H. Sharp, Y. Rogers, and J. Preece. Interaction Design: Beyond human-computer interaction, 4th Ed., Wiley Publishers, 2015.
  • B. Shneiderman, C. Plaisant, M. Cohen and S. Jacobs. Designing the User Interface: Strategies for Effective Human-Computer Interaction, 5th Ed., Addison Wesley publishers, 2010.
CSC107S2: Multimedia Technologies
Course Code: CSC107S2
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.
CSC108S2: Design of Algorithms
Course Code: CSC108S2
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.
CSC109S2: Introduction to Computer Security and Cryptography
Course Code: CSC109S2
Course Title: Introduction to Computer Security and Cryptography
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Introduce Computer security principles and cryptography, and analyse the need of Public key infrastructure and its applications
Intended Learning Outcomes:
  • Describe the concepts of computer security and cryptography
  • Explain notions of threat, vulnerability, and attacks
  • Utilise different symmetric key and public key encryption algorithms
  • Discuss the importance of Public key Infrastructure and its applications
Contents:
  • Foundations of computer security: introduction to computer security and cryptography
  • Concepts of risks, threats, vulnerabilities and types of attacks: computer security attacks, types, attacker goals, motivations (such as underground economy, digital espionage, cyberwarfare, insider threats, hacktivism, advanced persistent threats), examples of malware, organizational vulnerabilities and threats
  • Key security properties: confidentiality, integrity and availability
  • Concepts of authentication, authorization and access control: OSI security architecture, security services and security mechanisms
  • Classical encryption techniques: Symmetric key ciphers, substitution techniques, transposition techniques, other classical encryption tools, key management techniques
  • Public-key cryptography and its applications: introduction to PKI, hash functions, digital signatures and digital certificates, secure web browsing, e-commerce, secure authentication
Teaching/Learning Methods: Lectures, Class discussion, Recitation oral questions, Lecture demonstration, Small group discussions, Use of slides, Textbook assignments.
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • W. Stallings, Cryptography and Network Security: Principles and Practice, 6th Ed., 2013.
  • J. Katz and Y. Lindell. Introduction to Modern Cryptography, 2nd Ed., 2014.
CSC110S2: Organisational Behaviour
Course Code: CSC110S2
Course Title: Organisational Behaviour
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Provide students with an awareness of the concept of organisational behaviour and determinants of human behaviour in organisation
Intended Learning Outcomes:
  • Identify individual level, group level and organizational level factors which influence human behaviour at work
  • Describe the ways of developing personality, changing attitudes and motivating employees
  • Define leadership theories, communication skills and change management approaches
  • Outline the stress and conflict management techniques
Contents: Introduction to organisational behaviour, personality, values, attitudes, perception, learning and reinforcement, motivation in the workplace setting, group and interpersonal process, foundations of leadership, conflict and negotiation, essentials of interpersonal communication, organisational change management
Teaching/Learning Methods: Lectures, guest lectures, class discussions, small group discussions, case studies
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • F. Luthans, Organisational Behaviour, 12th Ed., 2010.
  • J.W. Newstrom and K. Davis, Organisational Behaviour: Human Behaviour at Work, 2004.
  • L.J. Mullins, Organisational Behaviour, 11th Ed., 2013.
CSC111S2 : Mathematics for Computing II
Course Code: CSC111S2
Course Title: Mathematics for Computing II
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Provide a solid foundation of Mathematics to apply them to solve problems in Computer Science
Intended Learning Outcomes:
  • Describe basic properties of integers
  • Use Euclid’s algorithm
  • Solve systems of linear congruences
  • Describe basics of finite group theory
Contents:
  • Number theory: Introduction, integers, factors and Euclid’s algorithm, unique factorization, linear congruences, Inverses, Chinese remainder theorem, Fermat’s Theorem.
  • Group theory: Definitions and examples, order of elements, subgroups, cosets and Lagrange’s theorem, cyclic groups.
Teaching/Learning Methods: Lectures, class discussions, textbook assignments
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • D. Burton, “Elementary Number Theory”, 2010.
  • J.B. Fraleigh, “A First course in abstract algebra”, 2002.
  • G.A. Jones and J.M. Jones, “Elementary number theory”, Springer, 1998.
  • B. Baumslag and B. Chandler, “Group Theory”, 1968.
CSC112S3 : Statistics for Computing II
Course Code: CSC112S3
Course Title: Statistics for Computing II
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
45 105
Objectives: Train students in applying statistical methods in proposing solutions for real world problems to be solved with computer.
Intended Learning Outcomes:
  • Examine data using summary statistics and graphical methods
  • Outline different methods of parameter estimation in Statistics
  • Discuss the principles of hypothesis testing with applications
  • Apply simple linear regression technique to real world issues
Contents:
  • Descriptive Statistics: Types of data, population, sample, parameter, statistic, tabular and pictorial presentation of data, summary statistics, measures of central tendency and dispersion, skewness, kurtosis
  • Point and Interval Estimation: Sampling distributions, central limit theorem, confidence intervals for one-sample, two–sample population characteristics, sample size calculation for parameter estimation, interpretation of confidence intervals
  • Testing Hypotheses: Steps in hypothesis testing, level of significance, Type–I and Type–II errors, p–value, power of test, Z–test, t –test, χ2 test, and F-test, goodness of fit test Simple linear regression: Correlation, simple linear regression, least square estimation, interpretation of regression parameters, application of simple linear regression 
Teaching/Learning Methods: Lectures, Tutorial discussions, Laboratory sessions
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • D.S. Moore, G.P. McCabe and B. Craig, Introduction to the Practice of Statistics, 6th Edition, 2009.
  • R.E. Walpole, R.H. Myers, S.L. Myers, K.E. Ye, “Probability and Statistics for Engineers and Scientists”, 9th Edition, 2010.
  • S.A. Lesik, “Applied Statistical Inference with Minitab”, 2009.

The level-1S syllabi can be downloaded here

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

CSC111SC3: Foundations of Computer Science
Course Code CSC111SC3
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
CSC112SC3: Computer Programming I
Course Code CSC112SC3
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/
CSC113SC2: Introduction to Computer Security and Cryptography
Course Code CSC113SC2
Course Title Introduction to Computer Security and Cryptography
Academic Credits 02 (20 Hours of lectures and 20 Hours of practical)
Prerequisite/s None
Objectives:
  • Explain the concepts of Computer Security and Cryptography
  • Describe different symmetric key and public key encryption algorithms
  • Discuss the importance of Public Key Infrastructure and its applications
Contents:
  • Foundations of Computer security: Introduction to Computer security and Cryptography
  • Concepts of risks, threats, vulnerabilities and types of attacks: Computer security attacks, types, attacker goals, motivations (such as underground economy, digital espionage, cyberwarfare, insider threats, hacktivism, advanced persistent threats), Examples of Malware and Viruses, Organizational vulnerabilities and threats, Introduction to identity management.
  • Key security properties: Confidentiality, Integrity and Availability.
  • Concepts of authentication, authorization and access control: OSI Security architecture, Security services and Security Mechanisms.
  • Classical Encryption Techniques: Symmetric Key ciphers, Substitution Techniques, Transposition Techniques, Other Classical Encryption tools, Key management techniques
  • Public-Key Cryptography and its applications: Introduction to PKI, Hash functions, Digital signatures and Digital certificates, Secure web browsing, E-Commerce, Secure Authentication.
  • Use of different real-world applications of cryptographic primitives and protocols.
Assessment/ Evaluation Details:
  • In-course Assessments (20% Theory + 20% Practical) 40%
  • End-of-course Examination 60%
Recommended Readings:
  • William Stallings. Cryptography and Network Security: Principles and Practice, 6th Edition, 2013.
  • Jonathan Katz and Yehuda Lindell. Introduction to Modern Cryptography, 2nd edition, 2014
CSC114SC2: Mathematics for Computing I
Course Code CSC114SC2
Course Title Mathematics for Computing I
Academic Credits 02 (30 Hours of lectures and tutorials)
Prerequisite/s None
Objectives:
  • Apply proof techniques in the construction of a sound argument
  • Perform the operations associated with sets, functions, and relations
  • Illustrate the use of Boolean algebra in logic circuit designs
Contents:
  • Proof Techniques: Notions of implication, equivalence, converse, inverse, contrapositive, negation, and contradiction. Direct proofs, Disproving by counterexample, Proof by contradiction.
  • Set theory: Venn diagrams, set operations, Cartesian product, Power sets, Cardinality of finite sets.
  • Relations and functions: Reflexivity, symmetry, transitivity of relations, Equivalence relations, partial orders; Surjections, injections, bijections; Inverses, Composition of functions.
  • Boolean algebra: Introduction, Duality, Representation theorem, Sum-of-products from Boolean algebra.
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Seymour Lipschutz, “Set theory and related topics”, ISBN-13: 978-0070381599, 1998
  • Robert R. Stoll, “Set theory and logic”, ISBN-13: 9780486638294, 1979
CSC115SC3: Statistics for Computing I
Course Code CSC115SC3
Course Title Statistics for Computing I
Academic Credits 03 (45 Hours of lectures and tutorials)
Prerequisite/s None
Objectives:
  • Develop an Understanding of the concept probability
  • Demonstrate and apply Baye’s Theorem
  • Describe the concept of Random variable
Contents:
  • Axioms of Probability, Conditional Probability, Independence, Baye’s Theorem and applications, Random Variable, Moments, Moment Generating Functions, and Probability Generating functions; Bernoulli, Binomial, Poisson, Uniform, Geometric, Normal, Exponential and Hypergeometric Distributions, Joint Distributions, Conditional Distributions, Conditional Expectation and Variance.
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Saeed Ghahramani, “Fundamentals of Probability”, ISBN: 0131453408, 2004.
  • Murray R. Spiegel, “Probability Schum’s Outline Series”, 2000.
CSC116SC2: Introduction to Computer Systems
Course Code CSC116SC2
Course Title Introduction to Computer Systems
Academic Credits 02 (30 hours of lectures and tutorials)
Prerequisite/s None
Objectives:
  • State the conceptual and physical structure of a computer
  • Describe the execution cycle of computer programs
  • Review the evolution of computer hardware
  • Demonstrate the structure and operations of the Internet
Contents:
  • History and evolution of computer hardware: Basic functions of modern computer hardware and software components including operating system functions
  • Conceptual design of modern computers and program execution: Data and Information, Conceptual design of modern computers (Von Newman) and stored programme concept, CPU and memory organisation, execution of programmes.
  • Computer communications and protocols: Network types (LAN, WAN, intranet), topologies (ring, bus, star), protocols (TCP/IP, SMTP, POP & IMAP, HTTP & HTTPS, DNS), media types (wire pair, coaxial cable, fiber optics, microwave, radio frequency, infra-red), Addressing, and network hardware (router, hub, gateway).
  • Basics of the Internet, its services and applications: What is Internet, Structure of the Internet, Operation of Internet – TCP IP, IP Addressing, Domain naming system, Role of servers and clients, Management and control of the Internet – ISP, Internet Consortium; WWW, e-mail , e-learning, Social Networking, Blogs, Cloud computing.
  • Threats to computer systems: Understand computer viruses, encryption technique, digital signature, biometric devices, email filtering, firewall, and precautions on Web; Understand ethical issues regarding copyright, software licenses, information privacy, intellectual property, content filtering, Spam, and laws enacted with regards to SPAM, children’s protection on Web, electronic communication, and electronic theft.
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Peter Norton, Peter Norton’s Intro to Computers, 6th Edition, McGraw-Hill/Irwin, 2004
  • Ron White and Timothy Edward Downs, “How Computers Work”, ISBN-13: 978-0789736130, 2007
CSC117SC2: Data Structures and Algorithms I
Course Code CSC117SC2
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.
CSC118SC2: Human Computer Interaction
Course Code CSC118SC2
Course Title Human Computer Interaction
Academic Credits 02 (30 hours of lectures and tutorials)
Prerequisite/s None
Objectives:
  • Explain fundamental theories of human computer interaction, key features of interaction and common interaction styles
  • Choose among a variety of analysis and design methods for the heuristic evaluation of user interfaces
  • Apply user-centered and contextual design techniques for human computer interface design scenarios
Contents:
  • Scope and challenges of Human Computer Interaction and Interaction Design: Principles of good design and good designers; engineering tradeoffs.
  • Task analysis, visual design, information design and rapid prototyping: Need finding, rapid prototyping, heuristic evaluation and designing experiments.
  • HCI design procedures: Usability heuristics and the principles of usability testing, Accessibility, e.g., interfaces for differently-abled populations.
  • Design strategies: In-person and web experimental design, within versus between subjects design, assigning participants to conditions, chi-squared test.
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, ISBN: 978-1-119-02075-2, 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, ISBN-13: 978-0321537355.
CSC119SC2: Mathematics for Computing II
Course Code CSC119SC2
Course Title Mathematics for Computing II
Academic Credits 02 (30 hours of lectures and tutorials)
Prerequisite/s None
Objectives:
  • Explain basic properties of integers
  • Use Euclid’s Algorithm
  • Solve systems of linear congruencies
  • Describe basics of finite group theory
Contents:
  • Number theory: Introduction, Integers, factors and Euclid’s Algorithm, Unique factorization, Linear congruences, Inverses, Chinese remainder theorem, Fermat’s Theorem.
  • Group theory: Definitions and examples, Order of elements, Sub-groups, Cosets and Lagrange’s theorem, Cyclic groups.
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • David Burton, “Elementary Number Theory”, ISBN-13: 978-0073383149, 2010
  • John B Fraleigh, “A First course in abstract algebra”, ISBN-13: 978-0201763904, 2002.
  • G.A. Jones and J. M. Jones, “Elementary number theory”, Springer, 1998.
  • Benjamin Baumslag and Bruce Chandler, “Group Theory”, ISBN 0070604932, 1968.
CSC121SC3: Statistics for Computing II
Course Code CSC121SC3
Course Title Statistics for Computing II
Academic Credits 03 (40 Hours of lectures, tutorials and 10 hours of practical)
Prerequisite/s None
Objectives:
  • Interpret inferential tools and methods
  • Discuss the principles of hypothesis testing with application.
  • Apply simple linear regression.
Contents:
  • Types of data, Population and Sample; Tabular and pictorial presentation of data; Summary Statistics; Measures of central tendency and dispersion; Skewness and Kurtosis, Point and interval Estimation; Sampling Distributions; Significance Testing; Type–I and Type–II Errors; p values, Level of Significance, Power of test, Z, t and tests, Central Limit Theorem, Goodness of fit. Correlation and Simple Linear Regression, Least Square estimation and interpretation of simple regression parameters;
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Walpole, et al – Probability and Statistics for Engineers and Scientists, ISBN-13: 978-0321629111, 2011.
  • H.C. Saxena – Practical Mathematical Statistics, ISBN 8121920124, 2000.

Course units effective from academic year 2005/2006 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 2005/2006 to 2010/201

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 effective from academic year 2017/2018 to date

CSC201S2: Database Systems Concepts and Design
Course Code: CSC201S2
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.
CSC202S2: Computer Programming II
Course Code: CSC202S2
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.
CSC203S2: Operating Systems
Course Code: CSC203S2
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.
CSC204S2: Data Structures & Algorithms
Course Code: CSC204S2
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.
CSC205S2: Software Engineering
Course Code: CSC205S2
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.
CSC206S4: Mathematics for Computing III
Course Code: CSC206S4
Course Title: Mathematics for Computing III
Credit Value: 04
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
60 140
Objectives: Encourage computer science students more aware of the importance of linear algebra in various computer science topics.
Intended Learning Outcomes:
  • Develop an understanding of the theory of vector spaces.
  • Use the theory of linear transformations and their matrix representation
  • Solve systems of linear equations and understand the conditions for the existence of solution
  • Use determinations and spectral properties.
Contents: Vectors in Rn norms and inner products in Rn Cauchy-Schwartz and triangular inequalities, Gram-Schmidt process. Elementary operations and elementary matrices, echelon and row reduced echelon matrices. Vector spaces, linear dependence, and independence, subspaces, basis and dimension, Steinitz replacement theorem. Linear transformations, matrix representation and change of base, column rank, row rank and nullity of matrix. Determinants and their properties, invertibility of a square matrix, Eigen values and Eigen vectors, characteristic polynomials, cayley-Hamilton theorem, orthogonal, symmetric and skew symmetric matrices, quadratic forms, diagonalization, System of linear equations.
Teaching/Learning Methods: Use of chalkboard, tutorial, textbook assignments, Guided learning
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • Devi Prasad, Elementary Linear Algebra, 2nd Ed,, Narosa Publishing House, New Delhi, 2012
  • David Lay C, Linear Algebra and Its Applications, 4th Ed,, Pearson (Addison Wesley) Publication, 2012;
  • Seymour Lipschutz, Schaum’s Theory and problems of linear algebra, 2011
  • Datta K.B, Matrix and Linear Algebra, Prentice hall of India Pvt. Ltd, New Delhi–110001, 2003
CSC207S3: Computer Architecture
Course Code: CSC207S3
Course Title: Computer Architecture
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 45 75
Objectives: Understand the design of a digital computer including the structure of a microprocessor, memory organisation and program execution cycle.
Intended Learning Outcomes:
  • Explain the conceptual design and the organisation of a computer system
  • Describe processor unit design and its operations
  • Summarise memory and Input/Output organisation
  • Build Assembly language programs
Contents:
  • Introduction to modern computer architecture: Architectural and technological design and development, and performance measures of a processor
  • Instruction set architecture models: Instruction set architectures and design, memory locations and operations, addressing modes, instruction types, microprogramming
  • Processing unit design: CPU basics, register set, data path, CPU instruction cycle, control unit design, instruction pipelining techniques
  • Memory hierarchies and Input/Output organisation: Memory structure and hierarchy, cache memory mapping, direct memory access, virtual memory, interrupt-driven I/O, and Input-Output interfaces
  • Assembly language programming: Instructions mnemonics and syntax, assembler directives and commands, assembly and execution of programs
Teaching/Learning Methods: Lecture, Programming practical sessions, Tutorial discussions, Assignments, Guided learning
Assessment Strategy:
  • In-course Assessment (Theory) —————————— 10%
  • In-course Assessment (Practical) —————————- 30%
  • End-of-course Examination ———————————- 60%
References:
  • D. A. Patterson and J. L. Hennessy, Computer Organization and Design: The Hardware and Software Interface, Morgan Kaufmann Publishers, 5th Ed, 2013.
  • M. Abo-El-Barr and H. El-Rewini, Fundamentals of Computer Organization and Architecture, A John Wiley & Sons Publication, 2004.
  • W. Stallings, Computer Organization and Architecture, Prentice Hall Publishers, 10th Ed, 2015.
CSC208S3: Concepts of Programming Languages
Course Code: CSC208S3
Course Title: Concepts of Programming Languages
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 30 90
Objectives: Provide an overview of the basic concepts that appear in modern programming languages, the principles that underlie the design of programming languages, and their features.
Intended Learning Outcomes:
  • Describe the fundamental issues in the design and the use of major programming languages
  • Demonstrate the differences of programming paradigms in different programming languages
  • Discuss the use of formal methods for program verification
  • Build concurrent and functional programs
Contents:
  • Introduction: Programming domains, evaluation criteria for programming languages, influences on language design, programming language categories
  • Introduction to syntactic and semantic description of programming languages
  • Programming paradigms in different programming languages: Data types, Abstract data types, Data objects, Control structures, subprograms, lifetime and scope of variables and functions, object-oriented programming, exception handling
  • Concurrency: Basics of concurrency, subprogram-level concurrency, monitors, message passing, threads
  • Functional programming: Fundamentals and programming with functional programming languages
Teaching/Learning Methods:  Lectures, practical sessions, Tutorial discussions, Assignments
Assessment Strategy:
  • In-course Assessment (Theory)  ——————————– 10%
  • In-course Assessment (Practical) ——————————- 30%
  • End-of-course Examination ————————————- 60%
References:
  • R. W. Sebesta, Concepts of Programming Languages, Pearson, 2016.
  • J. C. Mitchell, Concepts in Programming Languages, Cambridge University Press, 2003.
  • C. Ghezzi and M. Jazayeri, Programming language concepts, 3rd Ed, 1997.
CSC209S3: Bioinformatics
Course Code: CSC209S3
Course Title: Bioinformatics
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 30 90
Objectives: Provide theoretical and practical knowledge in Bioinformatics including analysis of protein and genome sequences by various computational tools.
Intended Learning Outcomes:
  • Describe computational genomics and phylogenetics concepts
  • Demonstrate the use of computational tools for sequence analysis in bioinformatics
  • Perform Data analysis and Pattern recognition in biological data
  • Formulate a biological problem as a computational problem
Contents:
  • Introduction to bioinformatics: Aims and tasks of bioinformatics, scope of bioinformatics and its applications, bioinformatics databases.
  • Structural bioinformatics: Protein structure and its visualsation, comparison and classification, protein structure prediction, RNA structure prediction, compression of genomic sequences such as Burrows–Wheeler transform, etc.
  • Pairwise sequence alignments and database search: Scoring matrix, Needleman-Wunsch algorithm, Smith-Waterman algorithm, Gotoh algorithm, heuristic methods
  • Phylogenetic tree and multiple sequence alignment: Neighbour-joining and UPGMA algorithms, phylogenetic tree,  Sequence profile & profile based alignments
  • Pattern Recognition: Clustering and visualisation, Hidden Markov models and Viterbi algorithm
  • Genomics and proteomics: Genome mapping, genome assembly, genome  comparison, functional genomics, proteomics and metabolomics
Teaching/Learning Methods: Lectures, Practical demonstration, recitation oral questions, vocabulary drills, and simulations.
Assessment Strategy:
  • In-course Assessment (Theory) ————————————– 10%
  • In-course Assessment (Practical) ———————————— 30%
  • End-of-course Examination —————————————— 60%
References:
  • B. Bergeron, Bioinformatics Computing, Prentice Hall, 2002.
  • K. Stephen, Introduction to Bioinformatics: A Theoretical and Practical Approach, 1st Ed, 2003
  • F. Azuaje and J. Dopazo, Data Analysis and Visualization in Genomics and Proteomics, John Wiley, 1st Ed, 2005
CSC210S3: Web Technologies
Course Code: CSC210S3
Course Title: Web Technologies
Credit Value: 03
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
15 60 75
Objectives: Develop proficiency in designing web applications using different emerging technologies and best practices.
Intended Learning Outcomes:
  • Design websites using advanced features of Markup and Client-side scripting languages
  • Use XML technologies for web applications
  • Employ knowledge on web programming to develop and maintain web applications
  • Develop secure web-based systems using server-side scripting languages
  • Recommend  practices that ensure legal and ethical responsibilities
Contents:
  • Advanced use of scripting languages: Client-side scripting (HTML, CSS, JavaScript, etc.) and Server-side scripting (PHP, JSP, ASP, etc.)
  • XML Technologies: XSL, XSLT, xPath and xQuery
  • Secure web programming: Authentication, access control, session management, SQL injections and cross site scripting (XSS)
  • Trends in Web development: Web 2.0, AJAX, JSON, Web Services
  • Best practices in Web Development: Architectural patterns, search engine optimization (SEO), frameworks, auditing and logging
Teaching/Learning Methods: Lectures, practical demonstration, assignments, small group discussions, individual mini projects
Assessment Strategy:
  • In-course Assessments (Theory) ———————————– 10%
  • In-course Assessments (Practical) ——————————— 30%
  • End-of-course practical Examination —————————– 60%
References:
  • S. Purewal, Learning Web App development, 1st Ed., 2014.
  • D. Stuttard and M. Pinto, The Web Application Hacker’s Handbook: Finding and Exploiting Security Flaws, 2nd Ed., 2011.
  • J. J. Jackson, Web Technologies: A Computer Science Perspective, 1st Ed., 2006.
  • A. Godbole and A. Kahate, Web Technologies, TCP/IP, Web/Java Programming, and Cloud Computing, McGraw Hill Education, 3rd Ed, 2017.
CSC211S2: Emerging Trends in Computer Science
Course Code: CSC211S2
Course Title: Emerging Trends in Computer Science
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
15 30 55
Objectives: Provide an overview of the emerging trends in computer science.
Intended Learning Outcomes:
  • Demonstrate familiarity with latest trends in computer science and their applications
  • Describe the key architectures and applications in edge computing
  • Summarise standard open-source cloud and edge computing software for data analytics
  • Build microcontroller programs for IoT
  • Discuss the latest languages and frameworks used in IT industries
Contents:
  • Edge computing: Introduction to edge computing, cloud computing analytics pipeline, cloud databases
  • Data analytics: Introduction to deep learning, data mining, and its applications; introduction to hadoop, spark, and mapreduce
  • Internet of things (IoT): IoT concepts and technologies, its applications, micro-controller programming using sensors and actuators with arduino, IoT security and privacy issues
  • Blockchain: Fundamentals of blockchain, distributed ledger technology, cryptocurrency, and related algorithms
  • Introduction to mobile application development: Mobile app development platforms (Android, iOS, etc.), development and deployment of applications
[The course content will come directly from research papers, articles, and documentation of cloud and data center architectures and technologies.]
Teaching/Learning Methods: Lectures, Guest lectures, TechTalks, workshops, industrial visit
Assessment Strategy:
  • Formative Assessment: Industrial Visit* ——————————————10%
  • Summative Assessment: Individual/Group Assignments† ———————-90%

*Students will be taken to four to six leading software development companies in Sri Lanka in one or two industrial visit(s). Each visit may take up to three days. The type of assignments includes but are not limited to presentations and report writings on the observation of the industrial visit. †At the end of each of the five chapters, students will be given five assignments (including programming tasks) based on the key areas covered in the five chapters. Of the five assignments, at most two may be done in groups.

References:
  • Holler, V. Tsiatsis, C. Mulligan, S. Avesand, S. Karnouskos and D. Boyle, “From Machine-to-Machine to the Internet of Things: Introduction to a New Age of Intelligence”, 1st Ed, Academic Press, 2014.
>>    Conference and journal papers related to the course material will be posted on the course website.
CSC212S2: Professional Practice
Course Code: CSC212S2
Course Title: Professional Practice
Credit Value: 02
Core/Optional: core
Hourly Breakdown: Theory Practical Independent Learning
30 70
Objectives: Provide a viewpoint on the commercial realities of software professionals and their required behavioural skills in day to day activities as an Information Technology professional.
Intended Learning Outcomes:
  • Discuss the concepts of professional practice in computing
  • Explain the context in which computer professionals work
  • Apply the key skills, knowledge, attributes and attitudes required to be an IT professional, with particular reference to professional practice, code of ethics and professional standards
  • Analyse legal issues in relation to data privacy and software use
  • Recognize professional conduct in an ethical manner  in day to day activities as an IT professional
  • Apply the principles of group work and reflect on the nature of working in teams, with the appreciation of the issues, such as ethics, conflict resolution, negotiation in culturally diverse workplace
Contents:
  • Computer ethics and professional practice: Ethical argumentation and theories, moral assumptions and values, the role of computing professional, and professional communication practices
  • Intellectual property: Intellectual property rights, Intangible digital intellectual property, legal foundations for intellectual property protection
  • Privacy and data protection: Privacy of computer data, respecting human dignity, protecting data stored on computers, ethical hacking and its implications
  • Security policies, laws and computer crimes: Computer crimes and legal redress for computer criminals, Issues surrounding the misuse of access and breaches in security, crime prevention strategies
Teaching/Learning Methods:  Lecture, small group discussions, tutorial classes
Assessment Strategy:
  • In-course Assessments —————————————30%
  • End-of-course Examination ———————————-70%
References:
  • G. W. Reynolds, Ethics in Information Technology, 5th Ed, 2014.
  • M. F. Bott, Professional Issues in Information Technology, The British Computer Society, 2nd Ed, 2014.
  • ACM Code of Ethics, ACM, www.acm.org, 2017.
The level-2S syllabi can be downloaded here

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

Core Course Units
CSC231SC2: Software Engineering
Course Code: CSC231SC2
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
CSC232SC2: Computer Programming II
Course Code: CSC232SC2
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.
CSC233SC2: Database Management Systems
Course Code: CSC233SC2
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.
CSC234SC3: Computer Architecture
Course Code: CSC234SC3
Course Title: Computer Architecture
Academic Credits: 03(30 Hours of lectures and tutorials and 45 hours of Practical)
Prerequisite/s: None
Objectives: This course aims to teach students how a digital computer is designed and built and how it executes programs, including the structure of the microprocessor, memory organization and programme execution cycle.
Intended Learning Outcomes:
  • Explain the conceptual design and the organisation of a computer system
  • Describe processor unit design and its operations
  • Summarise memory hierarchies and Input / Output organisation
  • Write assembly language programs
Contents:
  • Introduction to modern computer architecture: Architectural and Technological Development, and Performance Measures
  • Instruction set architecture models: Instruction Set Architectures and Design, Memory Locations and Operations, Addressing Modes, Instruction Types, Microprogramming
  • Hardware structures for digital arithmetic computations
  • Processing Unit Design: CPU Basics, Register Set, Data Path, The CPU Instruction Cycle, Control Unit, Instruction pipelining techniques
  • Memory hierarchies and Input / Output organisation: Memory structure, Interrupt-Driven I/O, and Input-Output Interfaces
  • Assembly language programming: Instructions Mnemonics and Syntax, Assembler Directives and Commands, Assembly and Execution of Programs
Teaching Methods: Lecture by teacher, Programming practical sessions by teacher, Tutorial submission and discussion
Assessment/ Evaluation Details:
  • In-course Assessment (Theory) —————–20%
  • In-course Assessment (Practical) —————20%
  • End-of-course Examination ———————60%
Recommended Readings:
  • David A. Patterson and John L. Hennessy, Computer Organization and Design: The Hardware and Software Interface, Morgan Kaufmann Publishers, 5th Edition, 2013
  • Mostafa Abo-El-Barr and Hesham El-Rewini, Fundamentals of Computer Organization and Architecture, A John Wiley & Sons Publication, 2004
  • William Stallings, Computer Organization and Architecture, Prentice Hall Publishers, 10th Edition, 2015
CSC235SC4: Mathematics for Computing III
Course Code: CSC235SC4
Course Title: Mathematics for Computing III
Academic Credits: 04 (60 Hours of lectures and tutorials)
Prerequisite/s: None
Objectives: This course aims to encourage computer science students more aware of the importance of linear algebra in various computer science topics.
Intended Learning Outcomes:
  • Develop an understanding of the theory of vector spaces.
  • Understand the theory of linear transformations and their matrix representation
  • Solve systems of linear equations and understand the conditions for the existence of solution
  • Use Determinations and spectral properties.
Contents:

Vectors in Rn, norms and inner products in Rn, Cauchy- Schwartz and triangular inequalities, Gram-Schmidt process. Elementary operations and elementary matrices, echelon and row reduced echelon matrices. Vector spaces, linear dependence, and independence, subspaces, basis and dimension, Steinitz replacement theorem. Linear transformations, matrix representation and change of base, column rank, row rank and nullity of matrix. Determinants and their properties, invertibility of a square matrix, eigenvalues and eigenvectors, characteristic polynomials, cayley-Hamilton theorem, orthogonal, symmetric and skew symmetric matrices, quadratic forms, diagonalization, System of linear equations.

Teaching Methods:  Use of chalkboard, tutorial, textbook assignments
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Devi Prasad, Elementary Linear Algebra (2nd Edition), Narosa Publishing House, New Delhi, 2012
  • David Lay C, Linear Algebra and Its Applications, 4th edition, Pearson (Addison Wesley) Publication, 2012;
  • Seymour Lipschutz, Schaum’s Theory and problems of linear algebra, 2011
  • Datta K. B, Matrix and Linear Algebra, Prentice hall of India Pvt. Ltd, New Delhi – 110001, 2003
CSC236SC2: Operating Systems
Course Code: CSC236SC2
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.
CSC237SC3: Concepts of Programming Languages
Course Code: CSC237SC3
Course Title: Concepts of Programming Languages
Academic Credits: 03 (30 hours of lectures and tutorials and 45 hours practical)
Prerequisite/s: None
Objectives: This course aims to provide an overview of the basic concepts that appear in modern programming languages, the principles that underlie the design of programming languages, and their features.
Intended Learning Outcomes:
  • Describe the fundamental issues in the design and the use of major programming languages
  • Demonstrate the differences of Programming paradigms in different programming languages
  • Write concurrent and functional programs
Contents:
  • Introduction: Programming Domains, Evaluation criteria for programming languages, Influences on Language design, Programming language categories
  • Introduction to syntactic and semantic description of programming languages
  • Programming paradigms in different programming languages: Data types, Abstract data types, Data objects, Control structures, Subprograms, object-oriented programming, Exception handling
  • Concurrency: Basics of concurrency, Subprogram-Level Concurrency, Monitors, Message Passing, Threads
  • Functional programming: Fundamentals and Programming with Functional Programming Languages
Teaching Methods: Lecture by teacher, Programming practical sessions by teacher, Tutorial submission and discussion
Assessment/ Evaluation Details:
  • In-course Assessment(Theory) —————–20%
  • In-course Assessment (Practical) ————–20%
  • End-of-course Examination ——————–60%
Recommended Readings:
  • Robert W Sebesta, Concepts of Programming Languages, Pearson.
  • John C Mitchell, Concepts in Programming Languages”, Cambridge University Press
CSC238SC2: Data Structures and Algorithms II
Course Code: CSC238SC2
Course Title: Data Structures and Algorithms II
Academic Credits: 02 (30 Hours of Lectures and Tutorials)
Prerequisite/s: None
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:
  • 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.
CSC239SC2: Professional Practice
Course Code: CSC239SC2
Course Title: Professional Practice
Academic Credits: 02 (30 Hours of Lectures and Tutorials)
Prerequisite/s: None
Objectives: This course aims to provide a viewpoint on the commercial realities of Software professionals and the required practical skills in project management.
Intended Learning Outcomes:
  • Discuss the concepts of professional practice in computing
  • Explain the context in which computer professionals work
  • Analyse legal issues in relation to data privacy and software use
Contents:
  • Computer ethics and professional practice: Ethical argumentation and theories, Moral assumptions and values, the role of computing professional, and Professional Communication practices
  • Intellectual Property: Intellectual property rights, Intangible digital intellectual property, Legal foundations for intellectual property protection
  • Privacy and data protection: Privacy of Computer data, respecting human dignity, protecting data stored on computers
  • Security Policies, Laws and Computer Crimes: Computer crimes and legal redress for computer criminals, identity theft and recovery, Issues surrounding the misuse of access and breaches in security, Crime prevention strategies
Teaching Methods: Lecture by teacher, guest lectures, class discussions, small group discussions
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • George W. Reynolds , Ethics in Information Technology, 5th Edition, 2014.
  • Penny Duquenoy, Simon Jones, Barry G. Blundell: Ethical, Legal and Professional Issues in Computing, 2008
CSC241SC2: Group Project I
Course Code: CSC241SC2
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%
CSC242SC2: Human Resource Management
Course Code: CSC242SC2
Course Title: Human Resource Management
Academic Credits: 02 (30 Hours of Lectures and Tutorials)
Prerequisite/s: None
Objectives: This course aims to cover the topics associated with Human Resource management from the perspective of the human resource management professionals, manager and employees in software development.
Intended Learning Outcomes:
  • Explain the importance of human resource management in IT industry
  • Discuss how to strategically plan for the human resources needed to meet organizational goals and objectives with the support of Information Technology
  • Explain how legislation impacts human resource management practice
  • Describe importance of human resource information system and its applications
  • Summarize the activities involved in evaluating and managing employee performance
Contents:

Evolution of Human Management, Definitions of Human Resource Management, Human Resource Management and Personnel Management Approaches, Equal Employment opportunity and Laws, Managing Diversity, Human Resource Audit, Human Resource information system, Job Analysis, Human Resource Planning, Recruitment and selection(e recruitment), Training and Development, Performance Appraisal.

Teaching Methods: Lecture by teacher, guest lectures, class discussions, small group discussions, case studies
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Gray Dessler, Introduction to Human Resource Management 13th edition, 2011
Elective Course Units
CSC243SE2: Numerical Methods
Course Code: CSC243SE2
Course Title: Numerical Methods
Academic Credits: 02 (30 Hours of Lectures and Tutorials)
Prerequisite/s: None
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.
CSC244SE2: Information Assurance and Security
Course Code: CSC244SE2
Course Title: Information Assurance and Security
Academic Credits: 02 (30 Hours of Lectures and Tutorials)
Prerequisite/s: None
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
CSC245SE2: Web Technologies
Course Code: CSC245SE2
Course Title: Web Technologies
Academic Credits: 2 (15 hours of lectures and 30 hours of practical )
Prerequisite/s: None
Objectives: This course aims to familiarise learners to develop web applications using different technologies and best practices.
Intended Learning Outcomes:
  • Design websites using advanced features of Markup and Client-side scripting languages
  • Use XML technologies for web applications
  • Develop secure web-based systems using server-side scripting languages
Contents:
  • Advanced use of scripting languages: Client-side scripting (HTML, CSS and JavaScript) and Server-side scripting (PHP/JSP/ASP)
  • XML Technologies: XSL, XSLT, xPath and xQuery
  • Secure web programming: Authentication, Access Control, Session Management, SQL Injections and Cross Site Scripting (XSS)
  • Trends in Web development: Web 2.0, AJAX, JSON, Web Services
  • Best practices in Web Development: Architectural patterns, Search Engine Optimization (SEO), Frameworks, Auditing and Logging
Teaching Methods: Lecture by teacher, class discussion, recitation oral questions, lecture demonstration, textbook assignments, small group discussions, individual projects.
Assessment/ Evaluation Details:
  • In-course Assessments —————–30%
  • End-of-course Examination ————70%
Recommended Readings:
  • Semmy Purewal, Learning Web App development, First edition, 2014.
  • Dafydd Stuttard and Marcus Pinto, The Web Application Hacker’s Handbook: Finding and Exploiting Security Flaws, Second edition, 2011.
CSC246SE2: Multimedia Technologies
Course Code: CSC246SE2
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.
CSC247SE2: Bioinformatics
Course Code: CSC247SE2
Course Title: Bioinformatics
Academic Credits: 2 (30 hours of lectures and tutorials)
Prerequisite/s: None
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
In Level 2S, students shall offer credit valued course units aggregating to a minimum of thirty-twocredits and a maximum of thirty-fourcredits. The students shall offer: 1). Level 2S Core course units in Computer Science (aggregating to twenty-six credits). 2). Level 2S Elective course units in Computer Science (aggregating to six credits). 3). Level 2G Auxiliary course units:

(i). English Language and (ii). Career Guidance.

Course units effective from academic year 2006/2007 to 2014/2015

CSC201SC3: Principles of Computer Architecture
Course Code CSC201SC3
Course Title Principles of Computer Architecture
Academic Credits 03 (30 hours of lectures and tutorials and 30 hours of practical)
Objectives:
  • To introduce computer architecture focusing on microprocessor design, including CPU and memory.
Contents:
  • Introduction to Computer Systems: Historical Background, Architectural Development and Styles, Technological Development, Performance Measures.
  • Instruction Set Architecture and Design: Memory Locations and Operations, Addressing Modes, Instruction Types.
  • Assembly Language Programming: Instructions Mnemonics and Syntax, Assembler Directives and Commands , Assembly and Execution of Programs.
  • Processing Unit Design: CPU Basics, Register Set, Datapath, CPU Instruction Cycle, Control Unit.
  • Memory System Design: Basic Concepts, Cache Memory, Main Memory, Virtual Memory, Read-Only Memory .
  • Input– Output Design and Organization: Basic Concepts, Programmed I/O, Interrupt-Driven I/O, Direct Memory Access (DMA), Buses, Input–Output Interfaces.
  • Pipelining Design Techniques: General Concepts ,Instruction Pipeline, Example Pipeline Processors, Instruction-Level Parallelism .
  • Reduced Instruction Set Computers (RISCs): RISC/CISC Evolution Cycle RISCs Design Principles, Overlapped Register Windows, RISCs Versus CISCs.
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%)
CSC202SC3: Concepts of Programming Languages
Course Code CSC202SC3
Course Title Concepts of Programming Languages
Academic Credits 03 (30 hours of lectures and tutorials and 30 hours of practical)
Objectives:
  • To present the fundamental issues in the design and use of major programming languages.
  • To present implementation concepts and designs.
  • To prepare the students for further study of programming languages, help develop an appreciation of a programming language as a tool for software construction.
  • To enable the students to evaluate and choose a language to match the problem.
Contents:
  • Design and evaluation criteria for programming languages: (Procedural, structured, functional, object oriented and scripts).
  • Introduction to syntactic and semantic description of programming languages.
  • Basics of programming language implementation.
  • A comparison of design choices across programming paradigms: data objects, data types, control structures, sub-programs.
  • Basics of concurrency.
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%)
CSC203SC3: Cryptography and Data Security
Course Code CSC203SC3
Course Title Cryptography and Data Security
Academic Credits 03 (30 hours of lectures and tutorials and 30 hours of practical)
Objectives:
  • To understand the principles and practices of cryptographic techniques.
  • To understand a variety of generic security threats and vulnerabilities, and identify and analyse particular security problems for a given application.
  • To understand the design of security protocols and mechanisms for the provision of security services needed for secure networked applications.
Contents:
  • General introduction to security.
  • Cryptographic techniques: classical cryptography, conventional cryptography such as DES and AES, public-key cryptography such as RSA, and digital signatures such as DSA.
  • Security services: key management, agreement and distribution, Public Key Infrastructure (PKI), authentication, authorisation and access control services.
  • Network security applications: IP security, Web security, Secure Electronic Transaction (SET), Electronic mail security, firewalls and Virtual Private Networks (VPNs).
  • Distributed System security.
  • Mobile system & E-commerce securities: 3G security, e-payment systems, fair data exchange.
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%)
CSC204SC3: e-Technologies
Course Code CSC204SC3
Course Title e-Technologies
Academic Credits 03 (30 hours of lectures and tutorials and 30 hours of practical)
Objectives:
  • To familiarise with the latest developments in e-technologies and modern network technologies which are used in e-business, e-banking and e-learning.
Contents:
  • Introduction: Web designing with HTML, CSS, CSS2, Introduction to XML, XSL, XSQL, DTD, WAP, WML and their use in experience, Web transfer of audio, video and text.
  • Electronic business: Introduction to electronic business, trends in electronic business, Types of electronic business, models of electronic business, Security of electronic business, electronic signature, Examples of electronic business.
  • Computer communication and presentation: Use and programming of PHP scripts (Perl, ASP), Connection of Scripts and databases, Using of application Flash for making web pages.
  • Marketing: Marketing, promotion and publicity on Internet, Electronic enterprise, Competence in e-business and marketing.
  • Electronic banking: Introduction to electronic banking, Information systems of e-banking, Electronic services of e-banking and security.
  • Electronic learning: Introduction to electronic learning and distance studying, Technologies, trends, practices of e-learning.
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%)
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 to be effective from the academic year 2018/2019

CSC301S3: Rapid Application Development
Course Code: CSC301S3
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.
CSC302S2: Computer Programming III
Course Code: CSC302S2
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.
CSC303S2: Data Communication and Computer Networks
Course Code: CSC303S2
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.
CSC304S3: Team Software Project
Course Code: CSC304S3
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%
CSC305S2: Graphics and Visual Computing
Course Code: CSC305S2
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.
CSC306S3: Advanced Database Design and Systems
Course Code: CSC306S3
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.
CSC307S3: Advanced Topics in Computer Networks
Course Code: CSC307S3
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.
CSC308S3: Artificial Intelligence
Course Code: CSC308S3
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.
CSC309S3: High Performance Computing
Course Code: CSC309S3
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.
CSC310S3: Image Processing and Computer Vision
Course Code: CSC310S3
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.
CSC311S3: Machine Learning
Course Code: CSC311S3
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
CSC312S3: Mobile Computing
Course Code: CSC312S3
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-3S syllabi can be downloaded here

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

CSC311SC3: Graphics and Visual Computing
Course Code: CSC311SC3
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.
CSC312SC1: Computer Programming III
Course Code: CSC312SC1
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
CSC313SC2: Rapid Application Development
Course Code: CSC313SC2
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, 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.
CSC314SC2: Knowledge Representation and Programming in Logic
Course Code: CSC314SC2
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.
CSC315SC2: Group Project II
Course Code: CSC315SC2
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.
CSC316SC3: Advanced Database Design and Systems
Course Code: CSC316SC3
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.
CSC317SC4: Data Communications and Computer Networks
Course Code: CSC317SC4
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.
CSC318SC3: Digital Image Processing
Course Code: CSC318SC3
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.
CSC319SC8: Industrial Training
Course Code: CSC319SC8
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 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
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 effective from academic year 2007/2008 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%
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 effective from academic year 2019/2020 to date

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

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

CSC411SC0: Research Seminar
Course Code: CSC411SC0
Course Title: Research Seminar
Academic Credits: 0 (15 Hours of Discussion and Presentations)
Objectives: To provide research experience that emphasises on creative thinking, problem-solving, analytical thinking, communication and presentation skills, scientific writing and integration of findings.
ILOs:
  • Demonstrate the theoretical or logical rationale of a research problem
  • Develop critical thinking by performing appropriate literature review
  • Engage in a mentor-mentee relationship
  • Practice scientific writing
Contents:
  • Introduction to research and identifying a study topic: Steps in the process of research, Ethics of research and informed consent
  • Introduction to research proposal writing: Primary research question, testing this question, expected test results, implications of the research, timeline of the research
  • Introduction to literature review and formulate research questions
  • Research methodologies: Familiarizing both qualitative and quantitative methodologies, Experimental designs, Evaluation and problem analysis
  • Citation formats, referencing styles and use of scientific literature digital libraries
  • Use of ICT tools for checking plagiarism and LaTeX for scientific writing
Teaching Methods: Reading assignments in journals, Small group discussions, Demonstration by instructors, Recitation oral questions.
Assessment/ Evaluation Details:
  •  Reading and presenting of research Papers ————- 20%
  • Developing a sample research proposal —————— 50%
  • Oral presentation of the research proposal ————– 30%
Recommended Readings:
  • Zobel, J., Writing for Computer Science, 2nd Ed., Springer, 2004.
  • Materials will be provided in-class and via the course website
CSC412SC3: Artificial Intelligence
Course Code: CSC412SC3
Course Title: Artificial Intelligence
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide in-depth knowledge on design and analysis of intelligent systems for solving problems that are difficult or impractical to resolve using traditional approaches.
ILOs:
  • Formulate an efficient Intelligent system model for a problem expressed in natural language
  • Apply appropriate uninformed, informed or local search algorithms for solving problems
  • Devise a plan of action to achieve a goal using standard AI methods
  • Demonstrate the working of natural language processing techniques
 
Contents:
  • Introduction: Practical examples of Artificial Intelligence, Intelligent Agents, Environments, Intelligent behaviour, Rational behaviour & Turing test
  • Problem solving by Searching: Problem-Solving Agents, Uninformed Search Strategies, Informed (Heuristic) Search Strategies
  • Local search and optimization algorithms: Hill climbing search, Simulated annealing, Local beam search, Genetic algorithms, searching in different environments, adversarial search
  • Planning: Classical planning, planning as state-space search
  • Learning Methodologies: Learning by Analysing Difference, by Recording Cases, by Correcting Mistakes, by Building Multiple models, by Building Identification Tree
  • Knowledge representation: Ontology engineering, Categories and objects, events
  • Natural Language Processing: Language models, Text classification, Information retrieval, Information extraction
Teaching Methods: Lecture by Lecturer, Recitation oral questions
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Stuart J. Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, 3rd Ed., Prentice Hall, 2010
  • George F Luger, Artificial Intelligence – Structures and Strategies for Complex Problem Solving, 6th Ed., Pearson & Addison Wesley, New York, London, Singapore, 2009
  • Patrick H. Winston, Artificial Intelligence, 1st Ed., Addison Wesley, New York, England, Singapore, 1993
CSC413SC3: Advanced Algorithms
Course Code: CSC413SC3
Course Title: Advanced Algorithms
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide in-depth knowledge for designing efficient algorithms using appropriate data structures and a variety of advanced computational techniques.
ILOs:
  • Perform analysis of algorithms using appropriate techniques
  • Identify most suitable data structures for efficient problem solving
  • Transform problems in order to solve them using standard algorithmic approaches
  • Apply algorithms for solving problems of various complexity
  • Demonstrate understanding of NP-Hard & NP-Complete problems
Contents:
  • Analysis of algorithms: Order of growth and asymptotic notation, master method, amortised analysis
  • Advanced data structures: Hash table, binary heap, binary search tree, red-black tree, augmenting data structures, B-trees, Fibonacci heaps
  • Sorting and order statistics: Standard sorting algorithms, sorting in linear time, medians, order statistics
  • Dynamic programming: Elements of dynamic programming – optimal substructure, overlapping sub-problems, memoization; application of dynamic programming approach for standard problems
  • Greedy approach: Elements of Greedy strategy – optimal substructure, overlapping sub-problems, Greedy strategy; comparison of dynamic programming and Greedy approach, application of Greedy approach for standard problems
  • P, NP, NP-Hard and NP-Completeness: Introduction to class of problems, NP-completeness (Cook’s theorem), classic NP-complete problems, reduction techniques
Teaching Methods: Lecture by lecturer, Recitation oral questions, Tutorial discussions by instructors
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Clifford Stein, Introduction to Algorithms, 3rd Ed., MIT Press, 2009.
  • Jon Kleinberg Eva Tardos, Algorithm Design, 2nd Ed., Pearson Education, 2011.
CSC414SC3: High Performance Computing
Course Code: CSC414SC3
Course Title: High Performance Computing
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide an introduction and overview to the computational aspects of high performance computing and methods of parallel programming.
ILOs:
  • Discuss basics of high performance computing and their usage
  • Describe different parallel architectures, interconnection networks, programming models, and parallel algorithms for common problems
  • Assess parallel algorithms based on their complexity and scalability
  • Analyse parallel programming paradigms and their semantics and correctness issues
  • Transform problems in the computational area to efficient programming in parallel systems
Contents:
  • Introduction to high performance computing: Cluster computing, Grid computing, Cloud computing, Parallel & Distributed computing, Fault tolerance, Concurrency, Nondeterminism, Locality
  • Parallel architectures: Taxonomy, Data versus Control parallelism (SIMD/Vector, Pipelines, MIMD, Multi-core, Heterogeneous), Shared versus Distributed memory, Interconnection networks for parallel computers
  • Scheduling and Analytical modeling: Cost of computation and Scalability, Model-based notions, Handling scheduling issues
  • Parallel Algorithms: Communication operations, Algorithmic paradigms (Divide and conquer, recursion, Series, parallel composition), Computation on matrices, Sorting, Graph algorithms, Search algorithms
  • Concepts of Parallel Programming: Machine model, Control statements, SPMD notions including MPI and CUDA, Semantics and correctness issues
Teaching Methods:  Lecture by lecturer, Vocabulary drills, Recitation oral questions, Practical demonstration.
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Zbigniew J. Czech, Introduction to Parallel Computing, 1st Ed., Cambridge University Press, 2017
  • Jason Sanders,‎ Edward Kandrot, CUDA by Example: An Introduction to General-Purpose GPU Programming, 1st Ed., Addison-Wesley Professional, 2010
  • Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar. “Introduction to Parallel Computing”, 2nd Ed., Addison-Wesley, 2003.
CSC415SC3: Mobile Computing
Course Code: CSC415SC3
Course Title: Mobile Computing
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide an in-depth understanding of the fundamental concepts in mobile computing and the state of the art trends in mobile computing research.
ILOs:
  • Describe the fundamental concepts of mobile computing
  • Explain realistic problems in wireless communication
  • Identify latest research trends in mobile computing
  • Demonstrate knowledge in mobile development platforms
Contents:
  • Overview of Wireless Networks: Wireless communication properties, wireless impairments, multiplexing in wireless communications, the need for a specialized MAC
  • Routing in Wireless networks: issues in routing for wireless networks, wireless routing protocols
  • Ad-hoc networks: mobile ad-hoc networks, sensor networks and vehicular ad-hoc networks, routing in ad-hoc networks, latest trends in ad-hoc networking
  • Mobile applications development environments: mobile platforms, development and deployment of applications
  • Common paradigms in mobile computing: low power computing, mobile computing in resource constrained environments, fault tolerance, and persistence.
Teaching Methods: Lecture by lecturer, Vocabulary drills, Recitation oral questions, Tutorial discussions by instructors
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Jochen Schiller, “Mobile Communications”, 2nd Ed., Addison Wesley publishers, 2004.
  • Murat Yener and Onur Dundar, “Expert Android Studio”, 1st Ed., Wrox publications, 2016.
CSC416SC6: Research Project
Course Code: CSC416SC6
Course Title: Research Project
Academic Credits: 06 (600 Notional hours of Project Development)
Prerequisite: CSC411SC0
Objectives: To develop capability of doing scientific research for solving real world problems in computing domain.
ILOs:
  • Identify a hypothesis and/or a research problem\
  • Formulate the detailed problem statement
  • Frame a solution with appropriate research methodology
  • Validate the proposed solution
  • Communicate details of performed research
Contents:
  • Engage in an academic year long research project under the guidance of academic supervisor(s) with optional guidance by a mentor from industry
  • Develop a research proposal with adequate literature review
  • Carry out the research using appropriate research methodology
  • Document and Present the research
Assessment/ Evaluation Details:
  • Presentation of research proposal  ——————————————- 10%
  • Implementation of proposed solution ————————————— 50%
  • Project report ——————————————————————- 20%
  • Oral presentation of project ————————————————— 10%
  • Submission of abstract/poster/paper to a scientific forum ————— 10%
CSC417SC3: Data Mining and Machine Learning
Course Code: CSC417SC3
Course Title: Data Mining and Machine Learning
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide knowledge on the concepts behind various machine learning techniques and ability to use adaptive techniques for learning from data as well as data analysis and modelling
ILOs:
  • Describe a range of supervised, unsupervised and reinforcement learning algorithms
  • Perform pre-processing operations on data suitably to mine useful information
  • Identify appropriate learning paradigms for given data mining problems
  • Apply machine learning algorithms on data to identify new patterns or concepts
Contents:
  • Introduction to machine learning: Machine intelligence and applications, concepts, instances, attributes and their types, and handling sparse data, missing & inaccurate values in data
  • Decision tree learning: Learning trees from training examples, Entropy and information gain, ID3 algorithm
  • Supervised learning: Rule-based learning, Naive Bayes, k-Nearest neighbour, Neural networks
  • Unsupervised learning: K-means clustering, Gaussian mixture models (GMMs), Hierarchical clustering
  • Regression and Model-fitting Techniques: Linear regression, Polynomial Fitting, Kernel Based Networks
  • Experimental setup and evaluation: Training and testing, Cross-validation, Confusion matrices and ROC graphs
  • Dimensionality reduction: PCA, Feature selection, Feature extraction, Filter methods
  • Use of Weka Tool in machine learning tasks
Teaching Methods: Use of chalkboard, Vocabulary drills, Recitation oral questions, Laboratory experiments
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Christopher M. Bishop, “Pattern Recognition and Machine Learning”, 2007.
  • Richard O. Duda, Peter E. Hart, David G. Stork, “Pattern Classification”, 2nd, Wiley, 2000.
  • Mitchell,T., “Machine Learning”,  McGraw Hill, 1997.
  • Ian H. Witten, Eibe Frank, Mark A. Hall, “Data Mining: Practical Machine Learning Tools and Techniques”, 3rd Ed., Morgan Kaufmann Series, 2011.
CSC418SC3: Compiler Design
Course Code: CSC418SC3
Course Title: Compiler Design
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide knowledge in components of a compiler and principles involved in compiler design.
ILOs:
  • Explain the functionalities of a compiler
  • Represent a specified language using nondeterministic and deterministic finite automata
  • Analyze the syntax of a language using top-down and bottom-up parsing approaches
  • Design algorithmic routines for type checking and code generation
  • Discuss memory management in compilers
Contents:
  • Introduction: Compilers, Interpreters, and phases of compilation process
  • Lexical Analysis: Regular expressions and their properties, converting regular expressions to Nondeterministic Finite Automata (NFA), Converting NFA to Deterministic finite automata (DFA), Eliminating dead states and minimising DFA
  • Syntax Analysis: Context-free grammars, Syntax trees and ambiguity, Operator precedence, Eliminating left-recursion, Left-factorisation, Top-down parsing methods, bottom-up parsing methods, Conflicts in parsing tables
  • Scopes and Symbol Tables: Dealing with scopes of identifiers, and efficient implementations of symbol tables
  • Type Checking: The design space of types, Attributes, Type checking procedures
  • Code Generation: Syntax Directed Translations, Intermediate-Code Generation, Machine-Code Generation
  • Memory management: Runtime stack, heap, dope vectors, garbage collection
Teaching Methods: Lecture by Lecturer, Vocabulary drills, Recitation oral questions, Tutorial discussions by Instructors
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Torben Egidius Mogensen, Introduction to Compiler Design, 2nd, Springer, 2017.
  • Monica S. Lam, R. Sethi A. V. Aho, Compilers: Principles, Techniques, and Tools, 2nd Ed., Pearson Education Limited, 2013.
CSC419SC3: Mathematics for Computing IV
Course Code: CSC419SC3
Course Title: Mathematics for Computing IV
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide knowledge in numerical methods for solving large systems of linear equations and an understanding on underlying mathematical concepts of computer aided numerical algorithms
ILOs:
  • Discuss the fundamental concepts in numerical linear algebra
  • Apply the matrix factorization algorithms to solve system of linear equations
  • Examine the convergence of iterative methods for solving system of linear equations
  • Analyze the convergence of algorithms for solving Eigen value problems
  • Discuss the fundamental concepts in differential equations and the numerical methods for solving differential equations
  • Apply the numerical methods for various types of differential equations
  • Implement basic programs in computational mathematics software
Contents:
  • Numerical Methods for solving system of linear equations: Linear algebra Review, Gaussian Elimination, LU factorization, Operations count, Error Analysis, Iterative algorithms
  • Eigen Value Problems: Eigen values and Singular values, Hessenberg Form, Power Methods, QR Algorithm, Inverse iteration
  • Numerical Methods for Differential Equations: Differential Equations Review, Initial Value problems, Euler Methods, Runge-Kutta methods, Finite Elements Methods.
Teaching Methods: Lectures and demonstration by Teacher, Group tutorial discussions
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • N. Trefethen, D. Bau, Numerical Linear Algebra, SIAM, 1997.
  • R. Dormand, Numerical Methods for Differential Equations: A computational Approach, Taylor and Francis, 1996.
CSC421SC3: Systems Analysis, Design and Project Management
Course Code: CSC421SC3
Course Title: Systems Analysis, Design and Project Management
Academic Credits: 03 (45 Hours of Lectures and Tutorials)
Objectives: To provide fundamental concepts in the phases of analysis, design, development and maintenance of an information system and efficient project management.
ILOs:
  • Describe the principles, methods and techniques of systems development
  • Discuss principles, methods and techniques for systems development with persons without specialized knowledge in this area
  • Describe how systems analysts interact with users, management, and other information systems professionals
  • Propose a phased system development methodology to implement a systems development project for a realistic problem
  • Use a phased system development methodology to implement a systems development project
Contents:
  • Systems Analysis Fundamentals: Core concepts of system analysis and design, traditional and modern approaches to system analysis, system development life cycle, roles of a systems analyst
  • Information Requirements Analysis: Interactive and unobtrusive methods for information gathering, agile modeling and prototyping
  • The Analysis Process: Data flow diagrams, analysing systems using data dictionaries, process specifications and structured decisions, designing effective input and output, designing databases
  • Project management: Project initiation and attributes, determining feasibility, asserting software and hardware needs, project stakeholders, project management tools and techniques
  • Quality Assurance and Implementation: Ensuring data quality, six sigmas, quality assurance through software engineering, implementing information system, software testing process, evaluation techniques
Teaching Methods: Lecture by lecturer, Case studies, Vocabulary drills, Construction of summaries by students
Assessment/ Evaluation Details:
  • In-course Assessments ——————- 30%
  • End-of-course Examination ————- 70%
Recommended Readings:
  • Jeffrey A. Hoffer, Joey F. George, Joseph Valacich, Modern Systems Analysis and Design, 7th Ed., Pearson, 2014.
  • Kenneth E. Kendall and Julie E. Kendall, Systems Analysis and Design, 8th Ed., Prentice Hall, 2011.
  • Kathy Schwalbe, Information Technology Project Management, 7th Ed., Course Technology, 2014.
CSC422SE2: Systems and Network Administration
Course Code: CSC422SE2
Course Title: Systems and Network Administration
Academic Credits: 02 (15 hours of Lectures and 30 hours of Practical)
Objectives: To provide theoretical and practical knowledge required to implement and administer network and servers in small and medium sized enterprises.
ILOs:
  • Design a data communication network required for a small/medium organisation
  • Configure network switches to fulfil the needs of an organisation
  • Set up a server environment consisting web, domain, mail and proxy servers in an organisation using best practices
  • Demonstrate knowledge in securing and administering servers and computer networks
Contents:
  • Host administration: Basic commands, Files, Directories and File System, Editors, Processes, Users and group management, Package management, Automating system administration
  • Network design: Network cabling, Network devices, designing LANs, Preparing a Bill of Materials (BOM)
  • Network administration: Setup and Administer network devices, Host network configuration, Routing and Router configuration, Switch configuration, Wireless equipment, VLAN, Inter-VLAN routing
  • Server administration: Install and configure Web server, Email server, Domain server and Proxy server
  • Securing servers and networks: Securing networks and servers, monitoring network and servers, setting up backups, setting up firewalls, and disaster recovery
Teaching Methods: Lecture by lecturer, Use of Slides and Videos, Demonstration, Case studies
Assessment/ Evaluation Details:
  • In-course Assessments —————————————–30%
  • End-of-course Practical examination ———————— 40%
  • End-of-course Theory Examination ————————– 30%
Recommended Readings:
  • Adam Haeder, Stephen Addison Schneiter, Bruno Gomes Pessanha, James Stanger, “LPI Linux Certification in a Nutshell”, 3rd Ed., O’Reilly Media, 2010.
  • Christine Bresnahan, Richard Blum, “LPIC-2: Linux Professional Institute Certification Study Guide: Exam 201 and Exam 202”, 2nd Ed., Sybex, 2016.

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

Core Course Units
CSC401MC4: Advanced Algorithms
Course Code CSC401MC4
Course Title Advanced Algorithms
Academic Credits 04 (60 hours of lectures and tutorials)
Objectives:
  • To understand the general notion of complexity classes, P and NP, completeness and hardness, and the relationships between classes by reduction.
  • To be able to develop, and reason about the correctness and performance of algorithms.
Contents:
  • Advanced data structures : B – Trees, Binomial heaps, Fibonacci Heaps, Data structures for disjoint sets. Hash tables: Direct address tables and Hash tables, Hash functions, Open addressing, Perfect hashing.
  • Matrix operations : Properties of matrices, Matrix multiplication algorithms, solving systems of linear equations.
  • Linear Programming : Standard and slack forms, Formulating problems as linear programs, Simplex algorithm, Duality, Initial basic feasible solution.
  • Number-Theoretic Algorithms : Elementary number-theoretic notions, Modular arithmetic, Solving modular linear equation, The Chinese remainder theorem, Powers of an element, The RSA public-key crypto system.
  • String Matching : The na?ve string-matching algorithms, The Rabin-Karp algorithm, String matching with finite automata, The Knuth-Morris-Pratt algorithm.
  • Computational Geometry : Line segment properties, Determining intersection of a pair of segments, Finding the convex hull, finding the closest pair of points.
  • NP-Completeness : Polynomial time, Polynomial-time verification, NP-Completeness and reducibility, NP-completeness proofs, NP-complete problems.
  • Approximation Algorithms : The vertex cover problem, traveling-salesman problem, set-covering problem.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
CSC402MC2: Artificial Intelligence - II
Course Code CSC402MC2
Course Title Artificial Intelligence – II
Academic Credits 02 (30 hours of lectures and tutorials)
Objectives:
  • To study advanced topics of Artificial Intelligence.
  • To understand the basics of expert systems, Natural Language Processing and acquire knowledge for developing such systems.
Contents:
  • Expert Systems : Expert system structure, design issues and sample applications, Design and development of the knowledge base and the inference engine, Expert system shells, Expert system developing tools.
  • Natural Language Processing : Stages of natural language processing, Morphological analysis, Syntactic analysis, Semantic and Pragmatic analysis, Natural language processing applications, Common-sense and Understanding.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
CSC403MC4: Numerical Linear Algebra and Solutions of Differential Equations
Course Code CSC403MC4
Course Title Numerical Linear Algebra and Solutions of Differential Equations
Academic Credits 02 (60 hours of lectures and tutorials)
Objectives:
  • To be able to apply a variety of numerical methods to the problems of finding solutions to large system of linear equations.
  • To be able to apply some numerical methods to find eigenvalues of large matrices.
  • To introduce the ordinary and partial differential equations.
  • To be able to derive solutions to a broad range of ordinary differential equations and to solve partial differential equations.
Contents:
  • Systems of Linear Equations, Eigen value computation.
  • Ordinary Differential Equations, Initial value Problem.
  • Partial Differential Equations, Finite Difference Method, Finite Elements Method.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
CSC404MC4: Project
Course Code CSC404MC4
Course Title Project
Academic Credits 04 (minimum 200 hours)
Objectives:
  • To test and understand the concepts learned in other course units.
  • To design, plan and complete a computer science related project individually.
Assessment/ Evaluation Details:
  • Project Report (70%)
  • Presentation (30%)
CSC405MC3: Parallel Computing
Course Code CSC405MC3
Course Title Parallel Computing
Academic Credits 03 (45 hours of lectures and tutorials)
Objectives:
  • To study the fundamentals of diverse areas of parallel and high performance computing.
  • To understand the design, development, implementation and analysis of parallel algorithms.
  • To get practical experience in parallel computing environment simulated over a local network of computers using MPI.
Contents:
  • Parallel models and architectures : SIMD, MIMD, shared memory and interconnection models, Hypercube multicomputers, perfect shuffle, systolic arrays. Distributed Memory Parallel Computers and Message Passing in MPI
  • Designing Parallel Algorithms: Methodical design, Partitioning, Communication, Agglomeration, Mapping.
  • Quantitative Design : Defining Performance’s approaches to Performance Modelling, Developing models, Scalability analysis, Experimental studies, Evaluating implementations, Communication cost model, Input /Output.
  • Parallel algorithms : Searching, merging, sorting, prefix sums, broadcasting, routing algorithms for numerical and optimisation problems, matrix problems (tri diagonal system, triangular and banded system), FFT, Graph algorithms.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
CSC406MC3: System Design, Analysis and Project Management
Course Code CSC406MC3
Course Title System Design, Analysis and Project Management
Academic Credits 03 (45 hours of lectures and tutorials)
Objectives:
  • To study a methodical approach for developing computer systems including systems planning, analysis, design, testing, implementation and software maintenance.
  • To learn the strategies and techniques of systems analysis and design for producing logical methodologies for dealing with complexity in the development of information systems.
  • To find the overview of the people involved in information systems development – their roles and responsibilities, with special emphasis on the systems analyst.
Contents:
  • Information systems and their characteristics.
  • Process of systems development : Underlying principles, Phases of systems development, traditional systems development life cycle, Alternative systems development approaches (model-driven, rapid application development, packaged software).
  • Project Management : Gantt charts and project reporting.
  • Systems analysis : Fact finding techniques, Documenting user requirements with Use Cases. Feasibility Analysis.
  • System Design : Object modeling using UML, Data modeling using entity relationship diagrams, Process modeling using data flow diagrams. System testing.
  • Input Output Design : Input Design considerations & tools and User Interface Design.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
CSC407MC4: Data Mining and Machine Learning
Course Code CSC407MC4
Course Title Data Mining and Machine Learning
Academic Credits 04 (60 hours of lectures and tutorials)
Objectives:
  • To introduce basic concepts and techniques of Data Mining and Machine learning.
  • To develop skills of using recent data mining and machine learning software for solving practical problems.
Contents:
  • Introduction: Data Mining and Machine Learning, Data collection and ware house, Data cleaning and preparation for Knowledge Discovery, Knowledge Representation .
  • Classification : Basic methods, Decision Trees, Rule-based methods.
  • Neural networks : Introduction to neural networks, Multilayer neural networks, Error Back-propagation algorithm, RBF networks.
  • Stochastic methods: Simulated annealing, Genetic algorithms, Genetic programming.
  • Bayesian Learning : Bayesian decision theory (Continuous features, Discrete features), Bayesian belief networks.
  • Clustering: Unsupervised Learning, K-means clustering, Unsupervised Bayesian learning, Kohonen networks.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
Elective Course Units
CSC421ME3: Compiler Design
Course Code CSC421ME3
Course Title Compiler Design
Academic Credits 03 (45 hours of lectures and tutorials)
Objectives:
  • To understand wide range of topics in compiler design.
Contents:
  • Formal Languages : Language definition, grammers, finite state automata, regular expressions, lexical analysis.
  • Syntax analysis : BNF, context-free grammars, recognisers, parse trees, top-down parsing, recursive descent, ambiguity, left recursion, backtracking, Warshall’s algorithm, context clashes, Bottom-up parsing, operator precedence grammars, constructing precedence matrices, producing abstract syntax trees and semantic actions, symbol and type tables, syntax directed translation.
  • Storage Allocation : Run-time stack, heap, dope vectors, garbage collection
  • Code Generation : Stack machines, assembly Language, P-Code, generating code for some typical constructs, machine code generation and optimisation.
  • Error Diagnostics and recovery: Types of errors (lexical errors, syntax errors, type errors, runtime errors), detection of errors, recovery.
  • Compiler construction tools : Yacc, Lex.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)
CSC422ME3: Mobile Computing
Course Code CSC422ME3
Course Title Mobile Computing
Academic Credits 03 (45 hours of lectures and tutorials)
Objectives:
  • To understand the fundamental concepts underlying current developments in mobile communication systems and wireless computer networks.
  • To study the current trends in mobile computing, particularly wireless LAN and blutooth.
Contents:
  • Introduction to mobile computing : Wireless Communications, Wireless Networks.
  • Data link layer : Channel allocation.
  • Network layer: Mobile IP, Micro-mobility solutions to the host mobility problem, Routing in mobile Ad Hoc networks.
  • Transport layer : TCP in wireless environments.
  • Application layer: Adaptation, Disconnected/Weak-connected Operations, Mobile Applications/Services, User Interface Issues, Mobile agents, Security.
Assessment/ Evaluation Details:
  • In-Course Assessments : Two In-Course Assessments, An In-Course Assessment may be either a written examination of half an hour duration or an assignment or a poster presentation or a Multimedia presentation (30%)
  • End of Course examination : A written examination of two hours duration (Expected to answer three out of four questions) (70%)