Doble Titulación en Ingeniería de Sistemas de Telecomunicación e Ingeniería en Organización de las TIC

Doble Grado en Ingeniería de Sistemas de Telecomunicación e Ingeniería en Organización de las TIC

La Salle Campus Barcelona te ofrece 5 dobles titulaciones en el ámbito de las Ingenierías TIC. Con los dobles grados podrás finalizar los estudios universitarios en 5 años académicos con dos titulaciones oficiales de grado.

Diseño y programación orientados a objetos

Descripción
El paradigma de programación orientado a objetos es, actualmente, uno de los paradigmas más importantes en el mundo de la programación. Partiendo de esta idea, la asignatura tiene como objetivo que los alumnos aprendan a diseñar y programar en este paradigma, utilizando un lenguaje actual utilizado en entornos reales. La asignatura hará énfasis en la fase de diseño de software, y da por supuesto, que los alumnos presentan unos conocimientos y dominio suficiente del paradigma imperativo y procedimental, para entender el funcionamiento imperativo de un nuevo lenguaje de programación. Dado que la mayoría de los proyectos de software se desarrollan por equipos de programadores, la asignatura también quiere dotar a los alumnos de las competencias necesarias para afrontar estos entornos de trabajo.
Tipo asignatura
Tercer - Obligatoria
Semestre
Anual
Curso
2
Créditos
6.00

Profesores Titulares

Conocimientos previos

Metodología y tecnología de la programación (recomendación)

Objetivos

Objetivo.1 – Demuestra conocer el paradigma orientado a objetos y todas sus características.
Clases, Objetos y Mensajes.
Encapsulación y Abstracción.
Herencia.
Polimorfismo.

Objetivo.2 – Demuestra conocer un lenguaje orientado a objetos real y actual.
Introducción a Java.
Orientación a Objetos en Java.
Herencia en Java.
Gestión de excepciones.
Collections, Generics y otras utilidades.
Implementación de UI.
Concurrencia.

Objetivo.3 – Demuestra saber emplear un entorno de desarrollo real.
Herramientas de modelado de diagramas.
Entornos de desarrollo (IDE).
Sistemas de control de versiones.
Herramientas de gestión de proyectos.

Objetivo.4 – Demuestra tener la capacidad de diseñar software a partir de unas especificaciones concretas.
Diagramas de clase en UML.
Diseño de Clases, Objetos y Mensajes.
Encapsulamiento vs Visibilidad.
Relaciones entre clases.

Objetivo.5 – Demuestra saber usar patrones de diseño software.
Patrones de diseño GRASP.
Diseño orientado a responsabilidades.
Arquitectura por capas.
Patrón Modelo-Vista-Controlador.
Orientación a Objetos y persistencia de datos.

Objetivo.6 – Demuestra saber trabajar en equipo.
Herramientas de comunicación por equipos.
Sistemas de control de versiones.
Herramientas de gestión de proyectos.
Introducción al desarrollo Agile.

Contenidos

Los descriptores generales de contenidos de la asignatura son:

1. Análisis, diseño y programación orientada a objetos.
2. Diagrama de clases (UML).
3. Estructuras de datos lineales.
4. Patrones de diseño (GRASP, GOF).

Metodología

La asignatura se orienta para que el alumno tome parte activa en su propio aprendizaje. La metodología docente está pensada para que la asignatura sea dinámica y participativa. Las clases magistrales se combinan con clases de ejercicios y actividades en clase, así como prácticas guiadas por el profesorado de la asignatura.

La metodología docente de la asignatura está claramente diferenciada en dos semestres. En el primero, se logran las bases del paradigma de la orientación a objetos y de la programación en Java. La orientación docente de este semestre es con clases magistrales, ejercicios de evaluación continua y prácticas. En el segundo semestre, la asignatura se enfoca con la metodología de aprendizaje basada en proyectos. Los conocimientos logrados durante el primer semestre se consolidan mediante la realización de un proyecto casi real de desarrollo de software.

Evaluación

El sistema de evaluación de la asignatura se diferenciará en dos semestres.
Durante el primer semestre, los alumnos tendrán que desarrollar, de forma progresiva, bajo la tutela del profesorado, un proyecto que tendrá como objetivo consolidar los conceptos que representan los fundamentos del paradigma orientado a objetos.
Por el contrario, durante el segundo semestre, los alumnos tendrán que realizar un proyecto en grupo en que tendrán que demostrar que pueden poner en práctica todo lo aprendido durante el primer semestre en la implementación de un proyecto de mayor envergadura.

Para aprobar la asignatura, el alumno debe aprovar ambos semestres por separado:

if (Nota_S1 >= 5.0 && Nota_S2 >= 5.0) {
Nota_final = Nota_S1 * 0.5 + Nota_S2 * 0.5;
}
else {
Nota_final = Math.min (Nota_S1, Nota_S2);
}

La Nota_S1, consistirá en un proyecto realizado por parejas que se entregará por fases. Cada fase tendrá que estar aprobada por separado y no se podrá evaluar una fase hasta que todas las fases anteriores no hayan sido aprobadas. Finalmente, los alumnos tendrán que superar una entrevista de conocimientos para dar la práctica por aprobada. Esta entrevista se puede convalidar si el profesorado estima que el alumno ha demostrado los conocimientos durante la mentoria del proyecto.

if (Entrevista_S1.equals (“OK”)) {
Nota_S1 = (Fase_1 + Fase_2 + ... + Fase_N) / N;
}
else {
Nota_S1 = 2.0;
}

La Nota_S2, consistirá en un proyecto realizado en equipos de cinco (5) personas. La Nota_S2 se calculará a partir de la nota del proyecto, será ponderada por las notas del peer review realizado por los compañeros de grupo y también será ponderada por la nota de mentoria que determine el profesorado. Finalmente, los alumnos tendrán que superar una entrevista grupal de conocimientos.

if (Entrevista_S2.equals (“OK”)) {
Nota_S2 = Nota_proyecto * Nota_peer * Nota_mentoria;
}
else {
Nota_S2 = 2.0;
}

Criterios evaluación
Bibliografía básica

[1] C.S.Horstman and G.Cornell, Core Java 2, Vol I. Fundamentos, Septima edición, Prentice Hall, 2006.
[2] K.Arnold, JGosling and D.Holmes, The Java programming language, Boston : Addison-Wesley, 2000
[3] M.Fowler, UML Distilled Third Edition. A brief guide to the standard object modeling language, Addison-Wesley, 2003.
[4] R.Miles and K.Hamilton, Learning UML 2.0, O'Reilly Media Inc, 2006.
[5] C.Larman, Applying UML and patterns : an introduction to object-oriented analysis and design, Prentice Hall PTR, 1998
[6] E.Gamma, R.Helm, R.Johnson and J.Vlissides, Design patterns: elements of reusable object-oriented software, Addison-Wesley Longman Publishing Co., 1995
[7] J.Cooper, Java Design Patterns, Addison Wesley, 2000
[8] D.Lea, Concurrent programming in Java: design principles and patterns, Addison-Wesley, 2000
[9] M.Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley Professional, 2018
[10] R.Martin, Clean Code: A Handbook of Agile Software Craftsmanship, Pearson, 2008
[11] K.Sierra and B.Bates, Head First Java, O'Reilly Media, 2005
[12] E.Freeman, B.Bates, K.Sierra and E.Robson, Head First Design Patterns: A Brain-Friendly Guide, O'Reilly Media, 2004

Material complementario