Level – 1S

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.

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

CSC112SC3: 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/2011

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