DADES IDENTIFICATIVES 2020_21
Assignatura (*) TÈCNIQUES AVANÇADES DE PROGRAMACIÓ Codi 17264117
Ensenyament
Grau de Tècniques de Desenvolupament d'Aplicacions Web i Mòbils (2018)
Cicle 1r
Descriptors Crèd. Tipus Curs Període
6 Obligatòria Tercer 1Q
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
daniel.barcelona@urv.cat
Professors/es
GARCÍA LÓPEZ, PEDRO ANTONIO
BARCELONA PONS, DANIEL
Web
Descripció general i informació rellevant <p>La informació publicada en aquesta guia és la que correspon a classes presencials i pot servir de guia orientativa. A causa de l’emergència sanitària provocada per la COVID-19 poden haver-hi canvis en la docència, avaluació i calendaris del curs 2020-21. Aquests canvis s’informaran a l’espai Moodle de cada assignatura.</p><p>DESCRIPCIÓ GENERAL DE L'ASSIGNATURA: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. </p>

Competències
Tipus A Codi Competències Específiques
 INF1 Capacitat per desenvolupar i avaluar aplicacions i sistemes informàtics, aplicant principis, metodologies i paradigmes actuals, i assegurant la seva fiabilitat, seguretat i qualitat d'acord amb la legislació vigent.
 INF4 Capacitat per construir i mantenir aplicacions informàtiques 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

Resultats d'aprenentage
Tipus A Codi Resultats d'aprenentatge
 INF1 Aplica conceptes generals de metaprogramació i intercepció de programari
Aplica tècniques de qualitat del programari com els tests unitaris, la integració de codi i el control d'errors
Aplica tècniques de refactoring i patrons de disseny en la creació de programari
Coneix els principals paradigmes de programació
Desenvolupa una aplicació basada en components utilitzant un marc de treball de programari estàndard
 INF4 Aplica conceptes generals de metaprogramació i intercepció de programari
Aplica tècniques de qualitat del programari com els tests unitaris, la integració de codi i el control d'errors
Aplica tècniques de refactoring i patrons de disseny en la creació de programari
Coneix els principals paradigmes de programació
Desenvolupa una aplicació basada en components utilitzant un marc de treball de programari estàndard
Tipus B Codi Resultats d'aprenentatge
Tipus C Codi Resultats d'aprenentatge

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
3 8 11
Sessió Magistral
INF1
20 35 55
Pràctiques a laboratoris
INF1
INF4
26 25 51
Atenció personalitzada
4 8 12
 
Proves de desenvolupament
INF1
INF4
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
INF1
INF4
Examen de laboratori sense Internet (setmana 6): conceptes de polimorfisme i patrons en Java 30
Proves de desenvolupament
INF1
INF4
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
Luciano Ramalho, Fluent Python, O'Reilly, 2014
David Beazley, Python Cookbook, O'Reilly, 2013
Martin Odersky, Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition, Artima, 2010

Complementària

Recomanacions


Assignatures que es recomana haver cursat prèviament
FONAMENTS DE PROGRAMACIÓ I/17264001
ESTADÍSTICA/17264011
(*)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