msc/pgdip in computer science course arrangements, …roger/mscbook.pdf · in the data structures...

23
SCHOOL OF COMPUTER SCIENCE AND INFORMATION SYSTEMS MSc/PGDip in COMPUTER SCIENCE COURSE ARRANGEMENTS, 2005-2006 Dates and timetables 2 Syllabus and reading lists 5 Coursework, examinations and projects 21

Upload: others

Post on 21-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

SCHOOL OF COMPUTER SCIENCE AND INFORMATION SYSTEMS

MSc/PGDip in COMPUTER SCIENCE COURSE ARRANGEMENTS, 2005-2006

Dates and timetables 2 Syllabus and reading lists 5 Coursework, examinations and projects 21

2

Dates and Timetables

Introductory talks for new students Part-timers 6.00 pm*, Thurs 29 Sept

Full-timers 11.00 am*, Mon 3 Oct

* Please arrive up to half an hour early if you can, to complete some administration.

Part-time Evenings-only Year 1

Weeks Evening 1 (6.00) Evening 2 (7.40) Mon 1-22

23 24 25

Programming in C++ Pt 1 Practice exam Bank holiday Revision lectures

Programming in C++ Pt 1 Practice exam Revision lectures

Tues Wed 1-11

12-16 17-22 23-25

Information systems Information systems Data Structures Revision lectures

Computer Architecture Data Structures Social implications Revision lectures

Thurs Fri 1-11

12-22 23-25

Free Languages for the Web Free

Free Maths for computing Free

Lectures in SH 135.

Part-time Evenings-only Year 2

Weeks

Evening 1 (6.00)

Evening 2 (7.40)

Mon

Tues 1-22 23-25

Database Revision lectures

Operating Systems Revision lectures

Wed

Thurs 1-11 12-22 23-25

Software engineering Algorithms*/XML† Revision lectures

OOP (Java/C#) OOP (Java/C#) Revision lectures

Fri 1-11 12-25

Networks Free

Crypto/AdaptWeb*† Free

Lectures in SH 135 except asterisked ones in SH 124.

† For each of these slots, the eleven lectures will be divided up as follows: lecturer A gives two lectures to the full class; lecturer B then gives two lectures to the full class; then they teach the rest of the term in parallel, with the students choosing which to attend.

3

Part-time Day-release Year 1

Monday evening wks 1-25 with Evenings-only Year 1

Thursday wks 1-25, 11.00am-5.00pm with the full-timers

Part-time Day-release Year 2

Tuesday wks 1-25, 11.00am-5.00pm with the full-timers

Thursday evening wks 1-25 with Evenings-only Year 2

Full-time

Weeks Morn (11.00) Aft 1 (1.30) Aft 2 (3.30) Mon 1-11

12 13-22

C++ Full-timers’ exam OOP (Java/C#)

C++ (2.00-5.00) Software Engineering

Tues 1-11 12 13 14-22 23-25

Networks Soft Eng OOP (Java/C#) AdaptWeb † Revision lectures

Database Database Database Database Revision lectures

Operating systems Operating systems Operating systems Operating systems Revision lectures

Wed 1-11 12-22

C++ Algorithms

C++ OOP (Java/C#)

Thurs 1-11 12-16 17-22 23-25

Information Sys Information Sys Social Implications Revision lectures

Comp Architecture Data Structures Data Structures Revision lectures

Maths for computing Languages for Web Languages for Web Revision lectures

Lectures in SH 135.

† Daytime students (full-time and second-year day-release) wishing to take Cryptography should attend the Friday evening lectures in the first term.

4

First lectures of term First-year part-time (evening and day-release) 6.00 pm*, Mon 3 Oct Second-year part-time evening-only 6.00 pm, Tues 4 Oct Second-year part-time day-release 11.00 am, Tues 4 Oct Full-time 1.30 pm, Mon 3 Oct

* Arrive early for the first evening if you have not been able to attend the introductory session on the previous Thursday.

The taught course covers two terms of eleven weeks each (i.e. weeks 1-11 and 12-22 in the above timetables). The summer term is given over to revision, exams and the beginning of projects. The term dates for the coming year are:

Autumn Mon 3 October - Fri 16 December Spring Mon 9 January - Fri 24 March Summer Mon 24 April - Fri 7 July

There will be introductory talks in room SH 135, which new students should attend, on Thursday 29 September at 6.00 pm for part-time students and on Monday 3 October at 11.00 am for full-time students. These will include a short hands-on introduction to the departmental computer system. It would be helpful if as many students as possible could arrive up to half an hour early for these sessions, to complete some administration.

Students should attend lectures during term time as shown in the timetables above. If students are unable to attend lectures, they should arrange with lecturers or fellow-students to obtain copies of any material distributed in class.

Any student who decides to withdraw from the course should inform the Programme Administrator, in writing or by email. Students who simply stop turning up for lectures without formally withdrawing from the course will still be held liable for fees.

5

Syllabus and reading lists

The Information Systems modules, to which most of the teaching time is devoted, are concerned broadly with the application of computer systems to administration and industry; the Computer Systems modules cover basic software and hardware. There is also the opportunity to go more deeply into certain areas of current research.

1. Information Systems - first-year material

1.1 Programming in C++ 1.2 Data structures 1.3 Information systems design 1.4 Languages for the Web 1.5 Maths for computing 1.6 Social implications

- second-year material 1.7 Object-oriented programming (Java/C#) 1.8 Database management 1.9 Software engineering

2 Computer Systems - first-year material

2.1 Computer architecture - second-year material

2.2 Operating systems 2.3 Networks

3 Current research topics (second year)

3.1 Algorithms and Programming or Data on the Web (XML) 3.2 Cryptography or Adaptable Web Info Systems 3.3 Research investigation

For general pre-course reading, the following are suggested (Biermann is the more demanding): Long, L and Long, N Computers Prentice Hall International (12th edition, 2004)ISBN 0-13-143235-4

Biermann, A W and Ramm, D Great Ideas in Computer Science with Java MIT Press, 2001 ISBN 0-262-02497-7

(also a “brief edition” 0-13-143224-9)

6

1.1 Programming in C++ (Dr Roger Mitton) A substantial part of the first half of the MSc course is devoted to learning how to program. The language used is C++. Assignments are set as part of this module and all students are required to complete them. The ANSI/ISO standard version of C++ will be used. Students will need the following:

Cay Horstmann, Computing Concepts with C++ Essentials (3rd edition) John Wiley and Sons (2003) ISBN 0-471-16437-2

Applicants for the MSc are sent a set of introductory notes on C++, also available at www.dcs.bbk.ac.uk/~roger/cpp All students will be expected to have read these and to have done the exercises in them by the beginning of the course. Students wanting a gentler introduction (the first is very gentle) might try one of the following: Tony Jenkins, How to Program using C++, Palgrave Macmillan (2003) ISBN 0-333-990025-0 Douglas Bell, The Essence of Programming in C++, Prentice Hall (1997) ISBN 0-13-206186-4 For a more detailed treatment of C++ than Horstmann provides, the following is recommended:

Stanley B Lippman and Josée Lajoie, C++ Primer (3rd edition) Addison-Wesley (1998) ISBN 0-201-82470-1

The following are also useful (the Malik has been recommended by past students): Bjarne Stroustrup, The C++ Programming Language (3rd edition) Addison-Wesley (1997) ISBN 0-201-88954-4 (There is also a "special edition" (2000), updated and slightly longer, ISBN 0-201-70073-5.) Nicolai M Josuttis, The C++ Standard Library Addison-Wesley (1999) ISBN 0-201-37926-0 Scott Meyers, Effective C++ (2nd edition) Addison-Wesley (1998) ISBN 0-201-92488-9 Ann Ford and Toby J Teorey, Practical Debugging in C++ Pearson Education (2002) ISBN 0-13-065394-2 D S Malik, C++ Programming: from problem analysis to program design (2nd ed) Course Technology Thomson Learning (2004) ISBN 061916042-X Students may do the assignments on their own computers or on one of the departmental computers. For assignments, students working at home will be required to use the same compiler as the one we will be using in the department, namely the Borland C++ compiler, available free from www.borland.com/products/downloads/download_cbuilder.html For help with installing it, see http://www.dcs.bbk.ac.uk/support/pub/doc/borlandfreecpp.pdf

7

1.2 Data structures and file organisation (Dr Trevor Fenner) Data structures and operations upon them; different representations and their relative merits. Linear lists, stacks, queues, deques; sequential and linked representations. Trees, forests, binary trees; tree traversal. Linked representation of binary trees; threaded representation; operations on binary trees. Representation of general trees. Binary search trees. File organisation. B-trees; static and dynamic hashing. A full set of notes is provided. The following text covers a large proportion of the material covered in the data structures part of the course, with some variations.

Langsam Y, Augenstein M J and Tanenbaum A M Data Structures using C and C++ Prentice Hall (1996) ISBN 0-13-529322-7

Further reading

Aho A V, Hopcroft J F and Ullman J D Data Structures and Algorithms Addison-Wesley (1983) ISBN 0-201-00023-7

Weiss M A Data Structures and Algorithm Analysis in C++ Addison-Wesley (2nd edition, 1999) ISBN 0-201-36122-1

Brunskill D and Turner J Understanding Algorithms and Data Structures McGraw-Hill (1996) ISBN 0-07-709141-8

8

1.3 Information Systems Design (Dr David Wilson and Dr Xuelong Li) This module explains the role of the information processing activity in commercial and administrative organisations. The emphasis is on the object-oriented paradigm but tools and techniques from other paradigms are treated where they are considered useful. Information systems and organisations; the role of information; data as a corporate resource.

requirements analysis - process and data modelling, the system life cycle forms, project management and prototyping; evaluation and testing, application systems design - Information system solutions.

Course lectures will be supported and reinforced by a case study leading to practical exercises in the design and implementation of part of a small IS application, as well as materials relating to current IS practice and thinking. A round trip view of a viable object-oriented methodology is given by:

Bennett et al Object-Oriented Systems Analysis and Design Using UML McGraw-Hill, 3rd edition (2005) ISBN 0077110005

The following book treats both object-oriented and structured methods

Satzinger et al Systems Analysis and Design in a Changing World Thomson Learning (2002) ISBN 0 619 06309 2

9

1.4 Languages for the Web (Dr Peter Wood)

The course gives an introduction to languages used for representing information on the Web. It starts by providing an overview of HTML, XML and XHTML. This is followed by a more formal treatment of strings, languages and grammars which is necessary in order to understand the concept of document type definitions, used to specify the requirements that need to be met by particular document types. The course also addresses the issues of presenting and transforming information on the Web using cascading style sheets and the extensible style language. Topics covered will include the following:

Hypertext Markup Language (HTML) Cascading Style Sheets (CSS) Extensible Markup Language (XML) Character sets, strings, languages, grammars and parsing Regular expressions Document Type Definitions (DTDs) Extensible Style Language (XSL)

The following are suggested as suitable reading. Further web-based material will be referenced during the course:

E. Castro, XML for the World Wide Web: Visual QuickStart Guide, Peachpit Press, 2001 (ISBN 0-201-71098-6). D. Raggett, J. Lam, I. Alexander and M. Kmiec, Raggett on HTML 4, 2nd edition, Addison-Wesley, 1998. (If the above is unavailable, the following may be consulted.) Elizabeth Castro, HTML for the World Wide Web, Fifth Edition with XHTML and CSS: Visual Quickstart Guide, Peachpit Press, 2003 (ISBN 0-321-13007-3).

10

1.5 Maths for Computing (Prof Steve Maybank)

Week 1: Arithmetic: +, -, x, ÷, exponentiation, log, idea of a function, graphs of functions. Decimal notation. Integers, rational numbers, real numbers.

Week 2: Magnitudes of quantities: milli, Mega, Giga, etc. Units: length, area, volume etc. Set theory: union, intersection, complement, member of.

Week 3: Set theory: relations and functions. Graph theory terminology (vertices, nodes, etc.), directed graphs. Week 4: Finite state machines. Examples of finite state machines. Week 5: Regular languages. Examples of regular languages. Week 6: Applications of FSMs and regular languages. Week 7: Philosophical and historical background to computation. Week 8: Definition of the Turing machine. Week 9: Examples of Turing machines. Relation of the Turing machine to “real” computers. Week 10: Classification of problems according to the resources needed to solve them. Week 11: Unsolvability of the halting problem. Recommended text: H. Lewis and C.H. Papadimitriou, Elements of the Theory of Computation, Pearson 1997 The following web pages contain suitable background material. www.dcs.bbk.ac.uk/~roger/arith.htmlwww.purplemath.com/modules/numtypes.htmen.wikipedia.org/wiki/Naïve_set_theoryen.wikipedia.org/wiki/Finite_state_machineen.wikipedia.org/wiki/Regular_expressionplato.stanford.edu/entries/turing-machine

11

1.6 Social Implications of Computers (Dr Roger Johnson) This course considers the growing importance of computers and the internet in many aspects of life and the need for people to be aware of the issues raised by this development, especially people who are professionally involved with computers. Areas of concern include professional and ethical issues, data privacy, intellectual property rights, computer misuse and freedom of speech on the internet. Background reading:

David Bainbridge Introduction to Computer Law (5th edition) Longman, Pearson Education Ltd (2004) ISBN 0-582-47365-9

Frank Bott Professional Issues in Information Technology BCS (2005) ISBN 1-902505-65-4

12

1.7 Object-Oriented Programming (Dr Keith Mannock)

This module provides a rigorous introduction to the theory and principles of Object-based and Object-oriented programming (OOP). Students gain a thorough understanding of extreme programming techniques, type-safety, polymorphism, encapsulation, and inheritance. They apply these concepts through a variety of programming exercises and assignments. We study two programming languages, Java and C#, and show how object concepts are realised in state of the art environments. We also consider how aspect-oriented programming (AOP) is changing the way software is developed. AOP builds on the success of OOP, by making code more modular, and hence easier to develop, maintain, evolve and deploy.

Outline syllabus

• What is OOP?

• What kind of problems can OOP and AOP solve?

• Object-based programming - classes and objects (a review). • A detailed introduction to programming in Java and C#.

• Principles of inheritance and class modification/refinement. • Inheritance planning and effective class hierarchy design. • Object-oriented class libraries. • Effective use of OOP and AOP.

• Good style guidelines.

• Object-oriented design principles and examples. • Writing and deploying reusable components.

• Generic classes and algorithms – the use of reusable code. • Using design patterns in OOP and AOP.

• GUI and event-driven programming. The module will involve lecture, hands-on exercises, and classroom discussion. It will be evaluated via examination and coursework assignments which include group work. The following are recommended texts. Additional reading can be found on the module web page at www.dcs.bbk.ac.uk/~keith/oop05.

• Cay Horstmann and Gary Cornell (September 2004), Core Java 2: Fundamentals volume 1 (Seventh edition), Prentice Hall PTR; ISBN 0131482025

• Jesse Liberty (February 2005), Programming in C# (Fourth edition), O'Reilly; ISBN 0596006993

13

1.8 Database Management (Dr Nigel Martin) Database management software: origins and objectives. The relational model: data structure, data integrity, data manipulation – relational algebra. SQL: data manipulation, host language support for SQL. Transaction management: recovery, concurrency. Relational database theory: dependencies, normal forms. SQL data definition, other features.

DBMS architectures and implementations: the relational approach illustrated by Oracle10g. Query optimization. Procedural extensions to SQL: PL/SQL; database triggers. Object DBMSs, OQL, SQL:1999 and objects. Distributed databases, distributed architectures and connectivity. Databases and the Web, Java database programming – JDBC, SQLJ, databases and XML.

Suggested reading No single text covers this material in an appropriate way. Guidance will be given at the start of the course on suitable reading including use of the following texts.

O’Neil P and O’Neil E Database: Principles, Programming, PerformanceMorgan Kaufmann (2nd edition paperback, 2001) ISBN 1-55860-580-0

Greenwald R, Stackowiak R and Stern J Oracle Essentials: Oracle Database 10g O’Reilly (3rd edition 2004) ISBN 0-596-00585-7

Earp R and Bagui S Learning SQL A Step-by-Step Guide using Oracle Addison-Wesley (2003) ISBN 0-201-77363-5

Melton J and Simon R A SQL:1999 Understanding Relational Language Components Morgan Kaufmann (2002) ISBN 1-55860-456-1

Mata-Toledo R A and Cushman P K Schaum’s Outline Series Fundamentals of SQL Programming McGraw-Hill (2000) ISBN 0-07-135953-2

Melton J Advanced SQL:1999 Understanding Object-Relational and Other Advanced Features Morgan Kaufmann (2003) ISBN 1-55860-677-7

Sunderraman R Oracle9i Programming: A Primer Addison-Wesley (2003) ISBN 0-321-19498-5

Fisher M et al. JDBC API Tutorial and Reference, Third Edition Addison-Wesley (2003) ISBN 0-321-17384-8

Abramson I, Abbey M and Corey M J Oracle Database 10g: A Beginner’s Guide Osborne, McGraw-Hill (2004) ISBN 0-07-223078-9

14

1.9 Software Engineering (Dr Niki Trigoni) Overview of object-oriented analysis and design (OOA/D) and the Unified Process (UP) Use-case model: analysis of requirements (in both the inception and elaboration phases) Domain model: identifying conceptual objects and their associations Design model: designing objects and their interactions Applying the GRASP patterns in the design model Data model and implementation model Architectural analysis of a system Refining the use-case and domain models Refining the design model (more GRASP patterns and GoF patterns) A survey of design patterns Review of the UP, its phases, disciplines and artifacts Suggested reading: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, Craig Larman, 2nd edition, Prentice-Hall 2002 Design Patterns Explained; A New Perspective on Object-Oriented Design, Alan Shalloway and James R. Trott, Addison Wesley 2002

15

2.1 Computer Architecture (Dr Boris Galitsky)

Integers in hexadecimal and binary. Computer representation of integers, two’s complement, floating-point numbers. Logic gates and circuits, basic digital components. Von Neumann architecture, the Fetch-Execute cycle. Components of a CPU, decoding instructions, memory storage. The 80486 assembly language. Subroutine linkage, interfacing “C” and assembler programs. Pipelining, Risc/Cisc architecture. Memory organisation, cache memory. Bus architecture, interrupt mechanisms. Required reading

Irv Englander The Architecture of Computer Hardware and Systems Software (3rd edition) Wiley (2003) ISBN 0-471-07325-3

Students are recommended to have read the following before the first lecture: www.dcs.bbk.ac.uk/~roger/binhex.html Supplementary reading:

David Patterson and John Hennessy (3rd edition) Computer Organization and Design Morgan Kaufmann (2004) ISBN 1-55860-604-1 William Stallings Computer Organization and Architecture (7th edition) Prentice Hall (2005) ISBN 0-13-185644-8

16

2.2 Operating Systems (Dr Szabolcs Mikulas) The main aim of this module is to acquire a systematic knowledge of operating systems, and to develop a critical understanding of their purpose, the main concepts, techniques and methods. Introduction: history, main concepts, system-structures. Processes and threads: scheduling, communication, synchronisation. Deadlocks: detection and recovery, avoidance, prevention. Memory management: virtual memory, paging, segmentation. File systems: directories, access and allocation methods, protection. Input/Output systems: principles, interrupts, device drivers, disk scheduling algorithms, performance. Multiple processor systems; Security. UNIX and Windows are to be used as running case studies, and there will be two lectures on Linux systems. These will include installation, the shell, pattern matching, and system administration. Required text: Modern Operating Systems, Second Edition Andrew S. Tanenbaum Prentice Hall, 2001 ISBN 0-13-031358-0 Recommended reading: Applied Operating Systems Concepts Silberschatz, Galvin and Gagne John Wiley and Sons Ltd, 2000 ISBN 0-471-36508-4 Operating Systems, Fourth Edition W. Stallings Prentice Hall, 2001 ISBN 0-13-032986-6

17

2.3 Networks (Mick Farmer) The aim of this course is to provide a wide-ranging introduction to modern computer networks and their applications. The emphasis is on the protocols involved and how they inter-work.

The objective of this course is to use the Internet as a vehicle for presenting the different protocols in a practical setting. Wherever possible, real-life examples are used to demonstrate the applications and protocols in action.

Much of the material for this course is based on Doug Comer's book [Comer 2004] with additional material from Andy Tanenbaum's book [Tanenbaum 2003] and a variety of other sources, especially the Internet. Colour figures courtesy of Doug Comer.

1 Introduction

2 Physical Layer

Transmission Media, Asynchronous Communication, Long Distance Communication

3 Data-link Layer

Packets, Frames and Error Detection, LAN Technology, Hardware Addressing, LAN Wiring, Extending LANs, WAN Technology

4 Network Layer

Internetworking, Internet Protocol (IP), IP Fragmentation, Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP)

5 Transport Layer

User Datagram Protocol (UDP), Transport Control Protocol (TCP), TCP in Action, Network Address Translation (NAT)

6 Application Layer

Client-server Interaction, Dynamic Host Configuration Protocol (DHCP), Domain Name System (DNS), Electronic Mail, Web Browsing, Web Programming

7 Network Security

Cryptography, Encryption, Digital Signatures, Firewalls, Virtual Private Networks

8 The Next Generation

Physical Layer, Network Layer, Application Layer

Douglas Comer, Computer Networks and Internets with Internet Applications (fourth edition), Prentice Hall, Upper Saddle River, NJ, 2004, ISBN 0-13-143351-2. netbook.cs.purdue.edu/

Andrew Tanenbaum, Computer Networks (fourth edition), Prentice Hall, Upper Saddle River, NJ, 2003, ISBN 0-13-038488-7. www.phptr.com/tanenbaumcn4/

18

3.1a Algorithms and Programming (Dr Trevor Fenner)

How can we write correct, robust and efficient programs? We need to know how we can determine and compare the efficiency of different programs. One of the most important factors is the underlying algorithm used, together with the data structures employed. Algorithms for various problems will be considered, including, for example, sorting, searching, etc. The effect of the choice of algorithm and data structures on program run-times and memory space will be examined and analysed. We will also look at implementation, verification, testing, debugging and timing. The course text will be:

Bentley J Programming Pearls Addison-Wesley (2000) ISBN 0-201-65788-0

Further reading (see also the references for Data Structures)

Sedgewick R Algorithms in C++ (Parts 1-4) Addison-Wesley (3rd edition, 1998) ISBN 0-201-35088-2

Binstock A and Rex J Practical Algorithms for Programmers Addison-Wesley (1995) ISBN 0-201-63208-X

3.1b Representing and Querying Data on the Web (Dr Peter Wood)

Motivated by the limitations of using HTML for representing data on the Web, the course gives an overview of how data can be represented, queried and transformed on the Web using XML and its associated technologies. Topics covered will include the following:

HTML and the Web today Extensible Markup Language (XML) Document Type Definitions (DTDs) Namespaces XML schemas XML path language (XPath) Extensible Style Language (XSL) Querying XML

The following is suggested as suitable reading. Further papers and web-based material will be suggested during the course:

Elizabeth Castro, XML for the World Wide Web: Visual QuickStart Guide, Peachpit Press, 2001 (ISBN 0-201-71098-6).

19

3.2a Cryptography and E-Commerce Security (Dr Keith Gibson)

The course aims to provide core knowledge of cryptographic algorithms, and to show how they are used in on-line shopping. At the end of the course students should be armed with basic cryptographic tools, and an understanding of the complex issues that relate security and cryptography. Course Content: Block ciphers, stream ciphers, the Data Encryption Standard (DES) Public Key Cryptography, RSA, the Diffie Hellman key exchange protocol. Digital signatures and hash functions, using both RSA and DSA. Secure Socket Layer, Legal considerations in on-line shopping, the way forward ... ? Recommended reading: Applied Cryptography, Bruce Schneier, 2nd Ed, Wiley 1996, ISBN 0-471-12845-7 Further reading: Cryptography and Network Security, William Stallings, 3rd Ed, Prentice Hall 2003, ISBN 0-13-111502-2 Prerequisite: Students need to feel comfortable with a numerate subject, but no specific mathematical knowledge will be assumed.

20

3.2b Adaptable and Adaptive Web Information Systems (Dr George Magoulas) Hypermedia systems may be one of the most significant contributions to the Internet in recent years. This powerful technology has revolutionised the delivery of e-content throughout the Internet. However, as the needs of users have changed, the hypermedia systems themselves have also changed. In just the past few years, adaptable and adaptive web systems have emerged. These systems can tailor content presentation and navigation support to individual users by taking into account a model of user goals, interests, and preferences. There are two types of adaptation: adaptability and adaptivity. The former allows users to modify the content presentation and navigation facilities by themselves, and the latter includes systems that adapt to users automatically on the basis of observed user behaviour. The introduction of these systems yields countless benefits for both users and businesses. Aims The aim of this module is to examine both adaptable and adaptive web information systems, discussing the benefits, impact and implications of both. The module covers the most recent issues in the field, presenting architectural and user-centred aspects of these systems. It presents basic concepts, requirements analysis, and user modelling techniques, and discusses real-world applications. Syllabus - Requirements analysis: identify user problems and information needs; effects of websites’ structure in user navigation - Architectural aspects: component-based development; service-based architectures; semantic Web technologies - User modelling techniques: machine learning; web mining - Applications development: e-learning; web directories; digital TV - Evaluation methodologies: problems and pitfalls in evaluating adaptive systems Indicative reading 1. Brusilovsky P., Adaptive hypermedia systems, User Modeling and User Adapted Interaction, 11, 87-110. Available at: www2.sis.pitt.edu/~peterb/papers.html2. Brusilovsky, P. (2004) Adaptive navigation support: From adaptive hypermedia to the adaptive Web and beyond. Psychnology 2 (1). Available at: www2.sis.pitt.edu/~peterb/papers.html3. Frias-Martinez E., Magoulas G.D., Chen S., and Macredie R. Recent Soft Computing Approaches to User Modeling in Adaptive Hypermedia. In Paul De Bra, Wolfgang Nejdl (eds), Adaptive Hypermedia and adaptive web-based systems, Lecture Notes in Computer Science, vol. 3137, Springer, 104-113. Available at: http://www.dcs.bbk.ac.uk/~gmagoulas/publications.html4. Chen S. and Magoulas G.D., Adaptable and Adaptive Hypermedia Systems, IRM Press, 2005.

21

3.3 Research Investigation In each of the second-year modules, the lecturer will introduce a research topic and will give some guidance as to initial reading. Each student will select just one of the topics and will carry out a piece of desk research, presenting the findings in an essay. The emphasis will be on critical evaluation and analysis rather than the mere reproduction of material from the literature. The topics for 2005-06 will be published on the web in the spring term. Students can inspect the topics for 2004-05 at www.dcs.bbk.ac.uk/~roger/research.html Students on the MSc/PGDip are also encouraged to attend the School’s research seminars, advertised on the School’s website http://www.dcs.bbk.ac.uk/seminars

22

Coursework, examinations and projects

To receive the Postgraduate Diploma, a student must satisfy the examiners in coursework and written examinations. For the MSc, a higher mark is required in the written examinations, plus a satisfactory project. Marks are not allocated between coursework, exams and project on a percentage basis; students are required to pass in all three. A borderline fail in the coursework may be redeemed by a convincing pass in the written exams but, apart from that, the three aspects are considered separately. For details of the requirements, see www.dcs.bbk.ac.uk/~roger/exams.html

Coursework

Required coursework should be completed by the set deadlines. Students should retain the marked coursework, ready to assemble into a folder for submission in the summer term. Required coursework in the first year includes the C++ programming assignments, exercises in Information Systems and exercises in Computer Architecture; required coursework on second-year material includes exercises in database topics, including the use of the SQL database manipulation language, programming assignments in Java or C#, exercises in Networks and Software Engineering, and a research investigation. Class tests may also form part of the coursework, in addition to assignments; in particular a satisfactory performance is required in the C++ programming test which is taken near the end of the C++ course. Examinations

The written examinations for the MSc take place in late May or early June, in the middle of the summer term. Full-time students take four written papers; first-year part-time students take two written papers constituting the written examination element of Part 1 of the degree course, and second-year part-time students take the two papers that form the written examination element of Part 2.

Examinations are held in the daytime, so part-time students will have to make arrangements with their employers to take leave of absence.

Admission to the second year of the part-time course is conditional upon a satisfactory performance in the Part 1 examination and in the first-year coursework.

Full-time students will be given a departmental examination covering their first term’s work, at the beginning of the second term. Attendance is required. Students who perform badly in this examination or who have not satisfactorily completed the C++ module will be advised to withdraw from the course.

A practice exam is offered to first-year part-time students, usually on the first evening of the summer term. Attendance is optional but strongly recommended. The scripts are marked and returned to the students, but the results are not recorded and they do not form part of the assessment for the degree; the exam is purely for practice.

Detailed notes on the format and timetable of the exams and other such matters are distributed early in the spring term and published on the School’s web site at www.dcs.bbk.ac.uk/~roger/exams.html

23

Projects

For the MSc, each student is required to undertake an individual project, under the supervision of a staff member, which should represent some 25-30% of the student’s effort for the degree. Students are expected to come up with their own ideas for projects. A wide range of topics is acceptable so long as there is a substantial computing content and the project is predominantly of a practical, problem-solving nature. In order to arrange supervision for the project, a student should discuss possible projects with the Projects Tutor or directly with the lecturer who seems the most appropriate for the topic.

Projects are examined on one occasion only each year; the deadline for submission of project reports is the Monday before the start of the autumn term. A student intending to submit a project report in a particular year must provide early in the summer term of that year a one-page project proposal for approval by the examiners.

Notes on carrying out projects and preparing project reports are available from the Course Director and will be distributed during the year and published on the School’s web site at www.dcs.bbk.ac.uk/~roger/projects.html

Two copies of the project report should be submitted to the Exams Tutor by the deadline. Distinctions and Merits

The MSc/PGDip is not classified like a BSc (first-class honours, upper-second, lower-second etc) but the examiners may award a mark of distinction and a mark of merit. Students are informed by the College of their marks for the exams and grades for coursework and project. Re-entry and deferral

There are five elements to the assessment – the Part 1 written examinations (papers 1 and 2), the Part 1 coursework, the Part 2 written examinations (papers 3 and 4), the Part 2 coursework, and the project. A student whose first attempt at an element falls short of the MSc level is allowed just one more attempt, normally in the following year.

A student who has failed an element for the first time may enrol as a revision student, at half the regular fee, to prepare for the resit.

Students may request deferral of an element to the following year. This provision is intended primarily for the project, though students are occasionally permitted to defer written exams and, in exceptional cases, coursework. Students who have passed all elements except the project may enrol as project-only students, at one third of the regular fee, until the end of the term in which they submit their project. Regardless of when a project is submitted, it is examined only at the November meeting of the Examination Board.

Details regarding coursework re-entry, revision lecture timetable and the like, plus an electronic “white board” containing important announcements, are available on the School’s (password protected) intranet, accessed via www.dcs.bbk.ac.uk -> Intranet -> MSc/PGDip Computer Science.