Level
I: |
CS11A,
CS11B |
Level
II: |
CS20R,
CS20S, CS21R, CS21S,
CS22Q, CS23Q, CS27Q,
CS28Q |
Level
III: |
CS31A,
CS32Q, CS33Q,
CS34Q, CS35A, CS35Q,
CS35R, CS36R, CS37R,
CS39Q |
|
|
| NB: For
information on the Computer Science B.Sc. Programe check the
following: |
- The
BSc in Computer Science
web page for details of the requirements for this degree.
- The
SUMMARY OF AMENDMENTS
to the B.Sc. programme which includes information on:
- Requirements
for a major in Computer Science.
- Requirements
for the B.Sc. Computer Studies Option.
- Guidelines
for students transitioning between the old and new programmes.
|
| |
| |
| CS11A
|
Introduction to Computer Science I |
| Core?:
Yes |
Credits:
6
|
Level:
I
|
Semester:
I |
| |
|
| Pre-requisites:
|
One
of the Following: |
|
|
- A-level
Mathematics
- M08B
and M08C
- EC14C
- A
certificate/diploma in Mathematics at the Associate level
degree (e.g. from a teacher's college) or
- O-level
(or CXC CSEC) Mathematics and A-level Computer Science
|
| Syllabus: |
Principles of Functional Programming:
- functions;
- mathematical variables;
- scope; expressions;
- evaluation;
- types.
Polymorphism and Type classes.
Pattern Matching.
List Operations : map, fold & filter.
Recursive Definitions & Structural Induction.
Further Data Structures:
- binary trees;
- stacks;
- queues.
Higher-order functions.
Lazy and eager evaluation.
Some key concepts in computer science:
- Interpreters and Compilers;
- Operating Systems;
- Computer Architecture;
- Concurrency. |
| |
|
| Evaluation: |
One
2-hour written paper
Course work |
60%
40% |
| |
|
|
| CS11B |
Introduction
to Computer Science II |
| Core?:
Yes |
Credits: 6 |
Level:
I
|
Semester:
II |
| |
|
| Pre-requisites:
|
One
of the Following: |
| |
- A-level
Mathematics
- M08B
and M08C
- EC14C
- A
certificate/diploma in Mathematics at the Associate level
degree (e.g. from a teacher's college) or
- O-level
(or CXC CSEC) Mathematics and A-level Computer Science
|
| |
|
| Syllabus: |
Implementation (or representation) of the following Discrete
Mathematical structures.
Sets and relations. Operation on sets:
Binary relations; Partial and total order relations; equivalence
relations; N-ary relations; Functions; Introduction to cardinality.
Combinatorics. Addition and multiplication principles;
Permutations and combinations; Basic counting techniques; Combinatorial
identities; Pigeon-hole Principle; Inclusion-exclusion principle;
Symmetry; Group Theory
Introduction to Graph Theory. Undirected Graphs; Connectedness;
Eulerian and Hamiltonian circuits; Trees; Spanning trees; Binary
search trees; Expression trees; Graph Algorithms; Search strategies;
Directed graphs; Networks and flows.
Elementary Number Theory. Theorems on Z*_p - the multiplicative
group of integers modulo a prime; Chinese Remainder Theorem.
Error correction and detection. Hamming Codes; Checksums |
| |
|
| Evaluation: |
One
2-hour written paper
Course work |
60%
40% |
| |
|
|
| CS20R |
Analysis
of Algorithms |
| Core?:
Yes |
Credits:
4 |
Level:
II |
Semester:
II |
| |
|
| Pre-requisites:
|
CS11A
and CS11B |
| |
|
| Syllabus: |
-
Recursive Datastructures (lists and trees) and recursion as
a problem solving tool.
- Divide and conquer algorithm.
- Solving recurrence equations, the Master Theorem.
- Heaps as implementations for proiority queues.
- Sorting.
- Binary search trees, Red-Black trees.
- Dynamic programming (matrix multiplication, longest substring)
- Graphs.
- Fast exponentiation, Euclid's algorithm, Discrete logarithm,
RSA cryptography.
- Matrix computations.
- Representation of and computation with polynomials.
- NP-completeness.
|
| |
|
| Evaluation: |
Exam
Mid-term
Assignments (3)
Projects (2) |
60%
5%
15%
20% |
| |
|
|
| CS20S |
Discrete
Mathematics for Computer Science |
| Core?:
Yes |
Credits: 4 |
Level:
II |
Semester:
I |
| |
|
| Pre-requisites:
|
CS11A
and CS11B |
| |
|
| Syllabus: |
Background
- Logic and Proof Techniques (proof by contradiction, proof
by induction, constructive proofs)
- Sets and Functions
-Series (Arithmetic and Geometric)
Relations
- Reflexivity, Symmetry, Anti-symmetry and Transivity
- Equivalence relations and equivalence classes
- Partial Order Relations
Asymptotic Analysis
- Limits
- Orders of Growth
Counting
- Permutations
- Combinations
- Inclusion-exclusion principle
Elementary Probability Theory
- Counting in event space
- Probability Tree
- Bernoulli distribution
- Geometric distribution
- Binomial distribution
- Poison distribution
Elementary Number Theory
- Modular Arithmetic
- Chinese Remainder Theorem
- Groups formed from Z modulo a prime
Generating Functions and their Applications
- Convergence Properties
- Convolution
- Applications to:
- signal processing
- image compression
- solving linear recurrences
- probability theory
- error detection and correction
Graph Theory
- Trees
- Planarity
- Spanning Trees
- Eulerian and Hamiltonian Cycles
- Colouring
- Matching |
| |
|
|
| Evaluation: |
1
2-hour written paper.
Course work (in-course test and assignments) |
60%
40% |
| |
|
|
| CS21R |
Computer
Architecture and Organization |
| Core?: |
No
(If CS23Q is taken)
Yes (If CS23Q is not taken) |
Credits: 4 |
Level:
II |
Semester:
II |
| |
|
|
| Pre-requisites:
|
CS21S |
| |
|
|
| Syllabus: |
Tour of computer systems
Representation and manipulation of information:
-
Computer arithmetic
- Instruction set architecture design and machine-level representation
of programs
- Basic processor organization
- Single cycle datapath and control unit
- Multicycle processor design
- Microprogramming
- Exceptions, Interrupts and traps
- Pipelining
- Memory hierarchy and Virtual memory
- RISC Architectures
- Instruction-level parallelism, superscalar, multithreaded
and EPIC architectures
- Case Studies: MMIX, Itanium, and PowerPC
- Optimizing Program Performance -
Measuring a program execution time
|
| |
|
|
|
| Evaluation: |
Exam
Course work |
60%
40% |
| |
|
|
| CS21S |
Digital
Logic Design |
| Core?:
|
No
(If CS23Q is taken)
Yes (If CS23Q is not taken) |
Credits:
4 |
Level:
II |
Semester:
I |
| |
|
|
| Note: |
This
course is the same as P24K. Students will not receive
credit for both courses. |
| |
|
| Pre-requisites:
|
CS11A
and CS11B |
| |
|
|
| Syllabus |
Number
Systems and Codes
- Binary, decimal, octal and hexadecimal systems and their conversion
- Binary-Coded-Decimal (BCD) code.
- Alphanumeric codes. ASCII.
Combinational Logic Circuits
- Sum-of-products expression used in designing logic circuits.
- Boolean Algebra and the Karnaugh Map used to simplify and
design logic circuits.
- Parity generation and checking. Enable-disable circuits.
Flip-Flops and their Applications
- RS flip-flops, JK flip-flops, D flip-flops
- Timing waveforms.
- Synchronous and Asynchronous systems.
- Counters and Registers and their uses.
Memory and Programmable Devices
- ROM architecture and timing.
- Programmable ROM.
- Flash Memory.
- Programmable logic devices.
- RAM architecture and timing
|
|
| |
|
|
|
| Evaluation: |
|
|
| |
|
|
|
| CS22Q |
Software
Engineering |
| Core?:
No |
Credits:
4 |
Level:
II |
Semester:
Open |
| |
|
|
| Pre-requisites:
|
CS11A
and CS11B |
| |
|
|
| Syllabus: |
- Introduction
to Software Engineering
- Overview
and relevance of Software Engineering.
- Professional
and ethical responsibility.
- Process
Models
- Sequential,
iterative/incremental and rescue-based paradigms.
- Process
activities.
- Project Management
- Project
planning
- Project
scheduling
- Risk Analysis
- Identification, analysis and planning
- Software Requirements
- Preparing software requirements document
- Requirement
elicitation, analysis and management
- System
models
- Object
Oriented Software Design
- System
modeling using UML
- CRC
cards
- Verification and Validation
- Static and dynamic models
- Testing
- System and dynamic methods
- Test
case design
- Software
Evolution
- Software maintenance
- Evolution process
|
| |
|
|
| Evaluation: |
One
2-hour written paper
Coursework
- In-course test
- Project
- Presentations and quizes |
60%
40%
5%
25%
10% |
| |
|
|
|
| CS23Q |
Computer
Organization |
| Core?:
Yes |
Credits: 4 |
Level:
II |
Semester:
II |
| |
|
| Pre-requisites:
|
CS11A
and CS11B |
| |
|
| Syllabus: |
Electronic
Bits
- Transistors
- Logic Gates as combination of transistors
- Universal Gates
Basic Components
- Adders and ALUs
- Flip-flops
- Registers and Register Files
- Memory (ROM, SRAM and DRAM)
- Counters
Achieving Computation
- Separating Datapath and Controller
- Controlling the feedback: Status bits
- The Controller as hardware
Processor Architecture
- Single cycle instruction architecture
- Microcoded instructions architecture
Flavours of Parallelism (Briefly)
- Pipelining
- Super-scalar architecture
- Very Long Instruction Word architecture
- Vector processors
- MIMD architecture
Data Representation
+ Simple Data:
- Fixed Point Representation
- Floating Point Representation
- Characters and Pointers
+ Compound Data:
- Arrays
- Strings
- Records and Objects
Exceptions
- Interrupts
- Traps
- Faults
Caching
- Direct Mapped Caches
- Set-associative caches
- multi-level caches
Virtual Memory
- Page Tables
- Address Translation
- Multi-level page tables
Multi-tasking
- Threads and Processes
- Context Switching
- Concurrent access to shared memory
- Thrashing
Peripherals
- Video Displays
- Disk I/O
- Serial Devices
- Network Devices and Protocols |
| |
|
| Evaluation: |
One
2-hour written paper
Mid-term
Assignments (3) |
60%
10%
30% |
| |
|
|
| CS27Q |
Object-oriented
Programming |
| Core?:
Yes |
Credits: 4 |
Level:
II |
Semester:
I |
| |
|
| Pre-requisites:
|
CS11B |
| |
|
| Syllabus: |
Object-oriented
Programming
Classes and Objects.
Methods; members; message passing.
Encapsulation and information-hiding; separation of behaviour
and implementation.
Imperative control structures, assignment/state, parameter passing
models.
Inheritance; polymorphism; class hierarchies.
Interface vs multiple inheritance.
Templates/Generics.
Using APIs; class libraries.
Modules/Packages.
Name space resolution.
Primitive types; array, string processing; I/O processing; pointers
and references; linked structures; strategies for choosing the
rigth data structure.
Collection classes and iteration protocols.
Event-driven and concurrent programming.
Exception handling.
Introduction to GUI programming, thread programming.
OO Testing.
Debugging tools.
Object-oriented Methods
Object-oriented analysis and design; design for reuse. Modeling
tools such as class diagrams and CRC cards. Comparison of OOD
and top-down/bottom-up design.
Introduction to the concept and use of design patterns. |
| |
|
| Evaluation: |
One
2-hour written paper
In-course test
Assignments |
60%
10%
30 % |
| |
|
|
| CS28Q |
Object
Technology |
| Core?:
No |
Credits: 4 |
Level:
II |
Semester:
II |
| |
|
| Pre-requisites:
|
CS11A
and CS11B |
| |
|
| Co-requisites:
|
CS22Q |
| |
|
| Syllabus: |
Basic
concepts of Object Technology:
- Encapsulation,
information hiding, inheritance, composition, polymorphism.
Phases of an Object-Oriented software development process:
- Object-oriented
analysis with Use-Cases;
- Object-oriented design with the Unified Modelling Language
(UML) notation;
- Object-oriented programming with Java;
- Object-oriented testing.
Reuse of software designs and architectures:
- Design
patterns
- Reference software architectures
|
| |
|
| Evaluation: |
One
2-hour written paper
Course work |
60%
40% |
| |
|
|
| CS31A |
Operating
Systems |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
Open |
| |
|
| Pre-requisites:
|
CS20R
and (CS21R or CS23Q) |
| |
|
| Syllabus: |
- Overview
- Role and purpose of operating systems
- History of operating system development
- Functionality of a typical operating system
- Design issues (efficiency, robustness, flexibility,
portability, security
- Basic Priniciples
- Structuring methods
- Abstractions, processes and resources
- Design of application programming interfaces (APIs)
- Device organizatoin; interrupts
- User/system state transitions
- Concurrency
- The idea of concurrent execution
- States and state diagrams
- Implementation structures (ready lists, process control
blocks, etc.)
- Dispatching and context switching
- Interrupt handling in a concurrent environment
- Mutual exclusion
- Definition of the "mutual exclusion" problem
- Deadlock detection and prevention
- Solution strategies
- Models and mechanisms (semaphores, monitors, condition
variables, rendezvous)
- Producer-consumer problems; synchronization
- Multiprocessor issues
- Scheduling
- Preemptive and nonpreemptive scheduling
- Scheduling policies
- Processes and threads
- Real-time issues
- Memory management
- Review of physical memory and memory management
- Overlays, swapping and partitions
- Paging and segmentation
- Virtual memory
- Page placement and replacement policies; working sets
and thrashing
- Caching
- Device management
- Characteristics of serial and parallel devices
- Abstracting device differences
- Buffering strategies
- Direct memory access
- Recovery from failures
- File systems
- Fundamental concepts (data, metadata, operations,
organization, buffering, sequential vs nonsequential
files)
- Content and structure of directories
- File system techniques (partitioning, mounting and
unmounting, virtual file systems)
- Memory-mapped files
- Special-purpose file systems
- Naming, searching and access
- Backup strategies
- Security and protection
- Overview of system security
- Policy/mechanism separation
- Security methods and devices
- Protection, access and authentication
- Models of protection
- Memory protection
- Encryption
|
| |
|
| Evaluation: |
One
2-hour written paper
In-course test
Projects (2) |
60%
10%
30% |
| |
|
|
| CS32Q |
Computer
Networking and Communication |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
Open |
| |
|
| Pre-requisites:
|
CS20R
and (CS21R or CS23Q) |
| |
|
| Syllabus: |
- Computer Networks and the Internet
- The network edge and network core
- Access networks an dphysical media
- ISPs and backcones
- Delays and loss in packet-switched networks
- Protocol layers and service models
- History of networking
- Application Layer
- Principles of network applications
- Web and HTTP
- FTP
- SMTP and electronic mail
- DNS
- Peer-to-peer file sharing (P2P)
- Socket programming in TCP and UDP
- Transport Layer
- Tansport layer services
- Connectionless transport: UDP
- Principles of reliable data transfer
- Connection-oriented transport: TCP
- Network Layer
- Virtual circuits and datagram networks
- Routers
- IP protocol
- Routing algorithms
- Link Layer
- Error detection and correction
- Multiple access protocols
- Link layer addressing
- Ethernet
- Hubs and switches
- Special Topics (selected from)
- Computer security
- Wireless communication and mobile networks
- Multimedia networking
- Network management
|
| |
|
| Evaluation: |
One
2-hour written paper
Coursework
- In-course test
- Pratical programming assignments (2 or 3)
|
60%
40% |
| |
|
|
| CS33Q |
Introduction
to Artificial Intelligence |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
Open |
| |
|
| Pre-requisites:
|
CS20R
and CS20S |
| |
|
| Syllabus: |
- Introduction to AI
- Overview and history of AI
- Philosophical issues
- Introduction to Prolog
- Search
- Game Playing
- Knowledge representation and reasoning
- Logic
- Production rules
- Structured objects
- Planning
- Introduction to Expert Systems
- Knowledge Aquisition in Expert Systems
- Elective topics
- Neural networks
- Machine Learning
- Reasoning under uncertainty
- Natural Language Processing
- Speech recognition
- Robotics
- Fuzzy logic
- Virtual reality
|
| |
|
| Evaluation: |
One
2-hour written paper
Coursework
- In-course test
- Homework assignments (3)
|
60%
40%
|
| |
|
|
| CS34Q |
Language
Processors |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
I |
| |
|
| Pre-requisites:
|
CS20Rand
CS27Q |
| |
|
| Syllabus: |
Syntactic
Processing:
- Context Free Grammars: Definition, BNF notation, ambiguity,
parse trees and derivations
- Regular Expressions: Definition, JLex (a lexing tool)
- Parsing: top down (recursive descent and LL(k))
- Parsing: bottom up (LR(k), LALR(1) and SLR parsers)
Semantic Representation and Processing:
- Operational vs Denotational semantics
- Postfix: an example of a stack-based programming language
- Syntax-directed translation
- Design of Intermediate Representations (IR)
- Interpretation by IR traversal
Features of Programming Languages:
- Typing: static vs. dynamic
- Scoping: static vs dynamic
- Evaluation: lazy vs. eager
- Parameter passing conventions
- Data allocation strategies
- First class citizens (objects)
- Tail recursion
- Garbage collection
|
| |
|
| Evaluation: |
One
2-hour written paper
Assignments (4)
Group Projects |
40%
40%
20% |
| |
|
|
| CS35A |
Database
Management Systems |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
Open |
| |
|
| Pre-requisites:
|
CS20S
|
| |
|
| Syllabus: |
- Intrduction to database concepts:
- Goalsof Database Management Systems
- Logical and physical organizations
- Schema and subschema, trade-offs between utilization
of data
- Control of data.
- Database Design
- Overview of the desing process
- Database design and the Entity-Relationship model
- ER diagrams
- Constraints
- Reduction to relational schema
- Data Normalization
- Features of a good relational design
- Functional Dependency Theory
- Decomposition using functional dependencies
- Normal Forms
- First
- Second
- Third
- Boyce COdd Normal Form (BCNF)
- Fourth Normal Form
- Description/Manipulation Languages:
- Relational algebra
- Relational calculus
- Structured Query Languages - SQL
- Query Optimization
- Application Design and Devlopment
- User Interface and Tools
- Web Interface to a database
- Authorization in SQL
- Application Security
- Current trends
- Distributed systems
- Object-oriented systems
- Knowledge-based systems
|
| |
|
| Evaluation: |
One
2-hour written paper
Coursework
- In-course test
- Project
|
60%
40%
|
| |
|
|
| CS35Q |
Information
Systems in Organisations |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
Open |
| |
|
| Pre-requisites:
|
CS22Q |
| |
|
| Syllabus: |
- Characteristics Organization
- Business Functions
- Management Hierarchy
- Business Process
- Information Systems
- Types of applications
- Enterprise systems
- Supply Chain Management Systems
- Customer Relationship Management Systems
- Knowledge Management Systems
- Information Systems and Business Startegy
- Coporate strategy
- Information Systems strategy
- Strtegic information
- Information Technology Infrastructure
- Computer hardware
- System software
- Data management
- Tlecommunication networks
- IT for business intelligence gathering
- Data mining
- Artificial Intelligence
- Environment Scanning
- Internet and Other IT Innovations
- E-Commerce
- E-Business
- Collaborative Commerce
- Information Systems Delivery
- Concepts
- Evaluation and selection
- Alternative Approaches
- Process and Project Management
- Managing Information Systems
- Information system staff
- Information systems security and control
- Disaster planning and recovery
- Ethics and social issues
|
| |
|
| Evaluation: |
One 2-hour written paper
Coursework
- In-course test
- Homework assignments (3 or 4) |
60%
40% |
| |
|
| CS35R |
User
Interface Design |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
II |
| |
|
| Pre-requisites:
|
CS22Q
and CS27Q |
| |
|
| Syllabus: |
Overview
of HCI |
| |
- The
role of user interfaces in computer applications.
- History
of human-computer interaction (HCI) and user interface (UI)
systems.
- Human
Factors: perception, movement, and cognition. Ergonomics.
- Contextual
issues in HCI: culture, communication, and organizations.
-
HCI models. UI paradigms: command, graphical user interface
(GUI), etc. UI Guidelines.
|
| |
UI
Environments |
| |
- Overview
of graphics systems, display devices, input devices.
- GUI
system architecture, event driven interaction model. UI
toolkits.
- Collaborative
Systems. Embedded Systems.
|
| |
UI
Development Methods |
| |
- UI
development cycle: investigation, design, prototyping, evaluation,
implementation.
- Developing
UI requirements: inquiry methods, developing task and workflow
models.
- Information
collection and analysis methods.
- Prototyping:
storyboarding, implementation.
- Evaluation
methods: heuristic, observational, emperical.
|
| Evaluation: |
One
2-hour written paper
In-course test (1 or 2)
Group laboratory/project reports
Individual projects/reports/presentations |
60%
10%
20%
10% |
| |
|
|
| CS36R |
Compiler
Optimization |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
II |
| |
|
| Pre-requisites:
|
(CS21R
or CS23Q) and CS34Q |
| |
|
| Syllabus: |
- Semantic
Representation and Processing
- Design
of Intermediate Representation (IR)
- Semantic
checking: arity, bounds, type
- Type
Interfacing
- Intermediate
Languages
- Register
Transfer Language
- A
reference Intermediate Language (IL)
- Code
Generation
- Program
organization: Code and Data segments
- Storage
allocation
- Conditionals
- Procedure
calls
- Creating
an Executable
- Binary
formats
- Linking
and Loading
- Shared
object libraries
- Optimization
- Register
allocation and assignment
- Control-flow
graphs
- Optimizing
transformations (e.g. common subexpression elimination
(CSE), constant folding and propagation, code motion)
|
| |
|
| Assessment: |
One
2-hour written paper
Coursework
- Individual Project
- Group project
- Written homework assignments |
40%
60%
10%
20%
30% |
| |
|
| CS37R |
Theory
of Computation |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
I or II |
| |
|
| Pre-requisites:
|
CS20S |
| |
|
| Syllabus: |
- Computability
- Regular languages (DFA, NFA, Regular Expressions)
- Context Free Languages (CFGs, PDAs)
- Decidable languages (Turing Machines)
- Church-Turing thesis (Lambda calculus, Register Machines,
Logic)
- Turing reducibility and Mappng reducibility
- Undecidability
- Complexity Theory
- Distinction between time and space cpmlexity
- Definitions of complexity classes: L, P, NP, PSPACE,
EXPTIME
- Effect of Nondeterminism on Space and TIme complexity
- Polynomial time reducibility
- Hardness and completeness relative to various complexity
classes (e.g. NP-hardness, NP-completeness)
- Example NP-complete problems
|
| |
|
| Assessment: |
One
2-hour written paper
Coursework
- In-course test
- Written homework assignments (5) |
60%
40%
5%
35% |
| |
|
| CS39Q |
Group
Project |
| Core?:
Yes |
Credits: 4 |
Level:
III |
Semester:
I & II |
| |
|
| Pre-requisites: | | |