DADES IDENTIFICATIVES 2013_14
Assignatura (*) TÈCNIQUES AVANÇADES DE PROGRAMACIÓ Codi 17234117
Ensenyament
Grau d'Enginyeria Informàtica (2010)
Cicle 1r i 2n
Descriptors Crèd. Tipus Curs Període
6 Obligatòria Tercer Primer
Llengua d'impartició
Català
Departament Enginyeria Informàtica i Matemàtiques
Coordinador/a
GARCÍA LÓPEZ, PEDRO ANTONIO
Adreça electrònica pedro.garcia@urv.cat
susana.bujalance@urv.cat
raul.gracia@urv.cat
Professors/es
GARCÍA LÓPEZ, PEDRO ANTONIO
BUJALANCE GARCÍA, SUSANA
GRACIA TINEDO, RAÚL
Web http://moodle.urv.cat
Descripció general i informació rellevant Aquesta assignatura tracta conceptes importants de programació i disseny de software. En particular, un objectiu clar és adquirir la capacitat per analitzar, dissenyar, construir i mantenir aplicacions de forma robusta, segura i eficient, triant el paradigma i els llenguatges de programació més adequats.

Competències
Tipus A Codi Competències Específiques
 A4 Capacitat per concebre, desenvolupar i mantenir sistemes, serveis i aplicacions informàtiques emprant els mètodes de l’enginyeria del software com a instrument per a l’assegurament de la qualitat.
 CM8 Capacitat per analitzar, dissenyar, construir i mantenir aplicacions de forma robusta, segura i eficient, triant el paradigma i els llenguatges de programació més adequats.
Tipus B Codi Competències Transversals
Tipus C Codi Competències Nuclears
 C4 Expressar-se correctament de manera oral i escrita en una de les dues llengües oficials de la URV.

Resultats d'aprenentage
Tipus A Codi Resultats d'aprenentatge
 A4 Dissenya una aplicació basada en components utilitzant un marc de treball de programari estàndard.
Aplica tècniques de qualitat del programari com els test unitaris, la integració de codi i el control d’errors.
 CM8 Coneix els principals paradigmes de programació.
Aplica tècniques de refactoring i patrons de disseny en la creació de programari.
Aplica conceptes generals de metaprogramació I intercepció de programari.
Dissenya una aplicació basada en components utilitzant un marc de treball de programari estàndard.
Aplica tècniques de qualitat del programari com els test unitaris, la integració de codi i el control d’errors.
Tipus B Codi Resultats d'aprenentatge
Tipus C Codi Resultats d'aprenentatge
 C4 Produeix un text escrit gramaticalment correcte
Produeix un text escrit ben estructurat, clar i ric
Produeix un text escrit adequat a la situació comunicativa

Continguts
Tema Subtema
Introducció i conceptes generals Qualitat del Software
Paradigmes de programació
Arquitectura del Software
Sistemes de tipus i polimorfisme Tipat estàtic i dinàmic
Polimorfisme de sobrecàrrega
Polimorfisme paramètric
Polimorfisme de herència
Patrons de disseny i refactoring Patrons de creacío, estructurals i de comportament
Millora del codi i refactoring
Documentació del software i APIs
Mètriques d'avaluació de codi
Arquitectura del Software Agile Programming
Validació del software i tests unitaris
Programació reflectiva
Components software i Marcs de treball
Casos d'us Middleware i Objectes distribuïts
Arquitectures orientades a serveis
Servidors d'aplicacions
Eines de depuració i profiling de codi

Planificació
Metodologies  ::  Proves
  Competències (*) Hores a classe
Hores fora de classe
(**) Hores totals
Activitats Introductòries
4 8 12
Sessió Magistral
A4
20 35 55
Pràctiques a laboratoris
CM8
25 25 50
Atenció personalitzada
4 8 12
 
Proves de desenvolupament
A4
C4
7 14 21
 
(*) En el cas de docència no presencial, són les hores de treball amb suport vitual del professor.
(**) Les dades que apareixen a la taula de planificació són de caràcter orientatiu, considerant l’heterogeneïtat de l’alumnat

Metodologies
Metodologies
  Descripció
Activitats Introductòries Repás de conceptes d'orientació a objectes
Exemples de laboratori
Sessió Magistral Explicació de conceptes de teoria
Interacció amb preguntes i respostes amb els alumnes
Pràctiques a laboratoris Introducció de tecnologies i eines
Treball en grup
Atenció personalitzada Entrevistes individuals en horari de tutories.
Seguiment de resultats parcials.

Atenció personalitzada
Descripció
Entrevistes individuals en horari de tutories. Seguiment de resultats parcials.

Avaluació
Metodologies Competències Descripció Pes        
Pràctiques a laboratoris
CM8
Examen de laboratori sense Internet (setmana 6): conceptes de polimorfisme i patrons en Java
30
Proves de desenvolupament
A4
C4
Pràctica final: pràctica a resoldre en grup publicada la cinquena setmana. A lliurar incrementalment fins la setmana 16.

Examen teòric final
70
Altres  
 
Altres comentaris i segona convocatòria

L'avaluació de l'assignatura tindrà tres components fonamentals:
1) Examen de laboratori sense Internet (setmana 6): conceptes de polimorfisme i patrons en Java
2) Examen de teoria (setmana 15)
3) Pràctica final: pràctica a resoldre en grup publicada la cinquena setmana. A lliurar incrementalment fins la setmana 16.

La segona convocatoria consistirà en un examen de laboratatori de dos hores (1), un examen de teoria de dos hores (2) i el lliurament de la pràctica final (3).


Fonts d'informació

Bàsica Bertrand Meyer , Construcción de Software Orientado a Objetos , Prentice Hall , 2003
Paul Deitel, Como programar en Java, Pearson Education, 2012
Gamma et al, Design Patterns, Addison-Wesley, 1994
Martin Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
C. Szyperski , Component Software, Beyond Object-Oriented Programming, Addison-Wesley, 2000
Kent Beck, Test Driven Development, Addison-Wesley , 2002

Complementària

Recomanacions

Assignatures que en continuen el temari
SISTEMES DISTRIBUÏTS/17234106

Assignatures que es recomana cursar simultàniament
SISTEMES OBERTS/17234123

Assignatures que es recomana haver cursat prèviament
FONAMENTS DE PROGRAMACIÓ/17234001
METODOLOGIES DE LA PROGRAMACIÓ/17234116
ESTRUCTURES DE DADES/17234115
(*)La Guia docent és el document on es visualitza la proposta acadèmica de la URV. Aquest document és públic i no es pot modificar, llevat de casos excepcionals revisats per l'òrgan competent/ o degudament revisats d'acord amb la normativa vigent