Temario
PRIMER AÑO
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 Bases 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
WebForms en base a páginas activas de servidor (ASP.NET).
Se abordan diversos temas relacionados con esta
tecnología como los formularios Web y los controles Web
viendo cómo generar contenido dinámico de forma sencilla
y automática.
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 sitios 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.
Por último, se aprenderá a manejar imágenes, usuarios y
permisos de accesos dentro de un sitio web, y estructuras
base para homogeneizar los diferentes formularios de un
sitio web.
Proyecto Final de Primer Año
El alumno debe diseñar, desarrollar y testear un sitio 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
WebForms accediendo a SQL Server (mediante ADO.NET).
El alumno puede optar por presentar un proyecto para una
empresa real (o un desarrollo propio), o desarrollar el
proyecto planteado por el Instituto. En cualquiera de los
casos será apoyado por un tutor con experiencia en el
desarrollo de software.
El proyecto alternativo presentado por el alumno debe
cumplir con los requisitos de complejidad equivalente a lo
solicitado por el Instituto, que permita acreditar su idoneidad como Programador, título al cual accederá luego de
haber aprobado las materias del año y el presente proyecto.
Para esto debe confeccionar dicha propuesta y presentarla
ante su docente, para ser luego validada, o eventualmente
modificada por éste.
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 frente a un
docente del Instituto
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
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 implementaran 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 desarrollan 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 un
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: Taller Genexus
El Taller Genexus le permitirá al alumno tener un
acercamiento práctico y de primera mano con esta herramienta, desarrollando una realidad planteada por el
Instructor Genexus. En el comienzo del Taller, los alumnos
recibirán una versión de evaluación de la herramienta
Genexus.
La duración del Taller será de aprox. 40 horas-reloj.
Debido a la modalidad práctica de Taller 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 el taller, 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
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 implementaran servicios para la comunicación
del sistema y su UI, mediante Servicios Web REST.
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 mas
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 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 realizara 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 ó 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.