Object Oriented Programming 2017/2018
- 7 ECTS
- Taught in Portuguese
- Continuous Assessment
- relevant skillset
Once this course is finished, the student ought to be able to create simple object oriented applications using the Java programming language. The student shall also have the knowledge to critically evaluate object oriented applications of greater size or complexity.
Knowledge acquired in the curricular unit:
Algoritmia e Programação, namely logical conditions, cycles and arrays
Matemática Discreta: logic, boolean expressions, set theory
Álgebra Linear: logic reasoning for demonstrations and matricial operations
Exposition, demonstrations, experimental. Concepts are explained in theory, with students interpellation, canonical examples are demonstrated, students experiment by applying concepts to practical problems.Peer evaluation will also be used to solve practical problems.
Body of Work
- Binary language, compilation, virtual machine;
- Primitive types, domain, precision, conversion;
- Values and references;
- Control structures;
- Basic structure of a Java program.
- Object oriented program paradigm;
- The concept of class
- Classes and objects;
- Classes definition.
- Constructors, methods, parameters;
- Composition, overloading;
- Object collections, iterators;
- Quality in classes design: Coupling and cohesion, responsability, refactoring.
- Static and dynamic types;
- Access qualifiers.
Abstraction and Modules
- Packages and import;
- Object diagram, class diagram;
- Abstract classes and interfaces;
- Wrapper classes;
- Singleton and registry patterns.
- Testing and error detection;
- Error handling;
- Code comments - javadoc
F. Mário Martins, Java 8: POO + Construções Funcionais, 2017, ISBN 978-972-722-8386, FCA
David J. Barnes & Michael Kölling, Objects First with Java, Sixth Edition, Prentice Hall / Pearson Education, 2017, ISBN 13-978-1-292-15904-1.
The Java Tutorials, http://docs.oracle.com/javase/tutorial/index.html
Deitel & Deitel, Java: How to program, s.ac.id/repository/docs/ajar/Java_-_How_To_Program_-_Ninth_Edition_(2012).pdf
David J. Eck, Introduction to Programming Using Java, http://math.hws.edu/javanotes/, Version 7.0, 2014
F. Mário Martins, Projetos de POO em Java, 2014, ISBN 978-972-722-792-1
1 Introduction. Fundamental concepts
2 Fundamentals Classes and objects, attributes, constructor, methods, parameters, return
3 Interaction Variable scope, overloading, coupling and cohesion, responsability. String, methods, primitive and references
4 Collections Variable size object collections, ArrayList, NULL
5 " anonymous objects, fixed size collections, refactoring
5 " Hashmap, static and final, iterators, Random, libraries, Javadoc
7 Inheritance Inheritance, superclass, subclass
8 Abstraction Hierarchy, casting, polymorphism, access qualifiers, overriding
9 " Abstract classes, abstract methods
10 Quality Testing, detection and error handling
11 Interfaces Syntax, differences
12 " Interfaces, try catch
13 Quality ArrayList inheritance, final classes and methods, wrapper classes, patterns
Demonstration of the syllabus coherence with the curricular unit's objectives
Fundamentals establish a common ground for students, regardless of their previous academic path. The Java programming language is presented as equivalent to previously known structured languages. In the classes chapter, the students are presented with the concept of a computer program which relies on the class (or its manifestation: the object) as its atomic unit. It’s also shown how this programming paradigm is ingrained into the Java language explaining also the concept of OOP. In the Inheritance and Abstraction and Modularity chapters, the student learns how to create a computer program from a conceptual drawing; how this phase can influence the final product. In the last chapter, students are shown some of the functionality the Java framekwork provides for graphical interfaces and how they can separate the logic and interface layers of a program.
Demonstration of the teaching methodologies coherence with the curricular unit's objectives
The methologies chosen encompass the technological possibilities students have to apply an object oriented programming whilst making use of the artistic freedom provided by the Java framework. Canonical examples serve to propose quick problems the student can assimilate and understand the workflow. By experimenting, students will be allowed to roam free in their solutions while still focusing on each problem’s end goal. In these sessions, students will need to think not only of how might can achieve their goal but also test their ideas against the ideas of their peers. These potentially contradictory views will breed an optimal solution.
|relevant generic skill||improved?||assessed?|
|Achieving practical application of theoretical knowledge||Yes||Yes|
|Adapting to new situations||Yes|
|Analytical and synthetic skills|
|Commitment to effectiveness||Yes||Yes|
|Commitment to quality||Yes||Yes|
|Ethical and responsible behaviour||Yes|
|Event organization, planning and management|
|Foreign language proficiency||Yes|
|Information and learning management|
|Initiative and entrepreneurship capability|
|IT and technology proficiency||Yes||Yes|
|Problem Analysis and Assessment||Yes|
|Written and verbal communications skills|