Proyecto Informático I

90
 
Escuela Técnica Nº 35 “_Ing. E. Latzina_”
Santiago Trini


Fundamento

Esta unidad curricular introduce a los alumnos en la gestión de proyectos aplicados específicamente al campo de la informática. La asignatura se articula horizontalmente con otras materias del cuarto año como Algoritmos y Estructuras de Datos, Base de Datos y Organización de las Computadoras, y verticalmente con Proyecto Informático II.

La gestión de proyectos es una disciplina que excede el ámbito de la computación. Creemos que el uso de herramientas específicas para planificar, organizar y gestionar el trabajo de un proyecto ayuda al éxito del mismo. Un proyecto es un esfuerzo temporal orientado a objetivos concretos con una delimitación clara de tiempos y recursos. El propósito de esta materia es brindar herramientas de gestión y planificación para poder llevar a cabo de manera exitosa proyectos que conjuguen las habilidades del perfil del egresado.

Propósitos de enseñanza

El propósito de la materia es dar una introducción a la gestión de proyectos basándose en los lineamientos de estándares reconocidos y de las prácticas más comunes en la industria del software. Para aplicar estos conocimientos se trabajará en un proyecto de desarrollo web con los alumnos a lo largo del año. En paralelo a los contenidos específicos de gestión de proyectos que son aplicables a distintas ramas de la industria, se dictarán contenidos de desarrollo web. Esto último surge como un reclamo de los alumnos de la institución, ya que en la currícula actual no hay un lugar claro donde desarrollar estos contenidos. El hilo conductor de la materia será el desarrollo de un proyecto concreto: una aplicación web. Incorporando así en la práctica los procesos de planificación y asignación de recursos para que no sea meramente una transmisión de contenidos estéril. También se buscará que los proyectos a realizar en la asignatura tengan un impacto beneficioso en la comunidad educativa, dando solución a algún problema concreto.

Objetivos

  • Que los alumnos reconozcan vocabulario específico de la gestión de proyectos y que adquieran conocimiento sobre los estándares de la disciplina.

  • Que los alumnos reconozcan la importancia de separar y organizar el trabajo a realizar en un proyecto, planificando de manera acorde y entendiendo el ciclo de vida del mismo.

  • Que los alumnos adquieran un manejo introductorio de herramientas y técnicas de gestión de proyectos como: EDT, lista de actividades, diagrama de red, diagrama de Gantt, calendario de recursos, etc.

  • Que los alumnos usen esas herramientas para organizar el trabajo del proyecto a lo largo del año.

  • Que los alumnos adquieran práctica en el manejo de un VCS como Git para organizar el trabajo en la fase de desarrollo.

  • Que los alumnos adquieran práctica en el manejo de herramientas en la línea de comandos.

  • Que los alumnos puedan llevar a cabo un proyecto de desarrollo web utilizando las tecnologías estándar de la industria: HTML/CSS/JavaScript.

  • Que los alumnos adquieran el conocimiento práctico de las tecnologías utilizadas tanto del lado del servidor como del cliente en el desarrollo de una aplicación web.

Programa

Unidad 1 — Dirección de proyectos

Dirección de proyectos. Definiciones. Ciclo de vida de un proyecto. Estándares para la dirección de proyectos. PMI y PMBOK. Procesos orientados al producto y procesos orientados a la dirección del proyecto. Gestión de la integración del proyecto. Inicio de un proyecto, caso de negocio, factibilidad, documentación. Licencias de software. Gestión del alcance. Requisitos y definición del alcance. Estructura de desglose del trabajo. Gestión del tiempo del proyecto. Programación, lista de actividades, dependencias entre actividades. Diagramas de red y de Gantt. Calendario de recursos. Feria de ciencias. Preparación de un proyecto para la FNIE, documentación a presentar y reglamento.

Unidad 2 — Bash y Git

CLI. Interfaz de línea de comandos en Windows y *NIX. Bash. Operaciones básicas, navegación y manipulación de archivos y directorios. Redireccionamiento y piping. Editores de texto, herramientas para programadores. Shell scripting y gestores de paquetes. Variables de entorno. Sistemas de control de versión. Git. Repositorios y remotes. Commits, checkout y branching. GitHub: pull requests y workflow típico en GitHub. READMEs y Markdown.

Unidad 3 — Desarrollo web básico

Estructura de una página web. HTML: elementos y atributos. Web semántica y accesibilidad. Texto, listas, tablas, links e imágenes. URLs. Audio y video. Formularios en HTML5. Secuencias de escape. Estilo de una página web. CSS: propiedades y selectores. IDs y clases. Cascading en CSS. Tipografía y color. Layout en HTML5 y en CSS. El DOM. Herramientas para desarroladores en Firefox y Chrome. Mapas de sitio y wireframes.

Unidad 4 — JavaScript, APIs y deployment

JavaScript. Variables, estructuras de control, funciones, callbacks. Estructuras de datos, arrays y objetos. JavaScript en el navegador, acceso al DOM. Características de ES6. APIs. AJAX y JSON. APIs REST. Protocolo HTTP. Postman Hosting. Heroku. Deploy de un sitio web estático. Deploy de un sitio dinámico, conexión a una base de datos.

Unidad 5 — Frameworks (backend)

NodeJS. Diferencias con el navegador. JavaScript asíncrono. Sistema de módulos: npm. Frameworks para APIs y web apps: Express. Uso de un template engine. Conexión a una base de datos. MongoDB y Mongoose. PostgreSQL. Autenticación de usuarios: PassportJS. Seguridad. HelmetJS. Testing. Desarrollo de web apps. Desarrollo de APIs. Desarrolo de un proyecto para la FNIE.

Unidad 6 — Frameworks (frontend)

Diseño responsive. Bootstrap. Frameworks. Frameworks basados en JS: React. React y Redux. Desarrollo de web apps. Desarrolo de un proyecto para la FNIE.

Bibliografía