UWI Crest Campus Image: Mona Curve image for menu aesthetics
 
Fractal image
title image: Mathematics and Computer Science Department
Search |
|
|
|
|
|
|
|
|
red colored bar
grey colored bar
You are here: FPAS -> DMCS -> Computer Science Section -> BSc Course Outlines
 

Title image: Computer Sciecne BSc COurse Outlines
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.
 
 
Course Outlines
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: 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: 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: 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: 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: 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: Level: II Semester: Open
     
Pre-requisites: CS11A and CS11B
     
Syllabus:
  1. Introduction to Software Engineering
    • Overview and relevance of Software Engineering.
    • Professional and ethical responsibility.

  2. Process Models
    • Sequential, iterative/incremental and rescue-based paradigms.
    • Process activities.

  3. Project Management
    • Project planning
    • Project scheduling

  4. Risk Analysis
    • Identification, analysis and planning

  5. Software Requirements
    • Preparing software requirements document
    • Requirement elicitation, analysis and management
    • System models

  6. Object Oriented Software Design
    • System modeling using UML
    • CRC cards

  7. Verification and Validation
    • Static and dynamic models

  8. Testing
    • System and dynamic methods
    • Test case design

  9. 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: 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: 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: 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: Level: III Semester: Open
   
Pre-requisites: CS20R and (CS21R or CS23Q)
   
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 Computer Networking and Communication
Core?: No   Credits: Level: III Semester: Open
   
Pre-requisites: CS20R and (CS21R or CS23Q)
   
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%
   
CS33Q Introduction to Artificial Intelligence
Core?: No   Credits: Level: III Semester: Open
   
Pre-requisites: CS20R and CS20S
   
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 Language Processors
Core?: No   Credits: 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: Level: III Semester: Open
   
Pre-requisites: CS20S
   
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 Information Systems in Organisations
Core?: No   Credits: Level: III Semester: Open
   
Pre-requisites: CS22Q
   
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 User Interface Design
Core?: No   Credits: 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: 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: Level: III Semester: I or II
   
Pre-requisites: CS20S
   
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
- Written homework assignments (5)

60%
40%
5%
35%
 
CS39Q Group Project
Core?: Yes   Credits: Level: III Semester: I & II
   
Pre-requisites: