Enter a brief description of your changes
(Required)
Minor changes are by default collapsed in the page history.
No changes
The page does not exist yet.
Failed to load changes
Version by on
Leave Collaboration
Are you sure you want to leave the realtime collaboration and continue editing alone? The changes you save while editing alone will lead to merge conflicts with the changes auto-saved by the realtime editing session.
At the end of the course, students will be acquainted with basic knowledge of the object-oriented paradigm of software construction, of its basic design patterns, its incarnation in the Java programming language and the corresponding framework, including advanced aspects like GUIs, multi-threading and events.
course contents
Basic elements of object-oriented programming and design
The case of the Java programming language: overview and development tools
Basic functionality: classes, objects, methods, fields, and instantiation
Polymorphism, inheritance, reuse: interfaces and abstract classes
Brief overview of design patterns and techniques of effective programming
Development tools: JDK, Eclipse, Mercurial
Overview of C# programming and IDEs
readings / bibliography
Reference book:
Bruce Eckel. Thinking in Java -- Fourth Edition
Additional books:
Joshua Bloch. Effective Java -- Second Edition
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns The course will also rely on tutorials and documentation available on the Internet.
teaching methods
9 hours of lesson per week, typically 6 in the teaching room and 3 in the lab In room, we will illustrate object-oriented programming techniques and details of the Java programming language, and conduct exercises to stimulate a critical attitude in students. In lab, we illustrate various development tools, and assign developing tasks to exercise practical abilities of students.
assessment methods
Assessment is conducted in two stages, not necessarily ordered: 1) Practical test on Java programming in lab. With a couple of programming exercises in Java, including automated tests or pertaining the production of a simple graphical user interface, we assess the student's capacity of concluding quickly and with pertinence a simple programming/designing task. 2) Oral exam based on presentation of a project. In 3-persons teams, students realise a software development project in Java, producing documentation of requirements, design, and implementation. Assessment includes check of software quality and discussions of design choices. Additionally, each student presents a mini-deliverable in C# obtained by translating some of the code he/she developed during the project. Each stage produces an evaluation in the range [0,33], and the final evaluation is the weighted average of 60% (best of the two votes) - 40% (worst of the two votes).
teaching tools
Slides projected during the lessons, published on the web site Software: Java Development Kit, Eclipse, Microsoft VisualStudio