Level – 1G

Course units effective from academic year 2016/2017 to date

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

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

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

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

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

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

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

Course units before academic year 2003/2004

CSG 11: Introduction to Computing and Pascal Programming

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

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

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

CSG 12: Theoretical Foundations of Computer Science

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

CSG 13: Computer Architecture and Assembly Language Programming

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

CSG 14: Data Structures

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