Course Description of Major in Computer Science |
CSC 501 Theory of Programming Languages (3 credits): The definition of a language: syntax and semantics. Grammars: finite automata and regular languages; context-free languages; pushdown automata; context-sensitive languages. Semantics: lambda calculus; the Church Roser theorem; polymorphism, b normalization theorem. (Prerequisite CSC 301, CSC 411 or equivalent) |
CSC 503 Design and Analysis of Computer Algorithms (3 credits): The study of complexity of algorithms: best case, worst-case and expected case analysis. Lower bound arguments; divide and conquer techniques; greedy algorithms. Computational complexity and intractability: Cook's Theorem. NP-completeness oracles and approximation. Polynomial hierarchy, heuristics. ( Prerequisite: CSC 203, CSC 206 or equivalent) |
CSC 525 Artificial intelligence and Knowledge based system (3 credits): Overview of AI, general concepts of knowledge, AI programming languages; knowledge representation; Intelligent Agents; Agents that reason logically, Inference in First order Formalized symbolic logic, inconsistencies and uncertainties, probabilistic reasoning, structured knowledge, object oriented representation; Knowledge organization and manipulation; search strategies and game planning, matching techniques, knowledge organization and management. Introduction to selected topics in AI; Natural language processing, pattern recognition, computer vision, expert system, artificial neural networks, robotics. Knowledge Acquisition; General concept, learning and automata, generic algorithms, induction, analogical explanation. |
CSC 545 Software Engineering (3 credits): Scopes of Software Engineering. Life cycle models for software development process. Exercise in analysis, design, implementation, testing and maintenance of large modular systems. Software process, project and product. Basic project management concepts. Configuration management. Verification and validation: Quality assurance. Software testing techniques and strategies; Object-oriented design, analysis and testing. Web-engineering and client-server architecture. The course focuses on team development any information system software. |
CSC 550 Cryptography (3 credits): Introduction to cryptosystems, crytanalysis, Data encryption standard and DES, Public Key Cryptography - RSA cryptosystems, factoring algorithms, other public key cryptosystems: ElGamal cryptosystem and discrete logs, Merkle-Hellman Knapsak system, Signature scheme: Digital Signature Standard, Hash functions and signature, Birthday attack, Key distribution and digital certificate, Kerberos, Diffie-Hellman key exchange. Identification schemes and authentication codes, deception probabilities, combinatorial and entropy bounds, secret sharing schemes, Access structure and general secret sharing, indistinguishable probability, distribution, probabilistic encryption, zero knowledge proofs. |
CSC 551 Data Mining and Warehousing (3 credits): Basic concept of data mining, issues and techniques. Data warehouse and OLTP technologies for data mining, Classification of data mining techniques and models, data pre-processing, data mining primitives, query languages and system architecture, characterization and comparison. Mining association rules in large database. Cluster analysis, multidimensional analysis and descriptive mining of complex data object. Data mining in distributed heterogeneous database systems. Data mining applications and future research issues. (Prerequisite: CSC 206, CSC401 or equivalent) |
CSC 601 Distributed Database System (3 credits): A detailed study of advanced topics related to relational database theory, query processing and optimisation, recovery techniques, concurrency control. Crash recovery. Distributed database systems: security and integrity. Other database paradigms such as deductive and object oriented issues. Heterogeneous databases. (Prerequisite: CSC 401 or equivalent) |
CSC 605 Analysis and organization of Information Systems (3 credits): Organization and representation of information and access to information; categorization, indexing and content analysis; use of codes, formats and standards. Analysis and evaluation of search and navigation techniques; project management and scheduling; analysis of information needs and systems requirements; design of alternatives. Quantitative methods and tools for decision making. Documentation management. Social and behavioural aspects of information production. (Prerequisite: CSC 405 or equivalent) |
CSC 611 OptimisationTechniques for Compilers (3 credits): Compiler optimisation techniques will study the construction of optimising compilers with a focus on uniprocessor architectures. The course will cover control flow and data-flow analysis, program optimisation, and code generation across basic blocks, procedures, and complete programs. Classical topics such as interprocedural and intraprocedural analysis, intermediate representations, register allocation, and scheduling will be presented in the context of modern uniprocessors. The course will also cover dependence analysis and loop transformations: the building blocks for optimising for memory hierarchies and parallel machines. (Prerequisite: CSC311, CSC411 or equivalent) |
CSC 612 High-performance computer architecture (3 credits): Basic principles and techniques in the design of high performance computer architecture. Memory architecture: cache structure and design, virtual memory structures. Pipelined processor architecture. Pipeline control and hazard resolution, pipelined memory structures, interrupt, evaluation techniques; vector processing, RISC and CISC architecture. VLSI architecture issues. (Prerequisite: CSC 311 or equivalent) |
CSC 613 Advanced topics in Operating System (3 credits): In-depth analysis of advanced topics of operating systems: performance analysis of memory management and scheduling algorithms; advanced virtual memory issues; advanced issues in interprocess communication; file system design. Multiprocessor and distributed operating systems: highly concurrent machines; distributed synchronization and resource allocation algorithms. Distributed file system and transactions, security issues. Interfaces with network protocols. (Prerequisite: CSC 413 or equivalent) |
CSC 620 Image Analysis and Pattern Recognition (3 credits): Digital image fundamentals; advanced image transformations: FFT, DTF, sine/cosine, Walsh, Hadamard, Haar, Slant, Wavelet transforms, Karhünen-Louève transformation; image enhancement: Low pass and high pass filters, homomorphic filters: image restoration: constrained least square restoration; time-varying image analysis: dynamic imagery algorithm, image motion detection, two dimension and three dimension motions; image compression: error-free compression, image compression standard; image segmentation: edge linking and boundary detection, region oriented segmentation: colour based image processing: colour perception, chromacity diagram, filtering colour images, colour tone adjustment, neural networks for colour classification; pattern recognition: pattern classes, decision theoretic models, neural networks, knowledge- based interpretation. (Prerequisite: CSC 420 or CSC520 or equivalent) |
CSC 625 Neural Networks (3 credits): Neural Architectures, Neural Learning; Fuzzy Logic; Supervised Learning; Single and Multi-layer networks; Lyapunov Function; Unsupervised learning; Backpropagation; Bidirectional Associative Memory; Fuzzy Associative Memory; Adaptive Resonance Theory; Applications. (Prerequisite: CSC425 or CSC525 or equivalent) |
CSC 630 Advanced topics in Computer Networking (3 credits): Overview of OSI model, TCP/IP, Circuit switching and Packet switching, multiplexing, routing and congestion control and deadlock prevention. Driving forces for high speed networking, High speed LANs, Fast Ethernet and Gigabit Ethernet, FDDI and DQDB, Frame relay architecture, Standards and protocols, Switched Multi Megabit Data Services, ATM standards protocols, ATM LANs, Optical Communication and SONET/SDH, Broadband access technologies, x-DSL. BISDN protocol and architecture, Broadband service aspects and access architecture, Broadband transmission networks, Broadband intelligent network. Broadband access network technology, Encryption and network security, Advanced topics for network management. (Prerequisite: CSC 430 or equivalent) |
CSC 635 Advanced Animation and Rendering Techniques (3 credits): Review of elementary graphics techniques; drawing object in two dimension, and their manipulation; ray-tracing; three dimensional surfaces; three dimensional objects; wire frame models; affine trans formation; viewing with synthetic camera in three dimensions; perspective projection; colouring surfaces; bezier curves; Bernstein polynomiles; hidden surfaces elimination; hidden line elimination; colour theory. (Prerequisite: CSC 435 or CSC535 or equivalent) |
CSC 645 Software Project Management (3 credits): Overview of Project Management. Project tracking and scheduling. Risk management and analysis. Cost estimation models. Project metrics. Function Point Estimation. Software quality assurance. Program verification and validation techniques Software testing techniques, black-box and white-box techniques. .Testing of various areas: unit, domain, path, equivalent class based portion, component, aggregation, system testing, requirement based testing, acceptance testing. Software reuse and maintenance; Industrial practices in software engineering. . ISO certification standards for software quality assurance;. Software capability maturity model and its impact. The course focuses on taking a group development project from beginning to end. (Prerequisite: CSC545 or equivalent) |
CSC 660 Parallel and Distributed Computing (3 credits): Introduction to the areas of parallel and distributed computing; characteristics of parallel processing: parallel computing models and algorithm features; parallel programming issues; memory vs., message passing, interconnection techniques, Basic principles and techniques in parallel computer architecture; dataflow computers, systolic arrays, novel architecture; vector processing and vector computers. Concept of distributed computing in a network of computers. Future trend in parallel and distributed computing. (Prerequisite: CSC 413 or equivalent) |
CSC 670 Computer methods in Operations Research (3 credits): Generalized network models for transportation; shortest path and maximum flow. Generation of random variates; analysis of variance. Advanced linear programming techniques for sparge matrices and reinversion routines. Non-linear programming: integer programming with branch and bound and cutting plane methods for solving problems. Basic dynamic programming. |
CSC 672 Advanced Graph Theory (3 credits): Introduction and fundamental concepts, Structure and basic definition in graph theory, methodology, proofs, basic properties of graphs; graph operations and their symbolic designation. Orientation of graphs, associated matrices and their relationship. Groups; automorphism groups, symmetric graps, graph enumeration, Polya's power group enumeration theorem. Colourability : five colour theorem, four colour conjecture, Heawood map colouring theorem, critical graphs, homomorphism, chromatic polynomial. Graph algorithms: DFS for non-separable components, orderer trees, application of Hoffman tree to sort by merge technique, Catalan numbers, maxflow problem, Ford and Flukerson's algorithms, Dinic's algorithm, Zero-one net flow, maximum matching in bipartite graphs, NP-complete problems, vertex cover, Hamiltonian paths and circuits, colouring, Steiner tree; max-cut, multicommodity integral flow. |
CSC 674 Computational Geometry (3 credits): Searching and Geometric Data Structures : Balanced binary search trees, Priority-search trees, Range searching, Interval trees, Segment trees, Algorithms and complexity of fundamental geometric objects: Polygon triangulation and Art gallery theorem, Polygon partitioning, Convex-hulls 2- and 3- dimension, Dynamic convex-hulls,; Geometric intersection: Line segment intersection and the plane-sweep algorithm, Intersection of polygons; proximity: Voronoi diagrams, Delunay triangulations, closest and furthest pair: Visualization: Hidden surface removal and binary space partition (BSP) trees; Graph Drawings: Drawings of rooted trees (Layering, Radial drawings, HV-Drawings, Recursive winding), Drawings of planar graphs (Straight-line drawings, Orthogonal drawing, Visibility drawings); Survey of recent developments in computational geometry. |
CSC 676 Fuzzy Systems (3 credits): Basic concepts of Fuzzy set theory; Fuzzy numbers; Aggregation operations of Fuzzy sets; The theory of approximate reasoning; Introduction to Fuzzy logic control; Fuzzy System Models and Developments; Fuzzy logic controllers; Defuzzification methods; Linguistic descriptions and their analytical forms; The flexible structure of fuzzy systems; Practical Aspects of Neural Networks. |
CSC 680 Fault Tolerant Systems (3 credits): Introduction to redundancy theory, limit theorems, decision theory in redundant systems. Hardware fault tolerance: Computer redundancy, detection of faults, replication and compression techniques, self repairing techniques, concentrated and distributed voters, models of fault tolerant computer. Software fault-tolerance: Fault tolerance versus fault intolerance, fault tolerance objectives; errors and their management strategies, implementation of error management strategies. Software fault tolerance techniques, software defence, protective redundancy. Architectural support of fault-tolerant software protection mechanisms, recovery mechanisms. |
CSC 684 Computer Animation and Virtual Reality (3 credits): Introduction to Virtual Reality, Virtual reality systems, Real-time computer graphics, Overview of application areas. Virtual Reality Systems - Virtual environment, The computer environment, VR technology, Modes of interaction. Virtual Reality hardware - Sensor hardware, Display Systems, Acoustic hardware, Integrated VR systems. Virtual Reality software - Modeling of virtual worlds, Simulation, VR toolkits. 3D Computer Graphics - The virtual world space, Perspective projection, Stereo vision, 3D clipping, Colour theory, 3D modeling, Illumination models, Shading algorithms, Hidden surface removal, Realism. Geometrical transforms ; Frames of reference, 3D transforms, Instances, Picking, Flying, Scaling the VE, Collision detection. Animating the Virtual Environment - Animation, The dynamics of numbers, Updating real-time graphics, Shape and object inbetweening, Free-form deformation. Human factors - Perception, Persistence of vision, Stereopsis, Sound perseption, Equilibrium. Physical simulation - Simulation of physical systems, Mathematical modeling, Collisions, Projectiles, Introduction to dynamics, Motion kinematics. |
CSC 698 Student Seminar (1 credit): Preparation and presentation of reports on current research topics in the area of any of the advanced Masters courses. |
CSC 699 Thesis Work (8 credits): Theses are technical papers describing the original creative work of the student carried out under the supervision of a faculty member during the last semester of the study. The thesis may be of research, expository or critical nature. The topic should be related to any of the advanced Master's courses. A formal written report and oral presentation is essential. (Prerequisite: Consent of the supervisor) |