Level – 3G

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

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

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

Semester-2

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

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

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

Elective Course Units

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

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

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

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

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

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

Course units before academic year 2005/2006

CSG 35: Numerical Methods II

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

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

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

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

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

(prerequisite: CSG 25)

CSG 36: Software Engineering

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

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

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

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

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

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

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

(Prerequisite CSG 14)

CSG 37: Introduction to Computer Graphics

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

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

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

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

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

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

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

(Prerequisite CSG 14)

CSG 38: System Software

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

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

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

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

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

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

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

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

(Prerequisite: CSG 13, CSG 26)