Go to:
Logótipo
You are here: Start > EIC0111

Object Oriented Programming Laboratory

Code: EIC0111     Acronym: LPOO

Keywords
Classification Keyword
OFICIAL Programming

Instance: 2014/2015 - 2S Ícone do Moodle

Active? Yes
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Master in Informatics and Computing Engineering

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
MIEIC 148 Syllabus since 2009/2010 2 - 6 70 162

Teaching language

Suitable for English-speaking students

Objectives

 

    • Develop and deepen the skills of object-oriented programming, in a modern object-oriented programming language (Java), representative of the languages used for developing application software.

 

    • Developing object-oriented design skills, employing UML and design patterns. 

 

    • Learn to develop applications with graphical user interfaces (GUI) and large software libraries. 

 

    • Acquire the habit of following good practices in software development (iterative development, unit testing, refactoring, pair programming, etc.). 

 

Learning outcomes and competences

 

    • To be able to develop (design, code, document, analyze, test and maintain) object oriented programs with UML and Java.

 

    • To be able to use tools to support the various phases of program development and maintenance.

 

    • To be able to use patterns and frameworks.

 

Working method

Presencial

Pre-requirements (prior knowledge) and co-requirements (common knowledge)

Knowledge of object oriented programming in C++. 

Program

 

    • The Java language: elements of language and differences from C++.

 

    • Unit testing and test-driven development with JUnit.

 

    • Java libraries (Java API): overview, collections, graphical user interfaces and input / output.

 

    • Object-oriented design with UML: principles of object-oriented design; class diagrams, sequence diagrams and state diagrams; model driven development.

 

    • Design patterns.

 

    • Refactoring.

 

    • Introduction to mobile application development for Android.

 

    • Introdution to the Scala programming language (object-functional).

 

    • Introduction to multithreading, remote method invocation and animations in Java.

 

    • Tools for dynamic program analysis (debugging, profiling).

 

    • Reflection, run-time type information and meta-programming.

 

    • Design by contract.

 

    • Integrated project.



 

Mandatory literature

Bruce Eckel; Thinking in Java. ISBN: 0-13-027363-5
Russ Miles and Kim Hamilton; Learning UML 2.0. ISBN: 978-0-596-00982-3

Complementary Bibliography

Kent Beck; Test-driven development. ISBN: 978-0-32-114653-3
Erich Gamma... [et al.]; Design patterns. ISBN: 0-201-63361-2
Martin Fowler ; with contributions by kent Beck... [et al.]; Refactoring. ISBN: 0-201-48567-2

Teaching methods and learning activities

Theoretical exposition and discussion of program topics, more concentrated at the beginning of the semester. 
Hands-on lab for the iterative development of two projects in object-oriented technologies, in groups of two students: 
- a first "guided project" identical for all groups, to be held in the first half of the semester; 
- a second "integrated project", with separate subjects for different groups, to be held in the second half of the semester, possibly in coordination with other courses the same semester. 
Individual computer based programming test, in the middle of the semester. 
Individual computer based (multiple choice) test, in the end of the semester. 

Software

Eclipse
Enterprise Architect

Evaluation Type

Distributed evaluation without final exam

Assessment Components

Designation Weight (%)
Participação presencial 0,00
Teste 25,00
Trabalho laboratorial 75,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 30,00
Frequência das aulas 70,00
Trabalho laboratorial 62,00
Total: 162,00

Calculation formula of final grade

Assessment components and their weights:

- 15% - individual computer based programming test;

- 30% - guided project;

- 10% - intermediate delivery of the integrated project;

- 35% - final delivery of the integrated project.

- 10% - individual computer base multiple-choice test.

All components have a minimum grade of 40%.

Special assessment (TE, DA, ...)

All components are mandatory for all students. Students excused from attendance at school (student workers, etc..) should present the work on the same dates of the remaining students and should regularly meet their teachers to show the progress of their work.

Classification improvement

Frequency of the course the following year.

Recommend this page Top
Copyright 1996-2024 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2024-09-29 at 20:58:45 | Acceptable Use Policy | Data Protection Policy | Complaint Portal