Temario
Primer Año Programador Web .Net
Materia: Programación Orientada a Objetos en C#
Esta materia introduce al alumno a las técnicas y conceptos básicos de la programación, teniendo en cuenta que el alumno no posee conocimientos previos de programación. En ella se estudia la evolución de las metodologías, tecnologías y lenguajes involucrados en el desarrollo de software, introduciendo al alumno en los fundamentos del paradigma de programación (la orientación a objetos y la plataforma de Microsoft: .NET).
Se estudia el lenguaje Visual C# (el lenguaje nativo de la Plataforma .NET, utilizando Visual Studio) y se explican los fundamentos tecnológicos y la infraestructura en que éste se sustenta (el .NET Framework).
Esta materia también brinda los fundamentos teóricos de la programación orientada a objetos, y su implementación práctica con Visual C#. Este punto es de particular interés, ya que la plataforma .NET está completamente basada en objetos, por lo que se requiere un buen manejo de estos conceptos para un correcto desarrollo de software.
En forma lateral, ya que no es el objetivo de esta materia, se utilizarán algunos conceptos básicos del lenguaje unificado de modelado (UML) al momento de introducir los conceptos de orientación a objetos. Luego, en el tercer año de la carrera, en la materia Ingeniería de Software, se profundizará en el uso del UML como herramienta de modelado de software.
Por último, se estudian los principales algoritmos y estructuras de datos necesarios para un completo entendimiento del lenguaje, así como para capturar mejor las principales técnicas y rutinas de programación.
En esencia, esa materia es una de las más importantes de la Carrera, ya que en ella el alumno aprenderá a programar, aprenderá un nuevo lenguaje (C#) y aprenderá la teoría y práctica de la programación orientada a objetos (POO). Todo esto le será imprescindible para poder luego comprender y perfeccionarse en la plataforma .NET.
Materia: Diseño e Implementación de Base de Datos
Esta materia introduce al alumno al diseño de bases de datos relacionales. Se estudia el Modelo Entidad Relación (MER) que proporciona una visión de alto nivel que facilita el diseño de bases de datos relacionales, y es la base para luego especificar un Diagrama Entidad- Relacional (DER) y su pasaje a tablas en una base de datos.
La materia es fuertemente complementada mediante múltiples ejemplos y ejercicios de diseños de bases de datos para que el alumno cuente con un conjunto de casos estándares, los cuales le permitirán no solo aprender a diseñar una base de datos, sino como referencia para futuros diseños.
Asimismo, se estudia el lenguaje estructurado de consultas (SQL) y el manejador de bases de datos Microsoft SQL Server así como las funciones de servidor y las sentencias del lenguaje SQL en profundidad.
Se ve como factorizar el comportamiento sobre la base de datos y acelerar los tiempos de respuesta mediante la definición de procedimientos almacenados. Para éstos se utiliza el lenguaje Transact-SQL que permite definir transacciones dentro del procedimiento.
También se estudia cómo definir procedimientos parametrizados y con códigos de retorno.
Materia: Aplicaciones Web en C#
Capacita al alumno en el desarrollo de aplicaciones Web que se conectan a bases de datos mediante la tecnología de acceso a datos propuesta por Microsoft (ADO.NET) desde aplicaciones desarrolladas en Visual C#.
Esta materia le permite al alumno desarrollar aplicaciones basadas en Web, tanto para Internet como para una Intranet corporativa. Se estudia la construcción de aplicaciones Web con acceso a datos mediante el uso de MVC (Modelo-Vista-Controlador).
Se abordan diversos temas relacionados con esta tecnología como las Vistas y los controles Razor / HTML viendo cómo generar contenido dinámico de forma sencilla y automática. Además, se define como se genera la colaboración entre la Vista y el Modelo de datos a través de los Controladores.
Otro objetivo de esta materia es la conjunción y la consolidación de los conocimientos adquiridos en las dos materias anteriores (Programación Orientada a Objetos en C# y Diseño e Implementación de Bases de Datos).
Para esto, no sólo se verán extensamente las diferentes herramientas de ADO.NET por separado, sino que se integrarán éstas en aplicaciones Web, utilizando ejemplos y casos de estudio. Se analizan diferentes estrategias de acceso a datos, utilizando Microsoft SQL Server como servidor de dichas bases de datos.
También se aprenderá a tratar con diferentes arquitecturas de N-Capas, que permite diversificar los diferentes componentes de un sistema: UI (interfaz Usuaria), la Lógica del Negocio, y la persistencia de los datos.
Proyecto Final de Primer Año
El alumno debe diseñar, desarrollar y testear una aplicación Web, arquitecturado en capas y que acceda a una base de datos utilizando las tecnologías estudiadas a lo largo del año. Esto es, aplicaciones Web desarrolladas en Visual C# mediante MVC accediendo a SQL Server (mediante ADO.NET).
El proyecto se plantea durante el mes de diciembre y el alumno lo desarrolla durante el verano, debiendo concurrir a clases de seguimiento periódicas previamente fijadas en el Instituto.
La entrega se hará justo antes de comenzar el próximo año curricular y constará de una defensa del mismo con el tutor asignado al seguimiento del proyecto.
Título Intermedio BIOS
El título a otorgar al finalizar y aprobar todas las materias del primer año incluyendo el Proyecto Final de Primer Año, es el de: PROGRAMADOR WEB .NET
Segundo año Analista Programador Web.Net
Materia: Diseño I
Si bien durante el Primer Año de la Carrera el alumno aprenderá cómo desarrollar sitios web de mediano porte sobre plataforma Microsoft (con tecnología ASP.NET sobre lenguaje C#), existen múltiples temas que requieren profundización, así como ampliar el abanico de temas abarcados.
Por lo tanto, esta materia, la primera del Segundo Año, tiene como objetivos profundizar muchos de los conocimientos adquiridos en el Primer Año de la Carrera, en especial aquellos referidos al diseño y desarrollo de aplicaciones web. Se discute (en forma crítica) la arquitectura en capas vista en Primer Año (la cual es una versión simplificada de la arquitectura propuesta por Microsoft) y se van incorporando nuevos conceptos (incluyendo la idea de patrones de diseño) de forma de mejorar dicha arquitectura, orientándola a aplicaciones web de mediano y gran porte.
Asimismo, se ven más y mejores componentes, controles y tecnologías para el diseño y desarrollo de aplicaciones con lenguaje C#, como ser: nuevos conceptos y diseños para la persistencia con ADO.NET, principios y guías para una mejor administración de las bases de datos en SQL Server, diferentes conjuntos que permiten almacenar información en memoria, manejo de eventos, y LINQ, entre otros temas.
Asimismo, se estudia el uso del lenguaje XML como lenguaje de intercambio de datos entre diferentes aplicaciones distribuidas.
Como forma de practicar y consolidar lo aprendido, se utilizan varios ejemplos y casos de estudio integradores de los diferentes conceptos que se van aprendiendo durante la materia, y en algunos casos los alumnos contarán con una solución pre-armada por los docentes a modo de referencia.
Materia: Diseño II
En la actualidad la inmensa mayoría de los sistemas que son desarrollados tienen, en mayor o menor medida, cierto grado de distribución entre sus diferentes componentes. Actualmente las aplicaciones Web con sus componentes pueden estar ubicados en diferentes máquinas, comunicados a través de servicios, lo que hace que la distribución de aplicaciones sea una realidad.
Teniendo esto como meta, esta materia presentará al alumno un vasto conjunto de tecnologías y formas de trabajo que apoyan la distribución de aplicaciones en la Plataforma .NET.
Para esto se estudia la arquitectura orientada a servicios (SOA, Service Oriented Architecture) y sus consecuencias en el diseño e implementación de aplicaciones. Se implementarán dos formas de servicios de comunicación: los Servicio web XML (básicos) y las Api Rest.
Se estudiarán los XML Web Services y las API REST como casos de comunicación mediante servicios, aplicados tanto a sitios web con capas como generados por Entity Framework.
También se profundizará en el desarrollo de aplicaciones basadas en el patrón MVC (Modelo-Vista-Controlador), con uso de anotaciones y Razor. MVC permite separar las responsabilidades de los diferentes componentes de una aplicación, generando una arquitectura propia, diferente a las ya vistas y muy utilizada hoy en día.
Se integra una mirada diferente a la forma de trabajo, con el desarrollo de sistemas basados en Entity Framework; siendo que se implementarán sistemas basados en la definición del modelo automatizando la base de datos, o basados en la existencia de una base de datos, automatizar el modelo.
Como forma de practicar y consolidar lo aprendido, se utilizan varios ejemplos y casos de estudio integradores de los diferentes conceptos que se van aprendiendo durante la materia, y en algunos casos los alumnos contarán con una solución pre-armada por los docentes a modo de referencia.
Materia: Genexus (Analista Junior)
Esta materia le permitirá al alumno tener un acercamiento práctico y de primera mano con esta herramienta, desarrollando una realidad planteada por el Instructor Genexus. Al comienzo, los alumnos recibirán una versión de evaluación de la herramienta Genexus.
La duración será de aprox. 40 horas reloj.
Debido a la modalidad práctica que se plantea en esta materia, es de suma importancia que el alumno dedique horas de auto-estudio, particularmente del material que le será proporcionado por el Instructor Genexus.
Al finalizar la materia, el alumno rendirá el examen de Analista Junior Genexus, obteniendo así el certificado correspondiente, expedido por Genexus.
Proyecto Final de Segundo Año
El alumno debe diseñar, desarrollar, testear e instalar una aplicación distribuida en la Plataforma .NET que acceda a bases de datos utilizando las tecnologías y formas de distribución estudiadas a lo largo del año.
Se permite el planteo de proyectos externos por parte del alumno, aplicándose las mismas consideraciones generales aplicables al Proyecto Final de Primer Año.
Título Intermedio BIOS
El título a otorgar al finalizar y aprobar todas las materias del Segundo Año incluyendo el Proyecto Final de Segundo Año, es el de: ANALISTA PROGRAMADOR WEB .NET
Tercer Año Analista de Sistemas
Materia: Ingeniería de Software
Esta materia tiene como objetivo introducir al alumno a los procesos de desarrollo de sistemas orientados a objetos, haciendo especial énfasis en las tareas de análisis y diseño, utilizando UML como herramienta que asiste al proceso. En particular, se estudia una metodología iterativa e incremental de construcción de sistemas de información de mediano y gran porte orientados a objetos.
El alumno podrá, por primera vez, ver el panorama general completo, de principio a fin, en el que está inmerso todo desarrollo de software. Antes de esta materia, el alumno se ha desempeñado fundamentalmente como programador, atacando ahora una porción de un problema mucho más grande.
El objetivo de esta materia es presentar metodologías y técnicas para la resolución de esos problemas de mediano y gran porte. Esta materia apunta a marcar la diferencia entre un Programador y un Analista de Sistemas quien es capaz de analizar y diseñar una solución de un sistema sin la necesidad de escribir ni una sola línea de código (tarea ésta más propia de los programadores).
También se ven los Casos de Uso, patrones de diseño, se estudia a fondo el lenguaje UML, y las técnicas y reglas más apropiadas para el correcto análisis y diseño orientado a objetos (mejores prácticas). Los patrones de diseño (Design Patterns) constituyen soluciones típicas a problemas típicos que se presentan en el diseño orientado a objetos. Se continúa estudiando más a fondo el lenguaje de modelado UML, retomando lo ya visto en los dos años anteriores, pero ampliándolo a nuevos tipos de diagramas UML y refinando los diagramas ya estudiados.
Se introduce al alumno a los procesos más recientes y utilizados en la industria del software, como lo son Agile y Scrum; considerando también la clásica metodología iterativa e incremental.
Materia: Aplicaciones Web en Spring
Esta materia tiene como primer objetivo enseñar al alumno el lenguaje Java, tanto para la construcción de aplicaciones, interfaces gráficas y acceso a datos. Se hace un fuerte énfasis en la arquitectura en capas, el desarrollo de interfaces gráficas de usuario (UI) y el desarrollo de la capa de datos a través de JPA.
Otro objetivo de esta materia es el de enseñar al alumno a desarrollar aplicaciones de servidor en Spring Boot. Para esto, se aborda: proyectos Spring Boot, gestión de dependencias (Marven), Vistas (Thymeleaf), Spring Security.
El motor de base de datos que se utiliza en esta materia es MySQL Server, el cual es de carácter gratuito y compatible con el lenguaje Java.
Debido a que el alumno ya posee conocimientos de orientación a objetos, arquitectura en capas y UML, esta materia permite alcanzar una mayor productividad del tiempo y enfocarse completamente en el lenguaje Java, Spring Boot y en profundizar conceptos de orientación a objetos.
En esta materia el alumno ya posee conocimientos de aplicaciones Web, desarrolladas mediante ASP.NET. Por tanto, mucho del esfuerzo se centra en aplicar esos conocimientos al mundo Java.
Se estudia la arquitectura MVC que permite separar las responsabilidades de los diferentes componentes Web de una aplicación para Internet/Intranet.
Además, se implementarán servicios para la comunicación del sistema y su UI, mediante Servicios Web REST.
Materia: Aplicaciones Móviles
El objetivo de esta materia es el desarrollo de aplicaciones para dispositivos móviles (en especial smartphones y tablets) mediante el estudio del lenguaje Dart y aplicaciones Flutter.
Si bien el desarrollo de aplicaciones móviles es la programación de una aplicación en un lenguaje de programación, hay que tomar en cuenta el contexto en las cuales se ejecutaran: como ser el diseño de la UI basado en touch, performance y privacidad.
El desarrollo se realizará utilizando el lenguaje Dart (código abierto generado por Google), lenguaje orientado a objetos y que permite programación asincrónica.
Flutter es un SDK de código fuente abierto de desarrollo de aplicaciones móviles generado por Google. Pueden realizarse aplicaciones móviles para Android y IOS. Para poder desarrollar aplicaciones se aborda: uso de packages (y sus utilidades), configuraciones, Widgets (básicos, de estado, de layout, de formularios), comunicación de datos, persistencia de datos (SqlLite), consumo de API Rest, etc.
Proyecto de Fin de Carrera
La Carrera culmina con el desarrollo de un sistema de software de mediano porte que nuclea varias de las técnicas y tecnologías vistas durante el transcurso de la misma.
El alumno debe presentar un proyecto propio, ya sea para una empresa o como un emprendimiento propio. Será apoyado por un tutor con experiencia en el desarrollo de software.
El proyecto debe ser planteado antes de la finalización del año curricular, y el/los alumno/s lo desarrollarán durante el próximo año lectivo, debiendo tener clases de tutoría con su tutor.
El Proyecto de Fin de Carrera representa una oportunidad única para el/los alumno/s en el sentido que pueden lograr desarrollar un producto de software de calidad, combinando requisitos académicos (por tratarse de una Carrera) pero también de la industria. Asimismo, este proyecto les podrá servir de carta-presentación a futuros empleadores, tanto a nivel local como regional e internacional.
Se espera de los alumnos en el Proyecto de Fin de Carrera un alto grado de involucramiento y motivación de manera de obtener un resultado de alta calidad que satisfaga tanto a los alumnos, a su tutor como al Instituto. Por tanto, se espera una dedicación adecuada de tiempo para poder lograrlo. Se estima en 9 (nueve) meses la duración del proyecto y se alienta a trabajos en grupos reducidos (por ejemplo 2 o 3 personas).
Luego de aprobar todas las asignaturas de la carrera, y luego de haber aprobado/defendido el proyecto final, se le otorgará al alumno el título final de Analista de Sistemas.
Título Final BIOS
El título a otorgar luego de aprobar todas las materias de la Carrera incluyendo el Proyecto de Fin de Carrera, es el de: ANALISTA DE SISTEMAS
Cursos Complementarios Analista de Sistemas
Son cursos complementarios extra curriculares y gratuitos, que tienen como objetivo profundizar y ampliar los conocimientos de nuestros alumnos, en áreas directamente relacionadas con la temática del curso o carrera escogida.
Introducción a la Ciencia de Datos
Este curso introductorio lo lleva al mundo de la ciencia de datos. Aprenderá los principios básicos de la ciencia de datos, el análisis de datos y comprenderá cómo el aprendizaje automático está dando forma al futuro de los negocios, los servicios de salud, la educación y más.
Los profesionales de ciencia de datos que pueden proporcionar información procesable para tomar decisiones basadas en datos, tienen una gran demanda en todo el mundo. Se recomienda haber cursado previamente, la materia Base de Datos.
Testing
Acercamiento a cómo se debe enfocar un testeo formal de un sistema. Se describen las etapas, y los diferentes tipos de pruebas y validaciones que se deben realizar, para obtener un testeo completo de un sistema.
Python 1 y 2
Python 1: Este curso complementario está indicado para aquellos alumnos que ya tengan cursada la materia de “Programación Orientada a Objetos”. Se verán las bases de este lenguaje de Programación: variables, tipos de datos, Operadores, Operaciones de entrada/salida, Sentencias condicionales y bucles, Manejo de colecciones. Se desarrollarán ejemplos en consola.
Python 2: Se tratan los módulos de python (math, random, os) y como instalarlos; manejo de cadenas de caracteres, manejo de fechas, manejo de los errores (excepciones), POO, Manejo de archivos. Se desarrollarán ejemplos en consola.
Accesibilidad y UX
Este taller está indicado para aquellos alumnos que ya tengan cursada la materia de “Aplicaciones Web en C#”. Veremos cómo el objetivo principal de diseñar la Interfaz Usuario (UI) es mejorar la experiencia del usuario con nuestro sistema y cómo ello impacta en la accesibilidad del mismo. Es un enfoque integral que nos ayudara a ver cómo generar que la experiencia del usuario con nuestro sistema sea de fácil uso y muy intuitiva.