MODULE SPECIFICATION Template Guidance - … · Web viewBehrouz A. Forouzan, Richard F. Gilberg...

89
School of Computer Science UNDERGRADUATE COMPUTER SCIENCE MODULES FOR 2011-2012 Full Year Module Module Code Level Software Engineering Group Project G52GRP 2 Individual Dissertation Single/Joint Honours G53IDS/J/Y 3 Autumn Semester Module Module Code Level Computer Systems Architecture G51CSA 1 Mathematics for Computer Science G51MCS 1 Requirements Engineering G51REQ 1 Programming G51PRG 1 Algorithmic Problem Solving G51APS 1 Unix and Software Tools G51UST 1 Software Engineering Methodologies G52SEM 2 Algorithms and Data Structures G52ADS 2 Introduction to Formal Reasoning G52IFR 2 Application Programming G52APR 2 Graphical User Interfaces G52GUI 2 Introduction to Image Processing G52IIP 2 Computer Vision G53VIS 3 System and Real-Time Programming G53SRP 3 Software Quality Management G53SQM 3 Compilers G53CMP 3 Simulation for Computer Scientists G54SIM 4 Page 1 of 2

Transcript of MODULE SPECIFICATION Template Guidance - … · Web viewBehrouz A. Forouzan, Richard F. Gilberg...

School of Computer Science UNDERGRADUATE COMPUTER SCIENCE MODULES FOR 2011-2012

Full Year

Module Module Code LevelSoftware Engineering Group Project G52GRP 2Individual Dissertation Single/Joint Honours G53IDS/J/Y 3

Autumn Semester

Module Module Code LevelComputer Systems Architecture G51CSA 1Mathematics for Computer Science G51MCS 1Requirements Engineering G51REQ 1Programming G51PRG 1Algorithmic Problem Solving G51APS 1Unix and Software Tools G51UST 1Software Engineering Methodologies G52SEM 2Algorithms and Data Structures G52ADS 2Introduction to Formal Reasoning G52IFR 2Application Programming G52APR 2Graphical User Interfaces G52GUI 2Introduction to Image Processing G52IIP 2Computer Vision G53VIS 3System and Real-Time Programming G53SRP 3Software Quality Management G53SQM 3Compilers G53CMP 3Simulation for Computer Scientists G54SIM 4

Spring Semester

Module Module Code Level

Page 1 of 2

Functional Programming G51FUN 1Database Systems G51DBS 1Foundations of Software Engineering G51FSE 1Object-Oriented Programming G51OOP 1Introduction to Artificial Intelligence G51IAI 1Web Programming and Scripting G51WPS 1Computer Communications and Networks G52CCN 2Concepts of Concurrency G52CON 2Machines and their Languages G52MAL 2C++ Programming G52CPP 2Human Computer Interaction G52HCI 2Operating Systems G53OPS 3Enterprise Level Computing G53ELC 3Computer Security G53SEC 3New Media Design G53NMD 3Decision Support Methodologies G53DSM 3Advanced Computer Communications G54ACC 4

Notes:

1. Modules offered in any semester are subjected to change as they depend on staff availability and enrollments from sufficient number of students.

2. The descriptions of the offered modules are current as and when this document is prepared but they may be subjected to modifications and additions by the module convenor.

3. Students may take modules offered by other Schools provided appropriate approval has been obtained from the Course Director of the School of Computer Science and the module convenor of the offering School, and subjected to the condition that you have met the prerequisites and corequisites of the selected module. A maximum of 20 credits of such modules can be taken in one academic year.

4. Descriptions of module not included in this document and other non-Computer Science modules can be reviewed at Nottingham’s Module Catalogue web site:

http://modulecatalogue.nottingham.ac.uk/nottingham/asp/main_search.asp

Page 2 of 70

MODULE OUTLINEAUTUMN 2010-2011

1. Module Code G51CSA

2. Title of Module Computer Systems Architecture

3. Number of credits 10

4. Level 1

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) G51PRG Programming

8. LecturerMr KR. SelvarajContact No: 03-8924-8139Room No: BB-60E-mail: [email protected]

9. Summary of Content The module aims to: give a broad understanding of the internal operation and structure of a modern

PC or workstation; show how a computer is built up from a relatively simple digital circuit by

successive elaboration to form a number of logical layers of functionality; show that hardware and software are often equivalent in this context; allow the students to appreciate the typical facilities and mechanisms

underlying the operation of various high-level programming operations and facilities;

allow the students to appreciate the key conceptual steps underlying the evolution or realisation of a conventional stored-program digital computer.

10. Learning Outcomes Knowledge and Understanding Ability to understand simple assembly language programs and the major

components (especially hardware) which make up a computer system. Professional Skills To be able to program in assembly language.

11. Weekly Programme

Page 3 of 70

WeekNo

LectureTopics

1Introduction & Concepts including Computer Evolution, performance & levels of abstraction, and von Neumann architecture.

2 Data and Program Representation I , Introduction to SPIM3 Data and Program Representation II; MIPS 32, Arithmetic, and System I/O.4 Computer Systems Organization5 Addressing modes and formats6 Binary Arithmetic operations, Assembly Language 7 Instruction set and formats8 Memory Systems. MIPS Procedure calling conventions and recursion.9 Interrupts, Exception and I/O

10 CPU and Computer Architecture including Instruction Pipelining, Caching, Parallel Architecture.

11 RISC- CISC Architecture12 Revision

12. Assessment details25% Coursework; 75% Written Examination

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publicati

on

Title of Book Edition

Publisher’s Name

ISBN

1David A.

Patterson, John L. Hennessy ;

with a contribution by

Peter J. Ashenden,

James R. Larus, Daniel J. Sorin,,

2009 Computer organization and

design : the hardware/softwa

re interface

3rd or 4th ed.

Elsevier/Morgan Kaufmann,

9780123744937

Suggested secondary texts

No

Name of Author(s)

Year of Publicatio

n

Title of Book Edition

Publisher’s Name

ISBN

1

2.

3.

Douglas E. Comer

M. Morris Mano

William Stallings

2005

1993

2003

Essentials of Computer

Architecture; Computer Systems

Architecture; Computer

Organization & Architecture

3rd or 4th ed.3rd ed.

6th ed.

Prentice Hall

PHI, Englewood Cliffs, N.J. Prentice Hall

Prentice Hall

0131964267

0131757385

0130493074

14. Web Linkhttp://sepang.nottingham.edu.my/~krselvaraj

1. Module Code

Page 4 of 70

G51MCS

2. Title of Module Mathematics for Computer Scientists

3. Number of credits 10

4. Level 1

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) None

8. LecturerTomas Maul (Dr)Contact No: 03-89248232Room No: BB64E-mail: [email protected]

9. Summary of ContentThe module covers mathematical concepts relevant to computer science:

Boolean algebra: truth tables, propositional calculus. Simple number theory: inequalities, floor and ceiling function, greatest

common divisor, modulo arithmetic. Elementary combinatorics. Sets, functions and relations: union, intersection, complementation of sets.

Bijections and surjections. Ordering relations. Hasse diagrams. Quantifiers. Sum and product. Universal and existential quantification (at this

stage, understanding of meaning of quantified expressions only). Simple induction on natural numbers (linked to recursion in G51APS).

10. Learning OutcomesKnowledge and Understanding

Understanding of basic mathematical concepts, definitions and notation.Intellectual Skills

The ability to understand and apply simple logical reasoning.Professional and Transferable Skills

The ability to evaluate available mathematical techniques and select those appropriate to a given problem.

11. Weekly Programme

Wee Lecture

Page 5 of 70

kNo

Topic

1Introduction to the module. Some puzzles and games.

2 Propositional Logic.3

Double Negation Elimination and Excluded Middle. Introduction to truth tables. Boolean Algebra.

4Number systems, order, floor, ceiling. Divisibility, quotient and remainder.

5Recursive Definitions. Euclid's Algorithm, Summations.

6Induction. Summary of Arithmetics.

7 Sets and Functions 18 Sets and Functions 29

Quantifiers and finite sets. The pigeonhole principle, binomial coefficients.

10Pascal's Triangle and Hilbert's Hotel. Modular Arithmetic.

11 Revision.

12. Assessment detailsCoursework 25%; Written Examination 75%.

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Norman L. Biggs

2003 Discrete Mathematics

2nd Oxford University Press

0198507178

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Douglas E. Ensley & J. Winston Crawley

2005 Discrete Mathematics: Mathematical Reasoning and Proof with Puzzles, Patterns, and Games.

1st Wiley 0471476021

14. Web Linkhttp://baggins.nottingham.edu.my/~kcztm/TeachG51MCS.html

Page 6 of 70

1. Module Code G51REQ

2. Title of Module Requirements Engineering

3. Number of credits 10

4. Level 1

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) None

8. LecturerTBAContact No: TBARoom No: TBAE-mail: TBA

9. Summary of Content This module introduces fieldwork as a means of understanding users and developing system requirements based on direct observations of user activities. It explores fieldwork methods, fieldwork data analysis and requirements specification.

10. Learning Outcomes Knowledge and Understanding Understanding of fieldwork approach and requirements specification.

Intellectual Skills Ability to conduct fieldwork, analyse findings and develop system requirements

based on observations and analysis. Professional Skills Ability to understand users and communicate with members of the design team.

Transferable Skills Enhanced skills in report writing, presentation planning, preparation, delivery

and critical reflection

11. Weekly ProgrammeTBD

Page 7 of 70

12. Assessment details2 courseworks each worth 50%

13. Resources

TBA

14. Web LinkTBA

1. Module Code G51PRG

2. Title of Module Programming

3. Number of credits 10

4. Level 1

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) G51CSA Computer Systems Architecture

8. LecturerChew Sze-Ker (Mr)Contact No: 03-89248140Room No: BB72E-mail: [email protected]

9. Summary of Content This module is part of the Programming theme in the School of Computer Science.

The basic concepts of programming including: problem solving, compiling, editing, debugging, elementary programming, conditionals, loops, functions and procedures, arrays and strings, direct and indirect access, memory and pointers, iteration and recursion and data structures. These concepts will be illustrated by practical example in a suitable language.

Please note: This is a non-compensatable module.

10. Learning Outcomes Knowledge and Understanding Understanding of the theory and practice of procedural and object-oriented

programming.

Intellectual Skills Understand and logically evaluate program requirements and specifictions.

Understand the complex ideas of programming solutions and relate them to particular problems.

Page 8 of 70

Professional Skills The ability to write procedural programs.

Transferable Skills The ability to solve problems using programming including mathematical

probems, to schedule and present their work and to retrieve additional learning material.

11. Weekly Programme

Week

No

LectureTopic

1 Introduction to C compiler/Getting started with GCC2 Procedures, Parameters, Values and Variables3 Operators and Precedence4 Conditionals and Loops5 Pointers and scanf()6 Arrays and Strings7 String Processing8 File Input/Output9 Structures

10 Heap arrays and Linked List

12. Assessment details

100% Weekly continuous assessments

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Vine, Michael A

2009 C programming for the absolute beginner

2nd Cengage Learning

1-598-63480-1

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Kanetkar, Yashavant

P

2008 Let us C 8th McGraw Hill

9781934015254

14. Web Linkhttp://moodle.nottingham.ac.uk

Page 9 of 70

1. Module Code G51APS

2. Title of Module Algorithmic Problem Solving

3. Number of credits 10

4. Level 1

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) G51MCS Mathematics for Computer Scientists

8. LecturerDr. Siang Yew ChongContact No: 03-89248148Room No: BB57E-mail: [email protected]

9. Summary of Content This module is based around two topics: (a) solving logic and other puzzles and (b) finding winning strategies for simple two-person games. Problem solving principles introduced are formal mathematical modelling of a problem (using elements of logic and graph theory), invariants and recursion and development of some algebraic manipulation skills.

10. Learning Outcomes Knowledge and Understanding How to approach novel problems and formulate a plan for their solution.

Intellectual Skills The art of effective reasoning Problem decomposition. Avoidance of case analysis. What to name and what not to name.

Professional Skills Problem analysis. Ability to identify and communicate relevant information.

Transferable Skills The art of effective reasoning, supporting, in particular, formulation and solution

of programming problems in sound mathematical terms.

Page 10 of 70

11. Weekly Programme

Week

No

LectureTopic

1 Introduction.2 Invariants.3 Crossing a River. 4 Games.5 Knights and Knaves.6 Induction.7 Coursework Discussion.8 Fake-Coin Detection. 9 Towers of Hanoi.

10 Revision. 11 Coursework Discussion.

12. Assessment detailsWritten Examination 100%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Roland Backhouse

2008 Algorithmic Problem Solving

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Paul Zeitz 2007 The Art and Craft of Problem Solving

2nd John Wiley and Sons

978-0-471-78901-7

2 Roland Backhouse

2003 Program Construction: Calculating Implementations from Specifications

1st John Wiley and Sons

978-0-470-84882-1

3 George Polya

1973 How to Solve It: A New Aspect of Mathematical Method

2nd Princeton University Press

978-0-691-08097-0

4 Zbigniew Michalewicz and Matthew Michalewicz

2008 Puzzle-based Learning: Introduction to critical thinking, mathematics, and problem solving

1st Hybrid Publishers

978-1-876-46263-5

Page 11 of 70

14. Web Linkhttp://baggins.nottingham.edu.my/~khczcsy/G51APS/G51APS.html

1. Module Code G51UST

2. Title of Module UNIX Software Tools

3. Number of credits 10

4. Level 1

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) G51PRG (Programming)

8. LecturerWang WeiContact No: 03-89248721Room No: BB63E-mail: [email protected]

9. Summary of Content Basic UNIX usage: windowing systems, file system navigation, text editing, useful commands (eg. man, mozilla, lpr), environment variables. Unix I/0 and file processing: pipes, redirections, grep and regular expressions, sed, awk. Unix shell scripting. Compilers, interpreters, debuggers, documentation systems with particular reference to programming languages used widely in the School's teaching (eg. Java). Software Engineering Tools: build management systems and version control systems. The use of UNIX shell scripting and software tools to create specific bespoke tools and components.

10. Learning Outcomes Knowledge and Understanding The theory of programming in a scripting language. The practice of programming. The strengths and weaknesses of software tools.

Intellectual Skills Understand complex ideas and relate them to specific problems or questions.

Professional Skills Write programs. The ability to evaluate available tools and select those that are fit for purpose within a given domain/scenario. The ability to work effectively and ethically with others, in particular in the use of version managment tools.

Transferable Skills The ability to solve problems. The ability to use appropriate tools to work productively in a collaborative environment.

11. Weekly Programme

Page 12 of 70

Week

No

LectureTopic

1 Introduction 2 The Unix Filestore3 Unix File Processing4 Editing Files and Emacs5 Processes6 Searching and Regular Expressions7 Unix Network Utilities8 Shell Programming9 The Sed Editor and Advanced Sed

10 The Awk Programming Language and More Advanced Awk11 Version Control and CVS12 Compilers, Interpreters and Debuggers13 UNIX Make14 Review

12. Assessment details1.5 hours written exam (75%) + coursework 25%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Arnold Robbins UNIX in a Nutshell

O’Reilly

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1Behrouz A. Forouzan, Richard F.

Gilberg

UNIX and Shell programming: a textbook 

2Graham Glass and King Ables

2003 Unix for Programmers and Users

3rd Prentice Hall

3Randal K. Michael

Mastering Unix shell scripting

4 Amir Afzal.2008

Unix Unbounded, A Beginning Approach 

5th

Prentice Hall

14. Web Linkhttp://baggins.nottingham.edu.my/~wangwei/teaching/G51UST.php

Page 13 of 70

1. Module CodeG52GRP

2. Title of Module Software Engineering Group Project.

3. Number of credits 20

4. Level 2

5. Semester in which module is taught and Assessment Period Semester AssessmentFull Year Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) None

8. LecturerV. P. Kallimani (Mr)Contact No: 03-89248141Room No: BB59E-mail: [email protected]

9. Summary of Content Students will be divided up into groups of around five or six students, and assigned a member of staff as their supervisor. Each supervisor will provide their group with a short written description of a computer application to be designed, programmed, and documented during the course of the module. Each group will have two meetings per week, one with their supervisor present, and one without. A couple of introductory lectures will also be given.

10. Learning Outcomes Knowledge and Understanding

Group projects may address topics in any area of the curriculum and so may address any of the knowledge and understanding outcomes

Intellectual Skills the ability to understand and logically evaluate requirements and

specifications the ability to think independently while giving due weight to the arguments

of others

Professional Skills the ability to understand and make use of software engineering

methodologies the ability to evaluate, select and deploy tools and techniques the ability to work effectively and ethically with users

Transferable Skills the ability to chair and minute meetings, work effectively in software

engineering groups, give short technical presentations and demonstrations, and co-author technical reports

11. Weekly Programme

Page 14 of 70

A typical sequence of lectures as below:Wee

kNo

LectureTopic

1 Overview: Aims, Organisation, Assessment2 Team Working and Group meetings3 Version Cotrol with Sub-version4 Project Management: How to Deliver?5 Giving an Effective Presentation 6 Report Writing and Peer Marking7 Enterprise-level Testing: Breaking Software for a Living8 No Lecture9 No Lecture

10 Group Project Open Day11 No Lecture

12. Assessment detailsGroup project deliverables: 2 written reports, software, trade-fair-style demonstration, presentation, peer assessment – 80%Individual reflective statement (individual report) – 20%

13. Resources Reference texts as relevant to the project topics.

14. Web LinkTo be given by the module convenor

1. Module Code G52SEM

Page 15 of 70

2. Title of Module Software Engineering Methodologies

3. Number of credits 10

4. Level 2

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) G51FSE Foundations of Software Engineering; G51ISE (2009/10)

7. Co-requisites for the module (if any) None

8. LecturerMr. KR. SelvarajContact No: 03-8924-8139Room No: BB-60E-mail: [email protected]

9. Summary of Content This module builds on the Foundations of Software Engineering module, and complements it with additional material designed to provide the practical skills necessary to effectively participate as a team in the Software Engineering Group Project. The module covers three main aspects of the software development process in depth:

The system analysis and design process: the Unified Modelling Language (UML) will be introduced and applied in the process of creating a formal software development design. Use-Case Analysis (UCA) and Data Flow Diagrams (DFDs) will be studied in depth, and related to the development process taking place in the Software Engineering Group Project.

The project management process: essential concepts and techniques in project management will be covered in depth, including Gantt charts, critical path analysis and the Program Evaluation and Review Technique (PERT). The module will include exercises in project tracking, utilising project management software tools, including producing project plans for Software Engineering Group Projects. Replanning and rescheduling in response to changes in a project implementation will be studied.

Software documentation: the practice of good software documentation will be demonstrated, in conjunction with documentation generation tools applicable to current development environments.

10. Learning Outcomes

Knowledge and Understanding Knowledge of the practice of constructing large systems. Understanding of the strengths and weaknesses of system specification, design

and implementation tools and resources.

Intellectual Skills

Page 16 of 70

The ability to effectively analyse requirements for a range of systems, using appropriate tools and techniques.

Professional Skills The ability to work effectively and ethically with users.Transferable Skills The ability to solve hardware/software analysis problems and write detailed

reports on the solutions adopted. The ability to use project management tools effectively and understand soft

issues of project management.

11. Weekly Programme

Week

No

LectureTopic

1 Introduction and Goals, Software Project Mnanagement, Vision and Scope2 Use Case Analysis3 Project Definition, Traditional Project Management4 Agile teams and Interactive approaches5 Estimating and Scheduling a project. An overview of prince 26 Tools and Infrastructure, SoftwareDevelopment Infrastructure for

successful projects7 Software Testing, TDD and Unit Testing with JUnit8 Domain Modeling, Project Monitoring9 Software Design, UML 2.0 as a design specification tool

10 Using design patterns, Achieving loose coupling, Clean code and refactoring

11 Automated build and test, Producing documentation12 Revision

12. Assessment detailsCoursework 40%; Written Examination 60%

13. Resources

Recommended Background Reading

No

Name of Author(s)

Year of Publication

Title of Book Edition Publisher’s Name

ISBN

1 Andrew Stellman

and Jennifer Greene

2006 Applied software project

management

1stO'Reilly Media

ISBN-10: 0596009488

2 Cockburn, Alistair

2001 Writing effective use

cases

1st Addison-Wesley

ISBN-110201702258

3 Kent Beck 2002 Test Driven Development

1st The Addison-Wesley

Signature Series

ISBN-10: 0321146530

14. Web Linkhttp://sepang.nottingham.edu.my/~krselvaraj

1. Module Code G52ADS

2. Title of Module

Page 17 of 70

Algorithms and Data Structures

3. Number of credits 10

4. Level 2

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) G51MCS Mathematics for Computer Scientists; G51OOP Object-Oriented Programming (G51PRG 2009/10)

7. Co-requisites for the module (if any) None

8. LecturerChew Sze-Ker (Mr)Contact No: 03-89248140Room No: BB72E-mail: [email protected]

9. Summary of Content This module introduces the basics of specifying abstract data types and using them to design programs. Commonly used data structures and algorithms are studied in depth. The emphasis is made on choosing data structures and algorithms appropriate for solving a given problem. It presents the mathematical analysis of time and space usage of algorithms using the big-Oh notation. Such mathematical analysis is then used to support algorithm design decisions. It presents the usage of pre/post conditions and loop invariants to aid in the design and implementation of algorithms. Specific algorithms and data structures may include, but are not limited to: stacks, queues and lists; trees and tree traversal methods; heaps, search trees; graph problems and graph algorithms such as shortest paths and minimum spanning trees.

10. Learning Outcomes Knowledge and Understanding The theory and practice of implementing algorithms; to know of and understand

the mathematical properties of algorithms. Intellectual Skills Ability to apply mathematical techniques to algorithms and data structures and

understand the their specifications Professional Skills Implementation of data structures and algorithms; evaluation and selection of

available tools, applications, algorithms and data structures that are suitable for a given domain/scenario.

Transferable Skills The ability to solve problems using a variety of data structures and algorithms;

to utilise mathematical techniques when necessary to achieve the above

11. Weekly Programme

Week

No

LectureTopic

1 Introduction, overview and module contents

Page 18 of 70

2 Algorithms and analysis, data structures/abstract data types; Sorting methods I: bubble sort, selection sort and insertion sort

3 Sorting methods II: merge sort and quick sort; Stacks 4 Queues; Recursion5 Linked list (single and double ended); Graph, DFS and BFS6 Shortest path algorithms, minimum spanning tree7 Topological sort; Hash table8 Heaps, heap sort, priority queue 9 Tree, tree traversal; Binary search tree, balanced binary

search tree part 1 (AVL tree)10 Balanced binary search tree part 2 (Red black tree); Multi-way

tree (2,3) and (2,3,4) trees 11 Revision and discussion of past exam papers

12. Assessment detailsCoursework 1 15%; Coursework 2 10%; Written Examination 75%

13. Resources

Suggested primary texts

No

Name of Author(s) Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Michael T.Goodrich and Roberto Tamassia

Data Structures and Algorithms in Java

3rd

Suggested secondary texts

No Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1

2

3

Shaffer, Clifford A.

Sahni, Sartaj

Introduction to algorithms

A practical introduction to data structures and algorithm analysis

Data structures, algorithms, and applications in Java

2nd MIT Press

Prentice Hall

McGraw-Hill

14. Web LinkTo be provided by the module convenor.

1. Module Code G52IFR

2. Title of Module Introduction to Formal Reasoning

3. Number of credits

Page 19 of 70

10

4. Level 2

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) G51FUN Functional Programming; G51MCS Mathematics for Computer Scientists

7. Co-requisites for the module (if any) None

8. LecturerMichael Chung (Mr)Contact No: 03-89248142Room No: BB58E-mail: [email protected]

y

9. Summary of Content This module introduces methods of formal reasoning relevant relevant for Computer Scientists. It continues and develops further themes of G51MCS and introduces a mathematical rigorous approach to program construction. To reflect the use of logic within Computer Science we employ a proof assistant (e.g. Coq) for the practicals and the exam. The module covers the following areas:

Proofs in propositional logic and predicate logic Classical vs. intuitionistic logic Reasoning about Bool Basic operations on types: cartesian product, disjoint union and function space. Natural numbers, primitive recursion and induction Lists, verification of list based programs Inductive representation of syntax trees Introduction to program specification and program correctness.

10. Learning Outcomes Knowledge and Understanding

Understanding of basic mathematical concepts, definitions and notation

Intellectual Skills The ability to understand and apply simple logical reasoning

Transferable Skills The ability to use mathematics to solve problems.

11. Weekly Programme

Week

No

LectureTopic

1 Introduction, overview and module contents 2 Coq Basics, Propositional Logic3 More Coq, Classical Logic4 Bool and Predicate Logic; General Predicate Logic

Page 20 of 70

5 More Predicate Logic6 Operations on Sets7 Peano Arithmetic; Some Algebra8 Primitive Recursion9 The omega hotel, diagonalisation

10 Lists11 Revision and discussion of past exam papers

12. Assessment detailsCoursework (25%) and a two-hour online exam (75%)

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Bertot, Yves & Castéran, Pierre

2004 Interactive Theorem Proving and Program Development: Coq'Art: The Calculus of Inductive Constructions

1st Springer 3-540-20854-2

Suggested secondary textsNot Available

14. Web Linkhttp://baggins.nottingham.edu.my/~kczmc/Teaching/G52IFR/

1. Module Code G52APR

2. Title of Module Application Programming

3. Number of credits 10

4. Level 2

Page 21 of 70

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) G51OOP Object-Oriented Programming; (G51PRG 2009/10)

7. Co-requisites for the module (if any) None

8. LecturerMichael Chung (Mr)Contact No: 03-89248142Room No: BB58E-mail: [email protected]

y

9. Summary of Content Builds on basic programming knowledge by showing how applications can be built through the use of various example Java APIs including: GUI programming, threads, networking, data processing, etc. Where appropriate, the underlying design patterns behind the APIs will be illuminated.

10. Learning Outcomes Knowledge and Understanding

Further understanding of the theory and practice of object-oriented programming.

Intellectual Skills Understand and logically evaluate program requirements and specifictions. Understand the complex ideas of programming solutions and relate them to

particular problems.

Professional Skills The ability to design and write object-oriented programs in Java.

Transferable Skills The ability to solve problems using object-oriented techniques, to schedule and present their work and to retrieve additional learning material

11. Weekly Programme

Week

No

LectureTopic

1 Introduction, overview and module contents 2 GUI Components I3 GUI Components II4 Multithreading 5 Networking6 Coursework Discussion7 Accessing Databases with JDBC

Page 22 of 70

8 Web Applications I9 Web Applications II

10 Design Patterns11 Revision and discussion of past exam papers

12. Assessment detailsCoursework 1 25%; Coursework 2 25%; Written Examination 50%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Deitel & Deitel 2007 Java How to Program

7th Pearson 0136132472

Suggested secondary textsNot Available

14. Web Linkhttp://baggins.nottingham.edu.my/~kczmc/Teaching/G52APR/

1. Module Code G52GUI

2. Title of Module Graphical User Interface

3. Number of credits 10

4. Level 2

5. Taught Semester and Assessment Period Semester Assessment

Page 23 of 70

Autumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) G51PRG Programming or G51OOP Object-Oriented Programming or G52APR Application Programming

7. Co-requisites for the module (if any) None

8. LecturerDr. Wang WeiContact No: 03-89248721Room No: BB63E-mail: [email protected]

9. Summary of Content The module focuses on how to implement graphical user interfaces. It will introduce key programming concepts and structures by considering in depth the Java Swing packages. The course will explore a wide range of components (from buttons to tables), and the Java 2D API, which allows developers to easily incorporate high-quality 2D graphics, text, and images in applications. The use of Integrated Development Environments (IDEs), which simplify the construction of graphical user interfaces, will be introduced and the advantages and disadvantages considered. The module will also discuss design guidelines for graphical interfaces.

10. Learning Outcomes Knowledge and Understanding Understanding of GUI programming concepts such as event handling and layout

management. Knowledge of the Java Swing and 2D APIs. Understanding of design guidelines for graphical interfaces. Intellectual Skills: Ability to exploit event based structuring techniques to drive applications.

Intellectual Skills Ability to exploit event based structuring techniques to drive applications.

Professional Skills Ability to develop graphical interfaces in Java using the Swing and Java 2D APIs.

Ability to apply good design principles in the development process.

Transferable Skills The ability to solve GUI implementation problems.

11. Weekly Programme

Week

No

LectureTopic

1 Introduction 2 A Simple Swing Example3 Windows and Events4 Events in Swing5 Widgets6 Components in Swing7 Layout8 Layout in Swing9 Abstract Widgets

10 Abstract Widgets Practice11 Graphical Design

Page 24 of 70

12. Assessment detailsCoursework 100%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Dan Olsen 2009 Building Interactive Systems: Principles for Human-Computer Interaction

1st Course Technology

978-1423902485

Suggested secondary texts

No Name of Author(s)

Year of Publication

Title of Book

Edition Publisher’s Name

ISBN

1-

- Creating a GUI With JFC/Swing

- Sun Java -

14. Web Linkhttp://baggins.nottingham.edu.my/~wangwei/teaching/G52GUI.php

1. Module Code G52IIP

2. Title of Module Introduction to Image Processing

3. Number of credits 10

4. Level 2

Page 25 of 70

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) G51MCS Mathematics for Computer ScientistsG51PRG Programming

7. Co-requisites for the module (if any) None

8. LecturerHo Sooi Hock (Mr)Contact No: 03-89248145Room No: BB71E-mail: [email protected]

9. Summary of Content This module includes the following topics: an overview of image processing and its applications, relations between image

processing and other closely related fields such as computer vision, computer graphics, image analysis and digital photography

fundamentals of digital images, elements of visual perception and human visual system, fundamentals of image formation and digital image acquisition

digital image processing theory and practice, including point processing, spatial filtering, image transforms and frequency domain processing, edge detection, image segmentation, fundamentals of image coding and compression

colour and colour imaging fundamentals, colour models and colour image processing

emerging digital imaging technologies including high dynamic range photography and computational photography

10. Learning Outcomes Knowledge and Understanding Experience implementing programs that manipulate images Awareness of limitations and appreciating the underlying mathematical

principles Intellectual Skills Apply knowledge of vision and image processing techniques to particular tasks

Professional Skills Develop a working knowledge of image processing algorithms and libraries Evaluate the applicability of various algorithms and operators to different tasks

Transferable Skills Address real problems and assess the value of their proposed solutions Retrieve and analyse information from a variety of sources and produce detailed

written reports on the result

11. Weekly Programme

Week

No

LectureTopic

1 Introduction, overview and module contents 2 Digital image fundamentals3 Point and histogram processing

Page 26 of 70

4 Spatial domain image filtering5 Image sharpening, edge detection and Hough transform6 Image filtering in the frequency domain7 Colour model and colour image processing8 Image segmentation 9 Image coding and image compression

10 3D transformation 11 Revision and discussion of past exam papersl

12. Assessment detailsCoursework 25%; Written Examination 75%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Gonzalez & Woods

2008 Digital Image Processing

3rd Prentice Hall 0-13-168728-X

Suggested secondary texts

No Name of Author(s)

Year of Publication

Title of Book Edition Publisher’s Name

ISBN

1 Efford 2000 Digital Image Processing Using Java

1st Addison-Wesley

0-20-159623-7

14. Web Linkhttp://sepang.nottingham.edu.my/~hsooihock/G52IIP/index.html

1. Module CodeG53IDS/IDY/IDJ

2. Title of Module Individual Dissertation Single Honours/Software Systems/Joint Honours

3. Number of credits 40 for IDS/IDY and 20 for IDJ

Page 27 of 70

4. Level 3

5. Semester in which module is taught and Assessment Period Semester AssessmentFull Year Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) None

8. LecturerK. R. Selvaraj (Mr)Contact No: 03-89248139Room No: BB60E-mail: [email protected]

9. Summary of Content Students are required to perform an individual project on a topic in computer science. Each student has a supervisor who is a member of the academic staff. The topic can be any area of the subject which is of mutual interest to both the student and supervisor. Topics can range from purely theoretical studies to practical work building a system for some third party, although most projects aim to provide a balance between the theoretical and practical aspects of the subject.

Page 28 of 70

10. Learning Outcomes Knowledge and Understanding

Individual projects may arise from any area of the curriculum and so may address any of the knowledge and understanding outcomes

Intellectual Skills the ability to think independently while giving due weight to the arguments

of others the ability to understand complex ideas and relate them to specific problems

or questions

Professional Skills enhanced programming abilities the ability to comprehend and apply software engineering methodologies

Transferable Skills the ability to plan, organisation and execute project work the ability to communicate their results to others

11. Weekly Programme Supporting lectures to be arranged by the module convenor and weekly meetings to be scheduled with the supervisors

12. Assessment detailsProject report in printed and electronic form (PDF). The source code must also be included in the submission – 80%Demonstration and presentation of project results – 10%Interim report and presentation of progress during the Autumn semester – 10%

1. Module Code G53VIS

Page 29 of 70

2. Title of Module Computer Vision

3. Number of credits 10

4. Level 3

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any)Compulsory: G51OOP - Object-Oriented Programming (or equivalent

programming experience, e.g. G51PRG).Recommended: G52IIP - Introduction to Image Processing. Background knowledge

of vision and image processing are an advantage.

7. Co-requisites for the module (if any) None

8. LecturerTomas Maul (Dr)Contact No: 03-89248232Room No: BB64E-mail: [email protected]

9. Summary of Content This module is part of the Graphics and Vision theme in the School of Computer Science. Building on G52IIP this module examines current techniques for the extraction of useful information about a physical situation from individual and sets of images. Particular emphasis is placed on the identification of objects, recovery of three-dimensional shape &motion, and the recognition of events. Topics covered include: advanced segmentation and feature extraction, motion computation and tracking, stereo vision and the use of hidden markov models in higher level analysis.

10. Learning OutcomesKnowledge and Understanding

Experience in implementing image processing and vision algorithms. Understanding of current techniques in image processing and computer vision and an awareness of their limitations. An appreciation of the underlying mathematical principles of computer vision.

Intellectual Skills Apply knowledge of computer vision techniques to particular tasks. Evaluate

and compare competing approaches to vision tasks.

Professional Skills Develop a working knowledge of image processing algorithms and libraries

and evaluate the applicability of various algorithms and operators to particular tasks.

Transferable Skills Apply knowledge of the methods and approaches presented to problem

domains use the available resources (libraries, internet, etc) to supplement the course material.

Page 30 of 70

11. Weekly Programme

Week Lecture Topic1

Introduction2 Segmentation as Clustering. Region-based Segmentation.3

Watersheds. The EM Algorithm.4

Binocular Stereo. Camera Calibration.5

Stereo Correspondence. Motion Analysis and Optic Flow.6

Computing Optic Flow. Issues in Optic Flow.7

Evaluation: Optic flow and segmentation. Introduction to Tracking.8

The Kalman Filter. Snakes.9

Particle Filters and Condensation.10

Event Detection and Hidden Markov Models.11 Revision.

12. Assessment detailsWritten Examination 75%Coursework 25%

13. Resources

Suggested primary textsNone.

Suggested secondary texts

No Name of Author(s)

Year of Publicat

ion

Title of Book Edition Publisher’s Name

ISBN

1 David A. Forsyth & Jean Ponce

2002 Computer Vision: A Modern Approach

1st Prentice Hall

0130851981

2 E. R. Davies 2005 Machine Vision: Theory, Algorithms, Practicalities

3rd Morgan Kaufmann

0122060938

14. Web Linkhttp://baggins.nottingham.edu.my/~kcztm/TeachG53VIS.html

Page 31 of 70

1. Module Code G53SRP

2. Title of Module System and Real Time Programming

3. Number of credits 10

4. Level 3

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) G51PRG Programming; G52CON Concepts of Concurrency

8. LecturerTBAContact No: TBARoom No: TBAE-mail: TBA

9. Summary of Content This module provides an overview of embedded and real-time systems, issues and programming. Topics covered include: introduction to real-time and embedded systems; designing for real-time systems; system and software reliability and fault-tolerance; real-time processes and real-time scheduling; schedulability analysis; the Real-Time Specification for Java (RTSJ); programming with clocks and time; real-time threads; asynchronous events; interfacing to hardware devices.

10. Learning Outcomes Knowledge and Understanding The practice of programming. The strengths and weaknesses of computer tools,

applications and other resources. The synergy of hardware and software in computer systems implementation.

Intellectual Skills Understand complex ideas and relate them to specific problems or questionsProfessional Skills Program in various paradigmsTransferable Skills The ability to solve problems

Page 32 of 70

11. Weekly Programme

Week

No

LectureTopic

1 Introduction, overview and module contents 2 Real time system, reliability, failure, and fault tolerance

techniques; Java, exceptions and threads3 Concurrency and reliability; Concurrency programming with

Java threads4 Concurrency control and communication; Java Concurrency I:

Synchronisation; Java Concurrency II: wait and notify5 Java clocks and time; Case Study 1: Mines drain system6 Introduction to Real Time Scheduling; RTSJ clocks and time7 Real time thread; RTSJ asynchronous events8 RTSJ deadlines and cost; Feasibility analysis9 Resource sharing; Case Study 2: Chemical industry

10 RTSJ memory areas and parameters; Hardware interfacing11 Revision and discussion of past exam papers

12. Assessment detailsWritten Examination 100%

13. Resources

Suggested primary texts

No Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Alan Burns and Andy Wellings

March 2001 Real-Time Systems and Programming Language

3rd Addison Wesley Longman

0201729881

Suggested secondary texts

No

Name of Author(s)

Year of Publicatio

n

Title of Book Edition

Publisher’s Name

ISBN

1Wellings, Andrew J

2004 Concurrent and real-time programming in Java

1st Wiley

14. Web LinkTBA

Page 33 of 70

1. Module Code G53SQM

2. Title of Module Software Quality Management

3. Number of credits 10

4. Level 3

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) G51FSE Foundations of Software Engineering

7. Co-requisites for the module (if any) None

8. LecturerChew Sze-Ker (Mr)Contact No: 03-89248140Room No: BB72E-mail: [email protected]

9. Summary of Content This module is part of the Software Engineering theme in the School of Computer Science. Computer software is present almost everywhere. The impact of software failure is often quite considerably so reliability and robustness is paramount when developing software. The importance of effective testing methodologies for quality assurance in the software industry has increased substantially in recent years.

This module introduces: Concepts and techniques for testing software and assuring its quality. Methods for software testing and quality assurance are integrated into all phases

of the software development process and it also extends to other aspects such as systems and hardware development.

10. Learning Outcomes Knowledge and Understanding Knowledge and understanding of evaluation and testing of software systems.

Intellectual Skills Ability to use formal methods of software analysis.

Professional Skills Ability to test software in a systematic way and carry out quality assurance

process, experience of using specialised testing software.

Page 34 of 70

Transferable Skills Abstract thinking, systematic approach to problem solving.

11. Weekly Programme

Week

No

LectureTopic

1 Introduction to SQA/Software Quality Factors2 Components of SQA Systems3 Pre-project Software Quality/Integrating quality Activities4 Software Reviews5 Software Testing Strategies/Implementation6 Software Quality Metrics7 The Function Point Method8 Presentation9 Presentation

10 Presentation11 Revision and discussion

12. Assessment details

60% Written examination open questions style40% Courseworks include reports/assignments/presentation

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Malik Kamna

2006 Software Quality: a practitioner’s approach

1st McGraw Hill 0-070-24873-7

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Tian Jeff 2005 Software Quality Engineering: testing, quality assurance and quantifiable improvement

1st Wiley 0-013-06428-2

14. Web Linkhttp://moodle.nottingham.ac.uk

Page 35 of 70

1. Module CodeG53CMP

2. Title of Module Compilers

3. Number of credits 10

4. Level 3

5. Semester in which module is taught and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) G51PRG Programming or similar level of programming experienceG52MAL (Machines and their Languages)

7. Co-requisites for the module (if any) None

8. LecturerTomás Maul (Dr.) Contact No: +60 (0)3 8924 8232Room No: BB64E-mail: [email protected]

9. Summary of Content Aspects of language and compiler design are examined by looking at the techniques and tools that are used to construct compilers for high level programming languages. A particular emphasis is placed on the use of formal techniques for specifying the syntax and semantics of the source language. The course retains a practical focus by exploring the implementation of a working compiler. Functional programming notation is used throughout to minimize the gap between specification and implementation, and to facilitate the presentation of symbolic algorithms.

10. Learning Outcomes Knowledge and Understanding

Knowledge of language and compiler design Understanding of the problems to be faced and the techniques and tools

which may be used in the construction of medium sized programs

Intellectual Skills The ability to define and construct syntax-directed translation schemes and

use software tools for syntax-directed translations The ability to gather information on and analyze the structure of medium

sized computer programs

Professional Skills Enhanced programming skills The ability to comprehend and apply software engineering tools

Transferable Skills

Page 36 of 70

The ability to use mathematics to solve problems and write detailed reports on the solutions adopted

The ability to work effectively within a group

15. Weekly Programme

Lect.No

LectureTopic

1 Administrative Details and Introduction2 Haskell Review & Coursework Support3 Defining Programming Languages4 Syntactic Analysis I (TD)5 Syntactic Analysis II (BU) – A6 Syntactic Analysis II (BU) – B7 Contextual Analysis8 Intermediate Code Generation – A9 Intermediate Code Generation – B10 Code Optimization11 Revision

16. Assessment details25% coursework, 75% examination.

17. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 lfred V. Aho, Ravi Sethi and Jeffrey

D.Ullman, S.

2003 Compilers: Principles,

Techniques & Tools

Prentice Hall

0-201-10194-7

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

David A. Watt and Deryck F.

Brown

1999 Programming Language

Processors in Java

Prentice-Hall

18. Web Link Course website: http://baggins.nottingham.edu.my/~kcztm/TeachG53CMP.html

1. Module Code G54SIM

Page 37 of 70

2. Title of Module Simulation for Computer Scientists

3. Number of credits 10

4. Level 4

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) None

8. LecturerChen Zhi Yuan (Dr)Contact No: 03-89248141Room No: BB59E-mail: [email protected]

y

9. Summary of Content Computational Simulation of systems is becoming increasingly common due to the recent improvements of speed and memory in computer hardware allowing simulation of realistic systems. System simulation can help to understand the processes currently in place and show the consequences of changes to these processes over time. Successful case studies of simulation include manufacturing, financial system, retail and more recently other areas of the service sector. Three broad simulation paradigms exist: System Dynamics, Agent-based and Discrete Event. This module will explain each of them in detail so that students will be competent in choosing and implementing the right method for their particular problem.

10. Learning Outcomes Knowledge and Understanding Understanding the capabilities, strengths and limitations of simulation methods An appreciation of different simulation techniques

Intellectual Skills The ability to understand complex ideas and relate them to specific situations

Professional Skills The ability to implement selected simulation methods for real world applications The ability to evaluate simulation techniques and select those appropriate to a

given task

Transferable Skills The ability to address real problems and assess the value of their proposed

solutions The ability to retrieve and analyse information from a variety of sources and

produce detailed written reports on the result

11. Weekly Programme

Page 38 of 70

Week

No

LectureTopic

1 Introduction to Modelling and Simulation2 Simulation Studies: An Overview3 Guest Lecture: Case Study14 Guest Lecture: Case Study25 Simulation Methods: System Dynamics Simulation6 Simulation Methods: Discrete Event Simulation7 Simulation Methods: Agent-Based Simulation8 Conceptual Modelling9 Input Modelling

10 Model Testing (Verification and Validation) + Experiment Preparation (Part 1)

11 Experiment Preparation (Part 2) + Experimentation + Output Analysis

12 Application of Simulation in the Real World

12. Assessment detailsWritten Examination 60%Course Work 40%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Stewart Robinson

2004 Simulation: The Practice of Model Development and Use

Wiley, Chichester, UK

9780470847725

2 John Sterman

2000 Business Dynamics: Systems Thinking and Modelling for a Complex World

McGraw-Hill Higher Education

0072311355

3 Gilbert N and Troitzsch KG

2005 Simulation for the Social Scientist.

2nd Open University Press

0335216013

Suggested secondary textsNot Available

14. Web LinkTBA

MODULE OUTLINESPRING 2011-2012

1. Module Code G51FUN

2. Title of Module

Page 39 of 70

Functional Programming

3. Number of credits 10

4. Level 1

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) G51PRG Programming

7. Co-requisites for the module (if any) None

8. LecturerMichael Chung (Mr)Contact No: 03-89248142Room No: BB58E-mail: [email protected]

y

9. Summary of Content The module covers the following subjects: Hugs system; type information; defining functions; list comprehensions; recursive functions; high-order functions, interactive programs; functional parsers; defining types; lazy evaluation and reasoning about programs.

10. Learning Outcomes Knowledge and Understanding

understanding of the theory and practice of functional programming a sound grasp of the underlying mathematical techniques

Professional Skills the ability to write functional programs

Transferable Skills the ability to solve problems in and using functional programming the ability to utilise mathematics and formal methods

11. Weekly Programme

Week

No

LectureTopic

1 Introduction: Course content, assessment, introduction to functional language, history

2 The Hug system: Hugs, standard prelude, function application, Haskell scripts, naming requirements, layout rule

3 Type Information: Type errors, basic types, list types, tuple types, function types – curried, polymorphic, overloaded, basic classes

4 Defining functions: Conditional expressions, guarded equations, pattern matching, lamda expressions, sections

5 List comprehension: Introduction, dependent generators, guards, zip functions, string comprehensions

Page 40 of 70

6 Recursive functions: Introduction, recursion on lists, multiple arguments

7 Higher order functions: map, filter, foldr, other library functions

8 Interactive programs: Introduction, primitive actions, sequencing actions, other library actions

9 Functional parsers: Introduction, primitive parsers, sequencing parsers, other library parsers

10 Defining types: Type declarations, data declarations, recursive types, examples

11 Lazy evaluations: Innermost & outermost evaluations, lambda expressions, termination, number of structures, infinite structures

12 Reasoning about programs

12. Assessment detailsCoursework 1 15%; Coursework 2 10%; Written Examination 75%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Graham Hutton

2007 Programming in Haskell

1st CUP 0-521-69269-5

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Richard Bird 1988 Introduction to Functional Programming using Haskell

2nd Prentice Hall

0-134-84346-0

2 Fethi Rabhi & Guy Lapalme

1999 Algorithms: a functional programming approach

2nd Addison-Wesley

0-201-59604-0

3 Simon Thompson

1999 Haskell: The Craft of Functional Programming

2nd Addison-Wesley

0-201-34275-8

Not Available

14. Web Linkhttp://baggins.nottingham.edu.my/~kczmc/Teaching/G51FUN/fun.html

1. Module Code G51DBS

2. Title of Module Database Systems

Page 41 of 70

3. Number of credits 10

4. Level 1

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) G51MCS

7. Co-requisites for the module (if any) None

8. LecturerMr KR. SelvarajContact No: 03-8924-8139Room No: BB-60E-mail: [email protected]

9. Summary of Content The module introduces database management systems, the design and use of database systems. The relational database model and the structured database query language (SQL) are covered. Throughout the module students are given instruction in the use of a relational database management system. Topics covered include: the relational model; entity-relationship modelling, SQL data definitions and select, normalisation, efficiency, transactions and database security.

10. Learning Outcomes Knowledge and Understanding Ability to use SQL and an understanding of embedded SQL. Understanding of the

ANSI/SPARC and relational models of database systems. Intellectual Skills Basic knowledge of the mathematics underlying relational database systems.

Ability to design database systems. Professional Skills The use of SQL for database specification and manipulation. Database

administration, including integrity and security control. Transferable Skills: Understanding of the application of database systems.

11. Weekly Programme

Week

No

LectureTopics

1 Introduction to Database Systems, The Relational Model2 Entity Relationship Modelling

Page 42 of 70

3 SQL Data Definition4 SQL SELECT5 More SQL SELECT6 SQL and Java7 Normalization to 3NF and BCNF8 Efficiency Issues9 Transactions and Recovery, Concurrency

10 More Concurrency, Security and Integrity11 Good and Bad ‘Modern’ Databases12 Revision

12. Assessment detailsCoursework 25%; Written Examination 75%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publicatio

n

Title of Book Edition Publisher’s Name

ISBN

1Thomas

Connolly and Carolyn Begg,

2005 Database Systems - A Practical Approach to

Design, Implementation, and Management

3rd or 4th ed.

Addison-Wesley

0321210255

Suggested secondary texts

No

Name of Author(s)

Year of Publicatio

n

Title of Book Edition

Publisher’s Name

ISBN

1

2.

3.

R Elmasri and SB Navathe,

A. Silberschatz, H. F. Korth, and S. Sudarshan,

Peter Rob, Carlos Coronel

2004

2002

2007

Fundamentals of Database

Systems,

Database System

Concepts,

Database System

3rd or 4th ed.

4th ed.

7th ed.

Addison-Wesley,

McGraw-Hill

Course Technology

0321204484

0072283637 

1418836508

14. Web LinkTBA

1. Module Code G51FSE

2. Title of Module Foundations of Software Engineering

Page 43 of 70

3. Number of credits 10

4. Level 1

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) None

8. Lecturer- (Mr) TBAContact No: 03-8924-TBARoom No: BB-TBAE-mail: [email protected]

9. Summary of Content This module introduces the concepts of Software Engineering as a discipline and will provide an overview of the whole software development process. A selection of fundamental topics will be covered in depth: Software development methodologies and the software lifecycle, including the

waterfall model, extreme programming etc. Formal requirements and specifications, focusing on how to turn an informal

design brief into a formal specification. Software testing, evaluation and debugging, including practical use of modern

debugging toolkits. Software evolution and maintenance, including version control and collaborative

development systems.

10. Learning Outcomes Knowledge and Understanding The different approaches to managing the software development process. The

practice of producing specifications from informal briefs. Knowledge of how to test, debug and change programs.

Intellectual Skills Understand how to represent formal program requirements. Understand how to

create and deploy an effective plan for testing software systems.

Professional Skills The ability to apply software engineering methodologies in practical scenarios. The ability to evaluate, select and deploy appropriate tools and techniques.

Transferable Skills The ability to deploy a software development methodology, and to test and

debug software, independent of programming language. 11. Weekly Programme

Week

No

LectureTopic

1 Introduction to Object-oriented Software Engineering (OOSE) – Part 12 Introduction to Object-oriented Software Engineering (OOSE) – Part 23 Introduction to Object-oriented Software Engineering (OOSE) – Part 3

Page 44 of 70

4 Object-orientation (OO)5 Object-oriented Analysis (OOA)6 Object-oriented Design (OOD) – Part 17 Object-oriented Design (OOD) – Part 28 Formal Specification9 Architectural Design

10 Testing Principles and Managing Software Project – Part 111 Testing Principles and Managing Software Project – Part 2

Revision and review past examination questions

12. Assessment detailsCoursework 30%; Written Examination 70%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Ian Sommerville

2006 Software Engineering

8th Addison Wesley

13: 978-0321313799

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Roger S Pressman

2004 Software Engineering:

A Practitioner's

Approach

6th McGraw-Hill

13: 978-007301933

8

14. Web Linkhttp://sepang.nottingham.edu.my/~?????

1. Module Code G51OOP

2. Title of Module Object-Oriented Programming

3. Number of credits 10

4. Level

Page 45 of 70

1

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) G51PRG Programming

7. Co-requisites for the module (if any) None

8. LecturerChew Sze-Ker (Mr)Contact No: 03-89248140Room No: BB72E-mail: [email protected]

9. Summary of Content The basic concepts of object-oriented programming and design including: classes, objects, aggregation, inheritance, class discovery techniques, principles of good design and common design patterns. These will be supported by practical examples using the Java programming language.

10. Learning Outcomes Knowledge and Understanding Understanding of the theory and practice of object-oriented programming Intellectual Skills Understand and logically evaluate program requirements and specifications.

Understand the complex ideas of programming solutions and relate them to particular problems

Professional Skills Ability to design and write object-oriented programs in Java Transferable Skills The ability to solve problems using programming including mathematical

problems, schedule and present their works and to retrieve additional learning materials

11. Weekly Programme

Week

No

LectureTopic

1 Introduction to Objects/Classes 2 Inheritance3 Polymorphism4 Event Handling and Exception5 File Processing6 Interfaces and Inner Classes7 Linked Data Structures

Page 46 of 70

8 Graphical User Interfaces I9 Graphical User Interfaces II

10 Coursework discussions11 Revision and discussion of past exam papers

12. Assessment detailsLab exercises (8*5%) 40%; Multiple choice questions 30%; Lab assessments (3*10%) 30%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition Publisher’s Name

ISBN

1

2 Bishop J.M.

2001

Absolutely Java

Java Gently

4th

3rd Addison Wesley

Suggested secondary texts

No Name of Author(s)

Year of Publication

Title of Book Edition Publisher’s Name

ISBN

1 Deitel, Harvey M.

2003 Java: How to Program 5th Prentice Hall

14. Web LinkTo be provided by the module convenor.

1. Module Code G51IAI

2. Title of Module Introduction to Artificial Intelligence

3. Number of credits 10

4. Level 1

5. Taught Semester and Assessment Period Semester Assessment

Page 47 of 70

Spring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) None

8. LecturerHo Sooi Hock (Mr)Contact No: 03-89248145Room No: BB71E-mail: [email protected]

9. Summary of Content This module aims to: give a broad overview of the fundamental theories and techniques of Artificial

Intelligence allow the student to participate in informed AI debate on philosophical and

ethical issues of AI give an insight into the history of AI and point to some of the key milestones in

the area (e.g. The Turing Test, The Chinese Room, MYCIN etc.) provide the student with the necessary knowledge to allow them to implement

common AI search techniques introduce game playing and describe some of the techniques that are applicable

in this area (e.g. mini-max, alpha-beta pruning) introduce the student to principles of neural networks in general and learning by

a percepton in particular.

10. Learning Outcomes Knowledge and Understanding Knowledge of key AI techniques and their implementation Intellectual Skills The ability to think independently while giving due weight to the arguments of

others. The ability to analyse algorithms

Professional Skills The ability to evaluate available AI techniques and select those appropriate to a

given problem

Transferable Skills The ability to solve problems and communicate effectively in writing

11. Weekly Programme

Week

No

LectureTopic

1 Introduction, overview and module contents 2 Reasons for AI; History of AI3 Problem formulation 4 Uninformed search – BFS, DFS, UCS, DLS, IDS5 Heuristic search techniques – BFS, GFS and A*6 Tutorials on search techniques; Discussion on courseworks7 Game playing techniques8 Tutorial on minimax application and alpha-beta pruning 9 Introduction to neural networks

10 Perceptron learning 11 Revision and discussion of past exam papersl

Page 48 of 70

12. Assessment detailsWritten Examination 100%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Stuart J. Russell & Peter Norvig

2010 Artificial Intelligence :A Modern Approach

3rd Prentice Hall

0-13-604259-7

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 George F Luger

2008 Artificial Intelligence:Structures and strategies for Complex Problem Solving

6th Addison Wesley

0-321-54589-3

14. Web Linkhttp://sepang.nottingham.edu.my/~hsooihock/G51IAI/index.html

1. Module Code G51WPS

2. Title of Module Web Programming and Scripting

3. Number of credits 10

4. Level 1

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) G51PRG Programming

Page 49 of 70

7. Co-requisites for the module (if any) None

8. LecturerTBAContact No: TBARoom No: TBAE-mail: TBA

9. Summary of Content This course will introduce a broad spectrum of web programming technologies. It will begin with an overview of how the Internet and the Web work, including fundamentals such as client-server paradigm, URLs, MIME types and HTTP. Then client side technologies will be studies (HTML, CSS, Java Script and XML), followed b an introduction to server side technologies (such as Perl and CGI, JSP, ASP.NET, PHP) with an emphasis on PHP. Guidelines for Web design and usability and case studies will also be provided.

10. Learning Outcomes Knowledge and Understanding Broad basic knowledge of TCP/IP protocols, IP addresses and domain names,

client-server paradigm, URLs and HTTP. Knowledge of the capabilities of technologies (both client-side and server side) that are used in the construction of a Web site.

Professional Skills Technical skills required to design and implement web sites, including HTML,

stylesheets, Java Script, Java applets and PHP.Transferable Skills To be able to solve problems in a variety of ways. The ability to structure and

communicate ideas effectively.

11. Weekly Programme

Week

No

LectureTopic

1 Introduction, overview and module contents 2 Networking Basics3 TCP/IP Protocols 4 HTTP and Internet Tools5 HTML and Web Design6 CSS, XML7 Java Scripts8 Java Applets9 Server & Databases

10 PHP Workshop (A guest lecture)11 Revision and discussion of past exam papers

12. Assessment detailsCoursework 25%; Written Examination 75%

Page 50 of 70

13. Resources

Suggested primary textsNot Available

Suggested secondary textsNot Available

14. Web LinkTBA

1. Module Code G52CCN

2. Title of Module Computer Communications and Networks

3. Number of credits 10

4. Level 2

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) None

Page 51 of 70

8. LecturerMr KR. SelvarajContact No: 03-8924-8139Room No: BB-60E-mail: [email protected]

9. Summary of Content This module aims to: present a broad overview of computer communications and networks provide an overview of underlying technologies including data transmission

techniques, Local Area Networks, Wide Area Networks, internet working and network applications.

Give students an understanding of the Internet environment and the TCP/IP protocols.

10. Learning Outcomes Knowledge and Understanding

An understanding of the principle technologies within the area. Intellectual Skills

The ability to understand complex ideas and relate them to specific situations.Professional Skills The ability to understand, evaluate and select appropriate network designs and

protocols.

11. Weekly Programme

Week

No

LectureTopics

1 - 3 Part 1: Data Transmission1. Introduction, Transmission media2. Local asynchronous communication and RS-2323. Long distance communication (carriers and modems)

4 - 7 Part 2: Packet Transmission5. Packets, frames and error detection6. Local Area Networks7. Hardware addressing and frame types8. LAN wiring and physical topology9. Extending LANs10.WAN technologies and routing 11. Ownership, service and performance

8 - 10 Part 3: Internetworking12. Protocols and layering13. Internetworking - concepts 14. IP addressing15. IP datagrams16. Future IP 17. Transport Control Protocol (TCP)

Page 52 of 70

11-12 Part 4: Applications 18. Client-Server Interaction 19. The Socket API20. Example applications 21. Revision

12. Assessment detailsWritten Examination 100%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publicatio

n

Title of Book Edition

Publisher’s Name

ISBN

1Douglas E.

Comer

2004 Computer Networks and

Internets

4th Prentice Hall 013123627X

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition Publisher’s Name

ISBN

1

2

Tanenbaum

Stallings

2003

2007

Computer Networks

Data and Computer Communications

4th

8th

Prentice Hall

Prentice Hall

0130661023 

0132381958

14. Web Linkhttp://sepang.nottingham.edu.my/~krselvaraj

1. Module Code G52CON

2. Title of Module Concepts of Concurrency

3. Number of credits 10

4. Level 2

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) G51MCS Mathematics for Computer Scientists; G51OOP Object-Oriented Programming (G51PRG 2009/10)

7. Co-requisites for the module (if any) None

8. LecturerChew Sze-Ker (Mr)

Page 53 of 70

Contact No: 03-89248140Room No: BB72E-mail: [email protected]

9. Summary of Content This module introduces the basic principles of concurrent programming and their use in computer programs design. It covers concurrency primitives for shared memory, distributed implementations of concurrency, the correctness of concurrent algorithms and concurrent programming in Java. Building on these basic principles, it explains how concurrency primitives and algorithms can be used to solve some common problems in concurrent programming, e.g., the producer-consumer, the readers and writers, and client server problems. Topics include hardware support for concurrency, mutual exclusion and conditional synchronisation, semaphores, monitors, RPC and rendezvous, safety and liveness properties of concurrent algorithms, proving properties using assertional reasoning and model checking, and the use of Java threads, synchronised methods, and monitors.

10. Learning Outcomes Knowledge and Understanding Understanding of the concepts, problems and techniques of concurrent

programming. Intellectual Skills Ability to understand complex concepts in concurrency and relate them to

specific situations.Professional Skills Ability to write simple concurrent programs in Java, evaluate and select

appropriate algorithms. Transferable Skills The ability to solve problems.

11. Weekly Programme

Week

No

LectureTopic

1 Introduction, overview and module contents 2 Introduction, Thread3 Synchornisation, Atomic Action4 Mutual Exclusion5 Semaphore6 Monitor7 Synchronisation in Java8 Message Passing, Remote Invocation9 Distributed Processing in Java

10 Proving Correctness11 Revision and discussion of past exam papers

12. Assessment detailsWritten Examination 100%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition Publisher’s Name

ISBN

1 Andrews 2000 Foundations of Addison 0201357

Page 54 of 70

2 Lea 1999

Multithreaded, Parallel and Distributed Programming

Concurrent Programming in Java: design principles and patterns

2nd

Wesley

Addison Wesley

526

0201310090

Suggested secondary texts

No Name of Author(s)

Year of Publication

Title of Book Edition Publisher’s Name

ISBN

1

2

Ben-Ari

Andrews

2006

1991

Principles of Concurrent and Distributed Programming

Concurrent Programming: principles and practice

2nd Prentice Hall

Addison Wesley

200018480X

080530864

14. Web LinkTo be provided by the module convenor.

1. Module Code G52MAL

2. Title of Module Machine and their Languages

3. Number of credits 10

4. Level 2

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) G51FUN Functional Programming; G51MCS Mathematics for Computer Scientists;G51PRG Programming

7. Co-requisites for the module (if any) None

8. LecturerTomas Maul (Dr)Contact No: 03-89248232Room No: BB64E-mail: [email protected]

Page 55 of 70

9. Summary of Content A series of abstract machines, classes of formal languages and their relation is investigated, along with important practical applications of this theory, in particular language recognition (lexical and syntactic analysis). Ultimately the investigations touch on the question of what can and cannot be computed. Topics covered include: finite state machines, regular expressions, context-free grammars, push-down automata, parsing and Turing machines.

10. Learning Outcomes Knowledge and Understanding Understanding of the equivalence between machine and language types, the

nature of formal languages and their specification by grammars and other notations, the practical and theoretical relevance of machines that process strings from an alphabet of symbols as models of computation and the fundamental limits on what is computable by any machine.

Intellectual Skills Apply and deploy mathematical ability, practices and tools; understand complex

ideas and relate them to specific problems or questions.Professional Skills Understanding and ability to apply techniques for language specification.Transferable Skills The ability to use mathematics to solve problems

11. Weekly Programme

Week

No

LectureTopic

1 Introduction, overview and module contents 2 Preliminaries3 Automata Theory; Deterministic Finite Automata (DFA) 4 Non Deterministic Finite Automata (NFA)5 Subset Construction; Epsilon Transition6 Regular Language and Regular Expressions;

Minimisation of Finite Automata7 Properties of Language, Proving Languages not to be

Regular8 Introduction to Context free Grammar- Chomsky norms

Regular grammar, Derivations9 Parse trees; Case Study - NLP

10 Pushdown Automata (PDA)11 The Language of a PDA; Turing Machines and

Decidability

12. Assessment detailsCoursework 25%; Written Examination 75%

13. Resources

Suggested primary texts

No Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

Page 56 of 70

John Hop Croft, Rajeev Motwani, Jeffrey.D.Ullman

Introduction to Automata Theory, Languages and computation

II Addison Wesley

Suggested secondary texts

No Name of Author(s)

Year of Publicn

Title of Book Ed Publisher ISBN

1 Peter lenz, An introduction to formal languages and Automata

III Jones and Bartlett

2 A.M.Padma Reddy

2003 Finite Automata and Formal Languages

Sri Nandi

14. Web Linkhttp://baggins.nottingham.edu.my/~kcztm/Teaching.html

1. Module Code G52CPP

2. Title of Module C++ Programming

3. Number of credits 10

4. Level 2

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) G51OOP Object-Oriented Programming (G51PRG 2009/10)

7. Co-requisites for the module (if any) None

8. LecturerMichael Chung (Mr)Contact No: 03-89248142Room No: BB58E-mail: [email protected]

y

9. Summary of Content

Page 57 of 70

The course will cover programming material and concepts necessary to obtain a thorough understanding of the C++ programming language for students with experience with another imperative programming language such as Java or C#.

10. Learning Outcomes Knowledge and Understanding

Understanding of the theory and practice of object-oriented (C++) programming.

Intellectual Skills Understand and logically evaluate program requirements and specifications. Understand the complex ideas of programming solutions and relate them to

particular problems.Professional Skills

The ability to write procedural and object-oriented programs in C++Transferable Skills

The ability to solve problems using programming and communicate the results in writing.

11. Weekly Programme

Week

No

LectureTopic

1 Introduction2 Introduction to Classes and Objects3 Classes4 Classes (cont.)5 Operator overloading6 Inheritance in C++7 Polymorphism in C++8 Templates9 Stream Input/Output, Class String

10 Exception Handling11 File Processing12 STL

12. Assessment detailsOne courseworks (40%) and a two-hour written exam (60%).

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Deitel & Deitel

2008 C++ How to Program

6th Pearson 0-13242701-X

Suggested secondary texts

Page 58 of 70

Not Available

14. Web Linkhttp://baggins.nottingham.edu.my/~kczmc/Teaching/G52CPP

1. Module Code G52HCI

2. Title of Module Human Computer Interaction

3. Number of credits 10

4. Level 2

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) G52GUI

7. Co-requisites for the module (if any) None

8. LecturerTBAContact No: TBARoom No: TBAE-mail: TBA

9. Summary of Content This module provides an overview of the field of Human Computer Interaction, which aims to understand people’s interaction with technology and to apply this knowledge in the design of usable interactive computer systems. The module will introduce the concept of usability, examine different design approaches and

Page 59 of 70

evaluation methods and illustrate the principles through an exploration of a number of case studies.

10. Learning Outcomes Knowledge and Understanding Understanding the importance of considering the human in the design of

interactive computer systems, with its associated issues and problems Knowledge of different design and evaluation methods Intellectual Skills The ability to understand and evaluate interface specifications

Professional Skills The ability to recognize good and bad usability characteristics. Knowledge of interdisciplinary working practices

Transferable Skills The ability to solve interface design problems and communicating in a

structured and effective manner

11. Weekly Programme

Week

No

LectureTopic

1 Introduction, overview and module contents 2 Understanding users - ethnography3 Understanding users – organizational context 4 Understanding users - the cognitive perspective5 Understanding users – art and design perspective 6 Requirements specifications7 Designing GUIs8 Participatory design and prototyping 9 Evaluating interfaces

10 The future of the interface 11 Revision and discussion of past exam papersl

12. Assessment detailsTwo Courseworks each worth 50%

13. Resources

Suggested primary texts

No

Name of Author(s) Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Alan Dix, Janet Finlay, Gregory Abowd & Russell Beale

2004 Human Computer Interaction

3rd Prentice Hall

0-13-046109-1

Suggested secondary texts

No Name of Author(s)

Year of Publication

Title of Book

Edition Publisher’s Name

ISBN

Page 60 of 70

1Andrew Sears

and Julie A. Jacko

2007 The Human Computer Interaction Handbook

2nd CRC Press 0-8058-5870-9

14. Web LinkTBA

1. Module CodeG53OPS

2. Title of Module Operating Systems

3. Number of credits 10

4. Level 3

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) G51PRG Programming

7. Co-requisites for the module (if any) None

8. LecturerMr KR. SelvarajContact No: 03-8924-8139Room No: BB-60E-mail: [email protected]

9. Summary of Content to teach the theoretical background and practical implementation of traditional

operating systems and to consider the history and development of OS

10. Learning Outcomes Knowledge and Understanding knowledge of key issues in the practical implementation of operating systems Intellectual Skills

Page 61 of 70

the ability to think independently while giving due weight to the arguments of others

the ability to understand complex concepts and apply them to specific situations Professional Skills enhanced programming skills the ability to evaluate and select appropriate algorithms and data structures Transferable Skills the ability to solve OS design problems

11. Weekly Programme

WeekNo

LectureTopics

1 Introduction and background In addition, the history of operating systems will be discussed and how they have developed in line with advances in hardware.

2 Memory Management Part I 3 Memory Management Part II 4 Memory Management Part III5 Processes Scheduling Part I 6 Processes Scheduling Part II7 Processes Scheduling Part III8 File Systems Part I9 File Systems Part II 10 Input/output processes Part I11 Input/output processes Part II 12 Summary and Revision

12. Assessment detailsWritten Examination 100%

13. Resources

Suggested primary texts

No

Name of Author(s) Year of Publication

Title of Book Edition Publisher’s Name

ISBN

1 Andrew S. Tanenbaum

2001 Modern Operating Systems

2nd Prentice HallInternational

0-13-031-

358-02 Abraham

Silberschatz and 2003 Operating

System 6th (or)

John Wiley & sons

0-471-26272-2

Page 62 of 70

Peter Galvin and Greg Gagne

Concepts 4th-5th

are OK

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book

Edition Publisher’s Name

ISBN

1Abraham

Silberschatz and Peter Galvin and

Greg Gagne

2003Applied

Operating System

Concepts

1stJohn Wiley &

sons0-471-263-

14-1

2 H. M. Deitel 1990 Operating Systems

2nd Addison Wesley Longman Pubs.

0-20-150939-3

14. Web Linkhttp://sepang.nottingham.edu.my/~krselvaraj

1. Module Code G53ELC

2. Title of Module Enterprise Level Computing

3. Number of credits 10

4. Level 3

5. Taught Semester and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) G52CCN Computer Communications and Networks, G51DBS Data Systems andG51OOP Object-Oriented Programming (G51PRG 2009/10)

7. Co-requisites for the module (if any) None

8. LecturerDr. Wang WeiContact No: 03-89248721Room No: BB63E-mail: [email protected]

9. Summary of Content This module provides an overview of more advanced Web architectures and technologies. It will cover the development of web services through the use of standards such as XML, SOAP, WSDL and UDDI and consider how web services can be used to implement a Service Oriented Architecture (SOA). The module will also provide an introduction to the Semantic Web. It explains how modern enterprises construct computer applications that are distributed over an intranet. Multi-tiered architectures will be covered in the context of object-oriented design and implementation as distributed components. The module will describe the interface to web technologies and the Internet and cover electronic commerce as an

Page 63 of 70

important application. The Java 2 Enterprise Edition will be used as the basis for the module and compared and contrasted with Microsoft .Net technology. Security and additional materials in the field of networking and communication protocols, tools and good practice will also be described and demonstrated.

10. Learning Outcomes Knowledge and Understanding Design and implementation of multi-tier applications using distributed

component technology. The use of Windows Communication Foundation (WCF) and Windows Presentation Foundation (WPF) and server-side technologies for web page delivery and their security implications on intranets and the Internet.

Intellectual Skills The ability to understand and logically evaluate requirements and specifications

and the ability to understand complex ideas and relate them to specific problem.

Professional Skills The ability to implement server-side applications in an eCommerce application

using a variety or proprietary and open-source approaches and comparisons between Microsoft and the Java 2 enterprise bean approach.

Transferable Skills Enhanced systems analysis, systems architecture design, developmental and

communication skills.

11. Weekly Programme

Week

No

LectureTopic

1 Module Introduction2 Database Conectivity I3 Database Conectivity II4 Server-side Processing and AJAX5 Servlets6 Java Server Pages7 Java Directory and Naming Interface8 Java and XML9 Microsoft .NET Overview

10 Web Services11 Case Study

12. Assessment detailsCoursework 50%; Written Examination 50%

13. Resources

Suggested primary texts

No Name of Author(s) Year of Publicatio

n

Title of Book Edition Publisher’s Name

ISBN

1 Jim Farley, William Crawford

2005 Java Enterprise in a Nutshell

3rd 'Reilly Associates

0-596-00152-5

2 Dave Elliman - The Student Handbook for the Module

- - -

Page 64 of 70

Suggested secondary texts

No

Name of Author(s) Year of Publicatio

n

Title of Book Edition

Publisher’s Name

ISBN

1 - - Designing Enterprise Applications with the J2EE Platform

2nd Sun Java -

2Eric Jendrock, Ian Evans, Devika Gollapudi, Kim Haase, Chinmayee Srivathsa

2010 The Java EE 6 Tutorial

- - -

14. Web Linkhttp://baggins.nottingham.edu.my/~wangwei/teaching/G53ELC.php

1. Module Code G53SEC

2. Title of Module Computer Security

3. Number of credits 10

4. Level 3

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any)G51WPS Web Programming and Scripting

OR G52IWS Internet and the Web Services (200910)OR G52CCN Computer Communications and NetworksOR Equivalent Knowledge of Networks and Computer Systems.

7. Co-requisites for the module (if any) None

8. LecturerTBAContact No: TBARoom No: TBAE-mail: TBA

9. Summary of Content The module covers the following topics: access control, reference monitors, security models, cryptography, cryptanalysis, network security, software security and nature inspired computer security methods.

10. Learning OutcomesKnowledge and Understanding

An understanding of security issues associated with networked computers. An appreciation of the strengths and weaknesses of available security

techniques.

Page 65 of 70

Experience of the use of such techniques in a protected networked environment

Intellectual Skills The ability to think independently while giving due weight to the arguments

of others. The ability to understand complex security issues and relate them to specific

situations.Professional Skills

Enhanced systems programming skills. The ability to evaluate and select appropriate security techniques.

Transferable Skills The ability to work as part of a team to solve real security problems. An enhanced ability to produce detailed reports

11. Weekly Programme

Week Lecture Topic1 Introduction & Overview2 Foundations of Computer Security3 Access Control4 Reference Monitors5 Security Models6 Other Security Models7 Cryptography 18 Cryptography 29 Network Security

10 Software Security11 Nature Inspired Comp.12 Student Presentations & Discussions

12. Assessment detailsWritten Examination 60%Coursework 40%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Dieter Gollmann

2006 Computer Security

2nd Wiley 0470862939

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Ross Anderson

2008 Security Engineering

2nd Prentice-Hall

0470068523

14. Web LinkTBA

Page 66 of 70

1. Module Code G53NMD

2. Title of Module New Media Design

3. Number of credits 10

4. Level 3

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) None

7. Co-requisites for the module (if any) None

8. LecturerDr. Timothy BrailsfordContact No: 03-89248721Room No: BB63E-mail: [email protected]

9. Summary of Content This is a practical course covering the critical elements of the principles of design. Such principles are applied to new media applications, with a particular focus on its use in the context of the web. It also aims to give students a hands on experience with emerging new media technologies. Technical issues such as colour, images, audio, video and animation will be introduced and discussed in addition to usability and interaction. Practical uses of multimedia authoring systems, content management systems, flash and HTML 5 will form part of this module. Such tools will be put into context with emerging paradigms and new media for mobile platforms.

10. Learning Outcomes To be able to design and produce multimedia objects.

Page 67 of 70

11. Weekly Programme

Week

No

LectureTopic

1 Introduction to Multimedia2 Multimedia Authoring Systems; Interaction and Methaphor in

Multimedia Design3 Graphics and Still Images Representation; Colour Science and

Color Models4 Hypertext5

Media Design: Text, Images, and Sound6 Scalable Vector Graphics7 Digital Audio8 Architecture of Multimedia Systems9 Synchronized Multimedia Integration Language

10 Digital Video11 Intellectual Property Rights; Narrative

12. Assessment detailsGroup based development of a multimedia website and group report 75%; Individual Essay 25%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Barfield, L 2004 Design for New Media: Interaction design for multimedia and the web

1st Pearson Addison-Wesley

978-0201596090

2 Li, Z. & Drew,M.

2004 Fundamentals of Multimedia

- Pearson Prentice-Hall

978-0130618726

Suggested secondary texts

No Name of Author(s)

Year of Publication

Title of Book

Edition Publisher’s Name

ISBN

1 Vaughan, T. 2007 Multimedia : Making It Work

7th McGraw-Hill 978-0072264517

Page 68 of 70

14. Web Linkhttp://baggins.nottingham.edu.my/~wangwei/teaching/G53NMD.php

1. Module Code G53DSM

2. Title of Module Decision Support Methodologies

3. Number of credits 10

4. Level 3

5. Taught Semester and Assessment Period Semester AssessmentSpring Assessed by end of Spring Semester

6. Pre-requisites for admission to the module (if any) G51MCS Mathematics for Computer Scientists

7. Co-requisites for the module (if any) None

8. LecturerDr. Siang Yew ChongContact No: 03-89248148Room No: BB57E-mail: [email protected]

9. Summary of Content This module aims to: Provide a sound understanding of wide range of concepts, methods and

techniques of Operational Research and Artificial Intelligence that can help in design of intelligent decision support systems.

Present state-of-the-art of both advanced Operational Research and Artificial Intelligence methods including multi-criteria decision making, decision making in the presence of uncertainty, case-based reasoning, etc.

Present a variety of examples from industrial and service sectors.

10. Learning Outcomes Knowledge and Understanding Knowledge of how to model a range of real-world problems suitable for analysis

by Operational Research and Artificial Intelligence methods. Knowledge and understanding of a range of advanced Operational Research and

Artificial Intelligence methods and their applicability to a variety of real-world decision making problems.

Intellectual Skills The ability to understand complex ideas and relate them to specific situations.

Page 69 of 70

Professional Skills The ability to evaluate available Operational Research and Artificial Intelligence

methods and select those appropriate to a given task.

Transferable Skills Understanding of the fundamental issues behind the development of intelligent

decision support systems in different industrial and commercial environments.

11. Weekly Programme

Week

No

LectureTopic

1 Introduction.2 Decision Making.3 Strategic Decision Making. 4 Decision Support Systems.5 Data Management and Modelling and Analysis.6 Expert Systems.7 Case-based Reasoning.8 Multiobjective Optimization. 9 Fuzzy Systems.

10 Revision. 11 Coursework Discussion.

12. Assessment detailsWritten Examination 75%, Coursework 25%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1Efraim Turban, Jay E. Aronson, Ting-Peng Liang, and Ramesh Sharda

2008 Decision Support and Business Intelligence Systems

8th Prentice Hall

978-0-131-98660-2

Suggested secondary texts

No

Name of Author(s)

Year of Publicatio

n

Title of Book Edition

Publisher’s Name

ISBN

1 Zbigniew Michalewicz, Martin Schmidt, Matthew Michalewicz, and Constantin Chiriac

2009 Adaptive Business Intelligence

1st Springer 978-3-642-06948-2

14. Web Linkhttp://baggins.nottingham.edu.my/~khczcsy/G51DSM/G51DSM.html

Page 70 of 70

1. Module CodeG54ACC

2. Title of Module Advanced Computer Communications

3. Number of credits 10

4. Level 4

5. Semester in which module is taught and Assessment Period Semester AssessmentAutumn Assessed by end of Autumn Semester

6. Pre-requisites for admission to the module (if any) G52CCN or equivalent knowledge of computer networking

7. Co-requisites for the module (if any) None

8. LecturerHo Sooi Hock (Mr)Contact No: 03-89248145Room No: BB71E-mail: [email protected]

9. Summary of Content The course gives a basic understanding of network-related initialization and the operation of the main Internet protocols. It gives an insight into the service definition and protocols of the most important network applications services. It considers basic network architectures such as the client-server model and the more complex distributed systems. Consistent examples from all-IP core telecommunications networks are used to illustrate transmission coding, error control, media access, routing, presentation coding, services and security. Introduction to technologies includes switch and router design, network processors, and encryption.

10. Learning Outcomes Knowledge and Understanding

understanding of distributed systems concepts and issues, including DNS, WWW/HTTP and network security issues.

a grasp of basic client-server system implementation techniques Intellectual Skills

the ability to understand and evaluate requirements of and practical constraints on designing distributed systems and protocols (using RMI and socket-based communication)

Page 71 of 70

Professional Skills the ability to evaluate and choose between possible distribution technologies

(e.g. RMI, TCP sockets) the ability to understand and reason about security weaknesses and

limitations of possible solutions in networked computer systems Transferable Skills

the ability to structure and communicate ideas effectively

11. Weekly Programme

Week

No

LectureTopic

1 Introduction, overview and module contents2 Review of TCP and IP functions; IP subnetting and

supernetting3 Problem of IP address exhaustion; Network auto-

configuration4 Transport layer protocol and socket programming5 UDP/TCP comparison; Remote Procedure Call6 Remote Method Invocations7 IP multicast8 Distributed Systems and domain name services9 P2P systems

10 Firewalls11 Revision12 Review Past Year Papers

12. Assessment detailsWritten Examination 100%

13. Resources

Suggested primary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Kurose & Ross

2008 Computer Networking: A Top Down Approach Featuring the Internet

4th Addison-Wesley

0-321-49770-8

Suggested secondary texts

No

Name of Author(s)

Year of Publication

Title of Book Edition

Publisher’s Name

ISBN

1 Tannenbaum

2003 Computer Networks

4th Prentice Hall

0-13-038488-7

3 Comer 2004 Computer Networks and Internets

4th Prentice Hall

0-13-123627-X

14. Web Linkhttp://sepang.nottingham.edu.my/~hsooihock/G54ACC/index.html

Page 72 of 70

Page 73 of 70