Courses-Level-3S

New Degree StructureOld Degree Structure

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