Sei sulla pagina 1di 31

Reforma de plan de estudios Tecnicatura Universitaria en Programacin Informtica o a Universidad Nacional de Quilmes

1 de septiembre de 2010

Indice
1. Identicacin de la carrera o 1.1. Fundamentacin . . . . . o 1.2. Denominacin . . . . . . . o 1.3. Nivel . . . . . . . . . . . . 1.4. Ubicacin en la estructura o . . . . . . . . . . . . . . . . . . . . . . . . institucional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 3 3 3 3 4 4 5 5 5 5 5 5 6 7 7 7 7 7 9 9 10 11 12 13 14 15 15 16 17 17 18

2. Horizontes de la carrera 2.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Perl del egresado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Dise o curricular de la carrera n 3.1. Duracin estimada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 3.2. Requisitos de ingreso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Estructura curricular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1. Materias del ncleo bsico obligatorio . . . . . . . . . . . . . . . . . u a 3.3.2. Materias del ncleo avanzado obligatorio . . . . . . . . . . . . . . . . u 3.3.3. Asignaturas del ncleo complementario . . . . . . . . . . . . . . . . u 3.3.4. Trabajo de insercin profesional . . . . . . . . . . . . . . . . . . . . . o 3.3.5. Otros requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.6. Asignacin horaria total . . . . . . . . . . . . . . . . . . . . . . . . . o 3.3.7. Secuencialidad del recorrido curricular . . . . . . . . . . . . . . . . . 3.4. Objetivos y contenidos m nimos de las materias del ncleo bsico obligatorio u a 3.4.1. Introduccin a la Programacin . . . . . . . . . . . . . . . . . . . . . o o 3.4.2. Organizacin de Computadoras . . . . . . . . . . . . . . . . . . . . . o 3.4.3. Matemtica I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 3.4.4. Programacin con Objetos I . . . . . . . . . . . . . . . . . . . . . . . o 3.4.5. Bases de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.6. Estructuras de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.7. Programacin con objetos II . . . . . . . . . . . . . . . . . . . . . . o 3.5. Objetivos y contenidos m nimos de las materias del ncleo avanzado obliu gatorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1. Redes de Computadoras . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.2. Sistemas Operativos . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.3. Programacin Concurrente . . . . . . . . . . . . . . . . . . . . . . . o 3.5.4. Matemtica II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 3.5.5. Elementos de Ingenier de Software . . . . . . . . . . . . . . . . . . a 1

3.5.6. Construccin de Interfaces de Usuario . . . . . . . . . . . . o 3.5.7. Estrategias de Persistencia . . . . . . . . . . . . . . . . . . 3.5.8. Programacin Funcional . . . . . . . . . . . . . . . . . . . . o 3.5.9. Desarrollo de Aplicaciones . . . . . . . . . . . . . . . . . . . 3.5.10. Laboratorio de Sistemas Operativos y Redes . . . . . . . . 3.6. Contenidos m nimos de los niveles de idioma ingls . . . . . . . . . e 3.6.1. Ingls I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 3.6.2. Ingls II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 3.7. Contenidos m nimos de las materias del ncleo complementario . . u 3.7.1. Seguridad Informtica . . . . . . . . . . . . . . . . . . . . . a 3.7.2. Bases de Datos II . . . . . . . . . . . . . . . . . . . . . . . . 3.7.3. Participacin y Gestin en Proyectos de Software Libre . . o o 3.7.4. Introduccin a las Arquitecturas de Software . . . . . . . . o 3.7.5. Programacin con objetos III . . . . . . . . . . . . . . . . . o 3.7.6. Introduccin a la Bioinformtica . . . . . . . . . . . . . . . o a 3.7.7. Pol ticas Pblicas en la Sociedad de la Informacin y la Era u o 3.7.8. Sistemas de Informacin Geogrca . . . . . . . . . . . . . o a 3.7.9. Herramientas Declarativas en Programacin . . . . . . . . . o 3.7.10. Introduccin al Desarrollo de Videojuegos . . . . . . . . . . o 3.7.11. Derechos de Autor y Derecho de Copia en la Era Digital . . 3.7.12. Seminarios . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7.13. Seminarios sobre Herramientas o Tcnicas Puntuales . . . . e 4. Cuadro resumen

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19 21 22 23 25 25 25 25 26 26 26 26 27 27 27 27 28 28 28 29 29 29 30

1.
1.1.

Identicacin de la carrera o
Fundamentacin o

La Argentina muestra una actividad econmica robusta en el rea de desarrollo de o a software, originada en y retroalimentndose con una cultura informtica temprana y ama a pliamente extendida, al menos en los principales centros urbanos. El aumento sostenido que se espera en la demanda global de servicios asociados a las tecnolog de la informacin y las comunicaciones (TICs) augura para el rea un amplio as o a potencial de crecimiento. El pa cuenta con varios de los factores necesarios para aprovechar este potencial en s particular respecto del desarrollo de software, entre ellos una amplia base de empresas del sector de distintas caracter sticas y tamaos que trabajan tanto en el mercado local como n en el internacional, una cantidad interesante de profesionales con capacidades competitivas a nivel global, y un fuerte y consistente apoyo estatal al sector. Por otro lado, Argentina no es el unico pa que ha detectado la posibilidad de gen s eracin de empleos de calidad y de desarrollo econmico que brindan las TICs en general y o o el desarrollo de software en particular. Hay varios pa que vienen desarrollando estrateses gias que les han permitido una insercin importante en los mercados mundiales dentro de o estas actividades. Creemos que el desarrollo del sector en la Argentina puede beneciarse de un posicionamiento global que destaque la capacidad de proveer servicios de alta calidad. Esta visin motiva la orientacin del plan que proponemos, que aspira a conjugar prctica o o a extensiva en habilidades directamente relacionadas con las necesidades que percibimos en el mercado laboral con una slida formacin en los conceptos de base de la programacin o o o y con el nfasis en el cuidado de distintos criterios de calidad de los productos de software e construidos.

Otro factor que estimamos importante destacar es el entorno sociohumano de la UNQ. La Universidad est inserta en un rea urbana densamente poblada con una gran dispersin a a o en la calidad de la educacin recibida por los jvenes que ingresan en la Universidad. o o La propuesta que presentamos tiene en cuenta la realidad de la poblacin de estudio antes con que contamos. El plan est pensado para una transmisin gradual y progresiva a o de los conceptos principales que deben ser incorporados, incluyendo adems una fuerte a carga horaria de las materias de los dos primeros cuatrimestres que permite realizar un seguimiento en la adquisicin de hbitos de estudio y en la comprensin de los principios o a o bsicos de la programacin. De esta forma se hace nfasis en el acompaamiento a cada a o e n estudiante en su incorporacin a una curr o cula de nivel universitario. La propuesta que presentamos aspira a fortalecer la capacidad de los egresados/as de ocupar empleos de calicacin media o alta en un sector que cuenta con una amplia oferta o laboral y buenas perspectivas de crecimiento, tanto a nivel global como en particular para las reas metropolitanas de Buenos Aires y La Plata en zonas fcilmente accesibles desde el a a a rea de inuencia de la Universidad, y que genera empleos que por lo general tienen buenas remuneraciones y condiciones razonables de trabajo. De esta forma, buscamos brindar a la comunidad de la zona de insercin de la UNQ una alternativa laboral de calidad. o De acuerdo a lo antedicho, presentamos esta propuesta de nuevo plan de estudios en el convencimiento que fortalece el cumplimiento de los objetivos trazados en el programa que dio origen a la carrera.

1.2.

Denominacin o

Carrera: Tecnicatura Universitaria en Programacin Informtica. o a T tulo: Tcnico Universitario en Programacin Informtica. e o a

1.3.

Nivel

Pregrado.

1.4.

Ubicacin en la estructura institucional o

La carrera tiene una estructura autnoma inserta en el Departamento de Ciencia y o Tecnolog de la UNQ. a

2.
2.1.

Horizontes de la carrera
Objetivos

Formar tcnicos/as capaces de elucidar e implementar soluciones en un amplio espece tro de problemas asociados a las tareas de diseo/programacin dentro del desarrollo de n o software, en un alcance razonable para un egresado/a pre-universitario, siendo capaces de aprovechar los conceptos aprehendidos en la carrera para pensar y resolver situaciones concretas, y basados en una amplia experiencia prctica obtenida durante el recorrido de a la carrera. En particular se espera que un egresado/a posea las siguientes capacidades: concebir una solucin, implementarla y describir los conceptos que fundamentan las o decisiones que tom, ante un problema concreto de diseo y/o programacin de o n o complejidad mediana. construir programas informticos teniendo en cuenta parmetros bsicos de calidad a a a (grado de test, claridad, mantenibilidad, robustez, extensibilidad) en varios lenguajes

de programacin, e incorporar nuevos lenguajes y estilos de programacin al marco o o de los conceptos que conoce. manejar con uidez el entorno que necesita un programador para trabajar: sistema operativo, entornos de desarrollo, entornos de ejecucin. o tener elementos que le faciliten el trabajo en grupo, tanto en lo actitudinal (compartir conocimientos, privilegiar colaboracin a competencia, organizar tareas) como en lo o tcnico (conocer herramientas y entornos). e incorporar a su prctica nuevas herramientas que vayan apareciendo en el mbito a a profesional. comprender que las actividades de programacin se inscriben muchas veces en un o marco ms amplio de proyectos de desarrollo de software, y cules son sus roles a a espec cos dentro de un equipo de proyecto.

2.2.

Perl del egresado

El egresado (o la egresada) es un tcnico universitario cuya rea de accin principal es e a o la problemtica de la construccin de software, que se corresponde con las tareas tradia o cionalmente conocidas como diseo y programacin/codicacin. n o o El recorrido de la carrera le brinda una especializacin en proyectos de desarrollo de o aplicaciones organizacionales utilizando el paradigma de objetos, en este mbito espec a co tiene los conocimientos para insertarse rpida y satisfactoriamente en el mercado laboral. a De acuerdo al perl propuesto, el egresado/a deber: a Tener una base conceptual slida que le permita participar en proyectos de desarrollo de o software de distinta ndole, tanto respecto del tipo de software como de las herramientas de desarrollo utilizadas; y tambin adaptarse a las nuevas herramientas que van apareciendo e en el mbito laboral. a Comprender adecuadamente la pertinencia de construir software de acuerdo a varios parmetros de calidad, entre los que destacamos: claridad, inclusin de tests automticos a o a extensivos, extensibilidad, robustez frente a fallos, uso eciente de recursos; tambin manee jar los principales conceptos y herramientas requeridos para que sus productos cuenten con grados adecuados de calidad. Asimismo comprender la conveniencia de valorar y tener en cuenta los conceptos de estndares abiertos y software libre en los entornos operativos y a herramientas de desarrollo que se utilizan. Contar con conocimientos que le permitan asumir otras tareas adems de la construca cin (elucidacin de requerimientos, despliegue, administracin del entorno de ejecucin) o o o o para proyectos de porte pequeo. n

2.3.

Alcances

La Tecnicatura debe formar egresados capaces de participar en el desarrollo de proyectos de software de cualquier porte y casi cualesquiera caracter sticas, adaptndose a disa tintos tipos de proyecto, formas de trabajo y herramientas. El grado de esta participacin o depender de las caracter a sticas de cada proyecto. Se espera que un egresado pueda desempear un rol importante en todas las actividades de desarrollo e implantacin, n o incluyendo la eleccin de las herramientas a utilizar, para proyectos de desarrollo o de software de pequeo porte (i.e. cuya magnitud no supera los meses/hombre y n que no reviste caracter sticas cr ticas o inusualmente complejas), en particular la construccin de aplicaciones organizacionales. o

desempear un rol importante en las tareas espec n cas del diseo/codicacin de n o software, para proyectos de mediano porte (en el orden de 1/2 aos-hombre y que n no cuenten con caracter sticas particularmente cr ticas o complejas). formar parte del equipo de desarrollo en roles que no requieran capacidades de decisin en cuestiones relevantes, para proyectos de mayor porte y/o criticidad. o El egresado tambin podr colaborar con la administracin de redes de computadoe a o ras en entornos que no cuenten con una dimensin o grado de complejidad importantes, o adaptndolos a las necesidades del lugar en donde se encuentren. a

3.
3.1.

Dise o curricular de la carrera n


Duracin estimada o

Seis cuatrimestres, en los que se incluyen tanto las materias como el trabajo de insercin o profesional.

3.2.

Requisitos de ingreso

Los establecidos la Ley 24521 de Educacin Superior, o las leyes que eventualmente la o reemplacen.

3.3.

Estructura curricular

Para acceder al T tulo de Tcnico Universitario en Programacin Informtica, el ese o a tudiante deber: cursar la totalidad de las materias de los ncleos bsico obligatorio y a u a avanzado obligatorio, obtener 24 crditos en materias del ncleo complementario y ree u alizar un trabajo de insercin profesional. o 3.3.1. Materias del n cleo bsico obligatorio u a

Las materias del ncleo bsico obligatorio brindan al estudiante la formacin requerida u a o en los conceptos bsicos de la programacin y brindan conocimientos fundamentales de a o a reas anexas y de matemtica; conocimientos y formacin requeridos para abordar el resto a o de la carrera. Para todas las materias incluidas en la siguiente tabla, el rgimen de cursado es cue atrimestral, y la modalidad es presencial. Materia Introduccin a la Programacin o o Organizacin de Computadoras o Matemtica I a Programacin con Objetos I o Bases de Datos Estructuras de Datos Programacin con objetos II o Totales 3.3.2. Horas semanales 8 6 8 8 6 8 6 Carga horaria total 144 108 144 144 108 144 108 900 Crditos e 18 12 16 16 12 16 12 102

Materias del n cleo avanzado obligatorio u

Las materias del ncleo avanzado obligatorio completan la formacin obligatoria del u o estudiante.

Para todas las materias incluidas en la siguiente tabla, el rgimen de cursado es cue atrimestral, y la modalidad es presencial. Materia Redes de Computadoras Sistemas Operativos Programacin Concurrente o Matemtica II a Elementos de Ingenier de Software a Construccin de o Interfaces de Usuario Estrategias de Persistencia Programacin Funcional o Desarrollo de Aplicaciones Laboratorio de Sistemas Operativos y Redes Totales 3.3.3. Horas semanales 6 6 4 4 6 6 6 4 6 4 Carga horaria total 108 108 72 72 108 108 108 72 108 72 936 Crditos e 12 12 8 8 12 12 12 8 12 8 104

Asignaturas del n cleo complementario u

Las materias del ncleo complementario permiten orientar al estudiante hacia un perl u determinado dentro del universo amplio y cambiante de los proyectos de desarrollo de software. Materia Seguridad Informtica a Bases de Datos II Participacin y Gestin o o en Proyectos de Software Libre Introduccin a las Arquitecturas o de Software Programacin con objetos III o Introduccin a la Bioinformtica o a Pol ticas Pblicas en la Sociedad u de la Informacin y la Era Digital o Sistemas de Informacin o Geogrca a Herramientas Declarativas en Programacin o Introduccin al Desarrollo o de Videojuegos Derechos de Autor y Derecho de Copia en la Era Digital Seminarios Seminarios sobre Herramientas o Tcnicas Puntuales e Horas semanales 4 4 4 4 4 4 4 4 4 4 Carga horaria total 72 72 72 72 72 72 72 72 72 72 32 4 72 32 Crditos e 8 8 8 8 8 8 8 8 8 8 4 8 4

Para todas las materias incluidas en la siguiente tabla la modalidad es presencial. Las materias indicadas con una carga total de 32 horas podrn desarrollarse durante a todo un cuatrimestre o ser ms intensivos y ocupar slo parte del mismo, de ah que no a o se indique una cantidad de horas semanales para los mismos. Para las materias indicadas con una carga horaria total de 72 horas, el rgimen de cursado es cuatrimestral. e 6

3.3.4.

Trabajo de insercin profesional o

En esta actividad el estudiante, a travs de la realizacin de un trabajo acorde al perl e o profesional del egresado, demostrar la integracin de los conocimientos adquiridos en las a o diferentes materias en el desarrollo concreto de un pequeo proyecto de software guiado n por un profesor de la carrera. Este trabajo es de realizacin individual o en grupos pequeos, y su tiempo de reo n alizacin no debe extenderse ms de un semestre salvo excepciones puntuales. Se deben o a plantear trabajos de una extensin de entre 100 y 180 horas por estudiante. El trabajo o otorga 10 crditos. e La modalidad del trabajo de insercin profesional se instrumentar por normativa o a espec ca. 3.3.5. Otros requisitos

Para acceder al T tulo de Tcnico Universitario en Programacin Informtica es necee o a sario, adems de la aprobacin de las materias y trabajo de desarollo de software ya a o mencionados, acreditar conocimientos de Ingls anlogos a dos niveles cuatrimestrales de e a 54 horas cada uno. 3.3.6. Asignacin horaria total o

La carga horaria total para acceder al t tulo de Tcnico Universitario en Programacin e o Informtica es de 2260 horas, de acuerdo al detalle siguiente. a N cleo u Bsico obligatorio a Avanzado obligatorio Complementario Trabajo de de insercin profesional o Otros requisitos (niveles de ingls) e Totales 3.3.7. Carga horaria total m nima 900 936 216 100 108 2260 Crditos e 102 104 24 10 240

Secuencialidad del recorrido curricular

A n de garantizar coherencia en el recorrido curricular de cada estudiante, se establece que Para la inscripcin en materias del ncleo avanzado obligatorio es necesario acreditar o u la aprobacin del 70 % de los crditos del ncleo bsico obligatorio. o e u a Para la inscripcin en materias del ncleo complementario es necesario acreditar la o u aprobacin del 100 % de los crditos del ncleo bsico obligatorio y del 50 % de los o e u a crditos del ncleo avanzado obligatorio. e u As mismo, se recomendar fuertemente a los estudiantes que respeten las secuenciala idades indicadas en el grco de la Figura 1, que responden a las depedencias entre los a conceptos que se introducen en cada una; el grco incluye una posible organizacin en a o cuatrimestres.

3.4.

Objetivos y contenidos m nimos de las materias del n cleo u bsico obligatorio a

Se consignan, para cada materia del ncleo bsico obligatorio, sus objetivos y conu a tenidos m nimos. Asimismo, para algunas asignaturas se indican contenidos sugeridos que complementan adecuadamente los contenidos consignados como m nimos. 7

1er cuatr

Matemtica I

Introduccin a la Programacin

Organizacin de Computadoras

2do cuatr

Bases de Datos

Programacin con Objetos I Estructuras de Datos

3er cuatr

Matemtica II

Programacin con Objetos II

Sistemas Operativos

Redes de Computadoras

4to cuatr

5to cuatr

6to cuatr

Figura 1: Grco de dependencias de la Tecnicatura en Programacin a o

8
Estrategias de Persistencia Construccin de Interfaces de Usuario Programacin Concurrente Elementos de Ingeniera de Software Complementaria 1 Desarrollo de Aplicaciones Complementaria 3 Trabajo de Insercin Profesional

Programacin Funcional

Laboratorio de Sistemas Operativos y Redes

Complementaria 2

3.4.1.

Introduccin a la Programacin o o

Objetivos Que el estudiante pueda pensar, implementar y depurar un programa que resuelva problemas sencillos. entienda las ideas de secuencia y estado, y las pueda usar al pensar sus programas. pueda estructurar su programa en bloques que se invocan entre s entienda los , conceptos de parmetro y valor de retorno. a entienda el concepto de estructura de datos, y pueda aprovecharlo para organizar el estado de los programas que construye. Maneje ciertos principios, prcticas y metodolog bsicos que resulten en programas a as a ms robustos y mantenibles, p.ej. comentarios, eleccin de nombres, precondiciones, a o terminacin. o Contenidos m nimos Qu es un programa. e Las herramientas del programador: entornos de ejecucin y de desarrollo. o Principios de la programacin imperativa: acciones y comandos, valores y expreo siones, tipos, estado. Terminacin y parcialidad. Precondiciones como metodolog para desarrollo de softo a ware robusto. Principios de la programacin estructurada: funciones y procedimientos. Necesidad o de darle una estructura a un programa no trivial. Resolucin de pequeos problemas mediante programas. o n Estructuras de datos bsicas: listas y registros. a 3.4.2. Organizacin de Computadoras o

Objetivos Que el estudiante Entender los diferentes sistemas de numeracin usados t o picamente en los computadores. Entender los principios bsicos de funcionamiento de las computadoras. Reconocer a los componentes funcionales y entender su funcionamiento. Entender el mecanismo de ejecucin de los programas. o Adquirir habilidades para resolver problemas usando lgica digital (circuitos combio natorios y secuenciales) y aplicando las nociones de reuso y modularizacion. Conocer las caracter sticas bsicas de la comunicacin de la computadora con el a o usuario y con otras computadoras. Contenidos m nimos

Representacin de la informacin: alfanumrico, numrico, punto jo y otante, o o e e ASCII. Sistema de numeracin binario. o Aritmtica de las computadoras: Unidades. Funcionamiento y organizacin (modelo e o de Von Neumann). Unidades funcionales: Unidad Central de Proceso, Unidad de Control, memorias, ciclo de instrucciones, direccionamiento, subsistema de Memoria. Perifricos: conceptos e y principio de funcionamiento. Procesadores de Entrada/Salida. Lgica digital: tablas de verdad, equivalencia de frmulas proposicionales, circuitos o o combinatorios, circuitos secuenciales Arquitectura del computador: Componentes de la CPU, memoria principal y secundaria, jerarqu de memorias. a Subsistema de Entrada/Salida. Lenguaje Mquina. Cdigo fuente y cdigo objeto. a o o 3.4.3. Matemtica I a

Objetivos Son objetivos generales Proporcionar algunas bases matemticas imprescindibles, en concordancia con el a a rea de Programacin, de modo de contribuir a la formacin integral del Tcnico o o e Universitario en Programacin Informtica. o a Introducir a los estudiantes en los procesos t picos del pensamiento matemtico: cona jeturar, inducir, deducir, probar, generalizar, particularizar, modelar y representar algunos conceptos. Son objetivos espec cos que el estudiante logre Armar en forma correcta frases en lgica proposicional, formalizar situaciones seno cillas en lgica de primer orden e iniciarse en la elaboracin de demostraciones en o o ambas lgicas, cuestiones necesarias para el desarrollo del paradigma lgico de rao o zonamiento. Adquirir habilidades en el manejo de demostraciones por induccin matemtica que o a relativa al conjunto de los nmeros naturales, resulta ser la base de la recursividad. u Operar con conjuntos e interpretar enunciados relativos a los mismos. Conocer distintas formas de establecer jerarqu entre los elementos de un conjunto as a travs de las relaciones de orden. e Conocer distintas formas de clasicar los elementos de un conjunto, a travs de las e relaciones de equivalencia. Operar con funciones de uso corriente en el clculo. a En el conjunto de los enteros: operar con el mximo comn divisor y m a u nimo comn u mltiplo, reconocer la importancia de los nmeros primos en la construccin de los u u o nmeros enteros y resolver ecuaciones con congruencias. u Reconocer el modo en que reglas utiles para contar, que tienen que ver con el sen tido comn, se puedan relacionar con distintos problemas de conteo que podrn ser u a modelizados. 10

Contenidos m nimos Lgica proposicional y de primer orden. o Teor bsica de conjuntos. a a Induccin matemtica sobre nmeros naturales. o a u Relaciones binarias: relaciones de orden, relaciones de equivalencia, relaciones funcionales. Aritmtica entera y modular. e Elementos bsicos de anlisis combinatorio. a a 3.4.4. Programacin con Objetos I o

Objetivos Que el estudiante Pueda modelar una situacin sencilla, pero no trivial, usando correctamente las noo ciones bsicas del paradigma de objetos: objeto, mensaje, clase, comportamiento, a responsabilidad, protocolo. Entienda cmo se maneja el estado en el paradigma de objetos, esto es, haciendo que o los objetos se conozcan entre s . Conozca la forma bsica de manejar el anlogo a estructuras de datos, que son las a a colecciones. Entienda qu es el polimorsmo, y pueda usarlo adecuadamente en situaciones conce retas. Adquiera cierta pericia en reconocer los tipos que puede tener un objeto, y en pensar en trminos de tipo/interface. e Entienda qu es la herencia, pueda distinguir formas adecuadas e inadecuadas de e aprovecharla, y pueda usarla adecuadamente en situaciones concretas. Se enfrente a situaciones en las que resultan pertinentes formas de relacionar los objetos menos intuitivas/obvias, conozca el concepto de patrn de diseo, y pueda o n utilizar algunos patrones en situaciones concretas. Adquiera la costumbre de trabajar con testeo automtico y unitario, vea que los a tests tambin pueden verse como manuales de uso de los elementos que conforman e un programa. Adquiera nociones bsicas sobre manejo de errores: qu es un error y qu no, qu puea e e e de hacerse cuando en un programa se detecta una situacin de error. o Contenidos m nimos Conceptos fundantes del paradigma: objeto y mensaje. Visin externa del objeto: o dispositivo computacional capaz de recibir mensajes y otorgar respuestas adecuadas. Relevancia de estos conceptos (con qu objetos cuento, qu mensajes le puedo enviar e e a cada uno) en el desarrollo de software. Concepto de polimorsmo en objetos, comprensin de las ventajas de aprovecharlo. o Protocolo/interfaz, concepto de tipo en objetos, comprensin de que un objeto puede o asumir distintos tipos. La interfaz como contrato al que se comprometen ciertos objetos, posibilidad de reforzar ese contrato. 11

Estado en el paradigma de objetos: referencias, conocimiento, estado interno. Mtodos, clases, herencia, method lookup. e Conceptos de responsabilidad y delegacin, su rol al denir una trama de objetos o que responde a requerimientos determinados. Colecciones: conceptualizacin como objetos, caracterizacin a partir de los concepo o tos de protocolo y responsabilidad, protocolo, acceso a sus elementos. Testeo automtico y repetible, test como comprobacin tanto del correcto funcionaa o miento como de que los objetos denidos son efectivamente usables. Contenidos sugeridos Ambientes basados en prototipos. Chequeo de tipo: concepto, chequeo dinmico vs. esttico. a a Protocolo de Stream / Iterator: open / next / close. Nociones de acceso aleatorio y secuencial a partir de esto. 3.4.5. Bases de Datos

Objetivos Que el estudiante Entienda qu es un modelo de datos. e Entienda la diferencia entre pensar a nivel esquema y pensar a nivel instancia. Pueda armar un modelo de entidad-relacin para un dominio no trivial. o Pueda armar un modelo relacional para un dominio no trivial. Entienda el concepto de denir relaciones sobre una instancia relacional vista como un objeto matemtico. a Pueda resolver consultas lgicamente complejas en el lenguaje SQL, incluyendo joins o parciales, consultas anidadas y agrupamientos. Entienda el concepto de transaccin. o Contenidos m nimos Qu es un modelo de datos, modelos conceptuales, lgicos y f e o sicos. Modelo de entidad-relacin: conceptos bsicos. o a Modelo relacional: tabla, atributo, dominio, valor, la; restricciones de integridad; operaciones que se pueden hacer. SQL: concepto de lenguaje de consulta, sintaxis, concepto de join, agrupamientos, subqueries, joins parciales. Transaccin: concepto, demarcacin de transacciones. o o Contenidos sugeridos Normalizacin de esquemas de BD: anomal de insercin, modicacin y borrado; o as o o concepto de dependencia funcional, formas normales y relacin con las anomal o as. Algebra relacional: concepto, operaciones, ver a las instancias de tabla como conjuntos de las y a los esquemas de tabla como conjuntos de atributos. 12

3.4.6.

Estructuras de Datos

Objetivos Que el estudiante Comprenda la nocin de dato y de estructuras de datos, y su importancia e intero relacin estrecha con la estructura algor o tmica de un programa. Entienda la diferencia entre acceso aleatorio y acceso secuencial. Conozca la idea de interface de una estructura de datos, y sea capaz de utilizarla productivamente para la solucin de problemas. o Conozca la interface de distintas estructuras de datos bsicas (pilas, colas, listas, a a rboles, hashing, etc.) y las utilice adecuadamente Comprenda y utilice la nocin de estructura contenedora, y la capacidad de realizar o combinaciones complejas utilizndolas (i.e. pila de lista de registros, etc.) a Se familiarice con las nociones de mbito y de pasaje de parmetros por valor o a a referencia. Maneje alguno de los principios bsicos de diseo de interfases de una estructura de a n datos (separacin en constructores e inspectores de una interfase, ecuaciones entre o combinaciones de constructores, etc.), y pueda reconocerlos en situaciones prcticas a junto con su utilidad. Comprenda el concepto de asignacin dinmica de memoria, y pueda hacer prograo a mas que hagan un manejo dinmico expl a cito de memoria en forma adecuada. Entienda la nocin de implementacin de una estructura de datos, y de su eciencia, o o y sea capaz de implementar las interfases vistas anteriormente con distintas alternativas variadas en eciencia. Se familiarice con las tareas de compilar y vincular programas para lograr un ejecutable. Pueda resolver problemas mediante programas recursivos, y entienda la diferencia entre una resolucin recursiva y otra iterativa. o Contenidos m nimos Recursin sobre listas y rboles. Programas recursivos. o a Tipos algebraicos: maybe, either, enumerativos, listas, rboles binarios, rboles gena a erales. Estructuras contenedoras: pilas, colas, diccionarios, heaps, rboles balanceados, cona tenedores basados en representaciones numricas. e Nociones de representacin e invariante de representacin y su utilidad en el diseo o o n e implementacin de estructuras de datos. o Uso imperativo de estructuras de datos. Iteracin en listas y rboles. o a Modelo de memoria imperativo: stack/heap, alocacin de memoria. Punteros. Variao bles por referencia. Listas encadenadas y sus variantes. Arboles implementados con punteros. Binary heaps implementadas con arrays. 13

Hashing. Anlisis de eciencia e implementacin. a o Algoritmos de ordenacin. Clasicacin e implementacin. o o o Nociones bsicas de algoritmos sobre grafos. a 3.4.7. Programacin con objetos II o

Objetivos Que el estudiante Adquiera ideas y tcnicas que le permitan aprovechar distintas caracter e sticas de la orientacin a objetos (como ser comportamiento, responsabilidad, polimorsmo, uso o de patrones de diseo) para dar soluciones adecuadas a los desaf planteados, que n os apliquen ya sea al proceso de diseo (cmo atacar un dominio) ya sea al software n o que se est diseando (en particular, respecto de los conceptos de acoplamiento y a n cohesin). o En particular, adquiera cierta uidez en el manejo del concepto de tipo como herramienta para estructurar un programa: qu tipo se espera de un valor que se recibe, e qu tipos puede ofrecer un valor que se dene. e Comprenda las consecuencias de trabajar en un entorno con chequeo esttico de a tipos. Comprenda la idea de diseo de software. n Comprenda los desaf que aparecen al construir aplicaciones ms grandes, en las os a que el dominio a modelar es ms complejo, y cuyo desarrollo lleva ms tiempo. a a Conozca formas de organizar los componentes de un programa en unidades mayores a los bloques de construccin bsicos; p.ej. utilizando mdulos, subsistemas y/o o a o packages. Comprenda la necesidad de controlar el acoplamiento entre los componentes que forman un sistema de software. Se enfrente a la necesidad de adaptar un producto de software en construccin o o construido a cambios en los requerimientos que afectan al diseo denido. n Haga una experiencia de uso intensivo de un entorno de desarrollo integrado del estilo de los usados habitualmente en la industria. Contenidos m nimos Aproximacin al diseo de software: en qu dimensiones puede crecer un proyecto o n e de software, problemticas que devienen de este crecimiento, necesidad de pensar a en la organizacin de un sistema como elementos relacionados, pensando en la funo cionalidad de cada elemento y de qu relaciones se establecen. Nocin de decisin de e o o diseo, el diseo es un proceso de toma de decisiones. n n Conceptos de acoplamiento y cohesin. Problemas que derivan de un grado de o acoplamiento inadecuado. Vinculacin entre las ideas bsicas de diseo y el paradigma de objetos: objetos o a n como elementos, conocimiento como relacin, responsabilidades como funcionalidad o de cada elemento, tipo y polimorsmo para comprender que ciertos elementos son intercambiables a efectos de un diseo. n 14

Caracter sticas deseadas en un diseo de objetos: no repeticin de implementacin de n o o lgica, capacidad de separar entre grupos de objetos cohesivos con responsabilidades o aplicables al grupo. Patrones de diseo: idea de patrn, consecuencias del uso de algunos patrones ren o specto de las caracter sticas del diseo y de las cualidades pretendidas del producto. n Nociones sobre proceso de diseo: foco en las responsabilidades, pensar los problemas n desde las caracter sticas bsicas del paradigma, pertinencia de iterar entre diseo en a n papel, codicacin y test, relevancia de los diagramas de objetos y de clases. o Metaprogramacin, caracter o sticas reexivas de un lenguaje de programacin. o Uso de un entorno integrado de software del estilo de los utilizados ampliamente en la industria, funcionalidades que provee, aprovechamiento de sus facilidades. Notacin UML de los diagramas de clases, de objetos y de secuencia. o Contenidos sugeridos Nocin de cualidades pretendidas en un producto de software, en particular las ms o a ligadas con el desarrollo de modelos de negocio: modicabilidad, extensibilidad, robustez, performance, escalabilidad, etc.. Profundizacin del trabajo sobre manejo de errores. o

3.5.

Objetivos y contenidos m nimos de las materias del n cleo u avanzado obligatorio

Se consignan, para cada materia del ncleo avanzado obligatorio, sus objetivos y conu tenidos m nimos. Asimismo, para algunas asignaturas se indican contenidos sugeridos que complementan adecuadamente los contenidos consignados como m nimos. 3.5.1. Redes de Computadoras

Objetivos Que el estudiante Se familiarice con el concepto de un modelo en capas. Comprendan la aplicacin del concepto de protocolo en varios niveles. o Conozca con cierta profundidad arquitectura, protocolos, normas y aplicaciones t picas de las principales redes de datos, en particular las redes de rea local y la Internet. a Contenidos m nimos Concepto de red de computadoras, redes y comunicacin. o Modelos en capas, modelo OSI, modelo de la Internet. Conceptos de protocolo y de servicio. Nivel f sico: dispositivos, cableado estructurado. Nivel de enlace: concepto de enlace, tramas, puentes, enlaces inalmbricos. a Nivel de red: concepto de ruteo, topolog algoritmos de ruteo, protocolos IP, resas, olucin de direcciones. o 15

Nivel de transporte: funciones, protocolos UDP y TCP, multiplexacin, concepto de o socket, control de congestin. o Modelo general de Internet: integracin de niveles y protocolos, servicios de red (http, o dhcp, dns, smtp, etc.), su utilizacin en el funcionamiento de la Web. o Estndares utilizados en Internet, concepto de RFC. a Concepto e implementacin de las VPN. o Administracin de redes: servicios, rewalls. o Sistemas cliente/servidor. 3.5.2. Sistemas Operativos

Objetivos Que el estudiante Conozca las funciones de un sistema operativo, las caracter sticas de los recursos que administra y las diferentes pol ticas de administracin. o Conozca los conceptos de proceso y thread, la necesidad de planicar y controlar su ejecucin, y tenga nociones de pol o ticas de planicacin. o Se familiarice con los entornos operativos del estilo Unix, el uso de interfaz de l nea de comandos, y adquiera conocimientos sobre shell scripting. Contenidos m nimos Introduccin a los sistemas operativos: funcin de abstraccin del hardware; oro o o ganizacin, estructura y servicios de los SO. Tipos de sistemas (Sistemas batch / o Multiprogramacin / Sistemas de tiempo real / Sistemas distribuidos / Sistemas o paralelos). Procesos y threads: Conceptos de proceso, thread y planicacin. Comunicacin y o o cooperacin entre procesos. Deadlocks. o Planicacin: Algoritmos, criterios. Multiprocesamiento. o Manejo de memoria: Espacio lgico vs f o sico, swapping, alocacin contigua, pagio nacin, segmentacin. o o Memoria virtual : Paginacin bajo demanda, algoritmos de reemplazo de pgina, o a thrashing. Sistemas de archivos: Manejo de archivos, manejo de directorios. Proteccin: objetivos, dominio de proteccin, matriz de acceso y sus implementao o ciones. Prcticas, trabajos incluyendo uso de shell scripting e instalaciones en distintos sisa temas operativos, en particular del estilo Unix: GNU/Linux, etc..

16

3.5.3.

Programacin Concurrente o

Objetivos Que el estudiante Conozca los modelos ms utilizados y las tcnicas y conceptos bsicos asociados a la a e a programacin concurrente. o Comprenda las dicultades asociadas a la interaccin de componentes en un sistema o concurrente y conozca los recursos del que dispone el programador para mitigarlos. Pueda analizar programas concurrentes. Pueda desarrollar aplicaciones concurrentes sencillas. Contenidos m nimos Los porqus de la concurrencia. Concurrencia vs paralelismo. e Modelo de memoria compartida, atomicidad e independencia. Secciones cr ticas, locks y barriers, semforos, monitores y condition variables, Rena dezvous. Problemas de la concurrencia: Starvation, Deadlocks, Liveness y Progress, Safety, Race conditions, Fairness. Modelo de pasaje de mensajes: Comunicacin sincrnica vs comunicacin asincrnio o o o ca, Modelo de transacciones. Modelos de interaccin: Cliente/Servidor, Productor/Consumidor. o Aplicacin de los conceptos estudiados en lenguajes de programacin concretos, o o mecanismos de sincronizacin. o 3.5.4. Matemtica II a

Objetivos Son objetivos generales Profundizar la capacidad de abstraer estructuras a partir de casos concretos, y de razonar acerca de estructuras abstractas. Proporcionar algunas bases matemticas imprescindibles, montadas sobre las que a se ven en Matemtica I, en concordancia con el rea de Programacin, de modo a a o de contribuir a la formacin integral del Tcnico Universitario en Programacin o e o Informtica. a Fortalecer algunos procesos t picos del pensamiento matemtico: conjeturar, inducir, a deducir, probar, generalizar, particularizar, modelar y representar algunos conceptos. En particular, ser capaz de articular algunos razonamientos probabil sticos. Son objetivos espec cos que el estudiante logre Incorporar nociones bsicas de probabilidad de modo de contribuir a la comprensin a o del uso de estos conceptos en el marco de reas de aplicacin tales como modelado a o de texto y datos web, trco de red, anlisis de algoritmos, data mining, etc. a a

17

Utilizar el lenguaje matricial y su operatoria para la resolucin de sistemas de ecuao ciones lineales fortaleciendo la comprensin de su uso en reas como algoritmos, o a computacin grca, geometr computacional, etc. o a a Reconocer las estructuras fundamentales del lgebra, interpretarlas y construir moda elos de las mismas contribuyendo a establecer paralelos con estructuras semejantes que se pueden atribuir a conjuntos de cadenas, lenguajes y programas. Contenidos m nimos Introduccin a las probabilidades, distribuciones de probabilidad discreta. o Matrices y sistemas de ecuaciones lineales. Estructuras algebraicas nitas: monoides, semigrupos y grupos. 3.5.5. Elementos de Ingenier de Software a

Objetivos Que el estudiante Entienda que para llevar a cabo un proyecto de desarrollo de software hace falta llevar a cabo varias actividades adems de programar, y tenga una nocin de cules a o a son estas actividades y las tcnicas asociadas a cada una. e Conozca el concepto de metodolog como denicin de las actividades que involucra a o el desarrollo de software, su articulacin y los roles que ocupan las personas que o participan. Conozca los conceptos principales asociados a metodolog giles y estructuradas, as a las actividades y roles que involucran, y algunas similitudes y diferencias entre ambos enfoques. Pueda interpretar requerimientos funcionales y no funcionales, y tenga nocin de las o actividades asociadas a tareas de programacin necesarias para lograr la concrecin o o y vericacin de los mismos. o Comprenda la relevancia de los distintos tipos de testing existentes y el alcance de cada uno de ellos e identique cules son los ms relacionados con las actividades de a a un programador. Tenga una pequea experiencia prctica aplicando las actividades y metodolog n a as que se describen en la materia. Contenidos m nimos Metodolog giles: actividades, productos, formas de articulacin, roles. Ejemplos: as a o Scrum. Metodolog estructuradas: actividades, productos, formas de articulacin, roles. as o Ejemplos: UP. Debate sobre similitudes y diferencias entre metodolog giles y estructuradas. as a Concepto de ciclo de vida, relacin con distintas metodolog o as. Mtricas: qu son, qu miden, para qu sirven, cundo sirven. Ejemplos de mtrice e e e a e as asociadas a desarrollo de software en general y actividades de programacin en o particular. 18

Estimacin de esfuerzos: relevancia de la experiencia previa para estimar, heur o sitcas utilizadas. Pertinencia de estimaciones relativas. Tcnicas de estimacin asociadas a e o metodolog giles. as a Conceptos de requerimiento funcional y no funcional, pertinencia de deniciones comprensibles y adecuadas. Comprensin de requerimientos funcionales, deteccin de inconsistencias. Impleo o mentacin en cdigo de requerimientos funcionales, vericacin de que el cdigo o o o o construido cumple los requerimientos. Problemas asociados a requerimientos no funcionales: pertinencia de deniciones medibles, nociones sobre tcnicas de vericacin, posibilidad de garantizarlos por e o construccin. o Nociones sobre distintos tipos de testing: de unidad, funcional, de sistema, de stress, de carga. Cualidades deseadas y tcnicas para lograrlas: regresin, automatizacin, e o o independencia. Ejemplos concretos de test de unidad y de test funcional. Nocin de o coverage. Prcticas asociadas a extreme programming: peer programming, relevancia de tests a automticos, integracin continua, interaccin de las actividades de coding y refactor. a o o Nocin de TDD. o Nociones de riesgo y plan de contingencia. Contenidos sugeridos Nociones bsicas sobre Software Conguration Management: versionado, generacin a o de productos instalables, despliegue y redespliegue. Problemas asociados al despliegue de aplicaciones. 3.5.6. Construccin de Interfaces de Usuario o

Objetivos Que el estudiante Conozca la problemtica espec a ca de la construccin de interfaces de usuario, como prendiendo sus requerimientos y restricciones funcionales, tecnolgicos, arquiteco turales y de usabilidad. Comprenda los distintos componentes que se pueden utilizar para construir una interfaz de usuario, las formas de organizar esos componentes, los patrones de diseo n ms comunes asociados a esta problemtica. a a Conozca, experimente y pueda comparar distintas alternativas para la descripcin o de interfaces de usuario y su vinculacin con el modelo de dominio subyacente, y o comprenda la pertinencia tanto de permitir la evolucin independiente del modelo o de dominio y de la interfaz con el usuario como de acotar el impacto de la problemtica tecnolgica de las interfaces de usuario en los componentes no vinculados a o directamente con la tecnolog a. Sea capaz de utilizar distintas herramientas de programacin, diseo y metodolgio n o cas que conoce previamente en el dominio espec co de la presentacin, en particular o diseo orientado a objetos, unit testing y manejo de errores. n Comprenda la problemtica bsica de las interfaces remotas. a a

19

Conozca diferentes opciones tecnolgicas utilizadas en la industria y adquiera algunos o criterios que lo ayuden a discernir entre distintas alternativas permitindole elegir e las ms adecuadas a las condiciones de un proyecto de desarrollo espec a co. Cuente con elementos para aprender una tecnolog vinculada a la construccin de a o interfaces de usuario desconocida por l/ella e incluirla en el marco de los conocimiene tos vistos en la materia. Sea capaz de construir aplicaciones sencillas aplicando los conceptos vistos en la materia y utilizando distintas tecnolog as. Reconozca y adquiera algunas buenas prcticas de aplicacin particular al desarrollo a o de la interfaz de usuario de una aplicacin. o Contenidos m nimos Variantes en arquitecturas de sistema respecto de la interfaz de usuario: aplicacin o centralizada, cliente-servidor o distribuida; ejecucin en un cliente de aplicacin o o (browser, ash, otros) o mediante un programa espec co; concepto de RIA. Arquitecturas web, protocolos y tecnolog asociados. as Modelos de interaccin de la interfaz de usuario con su entorno: interfaces orientadas o a eventos, pedido-respuesta, basadas en continuations. Aplicaciones client-initiative y application-initiative. Componentes grcos usuales en interfaces de usuario. Diferentes estrategias para a describir una vista, sus componentes y la distribucin espacial de los mismos: HTML o esttico, CSS, generacin programtica de HTML, server pages, templates, descripa o a cin basada en componentes, descripciones declarativas. Problemas caracter o sticos de cada estrategia; herramientas que las soportan. Vinculacin entre la interfaz de usuario y el modelo de dominio subyacente. Probo lemtica asociada a transformaciones, validaciones, manejo de errores, excepciones, a transacciones e identidad. Distintos enfoques: generacin automtica de la interfaz o a de usuario a partir del modelo, v nculos expl citos entre elementos de interfaz de usuario y de modelo, DAOs, servicios. Adaptaciones de un modelo de dominio a las necesidades de dinamismo, navegacin o y distintos niveles de discriminacin/agregacin de la interfaz de usuario. Objetos o o de nivel de aplicacin, casos de uso, concepto de modelo de la vista. Patrones de o interaccin, mvc. o Anlisis de tecnolog de presentacin de acuerdo a los conceptos presentados en esta a as o materia; evaluacin de caracter o sticas, seleccin de opciones tecnolgicas teniendo o o en cuenta el proyecto de desarrollo a realizar. Nociones sobre desarrollo propio de complementos a tecnolog desarrolladas por otros. as Impacto de la distribucin de aplicaciones en la interfaz de usuario, comunicacin o o sincrnica y asincrnica. o o Navegacin y manejo del estado conversacional. REST, estado en sesin. o o Nociones de usabilidad: concepto, pertinencia, conveniencia de denir y mantener standards. Contenidos sugeridos

20

Aspectos de seguridad vinculados a la interfaz de usuario, en particular control de accesos a elementos de la interfaz. Anlisis de performance de una interfaz de usuario, pruebas de stress y carga. a Testeo unitario de interfaces de usuario: desaf os, opciones, posible impacto en el diseo de software de las interfaces. n 3.5.7. Estrategias de Persistencia

Objetivos Que el estudiante Conozca distintos mecanismos de persistencia, en particular persistencia en archivos y persistencia en bases de datos relacionales u orientadas a objetos; haga experiencia prctica con ellos y tenga elementos para realizar comparaciones. a Entienda las ideas bsicas para poder interactuar con un mecanismo de persistencia a desde un programa externo, las problemticas asociadas de transformacin entre esa o tructuras de persistencia y estructuras del programa, y la pertinencia de acotar el a mbito en el cual el mecanismo de persistencia toma preeminencia sobre las abstracciones encontradas en el programa. Comprenda la problemtica espec a ca de la persistencia de objetos y de su implementacin en distintos mecanismos de persistencia, en particular la impedancia obo jetos/relacional. Entienda los problemas de concurrencia espec cos que derivan del acceso a un mecanismo de persistencia, y tenga experiencia prctica en algunas tcnicas para tratarlos, a e analizando tanto los mecanismos de concurrencia como su insercin en programas o externos. Conozca algunas tcnicas que permitan trabajar sobre la performance de mecanismos e de concurrencia y entienda en qu casos es adecuado evaluarlas y aplicarlas, analizane do tanto los mecanismos de concurrencia como su insercin en programas externos. o En particular, en relacin con bases de mediano o gran volumen de informacin. o o Entienda y pueda manejar en la prctica conceptos relacionados con la seguridad en a el acceso a un mecanismo de persistencia. Contenidos m nimos Nociones sobre los problemas que derivan del acceso concurrente a una base de datos. Algunas estrategias para mitigarlos, en particular lockeo y manejo adecuado de transacciones. Nociones sobre la problemtica de performance en el acceso a una base de datos, a relacin con la escala, otros factores que inuyen. Estrategias de acceso a los datos o ante una consulta, concepto de ndice. Conceptos de usuario y permiso en una base de datos, esquemas t picos de denicin o de usuarios y permisos. Bases de objetos: concepto, panorama, experimentacin prctica, comparacin con o a o bases de datos relacionales. Bases de datos distribuidas para grandes volmenes de datos, acceso a datos como u un servicio, herramientas de programacin asociadas. o 21

Interaccin entre un programa y un mecanismo de persistencia: nociones bsicas, o a problemticas generales. a Mecanismos de acceso y recuperacin de objetos persistidos en bases de datos relao cionales: mecanismos de recuperacin de objetos (uso de lenguajes de consulta relao cionales, lenguajes de consulta orientados a objetos, interfaz en objetos orientada al acceso, interfaces en trminos del modelo de dominio). Actualizacin del estado e o persistente: reachability, cascada. ORM, conceptos bsicos, alcances, cuestiones que resuelven, enfoque que toma rea specto de la transformacin de objetos. Problemas de mapeo: herencia, relaciones o n-m, estrategias no standard. Transacciones a nivel aplicacin, transacciones de negocio, reejo de la transaccionalo idad al acceder a un mecanismo de persistencia, concepto de unit of work. Reejo de cuestiones de performance y concurrencia al acceder a un mecanismo de persistencia desde un programa, lazyness, cache, versionado, lockeo optimista y pesimista. 3.5.8. Programacin Funcional o

Objetivos Son objetivos generales que el estudiante Ampl su comprensin sobre el concepto de programacin como actividad rigurosa e o o de abstraccin, incluyendo el paradigma de programacin funcional. o o Explore y utilice con seguridad los principales conceptos del paradigma funcional. Conozca las principales tcnicas formales de desarrollo de programas, comprendiene do su importancia y utilidad como medio de garantizar la correccin del software o producido. Es objetivo espec co que el estudiante Comprenda, maneje y se familiarice con conceptos fundamentales de la programacin o y su importancia en la tarea de programar: Abstraccin mediante funciones (como elementos que transforman informacin), o o Nocin de funciones de alto orden y su utilidad, curricacin, esquemas de o o programas, Induccin (y las herramientas asociadas: induccin estructural y recursin), o o o Nociones de sistemas de tipos y su utilidad prctica, a Sea capaz de utilizar dichas nociones para la confeccin de programas sencillos en o un lenguaje funcional. Sea capaz de demostrar propiedades sencillas de programas funcionales utilizando induccin estructural. o Sea capaz de aplicar tcnicas de transformacin de programas en casos particulares. e o Contenidos m nimos Nociones generales del paradigma funcional

22

Valores y expresiones. Las funciones como valores. Mecanismos de denicin de o expresiones y valores. Ecuaciones orientadas para denir funciones. Sintaxis. Sistema de Tipos Hindley-Milner. Tipos bsicos. Constructores de tipos. Polia morsmo. Sintaxis para valores de cada tipo (caracteres, tuplas, listas, strings, funciones). Funciones de alto orden. Curricacin. o Induccin/Recursin o o Denicin inductiva de conjuntos. o Denicin recursiva de funciones sobre esos conjuntos. o Demostraciones inductivas sobre dichas funciones. Ejemplos: programas, expresiones aritmticas, listas. e Listas Listas como tipo inductivo. Funciones bsicas sobre listas (append, head, tail, a take, drop, reverse, sort, elem, etc.). Funciones de alto orden sobre listas. Patrn de recorrido: map. Patrn de seo o leccin: lter. Patrn de recursin: foldr. o o o Demostracin de propiedades sobre listas y funciones sobre listas. o Sistemas de Tipos. Nociones bsicas. Sistemas de tipado fuerte. Ventajas y limitaciones de los a lenguajes de programacin con tipos. o Lenguaje de tipos. Asignacin de tipos a expresiones. Propiedades interesantes o de esta asignacin. Algoritmo de inferencia. o Mecanismos de denicin de tipos nuevos y de funciones sobre ellos. Tipos o algebraicos recursivos. Ejemplos: enumeraciones, listas, rboles binarios, rboles a a generales. Transformacin de Programas. o Motivacin. Obtencin de programas a partir de especicaciones. Mejoramiento o o de eciencia, con correccin por construccin. o o Tcnicas particulares de transformacin: tupling, eliminacin de recursin, fue o o o sin. o 3.5.9. Desarrollo de Aplicaciones

Objetivos Que el estudiante Lleve a cabo la construccin completa de una aplicacin mediana, partiendo desde o o una versin preliminar de los requerimientos y llegando a una aplicacin que pueda o o ponerse en produccin. o Aplique en una experiencia concreta de desarrollo los conocimientos sobre ciclo de dearrollo y metodolog adquiridos en Elementos de Ingenier de Software. as a Comprenda los benecios de respetar buenos principios y prcticas adquiridos en a materias anteriores en un proyecto de desarrollo de software, mediante la experiencia concreta en la utilizacin e integracin de los mismos. o o 23

Tenga una nocin de qu es una arquitectura de software, y qu consecuencias trae o e e trabajar con una determinada arquitectura en el desarrollo. Tenga un conocimiento razonable acerca de herramientas tecnolgicas, metodolgicas o o y de diseo de software adecuadas para el desarrollo grupal de proyectos de software. n Tenga nociones acerca del anlisis de eventuales problemas de performance, la pera tinencia de abordarlos en los momentos y en la medida adecuados, y la relevancia de una visin global al respecto incluyendo tanto cuestiones de conguracin como o o cuestiones de cdigo. o Tenga nociones acerca de los desaf y tareas inherentes al mantenimiento de una os aplicacin posterior a su primer puesta en produccin. o o Contenidos m nimos Herramientas metodolgicas y conceptuales para trabajo en grupo. Divisin de taro o eas planeando reunin de los resultados. Aprovechamiento de conceptos de objetos, o citamos como posibles ejemplos: interfaces como forma de coordinar la tarea de distintas personas o grupos, mock objects para simular los objetos de otros grupos, etc.. Herramientas tecnolgicas para trabajo en grupo: repositorios de cdigo y de bibo o lioteca, automatizacin de procesos involucrados en el desarrollo y despliegue. o Aplicacin concreta de las ideas de desarrollo iterativo. o Nociones de arquitectura de software: qu es una decisin de arquitectura, impacto e o en el desarrollo de trabajar dentro de cierta arquitectura. Diversidad de variantes en arquitecturas de software. Arquitectura de sistema. Variantes: stand-alone, servidor Web dinmico, servidor de a aplicaciones, cliente-servidor. Soporte de ejecucin concurrente. Implicancias en el o diseo de software y en las tareas habituales de desarrollo, pertinencia de prcticas n a que agilicen el desarrollo bajo distintas arquitecturas de sistemas. Problemas de performance: instancias adecuadas para su anlisis, posibilidad de a problemas asociados a conguraciones defectuosas. Despliegue de una aplicacin en distintos entornos: tareas que conlleva. o Contenidos sugeridos Nociones bsicas de manejo de conguraciones: versionado, generacin de una versin a o o instalable, branches para desarrollo y para correccin de errores. o Nociones de tareas que devienen de un cambio de versin: conversiones de datos, o instalacin de nuevas versiones de bibliotecas, etc.. o Tcnicas para organizacin de las tareas individuales de un desarrollador de software. e o Experiencia con ambientes de integracin continua. o Concepto de servicio, cmo se plasma en una pieza de software que provee un servicio, o cmo se utiliza un servicio. o

24

3.5.10.

Laboratorio de Sistemas Operativos y Redes

Objetivos Que el estudiante Conozca los requerimientos de infraestructura de hardware, red y entorno operativo necesarios tanto para desarrollar como para instalar distintos productos de software. Pueda instalar, congurar, operar y mantener un conjunto de servicios de soporte para el desarrollo de un sistema. Integre los conocimientos adquiridos en las otras materias del rea (Organizacin de a o Computadoras, Redes de Computadorasy Sistemas Operativos) para ganar profundidad de comprensin respecto de tareas operativas. o Contenidos m nimos Instalacin, conguracin y operacin de distintos servicios relacionados con Internet: o o o servidores de aplicaciones, servidor y cliente de mail, servidor y cliente FTP, rewalls, etc.. Servicios de directorio, servidores LDAP, uso desde aplicaciones. Gestin de usuarios y control de accesos en un entorno operativo, impacto en la o instalacin de aplicaciones, posibilidad de compartir recursos. o Sistemas de backup automatizados, pol ticas de criticidad. Instalacin, conguracin y operacin de repositorios de cdigo. o o o o Monitoreo de redes, protocolo SNMP.

3.6.

Contenidos m nimos de los niveles de idioma ingls e

Se consignan los contenidos m nimos de los niveles de ingls que cada estudiante debe e acreditar. 3.6.1. Ingls I e

Comunicacin oral y escrita sobre la base de temticas profesionales preferentemente, o a comprensin de textos y produccin de textos orales y escritos. o o Formacin del vocabulario tcnico. o e Prctica intensiva de traduccin con referencia especial a obras profesionales. a o 3.6.2. Ingls II e

Presentacin de textos profesionales considerando con el ingls como idioma vivo, o e como util de trabajo; para ello se utilizarn textos tomados de las asignaturas de a la carrera as como tomados de la red Internet. El contenido gramatical no recorre todo el abanico de estructuras posibles de ingls general sino que se restringe a las e esenciales y t picas en un contexto cient co. Formacin del vocabulario tcnico, de traduccin con referencia especial a obras o e o profesionales. Comprensin de discursos orales vinculados con la vida profesional. o

25

3.7.

Contenidos m nimos de las materias del n cleo complemenu tario

Se consignan los contenidos m nimos de las materias del ncleo complementario. u 3.7.1. Seguridad Informtica a

Conceptos de seguridad informtica: ataques, amenazas, servicios, herramientas, a estndares. a Firma Digital. Nociones bsicas de criptograf criterios de calidad, algoritmos. a a, Seguridad en redes: protocolos asociados a la seguridad, autenticacin de equipos en o redes de computadora. 3.7.2. Bases de Datos II

Cuestiones de eciencia en el acceso a bases de datos, entre otras: transformacin de o consultas, hints al motor, trabajo sobre ndices. Conguraciones de nivel f sico en un motor de base de datos relacional, p.ej. tablespaces y replicacin. o Tipos de datos no-standard en bases de datos, como ser blobs o XML. Implementacin f o sica de bases de datos relacionales, en particular: manejo eciente de archivos, implementacin de o ndices usando rboles B y variantes. a Conceptos bsicos de Data Mining y Data Warehousing. a 3.7.3. Participacin y Gestin en Proyectos de Software Libre o o

Cibercultura y cultura hacker. Nuevos modos de relacionarse en internet: cultura abierta, distribu` da, libre, produccin colaborativa en red. o Idea de software libre, movimiento de software libre, principios, principales productos y logros. Participacin en proyectos de software libre: fuentes de informacin, formas que o o puede asumir la participacin. o Creacin de proyectos de software libre: de la idea a la formulacin o o El sitio de la comunidad del proyecto: forjas de software libre y otros espacios de trabajo colaborativo. Herramientas para el desarrollo de un proyecto de software libre, en particular: herramientas de comunicacin del proyecto, de anlisis y diseo y desarrollo de aplicao a n ciones, de gestin de cdigo y control de versiones, de gestin de la documentacin o o o o Gestin de la admisin de contribuciones, requerimientos, errores y parches. o o Etiqueta en la comunicaciones electrnicas en el marco de los proyectos. o Motivaciones de los desarrolladores y de los grupos de software libre. Roles usados ms frecuentemente, mecanismos de decisin dentro del proyecto. a o

26

Bifurcaciones de proyectos, conexiones entre proyectos, cierre de proyectos. Licencias para obras intelectuales, en particular para software y para su documentacin tcnica asociada. Licencias de software libre. BSD. GNU. Mozilla. o e Experiencia concreta de participacin en al menos un proyecto existente o 3.7.4. Introduccin a las Arquitecturas de Software o

Conceptos bsicos: qu es una arquitectura de software, principios de arquitectura, a e objetivos de la denicin de una arquitectura. o Relacin entre arquitectura de software y requisitos no funcionales. o Rol de las arquitecturas en la obtencin de parmetros de calidad de software. o a Impacto de la eleccin de una arquitectura en el desarrollo de software: necesidad o de respetar estndares, comprensin de los aspectos que resuelve una arquitectura a o determinada. 3.7.5. Programacin con objetos III o

Metaprogramacin: concepto, herramientas, posibilidades que brinda, uso en distino tas herramientas genricas, posibilidad de anlisis esttico. e a a Programacin aprovechando aspectos, conceptos, relaciones con la programacin con o o objetos, implementaciones. Posibilidad de combinar caracter sticas de los paradigmas funcional y de objetos: manejo de la estrategia de evaluacin, objetos que representan funciones. o Alternativas dentro del paradigma: herencia mltiple, mixins, traits, prototipos. u Desarrollo de extensiones a entornos de programacin. o 3.7.6. Introduccin a la Bioinformtica o a

Conceptos bsicos de la gentica molecular: leyes de la herencia, gentica de poblaa e e ciones, gentica evolutiva, replicacin del ADN, mutacin y reparacin. e o o o Acceso remoto a bancos de datos, bancos genticos. e Anlisis de secuencias biolgicas, algoritmos asociados. a o Homolog secuenciales y estructurales. as 3.7.7. Pol ticas P blicas en la Sociedad de la Informacin y la Era Digital u o

Estado y pol ticas pblicas. u Cultura abierta, distribu` da, libre, produccin colaborativa en red. o Derechos en la sociedad de la informacin. o Diferentes iniciativas pblicas referentes a los estndares abiertos y al software libre. u a Diversidad e identidad culturales, diversidad ling ustica y contenidos locales. Sociedad de la informacin y el conocimiento. o Proyectos de infraestructura y accesibilidad TICs. 27

Acceso y usos: de la red, de los contenidos. Datos abiertos, gobierno electrnico, gobierno abierto, democracia electrnica. Plano o teo y eventual desarrollo de algn software relacionado con esta temtica. u a Neutralidad en la red. 3.7.8. Sistemas de Informacin Geogrca o a

Introduccin a los Sistemas de Informacin Geogrca (GIS): objetivos, principales o o a tecnolog utilizadas. as Posicionamiento: coordenadas, sistemas de referencia, proyecciones, datums, precisin. o Modelos de datos: vectorial, raster, interpolacin, implementaciones de formatos o (SHP, GeoTIFF, KML, otros). Bases de datos espaciales: tipos de datos, consultas, indices. Servidores de Mapas: protocolos, en particular WMS y WFS; tecnolog Clientes as. de Mapas: protocolos y tecnolog as. Sistemas de Informacin Geogrca de Escritorio. o a Implementacion de GIS con tecnolog OpenSource: servidor de Bases de Datos, as servidor de Mapas, clientes Desktop y Web. 3.7.9. Herramientas Declarativas en Programacin o

Enfoques imperativo y declarativo de la programacin informtica, sus diferencias, o a consecuencias de adoptar un enfoque declarativo. Bases del paradigma de programacin lgico: describir un programa deniendo relao o ciones, concepto de clusula, inversibilidad, principio de universo cerrado. a Posibilidad de utilizar conceptos de la programacin lgica en entornos de objetos o o o procedurales, programacin de motores de reglas. o Posibilidad de combinar caracter sticas de los paradigmas funcional y de objetos: manejo de la estrategia de evaluacin, objetos que representan funciones. o Aplicacin de un enfoque declarativo en la construccin de interfaces de usuario: o o separacin de los detalles de visualizacin, generacin de la interfaz a partir de un o o o modelo de objetos a renderizar. Lenguajes de dominio espec co (DSL): concepto, separacin entre especicacin o o de dominio y cdigo comn, modelo semntico, experimentacin con herramientas o u a o concretas. 3.7.10. Introduccin al Desarrollo de Videojuegos o

Panorama de la historia y estado corriente de la industria de videojuegos. Diversidad de videojuegos, gneros mejor establecidos. e Concepto de game design, relevancia del relato al pensar el concepto de un juego.

28

Aspectos generales en la concepcin de videojuegos: estilos visuales, relevancia de o la experiencia interactiva del usuario, necesidad de testeo subjetivo, pertinencia de conceptos de modelado f sico. Cuestiones de arquitectura de software y hardware pertinentes para el dominio de videojuegos: game loop, arquitecturas P2P o cliente-servidor para juegos multiplayer, necesidad de sincronizacin de estados en distintas terminales. o El proceso de desarrollo de videojuegos, pertinencia de aplicar conceptos giles. a Caracter sticas y bondades del modelado de un juego utilizando los conceptos de la programacin con objetos: modelado del dominio en funcin del game design, o o modelado del comportamiento aprovechando el polimorsmo, modelado del ujo interactivo usando estados. Relevancia del procesamiento de eventos en varios gneros de juegos. e Cuestiones ligadas al tratamiento de grcos: uso extensivo de bibliotecas grcas y a a buenas prcticas para su integracin en una arquitectura de software, sprites, meshes, a o frustum, clculo de colisiones. a 3.7.11. Derechos de Autor y Derecho de Copia en la Era Digital

La arquitectura jur dico-pol tica del derecho de autor y derecho de copia. El derecho de autor y derecho de copia y su relacin con el cambio tecnolgico. o o Los derechos personales/morales y los derechos patrimoniales de autor. Propiedad intelectual. Patentes, marcas y logotipos. Las relaciones laborales y las presunciones legales sobre la titularidad de las obras. Las obras intelectuales, sus formas de expresin en soportes y la duplicidad de sus o regulaciones El derecho de copia como construccin jur o dico-pol tica. Las licencias abiertas / libres, rec procas/permisivas/mixtas, el concepto del copyleft, el sistema de licencias abiertas / libre de Creative Commons, otras licencias. El software libre, el software de fuente abierta (open source), software privativo y software privado o no publicado. Dominio pblico. u 3.7.12. Seminarios

Se trata de cursos sobre temticas espec a cas correspondientes a las caracter sticas dinmicas del mbito de la programacin, relacionadas con a a o temas avanzados de programacin. o dominios o tipos espec cos de proyectos de software. herramientas que cuenten con un real inters para la complementacin de la formae o cin de los estudiantes. o 3.7.13. Seminarios sobre Herramientas o Tcnicas Puntuales e

Se trata de cursos que brindan al estudiante la posibilidad de conocer y experimentar con herramientas o tcnicas de programacin de especial inters para determinados e o e dominios de aplicacin. o 29

4.

Cuadro resumen
Horas semanales Carga horaria total

Materia

Crditos e

N cleo bsico obligatorio u a El alumno deber aprobar todas las asignaturas de este ncleo. a u Introduccin a la Programacin o o Organizacin de Computadoras o Matemtica I a Programacin con Objetos I o Bases de Datos Estructuras de Datos Programacin con objetos II o 9 6 8 8 6 8 6 162 108 144 144 108 144 108 18 12 16 16 12 16 12

N cleo avanzado obligatorio u El alumno deber acreditar la aprobacin del 70 % de los crditos del a o e ncleo bsico obligatorio para comenzar a cursar materias de este ncleo. u a u El alumno deber aprobar todas las asignaturas de este ncleo. a u Redes de Computadoras Sistemas Operativos Programacin Concurrente o Matemtica II a Elementos de Ingenier de Software a Construccin de o Interfaces de Usuario Estrategias de Persistencia Programacin Funcional o Desarrollo de Aplicaciones Laboratorio de Sistemas Operativos y Redes 6 6 4 4 6 6 6 4 6 4 108 108 72 72 108 108 108 72 108 72 12 12 8 8 12 12 12 8 12 8

30

Materia

Horas semanales

Carga horaria total

Crditos e

N cleo complementario u El alumno deber acreditar la aprobacin del 100 % de los crditos del a o e ncleo bsico obligatorio para comenzar a cursar materias de este ncleo. u a u El alumno deber aprobar asignaturas de este ncleo por un m a u nimo de 24 crditos, que se corresponden aproximadamente con 216 horas de e cursada. Seguridad Informtica a Bases de Datos II Participacin y Gestin o o en Proyectos de Software Libre Introduccin a las Arquitecturas o de Software Programacin con objetos III o Introduccin a la Bioinformtica o a Pol ticas Pblicas en la Sociedad u de la Informacin y la Era Digital o Sistemas de Informacin o Geogrca a Herramientas Declarativas en Programacin o Introduccin al Desarrollo o de Videojuegos Derechos de Autor y Derecho de Copia en la Era Digital Seminarios Seminarios sobre Herramientas o Tcnicas Puntuales e 4 4 4 4 4 4 4 4 4 4 72 72 72 72 72 72 72 72 72 72 32 4 72 32 8 8 8 8 8 8 8 8 8 8 4 8 4

Asignacin horaria total o


Es de 2260 horas de acuerdo al detalle del cuadro siguiente N cleo u Bsico obligatorio a Avanzado obligatorio Complementario Trabajo de de insercin profesional o Otros requisitos (niveles de ingls) e Totales Carga horaria total m nima 900 936 216 100 108 2260 Crditos e 102 104 24 10 240

31

Potrebbero piacerti anche