/ 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

Spring Semester

Module / Module Code / Level
Functional Programming / G51FUN / 1
Database Systems / G51DBS / 1
Foundations of Software Engineering / G51FSE / 1
Object-Oriented Programming / G51OOP / 1
Introduction to Artificial Intelligence / G51IAI / 1
Web Programming and Scripting / G51WPS / 1
Computer Communications and Networks / G52CCN / 2
Concepts of Concurrency / G52CON / 2
Machines and their Languages / G52MAL / 2
C++ Programming / G52CPP / 2
Human Computer Interaction / G52HCI / 2
Operating Systems / G53OPS / 3
Enterprise Level Computing / G53ELC / 3
Computer Security / G53SEC / 3
New Media Design / G53NMD / 3
Decision Support Methodologies / G53DSM / 3
Advanced 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.
  1. 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.
  1. 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.
  1. Descriptions of module not included in this document and other non-Computer Science modules can be reviewed at Nottingham’s Module Catalogue web site:

MODULE OUTLINE

AUTUMN 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 / Assessment
Autumn / 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.Lecturer

Mr KR. Selvaraj

Contact No: / 03-8924-8139
Room No: / BB-60
E-mail: /

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

Week
No / Lecture
Topics
1 / Introduction & Concepts including Computer Evolution, performance & levels of abstraction, and von Neumann architecture.
2 / Data and Program Representation I , Introduction to SPIM
3 / Data and Program Representation II; MIPS 32, Arithmetic, and System I/O.
4 / Computer Systems Organization
5 / Addressing modes and formats
6 / Binary Arithmetic operations, Assembly Language
7 / Instruction set and formats
8 / 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 Architecture
12 / Revision
  1. Assessment details

25% Coursework; 75% Written Examination

  1. Resources

Suggested primary texts

No / Name of Author(s) / Year of Publication / Title of Book / Edition / Publisher’s Name / ISBN
1 / David 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/software interface / 3rd or 4th ed. / Elsevier/Morgan Kaufmann, / 9780123744937

Suggested secondary texts

No / Name of Author(s) / Year of Publication / 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
  1. Web Link
  1. Module Code

G51MCS

  1. Title of Module

Mathematics for Computer Scientists

  1. Number of credits

10

  1. Level

1

  1. Taught Semester and Assessment Period

Semester / Assessment
Autumn / Assessed by end of Autumn Semester
  1. Pre-requisites for admission to the module (if any)

None

  1. Co-requisites for the module (if any)

None

  1. Lecturer

Tomas Maul (Dr)

Contact No: / 03-89248232
Room No: / BB64
E-mail: /
  1. Summary of Content

The 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).
  1. Learning Outcomes

Knowledge 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.
  1. Weekly Programme

Week
No / Lecture
Topic
1 / Introduction to the module. Some puzzles and games.
2 / Propositional Logic.
3 / Double Negation Elimination and Excluded Middle. Introduction to truth tables.Boolean Algebra.
4 / Number systems, order, floor, ceiling. Divisibility, quotient and remainder.
5 / Recursive Definitions. Euclid's Algorithm, Summations.
6 / Induction. Summary of Arithmetics.
7 / Sets and Functions 1
8 / Sets and Functions 2
9 / Quantifiers and finite sets. The pigeonhole principle, binomial coefficients.
10 / Pascal's Triangle and Hilbert's Hotel. Modular Arithmetic.
11 / Revision.
  1. Assessment details

Coursework 25%; Written Examination75%.

  1. 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. EnsleyJ. Winston Crawley / 2005 / Discrete Mathematics: Mathematical Reasoning and Proof with Puzzles, Patterns, and Games. / 1st / Wiley / 0471476021
  1. Web Link
  1. Module Code

G51REQ

  1. Title of Module

Requirements Engineering

  1. Number of credits

10

  1. Level

1

  1. Taught Semester and Assessment Period

Semester / Assessment
Autumn / Assessed by end of Autumn Semester
  1. Pre-requisites for admission to the module (if any)

None

  1. Co-requisites for the module (if any)

None

  1. Lecturer

TBA

Contact No: / TBA
Room No: / TBA
E-mail: / TBA
  1. 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.

  1. 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 andcommunicate with members of the design team.

Transferable Skills

  • Enhanced skills in report writing, presentation planning, preparation, delivery and critical reflection
  1. Weekly Programme

TBD

  1. Assessment details

2 courseworks each worth 50%

  1. Resources

TBA

  1. Web Link

TBA

1.Module Code

G51PRG

2.Title of Module

Programming

3.Number of credits

10

4.Level

1

5.Taught Semester and Assessment Period

Semester / Assessment
Autumn / 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.Lecturer

Chew Sze-Ker (Mr)

Contact No: / 03-89248140
Room No: / BB72
E-mail: /

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.

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 / Lecture
Topic
1 / Introduction to C compiler/Getting started with GCC
2 / Procedures, Parameters, Values and Variables
3 / Operators and Precedence
4 / Conditionals and Loops
5 / Pointers and scanf()
6 / Arrays and Strings
7 / String Processing
8 / File Input/Output
9 / 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 Link

  1. Module Code

G51APS

  1. Title of Module

Algorithmic Problem Solving

  1. Number of credits

10

  1. Level

1

  1. Taught Semester and Assessment Period

Semester / Assessment
Autumn / Assessed by end of Autumn Semester
  1. Pre-requisites for admission to the module (if any)

None

  1. Co-requisites for the module (if any)

G51MCS Mathematics for Computer Scientists

  1. Lecturer

Dr. Siang Yew Chong

Contact No: / 03-89248148
Room No: / BB57
E-mail: /
  1. 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.

  1. 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.
  1. Weekly Programme

Week
No / Lecture
Topic
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.
  1. Assessment details

Written Examination 100%

  1. 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
  1. Web Link

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 / Assessment
Autumn / 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.Lecturer

Wang Wei

Contact No: / 03-89248721
Room No: / BB63
E-mail: /

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

Week
No / Lecture
Topic
1 / Introduction
2 / The Unix Filestore
3 / Unix File Processing
4 / Editing Files and Emacs
5 / Processes
6 / Searching and Regular Expressions
7 / Unix Network Utilities
8 / Shell Programming
9 / The Sed Editor and Advanced Sed
10 / The Awk Programming Language and More Advanced Awk
11 / Version Control and CVS
12 / Compilers, Interpreters and Debuggers
13 / UNIX Make
14 / Review

12.Assessment details

1.5 hours written exam (75%) + coursework25%

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
1 / Behrouz A. Forouzan, RichardF. Gilberg / UNIX and Shell programming: a textbook
2 / Graham Glass and King Ables / 2003 / Unix for Programmers and Users / 3rd / Prentice Hall
3 / Randal K. Michael / Mastering Unix shell scripting
4 / Amir Afzal. / 2008 / Unix Unbounded, A Beginning Approach / 5th / Prentice Hall

14.Web Link

  1. Module Code

G52GRP

  1. Title of Module

Software Engineering Group Project.

  1. Number of credits

20

  1. Level

2

  1. Semester in which module is taught and Assessment Period

Semester / Assessment
Full Year / Assessed by end of Spring Semester
  1. Pre-requisites for admission to the module (if any)

None

  1. Co-requisites for the module (if any)

None

  1. Lecturer

V. P. Kallimani (Mr)

Contact No: / 03-89248141
Room No: / BB59
E-mail: /
  1. 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.

  1. 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
  1. Weekly Programme

A typical sequence of lectures as below:

Week
No / Lecture
Topic
1 / Overview: Aims, Organisation, Assessment
2 / Team Working and Group meetings
3 / Version Cotrol with Sub-version
4 / Project Management: How to Deliver?
5 / Giving an Effective Presentation
6 / Report Writing and Peer Marking
7 / Enterprise-level Testing: Breaking Software for a Living
8 / No Lecture
9 / No Lecture
10 / Group Project Open Day
11 / No Lecture
  1. Assessment details

Group project deliverables: 2 written reports, software, trade-fair-style demonstration, presentation, peer assessment – 80%

Individual reflective statement(individual report) – 20%

  1. Resources

Reference texts as relevant to the project topics.

  1. Web Link

To be given by the module convenor

  1. Module Code

G52SEM

  1. Title of Module

Software Engineering Methodologies

  1. Number of credits

10

  1. Level

2

  1. Taught Semester and Assessment Period

Semester / Assessment
Autumn / Assessed by end of Autumn Semester
  1. Pre-requisites for admission to the module (if any)

G51FSE Foundations of Software Engineering; G51ISE (2009/10)

  1. Co-requisites for the module (if any)

None

  1. Lecturer

Mr. KR. Selvaraj

Contact No: / 03-8924-8139
Room No: / BB-60
E-mail: /
  1. 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.

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