|Programming Languages II||831LPR2|
|2||Undergraduate||Computer Systems Engineering||7 ects|
|Learning Period:||Language of Instruction:||Total Hours:|
|Learning Outcomes of the Curricular Unit:|
|These course intents students can understand and use the major concepts of object-oriented development. Initially the concepts of object-oriented programming (OOP) are introduced and applied using the Java language. Students should be able to model object-oriented applications through the use of UML class diagrams. They should also be able to implement these models by applying all the OOP available concepts (e.g., inheritance, polymorphism, etc.). Thereafter, it is intended that students master the implementation model of graphical user interfaces and file manipulation (cf. text and binary) for managing applications persistency. Students should also be able to fluently understand and interpret any OO model and Java implementation, as well as make full use of OOP potential applied to solve multiple programming problems.|
|1. Introduction to OO programming & UML|
2. The Java technology
3. Introduction to the Java programming language
4. Graphical User Interfaces (GUIs)
5. Java advanced concepts
|Demonstration of the Syllabus Coherence with the Curricular Unit's Objectives:|
|The contents are consistent with the learning objectives since they address the key topics related with object-oriented programming (OOP) and its implementation using the Java language, which must be mastered by the students at the end of the course. In particular it begins by addressing the fundamental concepts inherent to object-oriented programming and structuring programs in Java. Initially the study focus de class models and subsequent Java implementation, based on the use of collections and available object-oriented programming mechanisms (cf. inheritance, polymorphism, etc.). All covered topics are exemplified with the application of several practical exercises. The learning objectives are therefore aligned with addressed themes both at practical and theoretic-practical levels, which are then applied in various concrete examples both in classes and homework tasks.|
|Teaching Methodologies (Including Evaluation):|
|This course is organized into theoretic-practical (TP) and practical (PR) classes. The teaching methodology used within the TP classes is based on the oral presentation of the contents and immediate exemplification with concrete exercises covering the explained themes, namely the concepts of object-oriented programming in Java. In parallel, in the context of laboratory classes, students have the opportunity to apply and further develop exercises that complement the basis of experience with the covered topics. The assessment is continuous, consisting in two exams for the TP part and one practical project for the PL part. The TP exams have a weight of 30% and 40% respectively. The practical project has a weight of 30%. For calculating the final grade it is necessary to have approval to both parts individually (TP exams and PL project).|
|Demonstration of the Coherence between the Teaching Methodologies and the Learning Outcomes:|
|Teaching methodologies applied in this course seek to lead students to contact and know the most important concepts of object-oriented modeling as well as their implementation in Java. The course focus also on giving students practical development skills for structuring and developing object-oriented programs implemented in Java. The theoretic-practical classes and in particular the laboratory classes allow permanent contact with modeling and implementation of object-oriented applications, thus facilitating the gradual progress in the development of Java applications. This experience and contact with specific practical contexts and concrete examples improves the knowledge about object-oriented programming, and is essential to improve these technical and programming skills.|
| H.E. Eriksson and M. Penker, UML Toolkit, John Wiley & Sons Inc., October 1997.|
 Eckel, Bruce, Thinking in Java, 4th Ed., Prentice Hall, 2006, URL: http://mindview.net/Books/TIJ4 (2014).
 Hubbard, J. R., Programação em Java, Schaums easy Outlines, McGraw Hill, 2002.
 Paul Deitel, Harvey Deitel, Java How to Program, 9th Ed., Deitel, 2012.
 Sun, The Java Tutorial, A practical guide for programmers, URL: http://java.sun.com/docs/books/tutorial/index.html (2003).