1 module info

Upload: jemila-rani

Post on 06-Apr-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 1 Module Info

    1/12

    M70CDEAdvanced Programming

    Module Information

    Faiyaz Doctor & Alkis Stavrinides

  • 8/3/2019 1 Module Info

    2/12

    M70CDE Module Information 2

    Module Staff

    Module leader: Faiyaz Doctor

    Room AS415, Ext.8848, [email protected]

    Module lecturer: Alkis Stavrinides

    Room AS226, Ext.8377, [email protected] on campus on Tuesdays only, otherwise use email

    Teaching assistant: Dianabasi Nkantah

    Room AS237, Ext.8325, [email protected]

    mainly supporting us in surgeries

  • 8/3/2019 1 Module Info

    3/12

    M70CDE Module Information 3

    Credits, Dates, Times & Venues

    1.5-sized module, worth 15 CATS points/credits

    2 hrs/week for 11 weeks (+2 for assessment) plus additional surgery lab sessions

    attendance highly recommended!

    Tuesday evenings, 24 January 8 May 2012(Easter break: 8 April 29 April)

    Lecture (67 pm): AS124Tutorial (78 pm): AS124Surgery (89 pm): AS328/9

  • 8/3/2019 1 Module Info

    4/12

    M70CDE Module Information 4

    Main Topics Covered

    Abstraction & Specification Contracts & Exceptions; Javadoc

    Abstract Data Types Inheritance & Type Hierarchies

    Interfaces & Abstract Classes

    Java Collections & Generics Data Structures

    Lists, Stacks & Queues; Sets & Maps

    Algorithms & Efficiency Recursion; Sorting & Searching

    }

    }} Alkis}}

    }}

    } Faiyaz}}

  • 8/3/2019 1 Module Info

    5/12

    M70CDE Module Information 5

    Module Aims (from MID)

    This module extends the student's understanding of

    object-oriented programming (OOP) concepts andtechniques, by focusing on data abstraction, its role insoftware design and its central importance in realisingthe benefits of OOP through reuse.

    The module is primarily concerned with the design andimplementation of abstract data type specifications asreusable software components. The initial study of dataabstraction will include coverage of design contracts,

    exception handling, type hierarchies and collections.The module will also consider implementation issues,including a brief study of algorithms and efficiency.

  • 8/3/2019 1 Module Info

    6/12

    M70CDE Module Information 6

    Module Aims (continued)

    This module is intended for students

    with previous programming experience,preferably in an OOP language such asJava, C++ or C#.

  • 8/3/2019 1 Module Info

    7/12

    M70CDE Module Information 7

    Learning Outcomes

    1. Explain the importance of design-by-contract

    principles and apply these in creating abstract datatype (ADT) specifications in the OOP context;

    2. Define, extend and reuse hierarchies of abstract datatypes as generic or type-specific collections, and showcritical awareness of the design issues exemplified bythe Java Collections Framework;

    3. Select suitable data structures and algorithms, and

    use appropriate OOP techniques in designing andimplementing ADT classes, with due regard toefficiency issues.

  • 8/3/2019 1 Module Info

    8/12

    M70CDE Module Information 8

    Indicative Content

    Data Abstraction:

    Encapsulation and abstraction; data and proceduralabstraction; contracts and exceptions; specification ofabstract data types.

    ADT Design Issues:Abstract type hierarchies; contract inheritance; collectionsand the Java Collections Framework; use of interfacesand abstract classes; documenting ADT contracts.

    Algorithms and Efficiency:A brief study of key concepts: recursion; sort and searchalgorithms; efficiency and Big-O notation.

  • 8/3/2019 1 Module Info

    9/12

    M70CDE Module Information 9

    Assessment

    This module is 100% coursework assessed,

    with two equally-weighted programmingassignments (which may include tests)

    To pass the module you need an overall

    module mark of at least 40%Reassessment

    You can be reassessed in coursework providedyou have submitted all original assessments(or had them deferred)

  • 8/3/2019 1 Module Info

    10/12

    M70CDE Module Information 10

    Recommended Texts Collins WJ (2011), Data Structures and the Java Collections

    Framework, 3rd ed, Wiley

    Liskov B & Guttag J (2001), Program Development in Java:Abstraction, Specification and Object-Oriented Design, Addison-Wesley

    Naftalin M & Wadler P (2006), Java Generics and Collections,

    OReilly Carrano F & Prichard J (2006), Data Abstraction and Problem

    Solving with Java: Walls and Mirrors (2nd ed), Addison-Wesley

    Carrano F (2012), Data Structures and Abstractions with Java (3rded), Pearson/Prentice-Hall

    Online Tutorials, e.g.http://docs.oracle.com/javase/tutorial/essential/exceptions (Exceptions)http://docs.oracle.com/javase/tutorial/collections (Collections)http://docs.oracle.com/javase/tutorial/extra/generics (Generics)

  • 8/3/2019 1 Module Info

    11/12

    M70CDE Module Information 11

    Teaching Schedule (provisional)

    Week Date Topic

    1 24/1 Introduction + Pre-Module Test2 31/1 OOP Review + IDEs & Javadoc3 7/2 Contracts & Exceptions + C&E Tutorial4 14/2 Abstract Data Types + Interfaces

    5 21/2 Type Hierarchies +Abstract Classes6 28/2 Java Collections + Generics7 6/3 Lists, Stacks & Queues + Tutorial8 13/3 Sets & Maps + Big-O Notation9 20/3 Algorithms + Recursion10 27/3 Sorting & Searching + S&S Tutorial11 3/4 (Contingency) + Tutorial/Surgery12 1/5 (No teaching)13 8/5 In-Class Test

  • 8/3/2019 1 Module Info

    12/12

    M70CDE Module Information 12

    Assessment Schedule (provisional)

    Assignment 1 Issued Tuesday 7 February Due Thursday 8 March

    Assignment 2 Issued Tuesday 13 March Due Friday 4 May

    Test Tuesday 8 May

    Resit Assignment Normally released in June, with a mid-August

    submission deadline and a test