|
COMP 111 - Introduction to Programming I
The aim of this course is to equip students with the
basic practical and theoretical skills they will need to write effective
computer programs. The course covers basic programming concepts, techniques,
documentation and standards. The course includes a substantial practical element
and the lessons learnt should enable students to programme effectively in any
language they may encounter. On completion of the course, students should be
able to write programs atht can manipulate data structures as complicated as
lists and have a firm grasp of the value of abstraction in program design.
Credit(s): 3
COMP 112 - Introduction to Programming II
COMP 112 builds on the foundation laid in COMP 111. The
course will introduce students to further abstractions such as accumulation and
the use of mutable structures. The course includes a substantial practical
element and the lessons learnt should enable students to programme effectively
in any language they may encounter.
Credit(s): 3
Prerequisite(s): COMP 111
COMP 131 - Introduction to Computing
Credit(s): 3
COMP 141 - Special Topics in Computer Science
Credit(s): 3
COMP 151 - Using Computers Productively
Effective and productive use of computers involves more
than just programming. Many tasks can be accomplished using existing tools or
techniques that involve only limited programming. This course focuses on the
effective use of these tools. Students will learn to use a variety of tools to
perform data manipulation tasks, to create, share and maintain documents of
acceptable professional quality, to create prototype data processing
applications, to set up web sites and perform other online and offline computing
tasks. The course includes a substantial practical element.
Credit(s): 3
COMP 152 - Practical Programming
This course provides an introduction to programming
using a commercially popular programming language, writing the programs in
imperative style. At the conclusion of the course a student should be able to
write simple programs in both iterative and recursive style that can accept
input and produce output and manipulate basic data structures such as strings
and arrays
Credit(s): 3
Special Condition(s): COMP 111 and COMP 151
COMP 197 - Seminar I
This course involves weekly scheduled talks given by
invited speakers who will present seminars in various fields of theoretical and
practical aspects of computer science. Students should attend these seminars.
They will be evaluated in accordance with their attendance on the basis of a
Pass or Fail grade.
Credit(s): 0
COMP 198 - Seminar II
This course involves weekly scheduled talks given by
invited speakers who will present seminars in various fields of theoretical and
practical aspects of computer science. Students should attend these seminars.
They will be evaluated in accordance with their attendance on the basis of a
Pass or Fail grade.
Credit(s): 0
COMP 201 - Business Information Technology
Credit(s): 3
COMP 202 - Business Information Systems
The aim of this course is to provide students with
knowledge of the structure of business information systems and how they are
designed to support management decision making. A student completing this unit
will be able to identify the various methods of processing data and their
business application, construct a database and use it to perform basic queries,
understand the approaches to the design and development of business information
systems, appreciate the legal, ethical and organisational issuesrelating to the
security and control of business data and finally select a system for a given
business need.
Credit(s): 3
COMP 211 - Digital Systems
The electronic computer is a device that has completely
evolved within living memory. This course aims to introduce the history and
evolution of the computer and show how the shape of the computers we use today
is a product of that evolution. Students will learn enough about Boolean logic
and logical circuits to understand in principle how the processor of a modern
computer works and be able to sketch the design of a simple computer.
Credit(s): 3
COMP 222 - Computer Organization
This course extends the knowledge gained in COMP 211 to
cover the additions to the basic computer design that make modern computers the
powerful real time tools that they are. Among the subjects covered are
interrupts, processor states, memory mapping and caching, virtual memory and how
computers are designed to provide support for sophisticated operating systems.
The practical element of the course includes some machine level (assembly)
programming. Students should complete the course with the ability to undertake
small scale machine level programming tasks involving manipulation of the
computer processor features covered in the course and the necessary theoretical
understanding of the support provided by computer hardware for modern operating
systems.
Credit(s): 3
Special Condition(s): COMP 211
COMP 231 - Data Structures and Algorithms I
This course covers the basic science behind the use of
computers to provide effective and efficient methods for carrying out tasks.
Tasks examined include data storage and retrieval, sorting and searching,
semi-numerical tasks such as encryption, planning and optimisation tasks,
problems, space searches and games playing. To carry out these tasks, both
algorithms and structures for the storage of data need to be specified.
Mathematical tools have to be developed that enable us to measure the
fundamental effectiveness of algorithms and in particular the way these
algorithms scale as the size of the task being performed increases. This course
introduces the basic sorting and searching methods and dynamic data structures
such as linked lists and trees.
Credit(s): 3
Special Condition(s): COMP 112
Prerequisite(s): COMP 111
COMP 232 - Data Structures and Algorithms II
This course builds on COMP 231 to apply similar
techniques to analyse more sophisticated algorithms and data structures. Topics
covered include various tree types, graphs, storage structures and algorithms
suitable for storage and retrieval of data to and from secondary storage, greedy
algorithms, graph search and traversal and random algorithms.
Credit(s): 3
Special Condition(s): COMP 231
Prerequisite(s): COMP 112 and COMP 152
COMP 241 - Theoretical Skills in Computer Science
By the end of the course, students are supposed to be equipped with some mathematical skills required
for their study in the field of computer science. In particular, they learn basic concepts about complex
numbers, matrices and linear equations, vector spaces, linear mappings, composition and inverse
mappings, scalar product and inverse mappings, determinants, eigenvectors and eigenvalues.
Credit(s): 3
COMP 242 - Signals and Systems
The course aims to teach the basic concepts of discrete
signals and systems. These concepts include: discrete-time signals: sampling
theorem: causality, stability, time invariance and linearity: design of linear
time-invariant discrete systems: impulse response: design of finite-impulse
response and infinite-impulse response systems: discrete-time Fourier transform
(DFT): DFT algorithms: the z-transform and the region of convergence:
stabilisation of unstable systems and implementation of discrete algorithms by
using Math Lab.
Credit(s): 3
Special Condition(s): MATH 164
COMP 251 - System Programming
Credit(s): 3
COMP 252 - Introduction to Graphical User Interface Design
This course aims to introduce graphics contexts and
graphics objects and how to produce applets and applications with user-friendly
graphical user interfaces (GUIs). The course studies GUI capabilities including
some advanced GUI components, such as textareas, canvases, scrollbars, frames,
menus, dialogue boxes, scrolling panels and pop up menus.
Credit(s): 3
COMP 261 - Object Oriented Programming
This course build on 152, tecahing students to write
programs in object oriented style using a commercially popular programming
language. At the completion of the course students should be able to produce
complete programs in object oriented style, making appropriate use of techniques
such as polymorphism and inheritance.
Credit(s): 3
Special Condition(s): COMP 152
Prerequisite(s): COMP 111 and COMP 151
COMP 262 - Large Scale Programming
This course builds on COMP 261 to move on to the
techniques involved in producing larger computer systems in an object-oriented
programming environment. Subjects covered will include various types of layered
and modularised implementation, code reusability and implementations involving
more than one execution environment.
Credit(s): 3
Special Condition(s): COMP 261
Prerequisite(s): COMP 112 and COMP 152
COMP 291 - Selected Topics in Computer Science I
The course has been introduced to study various topics
in Computer Science.
Credit(s): 3
COMP 292 - Selected Topics in Computer Science II
The course has been introduced to study various topics
in Computer Science.
Credit(s): 3
COMP 297 - Seminar I
This course involves weekly scheduled talks given by
invited speakers who will present seminars in various fields of theoretical and
practical aspects of computer science. Students should attend these seminars.
They will be evaluated in accordance with their attendance on the basis of a
Pass or Fail grade.
Credit(s): 0
COMP 298 - Seminar II
This course involves weekly scheduled talks given by
invited speakers who will present seminars in various fields of theoretical and
practical aspects of computer science. Students should attend these seminars.
They will be evaluated in accordance with their attendance on the basis of a
Pass or Fail grade.
Credit(s): 0
COMP 301 - Automata and Formal Language Theory
Finite state automata provide a model for the way in
which computers can parse some languages. This course looks at the theoretical
basis for the techniques used in compiler construction and editors and text
processors. Subjects covered include the following: automata theory. Finite
state automata and regular expressions. Classification of grammars. Pushdown
automata and context free grammars. Context sensitive grammars and linear
bounded automata. Turing machines. Computability and recursive functions.
Credit(s): 3
COMP 302 - Automata and Formal Language Theory
Finite state automata provide a model for the way in
which computers can parse some languages. This course looks at the theoretical
basis for the techniques used in compiler construction and editors and text
processors. Subjects covered include the following: automata theory: finite
state automata and regular expressions: classification of grammars: pushdown
automata and context free grammars: context sensitive grammars and linear
bounded automata: Turing machines: computability and recursive functions.
Credit(s): 3
COMP 303 - Human-Computer Interaction
This course aims to cover the design of the interface
between human and computer.
Credit(s): 3
Special Condition(s): COMP 232
COMP 304 - Computer Graphics
This course aims to introduce students to modern
techniques for the production of 3-D and animated graphics. Topics covered
include hidden line removal, shading and texturing and ray tracing techniques.
In the practical section of the course, students will gain familiarity with
standard tools such as the OpenGL interface and other graphic production tools.
Credit(s): 3
Prerequisite(s): COMP 112 or COMP 152
COMP 306 - Operating Systems
Operating systems play a fundamental role in the use of
computers and are commercially of enormous importance. This course looks at how
they work. Contents include: classification and structure of operating systems:
storage media: memory management and dynamic storage strategies: scheduling
algorithms: I/O and interrupt structures: protection and security: queuing and
network control models: systems software: linkers, loaders, assemblers,
translators and programming environments: case studies of existingoperating
systems and implementation of operating system modules.
Credit(s): 3
Special Condition(s): COMP 222
Prerequisite(s): COMP 112
COMP 311 - Operating Systems
Credit(s): 3
COMP 312 - Principles of Programming Languages
This course explores different models and paradigms for
the construction of computer languages and how the meanings of programs written
in these languages can be interpreted.
Credit(s): 3
Special Condition(s): COMP 313
COMP 313 - Structure and Interpretation of Computer Programs
This course examines from first principles the nature
of computer programs. Starting from the lambda calculus, studenst will
investigate different paradigms for the construction and evaluation of computer
programs
Credit(s): 3
Prerequisite(s): COMP 112
COMP 321 - Computer Networks Programming I
The connection of computers in networks, whether local
or wide area, has added a new dimension to the power of the computer. This
course aims to introduce students to the standards that make this power possible
and the theoretical concepts needed to understand it. The practical element of
the course involves the writing of programmes that use the various protocol
stacks to carry out network computing tasks. Subjects covered include the
following: overview of computer networks: network architecture and ISO model:
network topology: connectivity analysis, delay analysis and backbone analysis:
physical layer: transmission and multiplexing, terminal handling, errors: data
link layer and link protocols: network layer: routing and congestion, satellite
networks, local networks: transmission and session layer, presentation layer and
application layer.
Credit(s): 3
Prerequisite(s): comp 112 and comp 152
COMP 322 - Computer Networks and Network Programming
This course looks at programming for network based
systems. Subjects covered include network protocols, network traffic and
security, distributed programming, and emerging network technologies. The course
includes practical network programming.
Credit(s): 3
Prerequisite(s): COMP 112
COMP 331 - Software Engineering
There is a crisis in the development of computer
systems. In particular, the development of large computer systems often takes
far more time and money than planned and sometimes major projects fail
completely and have to be abandoned. This course looks at the battery of
techniques used to try and avoid these problems and bring a scientific approach
to the management of software development.
Credit(s): 3
Special Condition(s): COMP 232
COMP 332 - Software Engineering
There is a crisis in the development of computer
systems. In particular, the development of large computer systems often takes
far more time and money than planned and sometimes major projects fail
completely and have to be abandoned. This course looks at the battery of
techniques used to try and avoid these problems and bring a scientific approach
to the management of software development.
Credit(s): 3
Prerequisite(s): COMP 112
COMP 341 - Operations Research
Credit(s): 3
COMP 342 - Systems Simulation
Credit(s): 3
COMP 351 - Fundamentals of Image Processing
The course aims to study basic concepts of image
processing. Topics covered include image formation and digitisation, space and
wave number domain, edge detection, image segmentation, restoration and
reconstruction, image processing systems: dedicated image processing hardware
and programmable systems.
Credit(s): 3
COMP 352 - Introduction to Natural Computation
Credit(s): 3
COMP 361 - Computer Controlled Systems
Credit(s): 3
COMP 362 - Digital Control
Credit(s): 3
COMP 371 - Machine Level Programming
This course starts from the machine level architecture
of digital computers. Subjects covered include instruction types addressing
modes, flow of control parameter passing, stack and stack frame, interrupts
processor states, memory protection, virtual memory, caching. The course also
covers assembly linking and loading, the use of programme maintenance tools and
the use of both assembly language and of a high level language capable of being
used for machine level programming.
Credit(s): 3
Special Condition(s): COMP 222
COMP 372 - Artificial Neural Networks
The course covers basic neural network architectures
and learning algorithms, for applications in pattern recognition,
classification, function approximation and sequential decision problems. Three
forms of learning (supervised, unsupervised and reinforcement learning) are
introduced and applications of these are discussed.
Credit(s): 3
COMP 381 - Database Systems I
Almost all large data processing systems rely on a
generalised database to store and retrieve data. This course aims to look at the
theoretical and technical issues involved in the implementation of such
generalised databases. Course contents include introduction to databases: entity
relationship model: physical database design and access strategies: relational
data model: SQL data manipulation language: theoretical data manipulation
language: normal forms and logical database design: query processing:
concurrency control and recovery in databases: implementation of a simple
storage manager and design of a relational database.
Credit(s): 3
Special Condition(s): COMP 232
Prerequisite(s): COMP 112
COMP 382 - Database Systems II
This course builds on and develops the content of COMP
381. Course contents include basic structures of database models: logic for
knowledge bases: resolution refutation: deduction: deductive databases:
recursive and nonrecursive query processing and object-oriented databases.
Credit(s): 3
Special Condition(s): COMP 381
Prerequisite(s): COMP 112
COMP 392 - Automatic Control
The course aims to cover a brief history of automatic
control, classification of control systems, principles of open-loop and
closed-loop control systems, the Laplace transform method and its properties,
transfer functions, block diagrams, signal-flow graph models, analysis methods
of control systems in the time domain, first-order systems, second-order
systems, time responses of the systems, steady-state error of systems,
sensitivity of control systems to parameter variations, stability analysis of
linear feedback control systems, the concept of stability, the Routh-Hurwitz
stability criterion and the root-locus concept and method, an example of control
system analysis using the root-locus method.
Credit(s): 3
COMP 397 - Seminar I
This course involves weekly scheduled talks given by
invited speakers who will present seminars in various fields of theoretical and
practical aspects of computer science. Students should attend these seminars.
They will be evaluated in accordance with their attendance on the basis of a
Pass or Fail grade.
Credit(s): 0
COMP 398 - Seminar II
This course involves weekly scheduled talks given by
invited speakers who will present seminars in various fields of theoretical and
practical aspects of computer science. Students should attend these seminars.
They will be evaluated in accordance with their attendance on the basis of a
Pass or Fail grade.
Credit(s): 0
COMP 403 - Selected Advanced Topics in Computer Science I
This course provides a study of advanced special topics
in Computer Science.
Credit(s): 3
Prerequisite(s): COMP 112
COMP 404 - Selected Advanced Topics in Computer Science II
This course provides a study of advanced special topics
in Computer Science.
Credit(s): 3
Prerequisite(s): COMP 112
COMP 406 - Artificial Neural Networks
The course covers basic neural network architectures
and learning algorithms, for applications in pattern recognition,
classification, function approximation and sequential decision problems. Three
forms of learning (supervised, unsupervised and reinforcement learning) are
introduced and applications of these are discussed.
Credit(s): 3
COMP 411 - Microprocessor-based Systems Design
Credit(s): 3
COMP 412 - Parsing, Compiling and Interpreting
The implementation of compilers has enabled the
production increasingly large computer systems. Compilers and assemblers play a
crucial role and at the same time are good examples of large and complex
programmes that have at least in part a sound mathematical basis for the way
they work. This course studies the different ways in which compilers and
assemblers can be constructed and the different language models that are used.
Credit(s): 3
COMP 421 - Computer Aided Design of Control Systems I
This course aims to introduce control systems and their
applications, open-loop and closed-loop systems, transient and steady-state
responses of control systems, stability issues, basic control actions, PI, PD,
PID controllers, Routh's stability criteria, static position, velocity and
acceleration constants.
Credit(s): 3
COMP 422 - Computer Aided Design of Control Systems II
This course provides a basic understanding of
fundamentals of Root-Locus analysis, control system design by the Root-Locus
method, compensation systems, lead, lag, lag-lead compensation, analysis of
control systems in state-space, solution of LTI systems, controllability,
observability, design of control systems in state-space, pole-placement
technique, state observers.
Credit(s): 3
Special Condition(s): COMP 421
COMP 431 - Artificial Intelligence and Symbolic Programming
This course aims to study the basic concepts of
artificial intelligence. Topics covered include representation of knowledge,
search and heuristic programming, logic and logic programming, application areas
of artificial intelligence: problem-solving, game and puzzles, expert systems,
planning, natural language understanding and learning.
Credit(s): 3
COMP 441 - Introduction to Computer Graphics
Credit(s): 3
COMP 451 - Dissertation I
Students will carry out a project to investigate an
advanced topic under the supervision of an advisor. They will be required to
make regular written and verbal presentations on their progress.
Credit(s): 3
COMP 452 - Dissertation II
Students will continue their project to investigate an
advanced topic under the supervision of an advisor. They will be required to
make regular written and verbal presentations on their progress. At the end of
the term, the student will deliver a written dissertation on the project and
make a verbal presentation to a jury who will assess the dissertation.
Credit(s): 3
Special Condition(s): COMP 451
COMP 461 - Web Services and Systems
Programmes running on one computer to provide services
to users or computers elsewhere are becoming increasingly important. A number of
programming languages and programming environments have evolved specifically to
address this need. This course looks at the issues involved in writing
service-providing programmes, using the latest programming languages and
technology.
Credit(s): 3
Special Condition(s): COMP 232
Prerequisite(s): COMP 112
COMP 462 - Computer Architecture
Credit(s): 3
COMP 471 - Digital Control
This course aims to cover the analysis of discrete-time
systems, the z-transform and its properties, the inverse z-transform, solving
difference equations by the z-transform, pulse transfer function, TF of
open-loop and closed-loop discrete time systems,response of closed-loop systems,
steady-state errors, stability analysis in the z-plane, mapping from s-plane
into z-plane, bilinear transformations, the Routh-Hurwitz criterion, the
root-locus of digital control systems, discretisation procedures, numerical
approximations, Euler's, Tustin's and matched pole-zero methods, digital PID
controllers and implementation of PID controllers.
Credit(s): 3
COMP 472 - Parallel and Distributed Systems
Combining many processors to perform a single task has
provided a very cheap and effective way of building very powerful computers for
a certain set of suitable tasks. This course studies the technical and
theoretical issues involved. The course contentsinclude the following: overview
of distributed systems: basic architectural models: network transparent message
passing and remote procedural call: distributed file and directory systems:
client server model: distributed operating systems: distributed deadlock
detection: multi-site concurrency control, replication and error recovery.
Credit(s): 3
Prerequisite(s): COMP 112
COMP 474 - Parallel Programming
Parallel programming models, languages and
environments. Parallel programming languages and runtime systems: data parallel
languages, message passing libraries and language constructs, data-driven
object-based languages, shared memory programming, multithreading. Parallel
methods for computations in the areas of bionformatics, quantum computing
computational physics (e.g., many body problems), other disciplines (e.g., graph
drawing, genetic algorithms, simulated annealing).
Credit(s): 3
COMP 481 - Management Information Systems/ERP Systems I
ERP systems aim to manage the entire operation of an
enterprise in one integrated computer system. This course studies the managerial
and technical issues involved in the implementation of such systems and the
advantages and disadvantages of the various fourth-generation solutions
available.
Credit(s): 3
Restriction(s): BUS 461
COMP 482 - Management Information Systems/ERP Systems II
This project involves the implementation of or
modification of a portion of an ERP system. Depending on the size of the
project, this may be an individual or a team effort.
Credit(s): 3
Special Condition(s): COMP 481
Restriction(s): BUS 462
COMP 491 - Computer-Aided Design and Manufacturing
Credit(s): 3
COMP 492 - Design of Inteligent Systems
This course looks at the practical application of the
artificial intelligence techniques introduced in Comp 431. The course includes a
team project to produce an intelligent application.
Credit(s): 3
COMP 497 - Seminar I
This course involves weekly scheduled talks given by
invited speakers who will present seminars in various fields of theoretical and
practical aspects of computer science. Students should attend these seminars.
They will be evaluated in accordance with their attendance on the basis of a
Pass or Fail grade.
Credit(s): 0
COMP 498 - Seminar II
This course involves weekly scheduled talks given by
invited speakers who will present seminars in various fields of theoretical and
practical aspects of computer science. Students should attend these seminars.
They will be evaluated in accordance with their attendance on the basis of a
Pass or Fail grade.
Credit(s): 0
|