Learning outcomes

The objective of this course is to teach students the basic concepts of object-oriented programming. The concepts are illustrated and implemented with the Java language. At the end of this course, the student will be able to structure, specify and implement robust programs using data abstraction and subtyping. Of particular importance is program correction (compliance with specifications, substitution principle, tests...).

Content

The course is primarily motivated by the need for powerful abstraction techniques that facilitate the development and maintenance of large programs. After a brief introduction to the basics of the Java language, the course the abstraction techniques are successively introduced, each being the subject of a chapter: procedural abstraction (reminder), data abstraction, iteration abstraction and type hierarchy abstraction. Additional chapters are dedicated to exceptions, generics and testing. In each chapter, concepts are illustrated and implemented with the Java language. The course is based on the book: “Program Development in Java: Abstraction, Specification and Object-Oriented Design” by Barbara Liskov & John Guttag, Addison-Wesley

Assessment method

Written evaluation

Sources, references and any support material

Program Development in Java: Abstraction, Specification and Object-Oriented Design Barbara Liskov & John Guttag, Addison-Wesley

Language of instruction

French