The course illustrates the main topics of Object Oriented Programming by using the Java language. Advanced topics as multithreading will be connsidered. UML language will be used as a tool for design.
Programming basics in any language.
The student will be able to develop programs following the Object Oriented Paradigm concepts. Advanced topics as multithreading in Java will be considered as well. UML is used to help the design phase.
1. Intrduction to the course, the Java toolchain, writing the first program
2. Structured programming in Java, simple types, local variables, control statements
3. Object and classes– Object oriented programming rationale, attributes and methods, constructors
4. Object and classes– managing object lifecylce, reference counting, and garbage collection
6. Using existing classes – String, StringBuilder, arrays, …
7. Inheritance and polymorphism
8. The Object class, testing for equality, converting objects to strings
9. Interfaces and implementations
10. Managing errors and exceptions
11. File and file system access
12. Text file Input and Output – Reader, Writer, PrintWriter, Scanner
13. Binary file Input and Output – InputStream, OutputStream, DataIS, ByteArrayIS, …
14. Data collections – List, Set, MultiSet
15. Data collections – TreeMap, HashMap, Multimap
16. Graphical User Interfaces
17. Widgets and containers
18. Getting input from the user: the Command pattern, dialog boxes
19. The Observer pattern
20. Screen drawing, painting images
21. The Model View Controller pattern
22. Concurrent programming – Introduction to threads
23. Synchronization and notification
24. Higher level synchronization constructs (readers&writers lock, barriers, concurrent queues)
25. Thread pools
Kathy Sierra, Bert Bates, Head First Java, 2nd Edition, O'Reilly Media, ISBN-10: 0596009208, ISBN-13: 978-0596009205
Cay S. Horstmann, Big Java, 4th Edition for Java 7 and 8, ISBN : 978-0-470-55309-1
Exercises are provided or near every lesson.