Advanced Object Oriented Programming

Faculteit Science and Engineering
Jaar 2019/20
Vakcode INBGOP-09
Vaknaam Advanced Object Oriented Programming
Niveau(s) bachelor
Voertaal Engels
Periode semester I a
ECTS 5
Rooster rooster.rug.nl

Uitgebreide vaknaam Advanced Object Oriented Programming
Leerdoelen At the end of the course, the student is able to:
1) classify and use complex OOP design patterns (*knowledge*), understand and use the design decisions behind common Java libraries and API (*comprehension*), describe how JVM and garbage collection works (*knowledge*)
2) apply in practice the learned techniques, such as thread-based concurrent programming, logging, reflection, use of open-source development tools and build tools (Maven), version control (git), unit testing (JUnit) (*application*)
3) develop distributed applications communicating via network using OOP principles (*synthesis*)
4) work in a team effectively (*coorperation*)
Omschrijving Programming according to the OO principle is more than just the simple application of class hierarchies and inheritance. The OO principle assumes good reuse of previously constructed classes, a clear and legible code, and it includes several commonly used methods and approaches. The module will deal with a number of those specific OO principles and students will put them into practice. Emphasis will thus not be on the formal aspects, but more on the practical aspects with the aim of acquiring an engineering attitude towards the OO principles. In addition, students will be introduced to the design of larger applications. In this context, issues such as dividing responsibilities over classes, reuse, feasibility, etc. play a more important role than all kinds of formal aspects. In the module, use will be made of common developing environments (e.g.,an IDE like Eclipse and a version control and submission system like github), focusing on developing software, with elementary use of design tools and diagrams like the ones from UML, as well as the use of GUI builders. Students are expected to have basic knowledge of OO programming. This means they are expected to have followed the OOP module. (If the SD module is maintained as a support module, other modules providing an introduction to this subject may also be considered sufficient preparation.) The module comprises lectures as well as practicals. Each week, one or two 2-hour lectures will explain the theory, and in a 2-hour practical, students will put the theory of that particular week into practice. This means 4 to 6 scheduled contact hours per week over a period of 6 weeks. Each assignment will be followed by a so called demo-moment, in which students will demonstrate the created application and need to answer questions about the code and construction.
In the remaining time, students will independently prepare the tutorials and practicals as well as the final assignment.
Uren per week
Onderwijsvorm Hoorcollege (LC), Practisch werk (PRC), Werkcollege (T)
Toetsvorm Opdracht (AST), Practisch werk (PR), Presentatie (P), Schriftelijk tentamen (WE)
(The course grading is a weighted final grading of 3 computer labs (30% in total, with different weighting factors, because the assignments will not be equal in size), one final assignment (40%) including code, report and demonstration of the created application) and a written exam (30%). All of these gradings should be at least 5.)
Vaksoort bachelor
Coördinator dr. R. Smedinga
Docent(en) prof. dr. A. Lazovik ,dr. R. Smedinga
Verplichte literatuur
Titel Auteur ISBN Prijs
"Absolute Java", Addison-Wesley (Not compulsory) Walter Savitch
Entreevoorwaarden The course unit assumes prior knowledge acquired from Object Oriented Programming.
Opmerkingen
Opgenomen in
Opleiding Jaar Periode Type
BSc Computing Science 2 semester I a verplicht
BSc Courses for Exchange Students: Artificial Intelligence & Computing Science - semester I a Computing Science