https://studiegids.vu.nl/en/courses/2024-2025/X_400561Upon completion of this course, students will:understand advanced programming concepts and skills; (Knowledge and understanding)apply advanced programming concepts in their code; (Applying knowledge and understanding)use basic program design concepts to write larger programs. (Applying knowledge and understanding)In this course, students will learn the next steps of programming. Whereas Introduction to Programming focuses on the basics of how to program, Advanced Programming focuses more on the design process and principles of (larger and more complex) programs. These principles are important in the field of software engineering and are applied when multiple developers work together on a project. General topics covered during the course include: Modifiers, Interfaces (APIs, abstract data types, documentation, polymorphism), Error handling, Data structures (Collection, for-each loop), Auto (un)boxing, Generic types, Inner classes, Inheritance ('super'), Abstract Classes, Object class (.clone() & Cloneable, .equals(), .toString()), Enums, Design Patterns (Composition vs Inheritance), TestingLectures (4 to 6 hours per week) and practical sessions (4 hours per week). Students are required to attend a practical session at least once every week.The final grade is based on a practical grade and an exam grade. During the practicals, students submit three graded assignments, the practical grade is the weighted average of those three assignments. The assignments are to be done individually and are automatically checked for plagiarism. If there is any reasonable doubt whether the student was the sole author of their work, an oral exam will be scheduled. In order to pass the course, both the practical and the exam grade should be at least a 5.5.Students can optionally refer to the book Absolute Java, Walter Savitch, Pearson International Edition, Fifth International Edition, ISBN: 978-0-273-76479-3.Bachelor Business Analytics (year 2)Bachelor Econometrics and Operations Research (year 3)Students must register for a practical group. This will happen via Canvas during the first week of the course.Introduction to Programming (XB_0099), or another course of similar level (e.g. Computer Programming (XB_40011), Computer Programming Project (X_400556), Introduction to Programming (Java) (X_400634)). The programming language used in this course is Java. It is not possible to do the assignments in a different language.