Object Oriented Programming-LEIC

Course: BSc in Computer Science and Computer Engineering
Curricular Unit (UC)

Object Oriented Programming

Mandatory X
Scientific Area IC
Year: 1st Semester: 2nd ECTS: 6 Total Hours: 160
Contact Hours T: 43.5 TP:12 PL: 12 S: OT:
Professor in charge

Pedro Alexandre de Seia e Cunha Ribeiro Pereira

T - Theoretical; TP - Theory and practice; PL - Laboratory; S - Seminar; OT - Tutorial.

  • Intended learning outcomes (knowledge, skills and competences to be developed by the students

    Students who successfully complete this course unit should be able to:

    1. Define and use derived classes, and classes that represent dynamic data structures.

    2. Use Graphical User Interface in applications build.

    3. Build small applications using the paradigm of Object Oriented Programming.

    4. Test and repair applications using the development tools appropriate.

    5. Write reports to justifying the class hierarchy and the data structure used in the applications built.

  • Syllabus


     I. Inheritance and polymorphism: derived classes; abstract classes; interfaces; enumerates; dynamic binding.

    II. Inner classes; local classes; anonymous classes; lambda expressions.

    III. Elementary Dynamic Data Structures: vectors, linked lists. Iterators. Generics.

    IV. Collections; Binary and text streams for input and output. Exceptions handling.

    V. Using GUI: event-driven programming; listeners; layout managers; MVC architecture.


  • Evidence of the syllabus coherence with the curricular unit’s intended learning outcomes

    This curricular unit introduces the fundamental concepts and the vocabulary of the Object Oriented Programming (I) and event-driven programming (V) paradigms, using the Java language (1), (3) and (4). The class hierarchy of streams and the class hierarchy of dynamic data structures in the Java collections framework (IV) are used to consolidate the concepts transmitted (1).

  • Teaching methodologies (including evaluation)

    Planned during the semester in 30 lectures (15 of 3 hours and 15 of 1.5 hours). The lectures are intended for presentation of topics and practical examples. The main topics are further explored through practical work to develop Java programs using graphical user interface.

    Learning outcomes (1) and (2) are individually assessed through written test during the semester. During the monitoring of group work performed in class practices are assessed learning outcomes (3) and (5). Learning outcomes (4) and (5) are evaluated in the final discussion of work group.

    Final grade corresponds to 40% of the final test, 40% of the practical works and 20% of the evaluation sheets made in class.

  • Evidence of the teaching methodologies coherence with the curricular unit’s intended learning outcomes

    Knowledge of the fundamental concepts of Object Oriented Programming and event-driven programming is achieved through interactive lessons, support elements, and the building of an application, with the participation of students, that need to specialize behaviors (polymorphism), code reuse (inheritance) and textual or graphics user interface usage (1-4).

    The ability to develop good practice in design and coding of applications using the paradigm of object oriented programming and graphics user interface (3-6), is developed by performing work under supervision and their critical evaluation.

  • Main Bibliography:

    W. Savitch, Java: An Introduction to Problem Solving and Programming, 8th Edition, Pearson, 2017. ISBN  9780134462035