advanced object-oriented programmingakridel/comp213-fall2016/lecture slides... · prentice hall,...
TRANSCRIPT
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, ...)