Close Menu

Course Outlines

Title image: Computer Sciecne BSc COurse Outlines

Level I:
CS11Q, CS11R
Level II:
CS20R, CS20S, CS21R, CS21S, CS22Q, CS23Q,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. 



Course Outlines
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 Units 1 & 2 or
  • M08B and M08C or
  • EC14C or
  • 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) Units 1 & 2 Computer Science or CCCJ Associate degree in MIS
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: 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

I
ntroduction 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: Level: II Semester: II
 
Pre-requisites: 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: Level: II Semester: I
 
Pre-requisites: 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: 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: Level: II Semester: I
   
Note: This course is the same as P24K. Students will not receive credit for both courses.
   
Pre-requisites: 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?: Yes Credits: Level: II Semester: I
   
Pre-requisites: 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: Level: II Semester: II
 
Pre-requisites: 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: Level: II Semester: II
       
Pre-requisites: 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%
 
   
CS28Q/COMP2170 Object Technology
Core?: No   Credits: Level: II Semester: II
 
Pre-requisites: CS11R/COMP1160
   
Co-requisites: CS22Q/COMP2140
   
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: Level: III Semester: I
 
Pre-requisites: CS20R/COMP2111 and (CS21R/COMP2230 or CS23Q/COMP2240)
   
Syllabus:
  1. 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
  2. Basic Priniciples
    • Structuring methods
    • Abstractions, processes and resources
    • Design of application programming interfaces (APIs)
    • Device organizatoin; interrupts
    • User/system state transitions
  3. 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
  4. 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
  5. Scheduling
    • Preemptive and nonpreemptive scheduling
    • Scheduling policies
    • Processes and threads
    • Real-time issues
  6. 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
  7. Device management
    • Characteristics of serial and parallel devices
    • Abstracting device differences
    • Buffering strategies
    • Direct memory access
    • Recovery from failures
  8. 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
  9. 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: Level: III Semester: I
 
Pre-requisites: CS20R/COMP2111 and (CS21R/COMP2230 or CS23Q/COMP2240)
   
Syllabus:
  1. 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

  2. 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

  3. Transport Layer
    • Tansport layer services
    • Connectionless transport: UDP
    • Principles of reliable data transfer
    • Connection-oriented transport: TCP

  4. Network Layer
    • Virtual circuits and datagram networks
    • Routers
    • IP protocol
    • Routing algorithms

  5. Link Layer
    • Error detection and correction
    • Multiple access protocols
    • Link layer addressing
    • Ethernet
    • Hubs and switches

  6. 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: 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%


   
CS33Q/COMP3160 Introduction to Artificial Intelligence
Core?: No   Credits: Level: III Semester: I
 
Pre-requisites: CS20R/COMP2111 and CS20S/COMP2101
   
Syllabus:
  1. Introduction to AI
    • Overview and history of AI
    • Philosophical issues

  2. Introduction to Prolog


  3. Search
    • Search in prolog

  4. Game Playing


  5. Knowledge representation and reasoning
    • Logic
    • Production rules
    • Structured objects

  6. Planning


  7. Introduction to Expert Systems


  8. Knowledge Aquisition in Expert Systems


  9. 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: Level: III Semester: I
 
Pre-requisites: CS20R/COMP2111
   
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: 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%
     
CS35A/COMP3160 Database Management Systems
Core?: No   Credits: Level: III Semester: II
 
Pre-requisites: CS20S/COMP2101
   
Syllabus:
  1. Intrduction to database concepts:
    • Goalsof Database Management Systems
    • Logical and physical organizations
    • Schema and subschema, trade-offs between utilization of data
    • Control of data.
  2. Database Design
    • Overview of the desing process
    • Database design and the Entity-Relationship model
    • ER diagrams
    • Constraints
    • Reduction to relational schema
  3. 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
  4. Description/Manipulation Languages:
    • Relational algebra
    • Relational calculus
    • Structured Query Languages - SQL
    • Query Optimization
  5. Application Design and Devlopment
    • User Interface and Tools
    • Web Interface to a database
    • Authorization in SQL
    • Application Security
  6. 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: Level: III Semester: II
 
Pre-requisites: CS22Q/COMP2140
   
Syllabus:
  1. Characteristics Organization
    • Business Functions
    • Management Hierarchy
    • Business Process
  2. Information Systems
    • Types of applications
    • Enterprise systems
    • Supply Chain Management Systems
    • Customer Relationship Management Systems
    • Knowledge Management Systems
  3. Information Systems and Business Startegy
    • Coporate strategy
    • Information Systems strategy
    • Strtegic information
  4. Information Technology Infrastructure
    • Computer hardware
    • System software
    • Data management
    • Tlecommunication networks
  5. IT for business intelligence gathering
    • Data mining
    • Artificial Intelligence
    • Environment Scanning
  6. Internet and Other IT Innovations
    • E-Commerce
    • E-Business
    • Collaborative Commerce
  7. Information Systems Delivery
    • Concepts
    • Evaluation and selection
    • Alternative Approaches
    • Process and Project Management
  8. 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: Level: III Semester: II
 
Pre-requisites: CS22Q/COMP2140 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: 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: Level: III Semester: I
   
Pre-requisites: 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%
     
CS37R/COMP3701 Theory of Computation
Core?: No Credits: Level: III Semester: II
 
Pre-requisites: CS20S/COMP2101
   
Syllabus:
  1. 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
  2. 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: 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.


 
Top of Page