|
Object Oriented Programming
Scholar Year: 2019/2020 - 2S
| Code: |
INF32150 |
|
Acronym: |
POO |
| Scientific Fields: |
Informática |
Courses
| Acronym |
N. of students |
Study plan |
Curricular year |
ECTS |
Contact time |
Total Time |
| INF |
151 |
|
1º |
6,0 |
75 |
162,0 |
Teaching language
Portuguese
Intended learning outcomes (Knowledges, skills and competencies to be developed by the students)
- Understand and apply advanced concepts of object oriented programming.
- Apply those concepts using the Java programming language.
- Know how to design application solutions according to the object-oriented paradigm.
Prerequisites:
Basic programming skills and, in particular, object-oriented programming. It is necessary to know in the last topic the following concepts: classes, objects, attributes, methods, class composition and basic collections.
Syllabus
1. Advanced Concepts of Object Oriented Programming
- Review of Object Oriented Programming basic concepts.
- Class inheritance. Class hierarchy and constructors in inheritance. Method overriding.
- Hierarchical class libraries and fundamental base classes.
- Principle of substitution and polymorphism. Static and dynamic binding.
- Abstract classes. Abstract methods.
- Interfaces. Hierarchy of interfaces.
- Generic and complementary concepts of collections.
- Handling errors and exceptions.
- Input and output data. Serialization.
- Design of applications.
2. Application of Object Oriented Programming advanced concepts.
- Introduction to design patterns.
- Introduction to graphic interfaces using JavaFX.
- Event programming. Properties
- Basic and advanced controls.
- Windows and Forms
- Effects and animations
Software
BlueJ
BlueJ
Netbeans
IntelliJ IDEA
Demonstration of the syllabus coherence with the UC intended learning outcomes
Understanding the advanced concepts of the object orientation paradigm, as well as the ability to define models of the reality using the OO programming approach, are achieved through the learning of the subjects addressed by the paradigm.
The advanced concepts of object-oriented programming will enable the student to understand and apply the full spectrum of OO concepts using one of the existing object-oriented programming languages.
The implementation of advanced OO techniques allow the student to build applications according to the paradigm using the studied programming language. They also allow the student to choose the best way to organize classes and to select the appropriate way to store and manipulate groups of objects. It also allow the student to know how to manage the events of a program, making the code more efficient, robust, reusable and modular. These programming concepts are also complemented with the concepts and techniques necessary to allow students to integrate their code with other programmers.
Teaching methodologies
Theoretical-practical classes (using slides and demonstrations)
- Theoretical concepts
- Practical examples solved during class
Laboratory classes (with computer applications development)
- Execution of laboratory work (evaluated)
Autonomous Work
- Implementation of a project with two phases.
- Theoretical and practical accompaniment of theorectical classes
- Moodle self-assessment exercises
Demonstration of the teaching methodologies coherence with the curricular unit's intended learning outcomes
Theoretical-practical classes use a mix of expository method, using slides, and the blackboard for demonstration and examples of concepts related to the understanding of the essential elements of the new programming paradigm, the fundamental concepts of object-oriented programming and the definition of models of reality.
In Laboratory classes we intend to apply the fundamental concepts of object-oriented programming using the studied programming language so that students develops the ability to analyze problems and build their solutions using the OO programming paradigm.
The final project promotes the systematization, by the student, of knowledge acquired in order to correctly structure and develop efficient, robust, reusable and modular code, using the object-oriented paradigm.
Lab classes use an agile software development technique – called pair programming – to allow students to develop teamwork skills and use data from technical and scientific literature.
It is intended that the students preferentially use the continuous evaluation system, whose components aim at keeping them in permanent contact with the course instructors. It also aims at distributing the effort and assimilation of knowledge throughout the semester.
The laboratory component and the project, with problem solving and team implementation of the solution found, are the components that contribute most to the development of students' teamwork capacity
Assessment methodologies and evidences
Consisting of two components: Practical and Theoretical
Practical:
- Laboratory work (12 evaluable, average of best 9)
- Two-phases project with separate evaluations (min. 7.5 values in each phase, 9.5 average values of the two phases). The first phase has a weight of 60% and the second of 40%.
Theoretical:
- Theoretical tests (min. 7.5 values in each one, 9.5 mean values of the two tests)
- Exam (min. 9,5 values)
Normal Season (with possibility of incorporating continuous assessment component):
Practical component, better between:
- 20% Laboratories + 80% Project;
- 100% Project.
Theoretical Component:
- By Tests: Average of 2 tests.
- By Exam: Exam Note.
Final grade: 50% Practice + 50% Theoretical
Special Exam Season (without possibility of incorporating continuous evaluation component):
- In case of use, in the Normal Season, of one of the Components, Practical or Theoretical, it will be reused.
- Improvements of grades oblige the enrollment and respective payment in the Academic Division. There will be no improvement in the tests in the 1st Call Exam;
- Practical Component (if there was no use of this component in the Normal Season, the project with the materials of the two phases must be delivered in the Special Exam Season). Laboratories are not considered in these epochs of evaluation.
- Theoretical Component (if there was no use of this component in the Normal Season, the exam must be done in the Special Exam Period).
Final grade: 50% Practice + 50% Theoretical
Attendance system
NA
Assement and Attendance registers
| Description |
Type |
Time (hours) |
End Date |
| Attendance (estimated) |
Classes |
0 |
|
| |
Total: |
0 |
Primary Bibliography
F. Mário Martins;JAVA 8 - POO + Construções Funcionais, FCA, 2017. ISBN: 978-972-722-838-6 |
David Barnes & Michael Kölling;Objects First with Java (6th Edition), Pearson Education Limited, 2016. ISBN: 9781292159089 |
Secondary Bibliography
|
|