F27SB2 Software Development 2 Lecture 0: Overview
Course Staff Lecturers: – Verena Rieser (VR): office EM 1.36, office hours: Tues – Greg Michealson (GJM): office EM G.56 2
Teaching Assistants Tutorials & Labs: Craig Mackie Ruby Valverde Labs only: Matthias Keysermann Muhannad Hijaze Osama Khalifa Turkey Alsalkini
Organisation co-taught by Greg Michaelson (GJM) & Verena Rieser (VR) Lectures: – Tuesday EM 336 – Wednesday EM 336 Tutorials – Wednesday EM 250, or – Thursday EM 250 Laboratory: – Thursday EM 250
Organisation weekTues Lecture Wed Tutorial Wed Lecture Thurs Tutorial Thurs Lab GJM-VR- 2GJM VRGJM 3 4VR 5 6GJM 7 VR 8GJM VRGJM 9 VR 10GJM VRGJM 11-VRVR revisionVR- 12GJM revision---check off
Assessment exam – 50% – multiple choice - 50% VR + 50% GJM coursework – 50% = 25% VR + 25% GJM – GJM: 5 * laboratory exercises – may be multi-part – checked off in laboratory
GJM Contact Greg Michaelson – works Tuesday, Wednesday & Thursday only EM G56 – if light on then knock on door... x3422 – rapid response course material on Vision and on WWW page
Overview 8. Syllabus Inheritance and Generics: hierarchies, subclasses, polymorphism, static and dynamic type, overriding, dynamic method lookup. Designing classes: coupling, cohesion, abstraction, modularisation, types Abstract classes, abstract methods, interfaces State machines & state diagrams GUIs: components, layout, event handling Error-handling: defensive programming, exceptions, assertions, JUnit tests
Overview 10. Learning Outcomes Subject Mastery Understanding and application/ mastery of the object-oriented paradigm Understanding of inheritance and generics. Understand how to produce well designed, i.e. extendable and maintainable, code. Ability to critically evaluate and improve the quality of code. Ability to develop simple state diagrams Ability to design and implement simple graphic user interfaces
Overview Personal abilities Possession of fundamental skills in computer science, applicable throughout the remainder of the degree Understand challenges in developing, designing and maintaining code. Understanding of the importance of regular working habits (pdp) Ability to compare and evaluate the applicability of simple data structures and code design choices to relevant problems (pdp)
Notation Calibri – English descriptions Courier New – Java code Courier New italic – Java generalisation – replace with appropriate Java in specific circumstances
Notation e.g. to describe a method signature public void setSize(int width,int height) in method call, replace: – width with any integer expression – height with any integer expression e.g. setSize(200,220)