Programa de Asignatura Programación II 01 Carrera: Tecnología Informática 02 Asignatura: Programación II 03 Año lectivo: 2013 04 Año de cursada: 2 05 Cuatrimestre: Segundo 06 Hs. Totales: 5 07 Profesor: Martín Duhalde 08 Correlativas: Previas: 10 - Programación I Posteriores: Desarrollo de aplicaciones Web 09 Objetivos: Que el estudiante logre: - Comprender la idoneidad del paradigma de objetos como modelo de simplificación de la realidad y como base de los nuevos paradigmas emergentes (por ej. Aspectos). - Adquirir la habilidad de manejar un lenguaje de desarrollo y codificación para poder llevar a la práctica e implementar sistemas que resuelvan cualquier problemática planteada. - Alcanzar la habilidad de manejar las últimas herramientas, técnicas y tecnologías como marco de soporte en el análisis, desarrollo e implementación de sistemas. - Lograr el conocimiento base para poder implementar un producto de software completo utilizando las mejores prácticas y técnicas del mercado actual. 1
10 Unidades de desarrollo de los contenidos. Unidad 1 Unidad 1: Nuevas tecnologías Objetivo: Adquirir y manejar las últimas herramientas y tecnologías en materia del paradigma de objetos. Programación asincrónica. Conceptos y casos de aplicación. Delegados, eventos. Nociones básicas y aplicaciones de Threads. Métodos de extensión. Métodos anónimos. Tipos Anónimos. Expresiones Lambda. LinQ to objects. Comandos de consulta: From, Where, Select, Join, Group, Order by. Delegados. Func<T>.. Unidad 2: Introducción al acceso a datos Objetivo: Adquirir el concepto de persistencia de datos y las tecnologías necesarias para su implementación. Contenido: Paradigmas: con conexión y sin conexión. Nociones básicas de bases de datos. Entidades de negocios. Tecnologías de persistencia y consulta: SQLCommand. LinQ. 2
Unidad 3: Arquitecturas de servicio. Tecnologías de aplicación. Objetivo: Que el alumno reconozca y maneje las técnicas mas usadas en el mercado. Contenido: Arquitecturas orientadas a servicio, nociones de Web-Servicies, WCF. Contratos de datos. Capas de presentación: 1) Aplicación de escritorio. Nociones básicas de Formularios Windows. Controles estándar. Controles de usuario. 2) Aplicación Web. Nociones de HTML, ASP.NET Unidad Complementaria. Objetivo: Complementar el conocimiento curricular. Esta unidad referencia a herramientas tecnológicas necesarias para realizar el trabajo práctico Final.. De las interacciones de los objetos Conceptos de patrones de diseño, arquitecturas, frameworks y tecnologías. Patrones Singleton, Layers, Factory, Strategy, Dependency Injection. Ejemplos y aplicaciones. Caso de estudio del patrón Layer: Mapeador, Componente, Fachada, Capa de tecnología, Proxy e Interfase de usuario. Validación de objetos y manejo de excepciones por capas. Nociones generales de Paradigmas y tecnologías Atributos, introducción a la programación orientada a atributos. Meta-programación. Concepto de reflexión de código. Descubrimiento de objetos mediante la reflexión. Caso de estudio: Validaciones de datos. Introducción a la programación orientada a aspectos. Código ortogonal. Intercepción de Mensajes. Caso de estudio: Control de excepciones de código. 11 Metodología de trabajo. La primera clase de realizará un Repaso de contenidos de OOP de modo tal que se llegue a: Normalizar y homogeneizar los conocimientos requeridos para el desarrollo de la materia. La mayoría de las clases son teórico-prácticas para que el alumno pueda interiorizar los conceptos adquiridos en clase mediante la resolución de situaciones problemáticas en la Computadora. Al inicio se revisan rápidamente los conceptos vistos anteriormente y se explica la intención de la clase y hacia donde se plantea llegar para que el alumno se centre en un marco contextual y en el programa. Al 3
final se cierra la clase con una discusión y análisis de lo visto, resumiendo los puntos más importantes de la misma y cuales de ellos serán evaluados en los exámenes y su nivel de relevancia en los mismos. Como el enfoque asumido por la materia exige un ritmo de trabajo intenso y continuado, se requerirá del alumno, además del conocimiento de los temas explicados en clase, la lectura de la bibliografía indicada. El alumno tendrá a su disposición una guía de trabajos prácticos que abordará todos los temas del programa de manera que pueda afianzar sus conocimientos de manera sistemática e intuitiva. La guía de trabajos prácticos no es de presentación obligatoria y el espacio para su resolución es fuera del aula (aunque podrá trabajarla en clase todo el tiempo que tenga disponible). Se aconseja a los alumnos realizar los ejercicios ya que es en el momento de tener que resolver situaciones problemáticas cuando aparecen las dudas de la implementación de la teoría. Programación I es una Materia Formativa y no solamente Informativa, el alumno debe elaborar la teoría resolviendo problemáticas de manera práctica. Dentro de la guía de Trabajos Prácticos se encuentra al final ejercicios integradores y todos los parciales y finales de los cuatrimestres anteriores para que puedan autoevaluarse o generar nuevas inquietudes. 12 Trabajo práctico: El trabajo práctico podrá ser grupal (2) estudiantes como máximo. Es una instancia más de evaluación para la aprobación de la cursada. Aunque la evaluación es individual. Luego del primer parcial se le brindará al alumno los lineamientos de éste trabajo obligatorio para aprobar la cursada. Dicho trabajo consistirá en diseñar y codificar un software de acuerdo a una problemática planteada. Para considerarse aprobado, el software deberá compilar, ejecutarse y resolver los puntos indicados en el enunciado. Cada alumno del grupo debe poder justificar cada elección que tomo para concluir el objetivo. 13 Bibliografía: Bibliografía obligatoria: 4
[1] Francisco Javier Ceballos Sierra, Enciclopedia de Microsoft Visual C#. Año Edición: 2010 N de Edición: 3ª edición. Isbn 9786077070245 [2] Harvey M. Deitel. Como Programar C#. 2 Edición 2007, Pearson ISBN: 978-970-26-1056-4 Bibliografía complementaria: [3] Larman Craig. UML y Patrones, Introducción al análisis y diseño orientado a objetos y proceso unificado 2 Edición Alhambra Pearson 2003. [4] Ferguson. La biblia de C#. Anaya Multimedia. [5] Archer.A fondo C#. McGraw-Hill. [6] Charte Ojeda. Programación Visual C#.net.. Anaya Multimedia. [7] Sharp.Visual C# 2008 (Paso a Paso). Anaya Multimedia. Enlaces de Interés. RFC (Request for Comments) The Internet Engineering Task Force (IETF), Fecha de referencia Enero - 2013 http://www.ietf.org/ MSDN (Microsoft Developer Network), Fecha de referencia Enero - 2013 http://msdn.microsoft.com/es-ar Notas sobre la bibliografía En general los temas conceptuales teóricos del programa están conformados por definiciones cortas y específicas. La mayoría de los libros expresan los conceptos en párrafos generalmente breves. Se recomienda a los alumnos que extraigan la información de cada tema de varios libros. Los más explícitos generalmente se encuentran en Ingles. La bibliografía obligatoria [1] fue seleccionada ya que es un libro de referencia que presenta los temas de ésta materia, además de materias futuras. Ningún libro del nivel de la cursada abarca ampliamente los conceptos del programa con la profundidad que se dictan en la cátedra (Se recomienda asistir). En materia de diseño de software y la interacción de sus objetos (que es el aspecto más fuerte presentado en el curso) se recomienda la bibliografía complementaria [3], aunque el nivel de sus contenidos podría superar la comprensión del alumno. En el arte de programar (debido a la gran cantidad de soluciones tecnológicas existentes, propias de los entornos de desarrollo o de terceros) se suele utilizar muy a menudo la prospección, búsqueda de soluciones y referencias en Internet. Hay una muy gran variedad de tutoriales, foros, libros, etc. Se recomienda al alumno que se acostumbre a extraer, analizar y criticar la información desde Internet. 5
Ya que esta materia termina basada en la implementación práctica de la teoría, es muy fácil verificar la validez de la información extraída en Internet, en definitiva compila y funciona o no funciona. De cualquier manera subrayamos para todos los ámbitos académicos que la información extraída de fuentes conocidas/oficiales y específicamente de las no oficiales debe ser siempre evaluada, analizada y criticada. 14 Procedimiento de evaluación y criterio de promoción: La cursada de una asignatura se aprueba la cursada de la materia se aprobará mediante dos instancias de evaluación, la primera parcial y la segunda parcial integradora (debido al contenido progresivo propio de la materia). Además se deberá entregar de manera impresa el trabajo práctico grupal enunciado en el punto 13, con su código fuente y archivos(s) ejecutable(s), como así también con un promedio de asistencia a clases del 75% o mayor. Aquellos alumnos cuyo promedio de cursada sea inferior o igual a 3,99 puntos y/o tengan una asistencia a clases igual o mayor al 50% y menor al 75%, deberán rendir un Examen Recuperatorio de la asignatura en la misma fecha que se indica para el Examen Final. La asignatura se aprueba con un examen final que asume dos modalidades: a- Evaluación final integradora coloquial : accederán a este régimen de evaluación aquellos alumnos cuyo promedio de cursada se encuentre comprendido entre 7 y 10 puntos y tengan una asistencia promedio a clases igual o mayor al 75%. Los alumnos podrán presentarse a la mesa examinadora en grupos de no más de tres personas; no obstante, la evaluación se realizará en forma individual, debiendo demostrar el dominio de la asignatura como unidad y la capacidad de asociarla con otras asignaturas del plan de estudio ya cursadas. b- Examen final: acceden a este régimen de evaluación aquellos alumnos que han obtenido durante su cursada un promedio comprendido entre 4 y 6,99 puntos y tengan una asistencia promedio a clases igual o mayor al 75%. El alumno se presentará en forma individual ante un tribunal examinador, el que interrogará sobre el programa de la asignatura, debiendo demostrar su capacidad de integrarla y relacionarla con otras asignaturas del plan de estudio. La aprobación de la instancia de evaluación final de la asignatura requiere una evaluación mínima de 4 (cuatro) y una máxima de 10 (diez). Nota: Los exámenes en general se deben realizar en papel, sin uso de libros o computadoras, excepto en el caso que el profesor lo autorice. Para considerarse aprobado, Nota 4 (cuatro), el alumno debe demostrar el 60% de conocimiento sobre cada tema (Unidad) evaluado. Por ejemplo un examen de 4 preguntas de herencia y una de interfaces no podrá ser aprobado si la pregunta de interfaces está en 6
blanco o menor al 60% de contenido pese a que todo el resto este correcto. En el enunciado de cada evaluación se explicarán los conceptos que se pretende evaluar en cada pregunta, el modo de aplicación o la cuantificación de la nota y todo lo que se considere necesario para la aprobación del examen. En la mayoría de los casos, al final del examen se le entregará al alumno una copia del enunciado con su resolución completa. Esta cátedra considera que el examen es un punto más de aprendizaje donde, posiblemente con todo los conceptos revueltos y quizás algunos recién adquiridos, el alumno, a través del análisis de la problemática, termine de entender o afianzar, o auto responderse dudas de la teoría. Una vez que todos los alumnos hayan entregado el examen, el alumno que desee podrá evacuar en ese mismo momento todas sus dudas, podrá ver cómo se esperaba que resuelva cada situación problemática, o podrá solicitar una explicación de algún tema teórico siempre que haya tiempo suficiente. 7