Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Hace no menos de 100 años las computadoras no existian, eran las personas que
se encargaban de realizar el procesamiento manualmente, en especial las
mujeres jugaban un rol fundamental en ello. Por ejemplo, en los años 1800s, en
Harvard, las mujeres se encargaban de muchas de los calculos matematicos
usados en la astronomia, a este equipo se le conocio como "Computadoras de
Harvard", aunque no existian computadoras digitales en sí.Sin embargo el término
"digital" apareció a mediados del año 1942 cuando George Stibitz aplico las ideas
de George Boole a los dispositivos electromecánicos. El término "Software" vino
una década despues, gracias a John Tukey. Pero y que del término "ingenieria de
software"?
Pero no fueron ninguno de los anteriores, Grady Booch sostiene que todos sus
datos apuntan a que Margaret Hamilton usó por primera vez el término 'ingenieria
de software' para distinguir su trabajo de la ingeniería de hardware mientras
trabajaba en un programa espacial, el famoso proyecto Apollo y el Skylab, entre
1963 y 1964.
La ingeniería en todos los campos tiene que ver con la resolución de fuerzas.
Podemos pensar sobre fuerzas en una materia que permitan mantener el equilibrio
de tal, en ingeniería de software, también se debe equilibrar cosas, estas son: el
costo, el cronograma, la complejidad, la funcionalidad, el rendimiento, la
confiabilidad y la seguridad, así como las fuerzas legales y éticas. Booch explica
muy bien con lo mencionado anteriormente que es la ingenieria de software, y es
fácil deducir que debemos hacer como ingeniero de software, debemos mantener
el equilibrio, hacer que el software que hagamos no caiga al lado oscuro.
La tecnología ha cambiado mucho a lo largo del tiempo, sin embargo los
fundamentos de la ingeniería aún siguen siendo verdad, aunque como veremos,
cada época descubre nuevas verdades acerca de la ingeniería de software...
Mientras que en Europa los aires de que sucedería una guerra estaban
ocurriendo, el mundo de la computación digital había sido iniciada cuando George
Stibitz aplico las ideas de lógica de George Boole para construir el primer sumador
digital hecho a base de redes electromecánicos. Tiempo después nace una nueva
forma de pensamiento: el concepto de un ordenador electrónico programable,
siendo una de las primeras el famoso ENIAC.
Grace Hooper; muy en el espíritu de Ada Lovelace, quien tenia la idea de que el
software podría ser una cosa en sí misma, se percató que se podría crear un
lenguaje más cercano a los humanos, un lenguaje de más alto nivel, lejano al
hardware. De hecho, uno podría usar su computadora para traducir estas
expresiones de alto nivel al lenguaje de máquina, esto marcaría el inicio
del compilador. Más importante, en plena Segunda Guerra Mundial, Alan Touring,
daría las bases de la computación moderna, de donde Tommy Flowers pondría en
práctica estas bases para construir el famoso Colossus.
En los años 60s, era notorio el avance del software comercial, que se estaban
desarrollando sistemas complejos (como el SAGE y en general por la industria
espacial), es en este contexto donde Margaret Hamilton acuñó el
término “ingenieria de software” y en el que la OTAN declaró que había una "crisis
del software".
Claro, en esas epocas las computadoras eran muy caras, existian pocos
programadores, pero las cosas cambiarían con el ascenso de las
microcomputadoras. Con este cambio es que nace el insight de que la ingeniería
de software, no solo era un proceso técnico sino tambien muy humano, los
principios básicos de la gestión de proyectos serían dados por Fred Brooks,
descritas en The Mythical Man Month.
Un cambio parecido pasaría con la llegada de los dispositivos moviles, del mundo
de servicios web se iria a un mundo de microservicios, y el crecimiento de
infraestructuras Web aparecio y pronto sería la plataforma por defecto gracias a
compañias como Amazon, Google, Microsoft, IBM, Facebook, entre otras. Y claro
nuevos lenguajes vienen y van: Javascript, Python, Swift, Rust, ... y lo mismo
sigue sucediendo con los frameworks: Bootstrap, JQuery, React, MongoDB,
Flutter - y seguira dandosé.
Y claro, en los años 90, aparecieron los métodos ágiles, aunque en 1986, Hirotaka
Takeuchi y Ikujiro Nonaka acuñaran el término “Scrum” como un enfoque de
desarrollo de productos, Ken Schwaber y Jeff Sutherland lo adaptarían al mundo
del software, Kent Beck, casi en la misma época lanzaría eXtreme Programming y
en sí muchas nuevas métodos y prácticas aparecerían como la técnica de
Refactorizar (popularizada por Martin Fowler) que se unirían bajo un mismo
término paraguas "Agile" en Febrero del 2001.
Una nueva época dorada en la Ingeniería de software había aparecido, Git y GitHub nacieron; Joel
Spolsky creo Stack Overflow; Andrew Shafer y Patrick Debois el término DevOps; el mundo del
Internet de las Cosas sigue emergiendo. ¡Y las plataformas de e-learning se expandieron,
cualquiera puede programar!
Sin embargo, como industria recién estamos viendo como impactará la IA a este
campo, ¿Qué ciclo de vida es el mejor para estos componentes que aprenden por
si sola? ¿La gestión de la configuración como encaja cuando la data es más
importante que la red neuronal en sí? ¿Como se diseña estos tipos de sistemas
donde partes de las operaciones no podemos explicar o completamente confiar?
Agrégale a estos problemas, los cambios que traerán las nuevas tecnologías
como la computación cuántica, la Realidad Aumentada, el Internet de las Cosas...
DESCRIPCIÓN:
La ingenieria de programación garantiza una secuencia de pasos ordenados a
seguir para hacer cierta cosa. Este término puede utilizarse en muchos contextos,
por ejemplo: “Vamos a programar una salida para este fin de semana largo” o “La
programación de ese canal de televisión está bien lograda”.
LÍNEA DE TIEMPO:
1843: Ada Lovelace desarrolla el primer lenguaje de programación cuando escribió
un algoritmo para la máquina analítica de Charles Babbage.
1957 – Fortran: (“The IBM Mathematical Formula Translating System”): Un
lenguaje de programación de alto nivel de propósito general. Para cálculo
numérico y científico (como alternativa al lenguaje ensamblador). Es el lenguaje de
programación más antiguo que se utiliza hoy en día.
1958 – Lisp: (“List Processor”) Utilizado para la notación matemática y temas de
ciencias de la computación.
1959 – Cobol: (“Common Business-Oriented Language) Usado principalmente
para la informática empresarial. Es el primer lenguaje de programación que se
demandan por el Departamento de Defensa de EE.UU..
1964 – BASIC: (“Beginner’s All-purpose Symbolic Instruction Code”) Diseñado
para la simplicidad. Su popularidad explotó a mediados de los años 70 con los
computadores personales.
1970 – Pascal: (En honor al matemático/físico francés Blaise Pascal) Utilizado
para la enseñanza de la programación estructurada y estructuración de datos.
1972 – Lenguaje C: (Basado en un lenguaje anterior llamado “B”) Creado para
sistemas Unix. Muchos de lenguajes de programación más populares del mundo
son derivados de el, entre ellos tenemos C#, Java, JavaScript, Perl, PHP y Python.
1993 – Ruby: Una lenguaje influenciado por Perl, Ada, Lisp, Smalltalk, etc.
Diseñado para la programación productiva y agradable.
1995 – Java: Hecho para un proyecto de televisión interactiva. Funciona
multiplataforma. Es el segundo lenguaje más popular (detrás de lenguaje C). 1995
– PHP: (“Personal Home Page”) Usado para la creación de páginas web
dinámicas.
1995 – JavaScript: Creado para ampliar la funcionalidad de las páginas web, 1843
1957 1958 1959 1964 1970 1972 1993 1995 1995
Campos de acción
Un Ingeniero de Sistemas y Computación puede desempeñarse en diversos
campos de acción y en múltiples disciplinas. Por ejemplo, puede trabajar
apoyando sectores como: entretenimiento, financiero, salud, medio ambiente,
telecomunicaciones, educación, tecnologías de información. En estos estilos de
trabajo, se requiere una labor en equipos típicamente multidisciplinarios, donde es
fundamental el tener habilidades relacionadas con las áreas de conocimiento
propias de la carrera, tales como infraestructura tecnológica, construcción de
software, seguridad informática, manejo de información, robótica, multimedia.
Aplicaciones propias de la carrera
A continuación, se presentan ejemplos de temáticas propias de la carrera, en las
cuales podrá trabajar un Ingeniero de Sistemas y Computación
Robótica
Es la rama de la tecnología, que estudia el diseño y la construcción de máquinas
capaces de desempeñar tareas realizadas por el ser humano o que requieren del
uso de inteligencia.
Seguridad informática
Es el área de la informática que se enfoca en la protección de la infraestructura
computacional y todo lo relacionado con esta, especialmente en la protección de la
información, con el fin de garantizar su confidencialidad, integridad y
disponibilidad.
Multimedia
Tecnología que permite el manejo integral de diferentes medios de expresión
como: texto, imágenes, video y sonido, lo que da múltiples ventajas en diferentes
áreas como por ejemplo el cine y la televisión, permitiendo presentar la
información de una manera interactiva, atractiva e impactante.
Infraestructura Tecnológica
Conformada por el conjunto de hardware y software que integran un proyecto o
permiten el desarrollo de la operación de una compañía.
Por ejemplo, conjunto de redes de computadores y sistemas de información
bancarios.
Construcción de Software
Este campo de acción hace referencia a la aplicación práctica del conocimiento en
el diseño y construcción de programas de computador.
PLAN DE ESTUDIOS
el plan de estudios está diseñado para que un estudiante que ingresa al programa
sin haber cursado un programa de Maestría alcance una formación doctoral
cursando un total de ciento veinte (120) créditos distribuidos a lo largo de cuatro
años. Los estudiantes que hayan cursado parcial o totalmente un programa de
Maestría, pueden homologar y reconocer hasta treinta y seis (36) créditos
cursados y aprobados oficialmente en un programa, ya sea este nacional o
internacional.
Los cuatro años del programa de Doctorado se dividen en dos fases:
La fase de inducción a la investigación, cuya duración es normalmente de un año
Esta fase recibe la denominación de "Año de Inducción". Los estudiantes que al
iniciar el programa ya posean título de maestría, normalmente pueden superar
esta etapa una vez realizado el proceso de homologación.
La fase de investigación, cuya duración es normalmente de tres años. Los años
incluidos en esta fase reciben la denominación de "Año 1", "Año 2" y "Año 3". En
esta fase el estudiante se focaliza en el desarrollo de su Tesis Doctoral.
El programa de Doctorado comprende dos componentes principales:
1. Componente de formación conceptual: incluye el conjunto de asignaturas que
contribuyen a completar y profundizar los conocimientos del estudiante. Por una
parte, con un conjunto de asignaturas transversales enfocadas en la
fundamentación científica, así como también a la reflexión ética y filosófica del
quehacer investigativo; estas asignaturas se denominan "transversales", puesto
que aportan a todas las disciplinas.
Por otra parte, con un conjunto de asignaturas especializadas en campos
específicos de la ingeniería; estas asignaturas se denominan "especializadas",
puesto que pretenden una formación con un alto nivel de especialización en un
área particular. La componente conceptual contempla una escolaridad mínima de
32 créditos, al menos 12 en transversales y 20 en profundización.
2. Componente de formación para la investigación: incluye tres etapas sucesivas
del desarrollo del estudiante como investigador (ver Figura 1). La primera etapa es
cubierta con 8 créditos y corresponde a la inducción al trabajo y metodología de la
investigación en el contexto de la ingeniería. La segunda que abarca 8 créditos,
permite la elaboración de un estado del arte en eltema del proyecto de
investigación y la construcción de una propuesta de proyecto de Tesis Doctoral.
En la tercera etapa, se realiza el desarrollo de las actividades que permiten
alcanzar los objetivos propuestos de investigación siguiendo una metodología en
forma rigurosa. Esta componente de formación para la investigación contempla
una escolaridad mínima de 80 créditos.
1.Componente de formación para la investigación del programa de Doctorado en
Ingeniería
Dado que los mínimos necesarios para cubrir las dos componentes incluyen un
total de ciento doce (112) créditos, quedan ocho (8) créditos de componente
flexible. Estos créditos pueden cursarse ya sea en asignaturas conceptuales o en
trabajo de investigación; es decisión del estudiante, asesorado y autorizado por su
Director de Tesis, en qué forma cursa estos créditos.
Ejemplo de plan de estudio para un estudiante que ingresa sin un título de
maestría
2. se ilustra un ejemplo de una distribución posible de los créditos a lo largo del
programa para un aspirante que ingresa al programa de Doctorado sin poseer un
título de maestría. En este ejemplo, los 8 créditos de la componente flexible se han
aplicado a asignaturas de la componente de investigación. El estudiante cursa la
totalidad de los 120 créditos requeridos
Ejemplo de plan de estudio para un estudiante sin maestría utilizando los créditos
flexibles en la componente de formación para la investigación.
Ejemplo de plan de estudio para un estudiante que ingresa con título de maestría
3. presenta un ejemplo de una distribución posible de los créditos a lo largo del
programa para un estudiante que ingresa con título de Maestría, obteniendo la
homologación máxima de 36 créditos. En este ejemplo, la componente flexible se
ha aplicado a asignaturas de la componente de investigación. El estudiante cursa
en total 84 créditos en el programa
Ejemplo de plan de estudio para un estudiante que ingresa con título de maestría,
obteniendo la homologación máxima de 36 créditos.
Carga académica máxima semestral
La carga académica máxima de un estudiante del programa de Doctorado en
Ingeniería es de dieciséis (16) créditos por semestre. Este valor pretende evitar
sobrecargas de trabajo que afectan la calidad y productividad del estudiante; lo
cual se refuerza con la duración de 21 semanas de trabajo en periodo académico
para las asignaturas de investigación.
Tesis Doctoral
El trabajo de investigación del estudiante se centra alrededor de la Tesis Doctoral.
La Tesis Doctoral debe ser un trabajo de investigación que constituya un aporte
original a las ciencias de la Ingeniería. Además, debe tener méritos para generar
publicaciones en revistas especializadas de reconocido valor científico a nivel
internacional y/o para generar productos tecnológicos de alta calidad e impacto
protegidos por mecanismos de propiedad intelectual.