advanced object-oriented programmingakridel/comp213-fall2016/lecture slides... · prentice hall,...

16
COMP 213 Advanced Object-oriented Programming

Upload: dinhkiet

Post on 21-Jun-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

COMP 213Advanced Object-oriented Programming

Contact Info

• Eleni AkridaRoom 3.14, Ashton [email protected]

• Demonstrators / TAs:Thomas CarrollIdress HusienBenjamin Burger

Useful Information

• Module Web Page:http://cgi.csc.liv.ac.uk/~akridel/comp213.htmllecture notes, exercises, assignments, etc.

• Office Hours:Tuesdays 11am – 12 noonfor any questions concerning the module

• Recommended Textbook:Ralph Morelli.Object-Oriented Problem Solving: Java, Java, Java.2nd edition. Prentice Hall, 2003.

Today

• Overview of the module

• Aims

• Topics

• Recommendations / Expectations : what is expected of you

• How (not) to pass the module

Overview

• You already know how to write small programs.

• This module is all about writing larger programs, and how languages such as Java help you do this.

• The “problem”:more details to take care of, more details to keep track of ⇒more difficult to write a large program

• The solution:dividing details among several methods inside several classes ⇒manageable complexity

Overview: aims

• An appreciation of the complexity of large programs, and the use of classes and inheritance to manage this complexity

• The ability to design a collection of classes to implement a large program

• An appreciation of good programming style (clarity, elegance)

• To learn advanced Java concepts...

Overview: syllabus (part 1)

• Review of Java and Object Oriented Programming (OOP) – things you know

• OOP and Information Hiding – using classes to manage complexity:

• Interfaces & abstract classes

• Inner & anonymous classes

• Packages

• Abstract Data types – a more abstract view of what classes are

• Error-Handling – writing robust programs:

• Exceptions

• Throwing and catching exceptions

• Subclassing Exception

Overview: syllabus (part 2)

• Concurrency and Multi-Tasking – real OOP, objects in their own timelines:

• Class Thread

• Interface Runnable

• Thread management

• Synchronization & deadlock

• Input/output – basic functionality for the following:

• Input & output streams,

• Files

• Network Programming – 2nd assignment on this:

• Sockets, ports, URLs

• Remote method invocation

Examinations

• Continuous Assessment: 50%

• Practical assignment 1, worth 25%

• Practical assignment 2, worth 25%

• Exam: 50%

• Multiple choice format

• You need at least 40% to pass

About the assignments

• The 1st assignment will be on Abstract Data Types.

• The 2nd assignment will be on Network Programming.

• Extensions may be given, but only for things beyond your control.

About the exam

• I will attempt to do a revision lecture at the end of the semester, devoted to the exam.

• Past papers are available (website, Harold Cohen Library).

• However, Maude is no longer a part of this module, so part of the past exams will no longer be of use for this exam.

How to pass the module

• Attend the lectures & the labs (labs start on Week 3)

• Do all the practical assignments (start early & don’t cheat!)

• Revise for the final exam (use past papers)

Making the most of the assignments

• Attend the labs from Week 3 to Week 11

• You will have assignments or class tests for more than 1 module this semester

• Overlap between assignments of different modules is unavoidable

• The assignments for different modules are to be done “in parallel”, not “sequentially”

How to stand a good chance of failing the module

• Submit nothing for the practical assignments ⇒ you get zero & need to get at least 80% in the exam to pass overall!

• Miss out one of the practical assignments ⇒ you get zero for that assignment & need to get 40 out of the 75 remaining points (approx. 53%)

Ground rules

• Punctuality (we start on the hour)

• No distractions (mobile phones off, laptops shut)

• Consideration (keep noise levels down, but do ask questions)

Wrapping-up

• No lecture this Thursday, 29th September.

• Next contact will be on Tuesday, 4th October.

• Possible delay for your lecture slides printouts on this & the next week – the slides will be on the website on time.

• Next time: Review of Object Oriented Programming (classes, members, inheritance, ...)