• 沒有找到結果。

1 Introduction to Software Engineering [2-0-1:2]

SCHOOL OF ENGINEERING

COMP 21 1 Introduction to Software Engineering [2-0-1:2]

Methodsand toolsforplanning,designing, implementing,validating, and maintain- ing large software systems. In the laboratory, students will form teams to build software systems using appropriate software engineering tools and techniques.

Prerequisites: COMP 102 and COMP 11 1

COMP 221 Introduction to Artificial Intelligence [2-1-0:2]

Basic ideas and techniques underlying the design of intelligent computer systems. Topics include state space search, logic and theorem proving, knowledge representation, expert systems, machine learning, and Al pro- gramming languages.

Prerequisite: COMP 171

COMP 231 Database Management Systems 13-0-1 :3]

Principles of file structures and searching; database environment, architec- ture, and facilities; data modelling and the entity-relationship model; rela- tional, network, and hierarchical data models; logical data base design; query languages and query processing; database services including concurrency, crash recovery, protection, integrity control, and multiple views of data.

Hands-on use of acommercial DBMS constitutes an important component in this course.

Prerequisite: COMP 171

COMP 241 Interactive Systems Design [2-0-1:2]

Focus on design of interactive computer systems; concepts from computer graphics and their contribution to effective user interfaces; user-centered design of interactive systems; interactive hardware, software and techniques;

computer graphics algorithms, hardware, software, programming packages, applications and standards; classes of interactive graphical media: direct manipulation systems, hypertextlhypermedia systems, rapid prototyping tools and object-oriented systems; typography, layout, colour, sound, video, gesture and usability enhancements.

Prerequisite: COMP 171

COMP 251 Programming Languages and Compilers [3-0-2:4]

Comparative studies of programming languages and introduction to compi- lation techniques; programming language concepts and constructs; introduc- tion to non-imperative programming paradigms: object-oriented, functional, logical; concurrent programs; basicconcepts in program translation; interpre- tation and compilation; implementation issues: storage allocation, runtime organisation, etc.

Prerequisites: COMP 11 1 and COMP 171

COMP 252 Priniciples of Systems Software [3-0-2141 Principles, purpose and organisation of systems software; concepts of processes, tasks, scheduling, interprocess communication, synchronisation, and mutual exclusion; memory management, virtual memory, and paging;

device management, file systems, security and protection, multi-CPU sys- tems; network layers, communication protocols, and distributed computing mechanisms.

Prerequisites: COMP 171 and COMP 180

COMP 271 Design and Analysis of Algorithms [3-1-0:3]

Algorithm design techniques: divide and conquer, dynamic programming, greedy algorithms, backtracking, local search algorithms; string processing, graph algorithms, arithmetic algorithms; algorithm analysis techniques; intro- duction to parallel algorithms.

Prerequisites: MATH 132 and COMP 171

COMP 321 Symbolic Computation [3-0-0:3]

Symbolic computation methods for artificial intelligence, such as pattern- matching, unification, frame, semantic networks, deductive retrieval, rule- based and constraint-based inference; programming languages and tech- niques for problems in artificial intelligence.

Prerequisite: COMP 221

COMP 331 Information Systems Analysis and Design [2-1-0:2]

Theory, tools and techniques of information systems analysis and design;

systems theory, organisation theory, decision-making and managers, sys- tems life cycle, role of the systems analyst; data collection, structured design, top-down development, inputloutput design, file and database design; user interface definition and design; project management, documentation, accept- ance testing, evaluation and acquisition of hardware and software. A course project will allow the application of the techniques of analysis and design discussed in class.

Prerequisite: COMP 231

COMP 341 Computer Graphics [3-0-2:3]

Identification and characterisation of theobjects manipulated in computergraphics, the operations possible on these objects, efficient algorithms to perform these operations, and interfaces to transform one type of object to another; display devices, display datastructures and procedures, graphical input, object modelling;

geometric modelling, geometrical transformations, viewing in two and three dimensions, hidden edge, surface removal, and illumination models; mathematical techniques for curve and surface representations.

Prerequisite: COMP 271

COMP 351 Systems Modelling [2-1-0:2]

Techniques for modelling complex systems; mathematical descriptions of the system and of the rules governing its operation; model evaluation, using either computer-based simulation or analvtical techniaues: methods for

.

.

generating uniform and non-uniform pseudo-random numbers; gathering statistics and confidence intervals; model validation; experimental design;

elementary analytical techniques: Markov chains in equilibrium, renewal theory, queuing theory and queuing networks, operational analysis.

Prerequisites: COMP 252 and MATH 244

COMP 361 Computer Networks and Communication [3-0-1:3]

Principles of network architectures and communication protocols underlying interoperable systems; representation of information on physical channels;

error detection and recovery; local area networks; flow control, deadlock and congestion avoidance; internetworking and gateways; network naming and addressing; remote procedures; examples of internet protocol suites (TCPI IP, XNS), security and protection, the IS0 model.

Prerequisites: COMP 351 and MATH 244

COMP 371 Theory of Computation [3-1-0:3]

Theory of automata and formal languages: finite automata, context-free languages; turing machines, recursive function theory, Church's Thesis, uncomputability, computational complexity, P and NP, NP-complete prob- lems.

Prerequisite: COMP 271

COMP 381 Design and Analysis of Computer Architectures [3-1-0:3]

[Previous Course Code: COMP 3911

Analysis, synthesis and evaluation of different computer architectures grounded in good engineering design. Emphasis on computer design through measurement and the understanding of pricelperformance as they relate to architectural choices such as pipelining, vector processing, memory hierarchy, inputloutput, multi-processing, and instruction set design.

Prerequisite: COMP 180

COMP 397 Final Year Project I [0-0-3:1]

[Previous Course Code: COMP 3811

An approved project in any area of Computer Science under the guidance of afaculty member. The project consists of a report describing adevelopment, survey, or small research project completed by the student in an area of specialisation. Objectives are: (1) applying and integrating the classroom

material from several courses, (2) introducing the professional literature, (3) gaining experience in writing a technical document, and (4) enhancing employability through evidence of independent work. The project may cover an area in Computer Science or an application to another field.

COMP 398 Final Year Project II [Previous Course Code: COMP 3821 Continuation of COMP 397.

Postgraduate Courses

Permission of the Department is an alternative to the stated prerequisite, and this is a requirement for all courses for which prerequisites are not stated.

Courses denoted by * at the end of the course code are available for enrolment by undergraduate students on a limited basis. Permission of the course instructor is required.

COMP 501* Organisational Computing Systems [3-0-0:3]

[Previous Course Code: COMP 5321

This course surveys the integration of different technologies and software techniques as they appear in organisational computing systems. Topics include: the interdisciplinary nature of organisational computing systems;

enabling technologies (workstations, networks, distributed systems, object- oriented languages, knowledge representation); human-computer interac- tion (components of the user interface, interactive techniques, the user's model, user interface design, usersupport, multi-media interfaces); informa- tion management (document management, multi-media data, hypertext, data base mediation); organisational communication (text messaging, multi- media messaging, coordination systems, meeting management); organisa- tional work (routine organisational work, automatic procedures, problem solving, task representation, cooperative work); designing organisational computing systems (organisational models, organisational semantics, inte- grated systems); impact and evaluation.

COMP 514 Software Engineering [3-0-0:3]

Concepts and principles which underlie current and emerging methods, tools, and techniques for software development, validation and maintenance; case studies.

COMP 521 Artificial Intelligence 13-0-0:3]

Artificial intelligence problem solving techniques; planning, heuristic search techniques, constraint satisfaction problems, reasoning under uncertainty, machine learning and neural nets; introduction to selected research topics in artificial intelligence (topics such as machine perception, natural language processing, and knowledge-based systems).

COMP 522 Machine Learning [3-0431

The study of self-modifying computer systems that can acquire new knowl- edge and improve their own performance. Topics include induction from examples, conceptual clustering, explanation-based learning, analogical and case-based reasoning, statistical pattern recognition, connectionist learning, and genetic algorithms.

COMP 523 Artificial Neural Networks 13-0-0:3]

Theory and applications of artificial neural networks; neural network models for associative memory, supervised learning, unsupervised learning, and reinforcement learning; selected research topics such as complexity han- dling, network topology modification, generalisation, learning speed, and recurrent models for learning temporal sequences.

COMP 524 Computer Vision 13-0-0:3]

lntroduction to techniques for automatically describing visual data and tools for image analysis; perception of spatial organisation; models of general purpose vision systems; computational and psychological models of percep- tion; applications such as industrial inspection and sensor-based robots.

COMP 525 Expert Systems 13-0-0:3]

lntroduction to expert systems. Problem specification, knowledge acquisi- tion, knowledge representation, inference techniques, uncertainty manage- ment, explanation, tools and languages for building expert systems; exam- ples of existing systems.

COMP 526 Natural Language Processing 13-0-0:3]

Methodologies in natural language processing. Parsing, interpretation, user and context modelling, plan recognition, and generation. Special emphasis on the role of inductive approaches, neuro-psychological and linguistic constraints, and large text corpora. Applications include machine translation, dialog systems, congnitive modelling, and text-based knowledge acquisition.

COMP 527* Pattern Recognition 13-0-0:3]

lntroduction to pattern recognition techniques. Mathematical pattern recog- nition, Bayes decision theory, supervised learning, discriminant functions, perceptron, potential functions, parametric and nonparametric techniques;

unsupervised learning and clustering; feature selection; syntactic pattern recognition.

COMP 531* Data and Knowledge Base Systems 13-0-1 :3]

lntroduction to data and knowledge base systems. Data models for database systems; relational data model and relational theory; object-oriented data models; transaction management; querying and query optimisation; distrib- uted database management; logic and logic as adata model; evaluation and optimisation of logic queries; deductive data bases.

COMP 533 Information Retrieval 13-0-0:3]

Representation of information: character sets, text markup languages; formal models of information content, data compression and compaction, costs and benefits of redundancy in information representation; statistics of language:

frequency distributions, statistical inference; associative stores and search- ing: timelspace tradeoffs in creation, update and searching; models of information retrieval: Boolean, fuzzy Boolean, vector model and probabilistic retrieval; performance and evaluation: performance measures, difficulty of evaluation; reductional indexing methods: clustering, latent semantic index- ing, neural networks; adaptive systems: user relevance feedback, document feedback, lazy indexes; representation and manipulation of non-textual information: images, audio, facts, distinguishing content from representation.

COMP 534 Distributed Data and Knowledge Base Systems 13-0-0:3]

An introduction to the principles of distributed data and knowledge base systems. Issues in traditional (i.e., logically centralised and homogeneous) distributed databasesvstems, which include: structure of distributed databases:

design of distributed databases (top-down versus bottom-up processes, data replication, fragmentation, and allocation); distribution transparency; distrib- uted query processing and optimisation; concurrency control and recovery;

commit protocols (two-phase and three-phase commit); deadlock handling;

reliability and fault-tolerance. Issues of emerging heterogeneous data and knowledge base systems, which include: architectures of heterogeneous systems; managing heterogeneity and autonomy; interoperable data defini- tion (schema translation and integration); distributed integrity constraint management; queries in logically decentralised systems; autonomy and cooperation in information sharing; impacts of object orientation; knowledge- based approaches; existing prominent systems and prototypes.

COMP 541 Multilingual Computing [34-0:3]

Classifying systems of writing, script families, the major scripts; fonts:

representation, rendering, font families, bitmapped fonts, Postscript; at- tributes of systems of writing: bound and unbound graphemes (diacritics), case and other modes, coniuncts, character classes; operations over char- acters and scripts: string searching, sorting, transcript&; multilingual com- puting in specific platforms: Macintosh, PC's, X I 1, SUN, NeXT, Xerox.

COMP 551* Language Processors [3-0-1:3]

[Previous Course Code: COMP 5711

Overview of compiler organisation, compiler building software tools; use of regular expressions and context-free grammar in programming language specification; parsing, semantic analysis, code generation and optimisation.

COMP 552' Operating Systems [3-0-1:3]

[Previous Course Code: COMP 51 21

Operating system design and construction techniques; concurrent program- ming, operating system kernels, correctness, deadlock, memory manage- ment, process scheduling, file systems, security; programming methodolo- gies for operating systems.

COMP 553 Distributed Systems [3-0-0:3]

[Previous Course Code: COMP 51 11

Introduction to the issues related to the design of distributed svstems. Clock synchronisation, state detection, mutual exclusion; naming and authentica- tion; coordination of distributed processes; using a modern design environ- ment for specifying, testing and analysing adistributed system; case studies.

COMP 570 Algorithm Design and Analysis [3-0-0:3]

This course covers advanced topics in algorithm design and analysis, including probabilistic algorithms, geometric algorithms, parallel algorithms:

shared memory and network connected, graph algorithms, and advanced topics in complexity theory.

COMP 572 Computability and Logic [3-0-0:3]

Computable functions, Church's thesis, unsolvable problems; recursively enumerable sets and degrees, computational complexity; predicate calculus, including the completeness, compactness, and Lowenheim-Skolem theo- rems; formal theories and Goedel incompleteness theorem.

COMP 581 Advanced Computer Architectures [3-0-0:3]

This course addresses advanced topics in designing and evaluating high performance computers. It takes an in-depth look at memory hierarchies and caches, pipelining approaches, reliability and testability, compilers and operating systems as they affect computer architectures, stochastic models, and performance evaluation. It also includes case studies of some commer- cia1 supercomputer systems.

COMP 582 Parallel Processing [3-0-0:3]

This course is concerned with the design and analysis of parallel computer systems, distributed memory, and shared memory. It introduces the notion of using non-Von Neumann architectures to build powerful computers capable of efficiently executing computation-intensive problems. It also presents the potential of parallel computers in executing critical applications because of their fault-tolerant capabilities. Topics include: classification of parallel com- puters, interconnection networks, overview of some parallel computers (hypercube, meshes, multi-stage, reconfigurable systems, pyramid, etc.), performance evaluation, fault-tolerance, parallel algorithm design tailored for specific topologies, and mapping problems.

COMP 583 Computer Engineering Graph Theory [3-0-0 :3]

Advanced topics course in graph theory with applications in computer engineering. A large number of practical computer engineering and opimisation problems can be modelled using graph theory techniques. This course provides atechnical basis for, and the analysis of, such problems. The survey bf graph theory related applications in combuter engineering includes:

resource allocation, logic design verification, distributed fault testing and diagnosis, and network communication routing.

COMP 584 Optical Computing [3-0-0:3]

The goal of this course is to present and study the usage and potential of optical devices in the design of computer systems and communication networks. Topics include: nonlinear optical devices, optical switching and interconnection networks, pipelining in waveguides, optical addressing.

COMP 585 Fault Tolerant Computing 13-0-0 :3]

Fault tolerant issues in the design of computer systems; fault detection and fault testing including algorithms for designing test sets (D-algorithm, FAN, PODEM); design for testability, LSSD, Boundary scan techniques; fault detection codes; characterising fault tolerance of systems including reliability and availability.

COMP 630 Topics in Database Systems [3-0-0:3]

This course covers selected topics in database systems that are of current interest to the Department and are not covered by existing courses.

COMP 586* Concurrency and Real-time Systems [3-1-0:3]

This course conveys the fundamental notions of concurrency and synchroni- sation in computer systems both at the hardware level and at the software level. These notions are developed through the study and implementation of real-time systems. The fundamental problems and issues of synchronisa- tion, deadlock, and contention are described. Solutions to these problems which have evolved in the software realm are presented with the hardware required to implement these solutions. Topics include: real-time interrupt

COMP 631 Topics in Knowledge Base Systems [3-0-0:3]

This course covers selected topics in knowledge base systems that are of current interest to the Department and are not covered by existing courses.

driven systems, concurrency in digital systems, hardware and softwate synchronisation mechanisms, synchronous, asynchronous, and self-timed

systems. COMP 632 Topics in Information Retrieval [3-0-0:3]

This course covers selected topics in information retrieval that are of current interest to the Department and are not covered by existing courses.

COMP 610 Topics i n Software Engineering [3-0-0:3]

This course covers selected topics in software engineering that are of current

interest to the Department and are not covered by existing courses. COMP 640 Topics in Interactive Computing [3-0-0:3]

This course covers selected topics in interactive computing that are of current interest to the Department and are not covered by existing courses.

COMP 611 Topics i n Object-Orientation [3-0-0:3]

[Previous Course code: COMP 51 51

Concepts of object, class, method, message, inheritance, specialisationl generalisation, class-subclass versus type-subtype, prototype, delegation, dynamic binding, persistence, and reflective systems; the impact of object- orientation on software reusability; object-oriented analysis and design;

different emphasis of object-oriented approach in artificial intelligence, data- base and software engineering applications; object-oriented data models;

COMP 641 Topics i n Graphics [3-0-0:3]

This course covers selected topics in graphics that are of current interest to the Department and are not covered by existing courses.

COMP 650 Topics in Computer Systems [3-0-0:3]

typical object-oriented languages and systems; extension of object-oriented

concepts (e.g., inclusion of relations); introduction to selected research topics This course covers selected topics in computer systems that are of current interest to the Department and are not covered by existing courses.

in object orientation.

COMP 651 Topics in Computer Systems Analysis [3-0-0:3]

Advanced topics in computer systems analysis; issues in development and solution of system models; model parametrisation, verification andvalidation;

recent developments in techniques and tools for system evaluation.

COMP 620 Topics i n Image Processing and Image Understanding [3-0-0:3]

This course covers topics in image processing algorithm design, analysis, and implementation. Topics include: image representation and data struc- tures; algorithm design and complexity issues; parallel architectures and parallel algorithms for image processing; image processing language design and software development environment. Various applications of image

processing and computer vision will be discussed. COMP 660 Topics in Computer and Communication Networks [3-0-0:3]

This course covers selected topics in communication networks that are of current interest to the Department and are not covered by existing courses.

COMP 621 Topics in Artificial Intelligence [3-0-0:3]

This course covers selected topics in Al that are of current interest to the Department and are not covered by existing courses. Topics may include expert systems, robotics, 3D vision and motion analysis, uncertainty man- agement, natural language processing, etc.

COMP 670 Topics in Theoretical Computer Science [3-0-0:3]

This course covers selected topics in theoretical computer science that are of current interest to the Department and are not covered by existing courses.

Topics may include computational complexities and computability, theory of parsing and compilation, graph and scheduling algorithms, combinatorics.

COMP 680 Topics in Computer Engineering [3-0-0:3]

Thiscoursecoversselectedtopics incomputer engineering that are of current interest to the Department and are not covered by existing courses.

COMP 690 Computer Science Seminar I [0-1-0:1]

[Previous Course Code: COMP 5801

A biweeky seminar presenting research problems currently under investiga- tion. Students are expected to attend regularly. (Graded either P or F)

COMP 691 Computer Science Seminar II lPrevious Course Code: COMP 5811

A biweekly seminar presenting research problems currently under investiga- tion. Students are expected to attend regularly. (Graded either P or F)

COMP 692 Computer Science Seminar Ill [0-1-0:1]

A biweekly seminar for MSc students in their third semester presenting research problems currently under investigation. Students are expected to attend regularly. (Graded either P or F)

COMP 697 Computer Science Project I [0-0-6:2]

[Previous Course Code: COMP 5911

An independent research project carried out underthe supervision of a faculty member. A project report is expected at the end of the semester.

COMP 698 Computer Science Project II [O-0-6:2]

[Previous Course Code: COMP 6901

An independent research project carried out underthe supervision of a faculty member. A project report is expected at the end of the semester.

COMP 699 MPhil Thesis Research [Previous Course Code: COMP 6001

COMP 799 Doctoral Thesis Research [Previous Course Code: COMP 7001

DEPARTMENT OF ELECTRICAL AND ELECTRONIC