 |
|
Level
I:
|
CS11Q, CS11R
|
|
Level
II:
|
CS20R, CS20S, CS21R, CS21S,
CS22Q, CS23Q, CS27Q,
CS28Q, CS24W |
|
Level
III:
|
CS31A, CS32Q,
CS33Q, CS34Q, CS34W,
CS35A,
CS35Q, CS35R, CS36R,
CS37R,CS38Q, CS39Q |
|
|
|
| NB:
For information on the Computer Science B.Sc. Programe check the
following: |
|
|
Core
Courses:
| Course Code |
Comment |
CS11Q/COMP1125
CS11R/COMP1160
|
Replaces
CS11A
Replaces CS11B
|
CS20S/COMP2101
CS20R/COMP2111
CS22Q/COMP2140
|
Pre-requisite
for most advanced courses
Only for students starting the programme in 2008
|
| CS21R/COMP2230
or CS23Q/COMP2240 |
CS21R/COMP2230
requires CS21S/COMP2220 (or P24K) also. |
| CS39Q/COMP3900 |
Offered
in all semesters |
|
Note: Credit may be
given for only one of CS21R/COMP2230 or CS23Q/COMP2240.
MS386 cannot be credited with any Computer Science courses.
Electives:
Any additional 12 credits at Level 3. Students must have at
least 16 Level 3 credits in all (including CS39Q) in order to satisfy
the requirements of the major.
For each Computer Science course, students must pass the exam and
course-work components separately, in order to pass the course.
Students who wish for a more in-depth treatment of computer hardware
are encouraged to take CS21R/COMP2120 instead of CS23Q. Note
that P24K is equivalent to CS21S/COMP2220, so students double majoring
with Electronics are particularly well positioned to take
CS21R/COMP2230.
A minor in Computer
Science requires sixteen (16) credits from Part II
Computer Science courses. These must include CS20R/COMP2111,
CS20S/COMP210, CS22Q/COMP2140, and CS23Q/COMP2240 or
CS21R/COMP2230.
|
| CS11Q/COMP1125
|
Introduction to Computer Science I |
| Core?:
Yes |
Credits:
6
|
Level:
I
|
Semester:
I |
| |
|
| Pre-requisites:
|
Any
of the Following: |
|
|
- CAPE (or
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 CAPE(or A-Level) Computer Science
|
| Syllabus: |
1.
Building Abstractions
a. Computational Processes
• Primitive Operations
•
Special Forms for naming, conditional execution
•
Procedures as sequences of operations
•
Recursion and Iteration
• Lexical scoping and Nested Procedures
b. Higher-order procedures
•Customising Procedures with procedural arguments
•
Creating new functions at run-time
c. Compound Data: Pairs, Lists, and Trees
d. Abstract Data Types
2. Controlling Interactions
• Generic operations
• Self-Describing Data
• Message Passing
• Streams and Infinite Data Structures
•
Object-oriented Programming
3. Meta-linguistic Abstraction
• Interpretation of programming languages
• Machine model
•
Compilation
•
Embedded Languages.
|
| |
|
| Evaluation: |
One
2-hour written paper
Course work
- 1 In-course Test
-5 Assignments
-Weekly labs
Students are required to pass the coursework and the final examination
separately in order to pass the course. Attendance at tutorials and lab
sessions is mandatory. |
60%
40% |
| |
|
|
| CS11R/COMP1160 |
Introduction
to Computer Science II |
| Core?:
Yes |
Credits: 6 |
Level:
I
|
Semester:
II |
| |
|
| Pre-requisites:
|
CS11Q/COMP1125 |
| |
|
| |
|
| Syllabus: |
Object-Oriented Programming
Comparison of programming paradigms at the conceptual level.
Objects and classes. Methods, message passing. Instance and class
variables.
Encapsulation and information-hiding, data and control abstraction.
Imperative control structures, assignment/state, parameter passing
models. Primitive types.
classes.
Multiple inheritance, interfaces. Templates/Generics.
Using APIs, class libraries. Modules/packages. Name space resolution
mechanisms.
Array and string processing. I/O processing.
Concept of pointers and references. Simple linked structures.
Collection classes and Iterators.
OO Testing. Debugging tools.
Object-Oriented
Design Methods
Introductory object-oriented analysis
and design using simple CRC cards, UML class diagrams.
Relationship of OOD and top-down/bottom-up design.
Introduction to the concept of simple design patterns, e.g. Iterator,
Listener.
Introduction to the concept of frameworks and design reuse.
Graphics
and GUI Programming, Web Concepts and Objects
Introduction to GUI programming. Event-driven programming.
Exception handling.
Use of simple graphical libraries, and simple animation programming.
Basic web architecture concepts and HTML.
Simple embedded client-side objects such as applets and scripts.
|
| |
|
| Evaluation: |
One
2-hour written paper
Course work
- 5 Quizzes (5%)
- In-course test (10%)
- 10 Labs, 4 Projects (35%)
Students are required to pass the coursework and the final examination
separately in order to pass the course. |
50%
50% |
| |
|
|
| CS20R/COMP2111 |
Analysis
of Algorithms |
| Core?:
Yes |
Credits:
4 |
Level:
II |
Semester:
II |
| |
|
| Pre-requisites:
|
CS11Q/COMP1125
and CS11R/COMP1160 |
| |
|
| 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: |
One
2-hour written paper
Coursework
- Mid-term
- Assignments (3)
- Projects (2) |
60%
5%
15%
20% |
| |
|
|
| CS20S/COMP2101 |
Discrete
Mathematics for Computer Science |
| Core?:
Yes |
Credits: 4 |
Level:
II |
Semester:
I |
| |
|
| Pre-requisites:
|
CS11Q
/COMP1125 and CS11R/COMP1160 |
| |
|
| Syllabus: |
Background
• 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: |
One
2-hour written paper.
Course work (in-course test and assignments) |
60%
40% |
| |
|
|
| CS21R/COMP2230 |
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/COMP2101 |
| |
|
|
| 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: |
One
2-hour Exam
Course work |
60%
40% |
| |
|
|
| CS21S/COMP2120 |
Digital
Logic Design |
| Core?:
|
check table
above
|
Credits:
4 |
Level:
II |
Semester:
I |
| |
|
|
| Note: |
This
course is the same as P24K. Students will not
receive credit for both courses. |
| |
|
| Pre-requisites:
|
CS11Q/COMP1125
and CS11R/COMP1160 |
| |
|
|
| Syllabus |
Transistors;
analogue vs. digital signals
Number Systems and Codes
• Binary, decimal, octal and hexadecimal
systems and their conversion
• Binary-Coded-Decimal (BCD) code.
• Alphanumeric codes. ASCII.
• Fixed and floating point representations
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
• Finite State Machines
|
|
| |
|
|
|
| Evaluation: |
One
2-hour written paper
Coursework |
60%
40% |
| |
|
|
|
| CS22Q/COMP2140 |
Software
Engineering |
| Core?:
No |
Credits:
4 |
Level:
II |
Semester:
I |
| |
|
|
| Pre-requisites:
|
CS11Q/COMP1125
and CS11R/COMP1160 |
| |
|
|
| 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/COMP2240 |
Computer
Organization |
| Core?:
Yes |
Credits: 4 |
Level:
II |
Semester:
II |
| |
|
| Pre-requisites:
|
CS11Q/COMP1125
and CS11R/COMP1160 |
| |
|
| 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% |
|
|
|
| CS24W/COMP2180 |
Web Design
& Programming I |
| Core?:
No |
Credits:
4 |
Level:
II |
Semester:
II |
|
|
|
|
| Pre-requisites: |
CS11Q/COMP1125
and CS11R/COMP1160 |
|
|
|
|
|
|
Syllabus:
|
Networking
concepts, Internet protocols -
TCP/IP. DNS, MIME types.
XHTML, dynamic XHTML, CSS, DOM.
Overview of website design principles: requirements, concept design,
implementation, testing.
Overview of website UI design: low-fidelity prototyping, layout, use of
colour, fonts, controls.
Server-side frameworks and languages, client-side languages. Basic
session tracking.
Introduction to three-tier architecture.
Fundamental web frameworks and design patterns for the web.
Overview of web server architecture and web services standards.
Web database connectivity.
Overview of principles, design and frameworks for e-commerce.
Overview of network security issues, ethical and social issues.
Introduction to multimedia for the web.
Introduction to mobile and wireless web platforms.
|
|
|
|
|
|
|
| Evaluation: |
One
2-hour written paper
Coursework
-In-course test(5%)
-10 Labs, 5 Projects (45%)
Students are required to pass the coursework and final examination
separately in order to pass the course. |
50%
50% |
|
|
|
|
Back to Top |
| *CS27Q/COMP2160 |
Object-oriented
Programming |
| Core?:
Yes |
Credits: 4 |
Level:
II |
Semester:
I |
| |
*Not offered after 2008/2009 Cannot be credited with
CS11R/COMP1160 |
| Pre-requisites:
|
CS11A1110 and CS!!B/COMP1120 |
| |
|
| 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/COMP2170 |
Object
Technology |
| Core?:
No |
Credits: 4 |
Level:
II |
Semester:
II |
| |
|
| Pre-requisites:
|
CS11Q/COMP1125
and CS11R/COMP1160 |
| |
|
| 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/COMP3100 |
Operating
Systems |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
I |
| |
|
| Pre-requisites:
|
CS20R/COMP2111
and (CS21R/COMP2230 or CS23Q/COMP2240) |
| |
|
| 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/COMP3150 |
Computer
Networking and Communication |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
I |
| |
|
| Pre-requisites:
|
CS20R/COMP2111
and (CS21R/COMP2230 or CS23Q/COMP2240) |
| |
|
| 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% |
| |
|
|
| CS32R/COMP3160 |
Computer
& Network Security |
| Core?:
No |
Credits:
4 |
Level:
III |
Semester:
2 |
|
|
| Pre-requisites: |
CS32Q/COMP3150 |
|
|
|
|
| Syllabus: |
Confidentiality,
integrity and availability: the pillars of security.
The ethics issues facing the security professional.
Physical access to information resources: secure sites, security
policies, backups, disaster recovery
The human factor: social engineering
Malware: viruses, worms, Trojan horses, mailers etc
Penetration testing: threat discovery, assessment and system hardening.
Confidentiality, integrity and non-repudiation: the use of cryptography
in security (hash functions, message digests, public/private key
cryptography)
Tools for securing systems and preventing and detecting attacks:
firewalls, IDSes, anti-malware (antivirus, anti-spyware, anti-rootkit)
|
|
|
|
|
| Evaluation: |
One
2-hour written paper
Coursework
-Assignments (10%)
-In-course test (10%)
-Project (20%)
Students are required to
pass the coursework and the final examination separately in order to
pass the course.
|
|
60%
40% |
|
|
|
Back to Top |
| CS33Q/COMP3160 |
Introduction
to Artificial Intelligence |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
I |
| |
|
| Pre-requisites:
|
CS20R/COMP2111
and CS20S/COMP2101 |
| |
|
| 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/COMP3651 |
Language
Processors |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
I |
| |
|
| Pre-requisites:
|
CS20R/COMP2111and
CS27Q/COMP2160 |
| |
|
| 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
Coursework
- 4 Assignments (40%)
- Group Projects (20%) |
40%
60%
|
| |
|
|
| CS34W/COMP3180 |
Web Design
& Programming II |
| Core?:
No |
Credits:
4 |
Level:
III |
Semester:
II |
|
|
| Pre-requisites: |
CS24W/COMP2180 |
|
|
|
|
| Syllabus: |
DOM. XML, XSLT, AJAX.
Web application design
principles: requirements, concept design, implementation, testing.
Web application UI design: low-fidelity prototyping, layout, use of
colour, fonts, controls.
Further server-side frameworks and languages, client-side languages.
Session tracking.
n-tier architecture for the web.
Service-oriented architectures.
Web frameworks and design patterns for the web.
Web server architecture and web services standards.
Principles, design and frameworks for e-commerce.
Web security issues: cross-site scripting, SQL injection, phishing
Web network security issues, ethical and social issues.
Multimedia for the web.
Mobile and wireless web platforms.
|
|
|
|
|
| Evaluation: |
One 2-hour
written paper
Coursework
- 5 Projects (60%) |
|
40%
60% |
|
|
|
Back to Top |
| CS35A/COMP3160 |
Database
Management Systems |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
II |
| |
|
| Pre-requisites:
|
CS20S/COMP2101
|
| |
|
| 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/COMP3110 |
Information
Systems in Organisations |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
II |
| |
|
| Pre-requisites:
|
CS22Q/COMP2140 |
| |
|
| 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/COMP3170 |
User
Interface Design |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
II |
| |
|
| Pre-requisites:
|
CS22Q/COMP2140
or CS27Q/COMP2160 or CS24W/COMP2180 |
| |
|
| 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/COMP3660 |
Compiler
Optimization |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester:
II |
| |
|
| Pre-requisites:
|
(CS21R/COMP2230
or CS23Q/COMP2240) and CS34Q/COMP3651 |
| |
|
| 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(10%)
- Group project(20%)
- Written homework assignments(30%)
*CS36R/COMP3660 is
not offered for the 2008/2009 academic year
|
40%
60%
|
| |
|
| CS38Q/COMP3800 |
Real-Time
Embedded Systems
(Software
+ HW)
|
| Core?:
No |
Credits:
4 |
Level:
III |
Semester: I |
|
|
| Pre-requisites: |
CS21S/COMP2220
and CS21R/COMP2230 |
|
|
|
|
| Syllabus: |
Overview of Embedded
Systems
Models of computation used in designing Embedded Systems:
State Machines, State Charts, UML
Specification of Embedded Systems
Hardware/Software Co-design Concepts
Organization of Embedded Systems
Embedded Inputs/Outputs: Characterization and Methods
Embedded Volatile and Non-Volatile memory dev ices
Fundamentals of Real-time theory
Scheduling executions of tasks
Real-time Synchronization and Implementation Challenges
HW/SW Architectures for real-time services
CPU architectural effects on Real-time performances
Architecture of existing embedded real-time OS: uClinux, uCOS, VxWorks,
RTEMS, Windows CE.net, and ecos.
Embedded Internet
Case studies: Applications of Embedded Systems in robotics, medicine
and telecommunications.
Development of software tools for Embedded Systems
Fault-tolerant Embedded Systems
Organization:
a. Lectures
b. Tutorials
c. Labs and project
|
|
|
|
|
| Assessment: |
One 2-hour
written
paper
Coursework
- In-course test (20%)
- Labs (10%)
- Final Project (30%)
|
|
40%
60% |
|
|
|
Back to Top |
| CS37R/COMP3701 |
Theory
of Computation |
| Core?:
No |
Credits: 4 |
Level:
III |
Semester: II |
| |
|
| Pre-requisites:
|
CS20S/COMP2101 |
| |
|
| 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(5%)
- 5 Written homework assignments (35%)
|
60%
40%
|
| |
|
| CS39Q/COMP3900 |
Group
Project |
| Core?:
Yes |
Credits: 4 |
Level:
III |
Semester:
I & II & III |
| |
|
| Pre-requisites:
|
1.
CS20R/COMP2111 and CS22Q/COMP2140
&
2. 8 CS credits from level 2 or 3
|
| |
|
| Syllabus/Content: |
Groups
of 2-4 students implement a substantive software system under the
supervision of a staff member. The software may address a
problem in any domain, but must meet minimum standards of design and
functionality, appropriate for a capstone course of a B.Sc. degree
|
| |
|
| Assessment: |
The
final mark for each project depends on the
following:
Mid-term
presentation
10%
Final
presentation
15%
Demonstration
15%
Report
50%
Web
Page
10%
Students will be asked to assess their peers and themselves on
different aspects of the project. Those assessments are
combined with a peer assessment weighting from the supervisor to
determine, for each student, an adjustment to the base score of the
group.
|
| |
|
|
|