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

Object Oriented Programming Laboratory

Code: EIC0111     Acronym: LPOO

Keywords
Classification Keyword
OFICIAL Programming

Instance: 2011/2012 - 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 108 Syllabus since 2009/2010 2 - 6 70 162

Teaching language

Portuguese

Objectives

1 - BACKGROUND
Object-oriented programming languages are prevalent today. In previous curricular units, students learn an object-oriented language (C++) more suited for developing so called system software or software with stringent constraints in terms of execution efficiency. However, for developing so called application software, higher-level object-oriented languages, such as Java and C #, are more advantageous and more used today, by the greater ease and speed of development they provide, for the large number of libraries they offer, among other features.
Moreover, from a certain level of program complexity, the object-oriented design skills become more important than the mere coding skills in a specific language. It thus becomes important to know notations that can be used to document design decisions at a high level of abstraction (UML), as well as design patterns which incorporate the growing body of knowledge of good solutions for recurring problems that arise in object-oriented software design.

2 - SPECIFIC 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.).

3 – PREVIOUS KNOWLEDGE
Knowledge of object oriented programming in C++.

4 - PERCENTAGE DISTRIBUTION
Scientific Component: 50%
Technological Component: 50%

5 - LEARNING OUTCOMES
At the end of the course, students should:
- be able to develop (design, code, document, analyze, test and maintain) object-oriented programs with UML and Java;
- be able to use tools to support the various phases of program development and maintenance:
- be able to use patterns and frameworks.

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 (Unified Modeling Language): principles of object-oriented design, class diagrams, sequence diagrams, state diagrams, model driven development, examples.
Design patterns.
Refactoring.
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.
Other object-oriented languages: C# and Ruby.
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

Enterprise Architect
Eclipse

Evaluation Type

Distributed evaluation without final exam

Assessment Components

Description Type Time (hours) Weight (%) End date
Attendance (estimated) Participação presencial 66,00
Guided project Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese 24,00 2012-03-30
Integrated project Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese 28,00 2012-06-01
Individual computer based programming test Exame 3,00 2012-03-14
Presentation and discussion of integrated project Exame 3,00 2012-06-07
Individual test (multiple choice) Exame 2,00 2012-06-06
Total: - 0,00

Amount of time allocated to each course unit

Description Type Time (hours) End date
Individual study Estudo autónomo 36 2012-06-07
Total: 36,00

Calculation formula of final grade

Assessment components and their weights:
- 15% - individual computer based programming test;
- 25% - guided project;
- 15% - 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-28 at 08:24:58 | Acceptable Use Policy | Data Protection Policy | Complaint Portal