1 module info
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