Search for contacts, projects,
courses and publications

Programming Fundamentals 3

People

Binder W.

Course director

Rosà A.

Assistant

Sun H.

Assistant

Description

This course teaches concepts and methods of object-oriented programming as well as concurrent programming techniques. In the first part of the course, the object-oriented programming features of Java are presented in detail, covering inclusion polymorphism, dynamic binding, and parametric polymorphism. The course also teaches design by contract, UML, as well as selected design principles and patterns. The second part of the course gives an introduction to concurrent programming in Java. It covers multi-threading, safety and liveness hazards, and synchronization. The presented techniques enable the development of scalable Java software capable of exploiting modern multi-core hardware.

 

REFERENCES

  • Agile Software Development. Principles, Patterns, and Practices (2003), by R. C. Martin. ISBN-13: 978-0135974445.
  • Design Patterns: Elements of Reusable Object-Oriented Software (1994), by E. Gamma, R. Helm, R. Johnson, J. Vlissides. ISBN-13: 078-5342633610.
  • Java Generics and Collections (2006), by M. Naftalin, P. Wadler. ISBN-13: 978-0596527754.
  • Java Concurrency in Practice (2006), by B. Goetz, T. Peierls, J. Bloch, J. Bowbeer, D. Holmes, D. Lea. ISBN-13: 978-0321349606.

Education