You are on page 1of 104

Análisis del Plan de Estudios para la

Licenciatura de Ciencias de la Computación

Sebastián Garcı́a Anderman1

Facultad de Ciencias
UNAM

27 de julio de 2008

1 sebastian@ciencias.unam.mx
Índice general

1. Introducción 4

2. Análisis de Universidades en el Mundo 5


2.1. Rankings mundiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Rankings Nacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1. Estados Unidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2. Inglaterra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3. Análisis individuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1. ETH Zurich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2. National University of Singapore . . . . . . . . . . . . . . . . . . . . 9
2.3.3. Technion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3. Plan de Estudios Actual 11


3.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2. Plan de estudios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.1. 1 Semestre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.2. 2 Semestre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.3. 3 Semestre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.4. 4 Semestre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.5. 5 Semestre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.6. 6 Semestre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.7. 7 Semestre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4. Planes de Estudio de Otras Universidades 18


4.1. Carnegie Mellon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1.2. Plan de Estudios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.3. Materias Optativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2. MIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2.2. Plan de Estudios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1
ÍNDICE GENERAL 2

4.3. Stanford . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3.2. Plan de Estudios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.4. University of California Berkeley . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4.2. Plan de Estudios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.5. University of Illinois–Urbana-Champaign . . . . . . . . . . . . . . . . . . . . 41
4.5.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5.2. Plan de Estudios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.6. Edinburgh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.6.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.6.2. Plan de Estudios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.7. Oxford . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.7.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.7.2. Plan de Estudios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.8. ETH Zurich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.8.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.8.2. Plan de Estudios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.9. Technion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.9.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.9.2. Plan de Estudios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.10. National University of Singapore . . . . . . . . . . . . . . . . . . . . . . . . 74
4.10.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.10.2. Plan de Estudios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5. Comparación de los Planes de Estudio 80


5.1. Computación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.1.1. Matemáticas Discretas . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.1.2. Introducción a la Programación . . . . . . . . . . . . . . . . . . . . . 81
5.1.3. Estructuras de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.1.4. Lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.1.5. Sistemas Digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.1.6. Arquitectura de Computadoras . . . . . . . . . . . . . . . . . . . . . 83
5.1.7. Análisis de Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.1.8. Teorı́a de la Computación . . . . . . . . . . . . . . . . . . . . . . . . 84
5.1.9. Inteligencia Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.1.10. Lenguajes de Programación . . . . . . . . . . . . . . . . . . . . . . . 85
5.1.11. Sistemas Operativos . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.1.12. Redes de Computadoras . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.1.13. Ingenierı́a de Software . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.1.14. Sistemas de Bases de Datos . . . . . . . . . . . . . . . . . . . . . . . 87
ÍNDICE GENERAL 3

5.1.15. C y UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.1.16. Compiladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.1.17. Teorı́a de la Información . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.1.18. Computación Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.1.19. Seguridad de la Información . . . . . . . . . . . . . . . . . . . . . . . 89
5.1.20. Comunicación Técnica . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.2. Matemáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.2.1. Cálculo de una variable . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.2.2. Cálculo de varias variables . . . . . . . . . . . . . . . . . . . . . . . . 90
5.2.3. Ecuaciones Diferenciales . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2.4. Análisis Numérico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.2.5. Álgebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.2.6. Álgebra Moderna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.2.7. Álgebra Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.2.8. Probabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.2.9. Estadı́stica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.2.10. Geometrı́a Analı́tica . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6. Resultados de la Comparación 96
6.1. Temas impartidos en la Facultad de ciencias . . . . . . . . . . . . . . . . . . 96
6.2. Temas no impartidos en la Facultad de Ciencias . . . . . . . . . . . . . . . . 100
Capı́tulo 1

Introducción

Ciencias de la computación es una carrera cientı́fica, pero también tecnológica. Es por ello
que es importante mantenerse actualizado con respecto a los avances dentro de la materia
ası́ como de los requerimientos actuales para un estudiante de la materia.
El plan actual de la carrera en la Facultad de Ciencias, UNAM es del año 1994 por
lo que hay muchas cosas que han cambiado desde entonces.
El objetivo de este análisis, es el identificar 10 de las mejores universidades a nivel mundial
en Ciencias de la Computación, hacer un desglose de su plan de estudios y realizar una
comparativa con el plan de estudios actual de la Facultad de Ciencias, UNAM. Y de este
modo poder hacer una propuesta de cambio al plan de estudios actual.

4
Capı́tulo 2

Análisis de Universidades en el Mundo

Para poder identificar 10 de las mejores universidades en Ciencias de la Computación


debemos recurrir a los rankings más conocidos. Lamentablemente, muchas veces estos no
tienen un ranking por áreas y mucho menos por carreras. Ası́, lo que haremos es tomar las
principales universidades en términos generales, y las mejores universidades en el área de
Ingenierı́a y Teorı́a de la Información ya que en está área es donde en general se clasifica
Ciencias de la Computación.

2.1. Rankings mundiales


Academic Ranking of World Universities1 Hecho por la universidad Jiao Tong
de Shanghai, toma en cuenta premios ganados por los alumnos y los profesores de la
universidad, ası́ artı́culos publicados, citas, y el tamaño de la universidad.

The Times Higher Education2 : El Times Higher Education Supplement, es una


publicación británica en asociación con Quacquarelli Symonds que cada año publica
una lista de las 200 mejores universidades. Para calificarlas utiliza principalmente lo
que llama peer review que consiste en entrevistar a los profesores e las universidades y
de distintas áreas y preguntarles cuales creen que son las mejores universidades en su
área, ası́ como otras preguntas. También toman en cuenta entrevistas hechas a empresas
ya que son ellos quienes contratan a los estudiantes una vez que terminan su carrera.

En la tabla 2.1 vemos los primeros 20 lugares de los dos rankings mencionados. Hay varias
diferencias entre ellos por lo que será necesario recurrir a rankings por área del conocimiento.
Primero, la lista de Academic Ranking of World Universities 2007, junto a The Times Higher
Education 2008.
1
Puede consultarse en: http://ed.sjtu.edu.cn/ranking.htm
2
Puede consultarse en: http://www.topuniversities.com/worlduniversityrankings/

5
2.1. Rankings mundiales 6

No. Academic Ranking of World Universities The Times Higher Education


1 Harvard Harvard
2 Stanford Cambridge
3 Berkley Oxford
4 Cambridge Yale
5 MIT Imperial College London
6 California Institute of Technology Princeton
7 Columbia California Institute of Technology
8 Princeton Chicago
9 Chicago University College London
10 Oxford MIT
11 Yale Columbia
12 Cornell McGill
13 California - Los Angeles Duke
14 California - San Diego Pennsylvania
15 Pennsylvania Johns Hopkins
16 Washington Seattle Australian National University
17 Wisconsin - Madison Tokyo
18 California - San Francisco Hong Kong
19 Johns Hopkins Stanford
20 Tokyo Carnegie Mellon

Cuadro 2.1: Lista de 20 mejores universidades a nivel mundial 2007


2.1. Rankings mundiales 7

No. Universidad
1 MIT
2 Berkley
3 Stanford
4 California Institute of Technology
5 Cambridge
6 Imperial College of London
7 Carnegie Mellon University
8 Georgia Institute of Technology
9 Tokyo
10 National University of Singapore
11 Toronto
12 Oxford
13 ETH Zurich
14 Princeton
15 Harvard
16 Tsinghua
17 Delft University of Technology
18 California - Los Angeles
19 Illinois
20 Cornell

Cuadro 2.2: Mejores 20 universidades en tecnologı́a

La publicación The Times Higher Education hace también un ranking de las mejores 50
universidades por área, en este caso el área de tecnologı́a que podemos ver en la tabla 2.2.
Con estos datos sigue sin ser claro que universidades elegir ya que el debemos enfocarnos
en las mejores universidades para el área de Ciencias de la Computación.
Dado que las mejores universidades tanto en aspectos generales como en el área de tec-
nologı́a son de Estados Unidos y de Inglaterra, es prudente buscar cuales son las mejores en
estos paı́ses en Ciencias de la Computación.
Para tener una mayor variedad en nuestro análisis tomaremos 5 universidades de Estados
Unidos y 5 de otras partes del mundo teniendo ası́ una perspectiva global.
2.2. Rankings Nacionales 8

2.2. Rankings Nacionales


2.2.1. Estados Unidos
Dentro de Estados Unidos el ranking de universidades más común y reconocido es el
realizado por la revista U.S. News & World Report3 que se hace desde 1983 y en el
cual se publican las mejores universidades del paı́s tanto en campos generales como por
especialidades.
En la tabla 2.3 podemos ver que las universidades listadas como mejores en Ciencias de la
Computación coinciden con las mejores en Tecnologı́a y también con las mejores universidades
en términos generales. Esto nos da una clara indicación de que estás 5 universidades deben
estar dentro de nuestro análisis.

Lugar Universidad
1 Carnegie Mellon University
2 Massachusetts Institute of Technology
3 Stanford University
4 University of California-Berkeley
5 University of Illinois–Urbana-Champaign

Cuadro 2.3: Mejores universidades de EEUU en Ciencias de la Computación

2.2.2. Inglaterra
Otro de los paı́ses con más universidades en las mejores del mundo y en el área de
tecnologı́a es Inglaterra, el periódico inglés The Guardian4 hace un ranking de universidades
nacional dividido por áreas de especialidad. En la tabla 2.4 podemos ver la lista para Ciencias
de la Computación del 2008.
Al ver esta tabla podemos decir que Oxford estará en nuestra lista, ası́ como Edinburg.
La razón por la cual no incluimos más universidades británicas es para tener una mayor
diversidad dentro de nuestra investigación.

3
Puede consultarse en:
http://colleges.usnews.rankingsandreviews.com/usnews/edu/college/rankings/brief/t1natudoc brief.php
4
http://www.guardian.co.uk/
2.3. Análisis individuales 9

Lugar Universidad
1 Edinburgh
2 Oxford
3 York
4 Bangor

Cuadro 2.4: Mejores universidades de UK en Ciencias de la Computación

2.3. Análisis individuales


Si elaboráramos nuestra lista en base a las mejores universidades en tecnologı́a la mayorı́a
serı́an de Estados Unidos y algunas de Inglaterra. Lamentablemente no hay listados mundiales
de las mejores universidades en Ciencias de la Computación ası́ que debemos basarnos en
algunos listados locales.
Para esta investigación se decidió tomar 5 universidades de Estados Unidos para ası́ tener
un panorama más global de lo que sucede en Ciencias de la Computación y tener una pers-
pectiva más amplia, teniendo esto, tomamos 2 universidades inglesas dejándonos 3 espacios
libres. Un primer acercamiento era el listar a la Universidad de Tokyo5 , se les contactó pero
no respondieron y tienen muy poca información pública sobre sus programas.

2.3.1. ETH Zurich


ETH Zurich6 conocida también como Instituto Federal de Tecnologı́a de Suiza es la primer
universidad en aparecer en el ranking de mejores 20 universidades en Tecnologı́a2.2 después de
las universidades de Estados Unidos, Inglaterra, la Universidad de Tokyo, National University
of Singapore y Toronto. En rankings nacionales de SwissUp Ranking7 tienen el primer lugar en
Ciencias de la Computación en 2006. También tiene el primer lugar en un ranking publicado
en el 2006 por CHE8 entre los paı́ses de lengua Alemana.

2.3.2. National University of Singapore


La National University of Singapore es la primer universidad en la lista de mejores 20
universidades en tecnologı́a2.2 después de las universidades de Estados Unidos, Inglaterra y
la Universidad de Tokyo.
En 1996 la IEEE publicó un artı́culo9 donde Singapore plantea ser el primordial centro
de investigación y de enseñanza de Ciencias de la Computación en Asia para el siglo XXI,
5
http://www.u-tokyo.ac.jp/
6
www.ethz.ch/
7
http://www.rankingswissup.ch/
8
Center for Higher Education
9
Computer science education in the Asia-Pacific region in the 21stcentury
2.3. Análisis individuales 10

teniendo un plan de apoyo a las universidades, destacando la National University of Singa-


pore. Que en pocos años se posicionó como una de las mejores universidades en tecnologı́a a
nivel mundial2.2.

2.3.3. Technion
El Technion conocido también como Instituto Tecnológico de Israel tiene un fuerte pro-
grama en Ciencias de la Computación. Un comité internacional revisó el departamento de
Ciencias de la Computación en enero de 2000 y mandó un reporte al presidente del Technion
donde dice: “El Technion está llevando a cabo investigación de nivel mundial en Ciencias
de la Computación... . Tomando en cuenta los logros en investigación y sus programas de
posgrado, pondrı́amos al departamento entre los 10 mejores departamentos de Ciencias de la
Computación en Estados Unidos”10

10
http://www.cs.technion.ac.il/about/#TOP TEN
Capı́tulo 3

Plan de Estudios Actual

3.1. Resumen
El licenciado en Ciencias de la Computación es un profesional que por sus conocimientos
profundos en matemáticas y computación realiza investigación y docencia en esta última y
colabora aplicando adecuadamente las matemáticas y las técnicas y equipos computacionales
para resolver problemas de investigación o aplicaciones de otras disciplinas.
El plan de estudios se cursa en ocho semestres. Se compone de 26 materias de carácter
obligatorio y 10 a elegir como optativas. En las materias obligatorias podemos identificar a
10 de ellas aportando los conocimientos formativos básicos del área de matemáticas, y que
corresponde al tronco común con las licenciaturas de Matemáticas y Actuarı́a (y en gran
medida con la carrera de Fı́sica). Otras 13 materias obligatorias proporcionan al estudiante
una formación sólida y suficientemente amplia en ciencias de la computación, y 3 más propor-
cionan herramientas desde el área de matemáticas. Con estas materias obligatorias podemos
garantizar que nuestros egresados van a tener una visión amplia y sólida de las ciencias de la
computación, ası́ como la formación básica y el herramentaje matemático necesario para que
se desenvuelvan como verdaderos cientı́ficos, particularmente en el área de las matemáticas.

3.2. Plan de estudios


3.2.1. 1 Semestre
Álgebra Superior I
Este curso introduce los temas básicos de la Matemática y en particular del Algebra:
Son el fundamento de los cursos que se imparten en la carrera. Este curso ofrece la
primera mitad del material que se considera elemental.

Cálculo Diferencia e Integral I

11
3.2. Plan de estudios 12

En este primer curso de Cálculo se pretende que el alumno conozca los elementos
matemáticos básicos que sustentan el concepto de derivabilidad de una función entre
números reales. Este objetivo hace necesaria una revisión detallada de conceptos ma-
temáticos tales como el de función e incluso el número real. En particular, se busca que
el alumno rebase el conocimiento intuitivo que tiene de estos conceptos.

Geometrı́a Analı́tica I
Proporcionar a los alumnos los conocimientos fundamentales que le permitan relacio-
nar de tal manera el Algebra y la Geometrı́a, que sean capaces de representar, resol-
ver e interpretar analı́ticamente problemas geométricos, y geométricamente problemas
algebraicos. Ası́ como interpretar geométricamente propiedades, valores, relaciones y
métodos analı́ticos y expresar analı́ticamente propiedades geométricas. Se presentarán
también diferentes alternativas de representación de lugares geométricos (ecuaciones
cartesianas, vectoriales, paramétricas, polares) identificando sus ventajas, desventajas
y algunas de sus aplicaciones.

Matemáticas Discretas
Este curso da a los estudiantes una introducción al área de las matemáticas finitas,
poniendo especial énfasis en teorı́a de algoritmos, gráficas, álgebra de Boole, inducción
y recursión.

3.2.2. 2 Semestre
Álgebra Superior II
Este curso continúa la presentación de los conceptos básicos de la Matemática en general
y del Algebra en particular. Al igual que los temas incluidos en Algebra Superior I
constituyen el fundamento de todos los cursos de esta carrera. Este curso ofrece la
segunda mitad del material básico.

Cálculo Diferencia e Integral II


En este segundo curso de Cálculo se pretende que el alumno conozca los elementos
matemáticos básicos que intervienen en la definición precisa del concepto de integral
de una función entre números reales. Como en el caso de la derivada, se desea que el
alumno adquiera habilidad para manejar los aspectos operacionales y de aplicación a
otras áreas, además de comprender la estrecha vinculación matemática que hay entre
estos dos conceptos.

Geometrı́a Analı́tica II
Proporcionar los conocimientos fundamentales que le permitan aplicar diferentes tipos
de transformaciones a las curvas presentadas en Geometrı́a Analı́tica I, ası́ como re-
conocer, analizando una ecuación de segundo grado con dos o tres variables, el lugar
3.2. Plan de estudios 13

geométrico que representa. Presentar otros sistemas de coordenadas que simplificarán


la solución de problemas de ciertas aplicaciones.

Introducción a Ciencias de la Computación I


Este curso introduce la metodologı́a de diseño de software utilizando para ello un len-
guaje moderno de programación. Se introduce a los estudiantes al proceso de diseño e
implementación de un programa que resuelva un problema algorı́tmico. Se cubren tipos
de datos y se introducen algunos métodos de búsqueda y ordenamiento para motivar
los aspectos metodológicos. Se cubren estructuras de control, tipos de datos y abstrac-
ción de procedimientos. El curso introduce también la historia y el impacto social de
la computación y la naturaleza de la propiedad intelectual. El acceso a un laboratorio
dedicado es de primordial importancia para llevar a cabo adecuadamente este curso.

3.2.3. 3 Semestre
Álgebra Lineal I
El Algebra lineal es una de las más antiguas y a la vez una de las más modernas áreas
de la Matemática. Tanto por sus conceptos como por su aplicación en diversas áreas del
conocimiento se ha convertido en una materia básica en muchas carreras. Este curso
ofrece la mitad del conocimiento del Algebra Lineal.

Cálculo Diferencia e Integral III


Introducir el concepto de función de varias variables y que el alumno conozca la forma
en que se extienden las definiciones de lı́mite, continuidad y derivada par este tipo de
funciones. Este curso comprende principalmente una amplia exposición de los resultados
y propiedades más relevantes del concepto de derivada para esta clase de funciones.

Introducción a Ciencias de la Computación II


Este curso continúa con el desarrollo de las ideas fundamentales en el diseño y desa-
rrollo de software. Se introduce a los alumnos el concepto de tipo abstracto de datos.
Este concepto se aplica a la implementación de varias estructuras de datos, incluyendo
stacks, colas y árboles binarios. Se revisan algoritmos de búsquedas y ordenamientos
que utilizan estas estructuras de datos. Otros temas incluyen recursividad, el ciclo de
vida del software, especificación de requisitos e introducción a verificación de progra-
mas. También en este curso se hace una introducción superficial a los problemas de
complejidad de algoritmos.

Probabilidad y Estadı́stica
En toda profesión se hacen investigaciones que implican observaciones en las que se
emplean tácticas que se sistematizan de alguna manera, pero que tienen un fin deter-
minado. Estos métodos incluyen a la Estadı́stica que se integra al método cientı́fico a
3.2. Plan de estudios 14

través de la experimentación u observación, y que se utiliza como un dispositivo para so-


meter a prueba una hipótesis establecida o para adquirir cierto conocimiento. La mayor
parte de las investigaciones dan resultados que son inferencias, es decir, son enunciados
de carácter incierto. La cuantificación de esa incertidumbre es la Probabilidad.

3.2.4. 4 Semestre
Álgebra Lineal II
Al igual que el primer curso de Algebra Lineal I, se presentan conceptos teóricos y
aplicaciones básicas para muchas áreas de la Matemática moderna. Este curso ofrece
la segunda mitad del conocimiento elemental del Algebra Lineal y en él se encuentran
los temas más profundos del área.
Cálculo Diferencia e Integral IV
Exponer las diferentes formas en que el concepto de integral se extiende a funciones de
varias variables. Del mismo modo, se pretende que el alumno conozca la interpretación
fı́sica de los conceptos de integral de lı́nea y superficie y los importantes teoremas
relacionados con estos conceptos.
Análisis Lógico
Introducir al estudiante en el análisis del lenguaje matemático a través de los lenguajes
de primer orden. De éstos, se enfatizan por igual tres aspectos: su estructura formal, su
semántica (a través de las estructuras matemáticas) y la teorı́a de la inferencia lógica.
Diseño de Sistemas Digitales
Introducir sistemas digitales, sus modelos matemáticos y su realización en hardware.
Los temas incluyen elementos lógicos, técnicas de minimización, organización de sis-
temas de memoria y arquitectura, interfaces y comunicación de datos y arquitecturas
alternativas incluyendo multiprocesadores y máquinas hipercubo.

3.2.5. 5 Semestre
Teorı́a de la Computación
El curso introduce la teorı́a de computabilidad, incluyendo resultados importantes del
estudio de autómatas y lenguajes formales. El curso empieza con una discusión de
autómatas y su relación con lenguajes regulares, libres de contexto y dependientes del
contexto. Se representan teorı́as generales de computabilidad incluyendo las Máquinas
de Turing, funciones recursivas y cálculo lambda. Se discuten nociones de dicibilidad e
indicibilidad y se relaciona esto con análisis de complejidad. Finalmente se presentan
y analizan enfoques a semántica de programas, llevando esto a una breve introducción
al tema de verificación formal de programas.
3.2. Plan de estudios 15

Arquitectura de Computadoras
Tratar alternativas de diseño en arquitectura de computadoras. Revisa y cubre la or-
ganización de la máquina en el ámbito de lenguaje ensamblador, la organización del
subsistema de memoria, concepto de interfaces y aspectos que surgen al manejar las
comunicaciones en el procesador. Se estudian también algunas arquitecturas alternati-
vas.

Análisis de Algoritmos I
Este curso da un tratamiento profundo de análisis de complejidad. Ayudan a motivar y
desarrollar el tema varios algoritmos de búsqueda y ordenamientos, ası́ como métodos
de espacios de búsqueda del área de Inteligencia Artificial y estructuras de archivos
utilizados en sistemas de bases de datos. Se discuten clases de complejidad, ası́ como la
naturaleza de la NP-completez e intratabilidad. Esto lleva a una discusión de compu-
tabilidad y de la máquina universal de Turing. Se discuten algunos problemas asociados
con algoritmos paralelos.

Optativa

Optativa

3.2.6. 6 Semestre
Lenguajes de Programación y sus Paradigmas
Introducir al estudiante a la naturaleza de los lenguajes de programación contem-
poráneos, empezando por una revisión profunda de lenguaje ensamblador y finalizando
con un tratamiento profundo de un lenguaje verdadero orientado a objetos (tal co-
mo Smalltalk o Eiffel). Se discute la evolución de lenguajes imperativos (FORTRAN,
Algol, PL/I, Pascal) y lenguajes funcionales (Lisp, Scheme, ML). Adicionalmente se
introducen conceptos fundamentales de diseño e implementación de los lenguajes de
alto nivel, incluyendo los conceptos de ligado, chequeo de tipos y administración de
memoria durante ejecución.

Inteligencia Artificial
Dar un panorama selectivo de conceptos clave y aplicaciones de la inteligencia artificial,
junto con una experiencia extensa con algún lenguaje que se utilice comúnmente para
construir sistemas de IA (Lisp, Prolog). Los subsistemas incluyen representación del co-
nocimiento, búsqueda en el espacio de estados, búsqueda heurı́stica, sistemas expertos,
proceso del lenguaje natural, lógica proposicional, modelos de aprendizaje y visión.

Sistemas Operativos
3.2. Plan de estudios 16

Se inicia con un tratamiento razonablemente profundo de sistemas operativos y conclu-


ye con una breve introducción a los sistemas de bases de datos. Los temas de sistemas
operativos incluyen tareas, procesos, sincronización de procesos, organización de memo-
ria fı́sica y virtual, sistemas operativos distribuidos, seguridad y privacı́a. En apoyo a
estos temas de sistemas operativos, se introducen construcciones de sistemas de progra-
mación que apoyan la concurrencia. Los temas de bases de datos incluyen organización
fı́sica de bases de datos y su modelo relacional.

Sistemas de Bases de Datos


Este curso cubre lo referente a sistemas de bases de datos, cuyos temas incluyen mode-
los de datos (Entidad-Relación, relacional y orientado a objetos); lenguaje de consulta
(álgebra racional, cálculo relacional); el diccionario de datos; implementación del núcleo
de un sistema de bases de datos relacional y ejemplos concretos de lenguajes y sistemas
de bases de datos comerciales. Otros temas que también se cubren son: Optimización de
las consultas; teorı́a de las formas normales y el diseño de la base de datos; proceso de
transacciones, control y recuperación de errores; seguridad e integridad; sistemas dis-
tribuidos de bases de datos; interfaces con los usuarios y lenguajes de consulta gráficos;
estudio de la organización fı́sica de las bases de datos; tecnologı́as modernas (hipertexto
y sistemas basados en el conocimiento).

Optativa

3.2.7. 7 Semestre
Análisis Numérico
Introducir algoritmos eficientes y estables para la resolución de problemas matemáticos
planteados por las necesidades del desarrollo de las ciencias y la tecnologı́a, haciendo
énfasis en sus alcances y limitaciones. Se introduce también el manejo de software de
calidad para cada uno de los temas tratados.

Redes de Computadoras
Este tema le da al estudiante fundamentos para el estudio de redes de computadoras. Se
cubren los métodos y prácticas de actualidad que se utilizan en redes de computadoras
para permitir la comunicación. Se cubren también los elementos fı́sicos y arquitectóni-
cos, ası́ como las capas de información para una red de comunicación, junto con las
herramientas de diagnóstico, diseño, operación y medidas de eficiencia que se utilizan
para implementar, operar y afinar una red de este tipo. Se contrastan distintas arqui-
tecturas para redes y se comparan con modelos de computadoras centrales con tiempo
compartido tradicional. Subtemas importantes incluyen protocolos de comunicación y
3.2. Plan de estudios 17

arquitectura de redes, nodos de la red, eslabones de datos, conmutaciones y enruta-


mientos, protocolos terminal-a-terminal (end to end), Redes locales y seguridad de los
datos.

Ingenierı́a de Software
Este curso presenta un estudio profundo de muchos de los temas de ingenierı́a de soft-
ware, especificación de requisitos, diseño funcional y orientado a objetos, verificación
y mantenimiento de software. Se discuten ambientes y herramientas de software y se
introduce a los estudiantes a su uso. Se consideran también implicaciones sociales ta-
les como el costo de las fallas y las responsabilidades profesionales. El curso también
comprende una introducción a la interacción computadora-humano y una discusión de
algunas interfaces de software vistas desde el punto de vista de ingenierı́a de software.
Este curso requiere de la participación de los estudiantes en proyectos por equipos.

Optativa

Optativa
Capı́tulo 4

Planes de Estudio de Otras


Universidades

4.1. Carnegie Mellon


4.1.1. Resumen
La Licenciatura en Ciencias de la Computación combina una base sólida de clases de
Ciencias de la Computación con la capacidad de obtener un conocimiento profundo en otra
área mediante una especialización requerida. Además, hay muchas opciones dentro de las
áreas de ciencias y humanidades para escoger clases. Al ser la Ciencias de la Computación
una disciplina con fuertes lazos a muchos campos, esto le da a los estudiantes una gran
flexibilidad para perseguir intereses ligados.
Las clases de matemáticas y estadı́sticas del plan de estudios aseguran que el estudiante
tenga las herramientas formales para mantenerse al dı́a mientras las tecnologı́as y sistemas
cambian, en lugar de estar limitado por un enfoque cerrado en programación únicamente. Al
mismo tiempo, los estudiantes profundizan en elementos prácticos de construcción y man-
tenimiento de sistemas participando en clases orientadas fuertemente a proyectos. Debido a
la enorme cantidad de proyectos de investigación que hay en la universidad, muchos estu-
diantes consiguen trabajos de medio tiempo o de verano, o reciben créditos independientes
trabajando en investigación mientras estudian su licenciatura. Los estudiantes que buscan
una escuela de investigación o de posgrado pueden buscar una clase intensiva de investiga-
ción, equivalente a cuatro clases normales, culminando en la preparación para una tesis de
investigación con honores.

18
4.1. Carnegie Mellon 19

4.1.2. Plan de Estudios


1 Semestre
Programación Introductoria e Intermedia
Curso opcional, en caso de que no se tengan conocimientos en programación, si se
tienen, se pasa directamente a Programación Intermedia y Avanzada. Introducción al
proceso de diseño y análisis de programas usando Java como lenguaje de programación
para estudiantes que no tengan ninguna experiencia previa de programación. Los temas
a tratar incluyen tipos de datos básicos y sus operadores, entrada/salida, estructuras
de control, clases (incluyendo métodos y campos), arreglos y algoritmos simples de
ordenamiento y búsqueda.

Programación Intermedia y Avanzada


Introducción al proceso de diseño y análisis de programas usando Java como lenguaje
de programación para estudiantes con alguna experiencia previa en programación. Los
temas a tratar incluyen un resumen de los conceptos fundamentales de programación
usando Java, ası́ como técnicas de programación orientada a objetos, estructuras de
datos (listas ligadas, pilas, colas, árboles y gráficas) y una introducción al análisis de
algoritmos que operan en esas estructuras de datos.

Cálculo Diferencial e Integral


Funciones, lı́mites, derivadas, función logaritmo, exponencial, y trigonométricas, fun-
ciones inversas; regla de L’Hospital, graficación de curvas, teorema del valor medio,
aproximaciones lineales y cuadráticas, problemas de máximos y mı́nimos, integrales
definidas e indefinidas, funciones hiperbólicas, aplicaciones de integración, integración
por sustitución y por partes.

Conceptos de Matemáticas
Este curso presenta los conceptos, ideas y herramientas básicos para hacer matemáticas.
Ası́ mantiene la atención en presentar la lógica informal y métodos para las demostracio-
nes matemáticas. Los temas incluyen una introducción a teorı́a de números, inducción,
teorı́a de conjuntos, relaciones de equivalencia, congruencias, particiones y funciones,
incluyendo inyectivas, suprayectivas y biyectivas.

Interpretación y argumentación
Este curso le da a los estudiantes una base en el proceso de la comunicación. La clase se
enfoca en la interpretación de argumentos, el proceso de comunicación, y el desarrollo
social y personal.

Computación @ Carnegie Mellon


4.1. Carnegie Mellon 20

Este curso trata de información especı́fica de Carnegie Mellon que ayude a los estudian-
tes a entender cuales son los recursos que tienen disponibles y que responsabilidades
tienen como usuario de la la comunidad de computación.

Curso de Ciencia/Ingenierı́a
Curso optativo de las áreas de Ciencia o Ingenierı́a.

2 Semestre
Fundamentos en Estructuras de Datos y Algoritmos
Conceptos fundamentales de programación son presentados junto con fundamentos
teóricos y aplicaciones prácticas. Este curso se enfoca en la aplicación práctica de técni-
cas para escribir y analizar programas: abstracción de datos, verificación de programas y
análisis de desempeño. Estas técnicas son aplicadas en el diseño y análisis de algoritmos
y estructuras de datos fundamentales.

Grandes Ideas Teóricas en Ciencias de la Computación


Este curso es sobre como usar ideas teóricas para formular y resolver problemas en
ciencias de la computación. Integra material de matemáticas con técnicas de resolu-
ción de problemas y aplicaciones de ciencias de la computación. Se usan ejemplos de
Algoritmos, Complejidad, Teorı́a de Juegos, Probabilidad, Teorı́a de Gráficas, Teorı́a
de Autómatas, Álgebra, Criptografı́a y Combinatoria. Las tareas son tanto de pruebas
matemáticas y programación.

Integración, Ecuaciones Diferenciales y Aproximación


Integración por substitución trigonométrica y fracciones parciales, longitud de arco, in-
tegrales impropias, regla de Simpson para integración numérica, ecuaciones diferenciales
de primer orden, ecuaciones diferenciales homogéneas de segundo orden con coeficientes
constantes, solución de series, método de Newton, Teorema de Taylor.

Curso de Ciencia/Ingenierı́a
Curso optativo de las áreas de Ciencia o Ingenierı́a.

Optativo de Artes y Humanidades


Curso optativo de Artes o humanidades.

3 Semestre
Programación Eficaz en C y UNIX
Este curso está diseñado para brindar un contacto importante con el lenguaje de pro-
gramación C y el ambiente de programación UNIX para los estudiantes con experiencia
4.1. Carnegie Mellon 21

previa en programación pero mı́nimo contacto con C. Caracterı́sticas del lenguaje C


que se resaltan incluyen arreglos, structs y uniones, asignación dinámica de memoria
(malloc y free), apuntadores, aritmética de apuntadores, y casting. Las estructuras de
datos que se tratan incluyen listas y tablas de hash. Los estudiantes desarrollaran un
sentido de correcto estilo de programación en el idiom de C, y se expondrán a proble-
mas de portabilidad entre plataformas. Los estudiantes aprenderán a usar herramientas
como emacs/vi, make y gdb para apoyarse en el diseño, prueba y depuración de sus
programas. Los estudiantes aprenderán sobre expresiones regulares y grep y podrán
usar un lenguaje de scripting como Perl para resolver problemas sencillos.

Principios de Programación
Este curso presenta principios y técnicas de programación, enfocándose en métodos so-
fisticados para especificar, construir y razonar programas de computadora. A través de
caracterı́sticas de un lenguaje de programación funcional de alto nivel (actualmente ML),
este curso muestra mecanismos para construir tipos de datos definidos por el usuario,
incluyendo tipos recursivos y con polimorfismo, ası́ como estructuras de datos infinitas
como flujos; para construir funciones de primera clase y continuations; y para construir
programas grandes usando composición por módulo avanzada. También introduce el
uso de métodos formales para especificar y verificar programas.

Álgebra Matricial
Vectores y matrices, solución de sistemas lineales de ecuaciones, espacios vectoriales y
subespacios, ortogonalidad, determinantes, eigenvalores y eigenvectores reales y com-
plejos, transformaciones lineales.

Curso de Ciencia/Ingenierı́a
Curso optativo de las áreas de Ciencia o Ingenierı́a.

Optativo de Artes y Humanidades


Curso optativo de Artes o humanidades.

4 Semestre
Introducción a los Sistemas Computacionales
Este curso da una visión sobre como las computadoras ejecutan programas desde el
punto de vista de un programador, almacenan información, y se comunican. Permite
al estudiante convertirse en un mejor programador, especialmente al enfrentarse a pro-
blemas de desempeño, portabilidad y robustez. También sirve como la base para los
cursos de Compiladores, Redes, Sistemas Operativos y Arquitectura de Computadoras,
donde se requiere una comprensión más a fondo de temas de nivel de sistema. Los
temas cubiertos son: código a nivel de máquina y su generación por compiladores de
4.1. Carnegie Mellon 22

optimización, evaluación y optimización de desempeño, aritmética de computadoras,


organización y manejo de memoria, tecnologı́as y protocolos de red, y computación
concurrente.

Comunicación Técnica para Ciencias de la Computación


Este curso está diseñado para que los estudiantes mejoren sus habilidades en la comu-
nicación oral y escrita en el ámbito tanto práctico como profesional. Pretende ayudar a
los estudiantes a realizar presentaciones técnicas, claras y concisas para diferentes nive-
les de audiencia. Las tareas incluyen definiciones técnicas, descripciones, instrucciones,
explicación de procesos, resúmenes, memos, y reportes de proyectos. Las tareas pueden
incorporar investigaciones recientes de Ciencias de la Computación en Carnegie Mellon,
proyectos en cursos técnicos, y casos profesionales de estudio.

Optativa Ciencias de la Computación


Curso optativo de Ciencias de la Computación.

Curso de Ciencia/Ingenierı́a
Curso optativo de las áreas de Ciencia o Ingenierı́a.

Optativo de Artes y Humanidades


Curso optativo de Artes o humanidades.

5 Semestre
Diseño y Análisis de Algoritmos
En este curso se estudian algoritmos especı́ficos para una variedad de problemas, ası́ co-
mo técnicas generales para diseño y análisis. Temas especı́ficos incluyen búsquedas,
ordenamiento, algoritmos para problemas de gráficas, estructuras de datos eficientes,
cotas inferiores y NP-completez. Varios otros temas pueden verse a discreción del maes-
tro. Estos incluyen algoritmos paralelos, algoritmos aleatorios, algoritmos geométricos,
técnicas de bajo nivel para programación eficiente, criptografı́a y protocolos criptográfi-
cos.

Optativa Ciencias de la Computación


Curso optativo de Ciencias de la Computación.

Curso de Probabilidad
Curso de Probabilidad.

Curso de Ciencia/Ingenierı́a
Curso optativo de las áreas de Ciencia o Ingenierı́a.
4.1. Carnegie Mellon 23

Optativo de Artes y Humanidades


Curso optativo de Artes o humanidades.

4.1.3. Materias Optativas


Ciencias de la Computación

Aplicaciones

• Sistemas musicales y Procesamiento de Información


• Inteligencia Artificial: Representación y Solución de Problemas
• Manipulación de Robots
• Visión Computacional
• Ingenierı́a de Software
• Aplicaciones de Bases de Datos
• Desarrollo de Aplicaciones Web
• Graficación por Computadora
• Fotografı́a por Computadora
• Tecnologı́as del Lenguaje Humano
• Neurociencia Computacional
• Inteligencia Artificial: Aprendizaje de Máquinas
• Laboratorio de Programación de Robots Móviles

Fundamentos de Algoritmos

• Matemáticas Discretas para Computación


• Álgebra Computacional Moderna
• Detección de Errores: Verificación y Pruebas Automáticas de Programas
• Combinatoria
• Estructuras Algebraicas
• Teorı́a de Gráficas

Fundamentos de Programación

• Fundamentos de Lenguajes de Programación


• Lógica Constructiva
4.1. Carnegie Mellon 24

• Lenguajes Formales y Autómatas


• Modelos de Sistemas de Software
• Lógica Básica
• Lógica y Computación
• Computabilidad e Incompletez

Programación de Sistemas

• Diseño e Implementación de Sistemas Operativos


• Arquitectura de Computadoras y Programación Paralelas
• Redes de Computadoras
• Introducción a Arquitectura de Computadoras

Matemáticas y Probabilidad

Probabilidad

• Probabilidad y Computación
• Probabilidad
• Teorı́a de Probabilidad y Procesos Aleatorios
• Introducción a la Probabilidad y Estadı́stica I
• Probabilidad y Estadı́stica Matemática I

Ingenierı́a y Ciencias Naturales

Introducción a la Quı́mica Experimental

Ingenierı́a de los Materiales del Futuro

Fı́sica Experimental

Métodos de Investigación en la Psicologı́a Cognitiva


4.2. MIT 25

4.2. MIT
4.2.1. Resumen
Ciencias de la Computación en el MIT es un poco diferente de los programas ofrecidos
por la mayorı́a de las universidades. Muchos estudiantes potenciales no entienden a fondo
como es la carrera aquı́. No es sobre “programación de aplicaciones,” o “procesamiento de
datos,” o “diseño web”. “Analista de sistemas” no es el tipo de trabajo al que los estudiantes
del MIT aspiran después de graduarse (para el segundo año es fácil conseguir un trabajo
en el campus). En el MIT uno empieza aprendiendo a lidiar con complejidad, abstracción
y modelado, después se estudia Arquitectura de Computadoras (como diseñar sistemas de
computo), Inteligencia Artificial, modelado, y teorı́a. Hay una buena parte de matemáti-
cas avanzadas. Las Ciencias de la Computación estudia como hacer las computadoras más
rápidas, eficientes, y más inteligentes. El Licenciado en Ciencias de la Computación tiene la
habilidad de desempeñarse en una amplia gama de trabajos. La amplitud de sus estudios le
permite aprender rápidamente la variedad de lenguajes y máquinas usadas en la industria.
La profundidad de estudio da un mejor entendimiento del problema y de como resolverlo. El
plan de estudios es igual de intensivo que el de Ingenierı́a Electrónica. No puedes hacer un
salto a la licenciatura estudiando programación en preparatoria. El curso introductorio de
Ciencias de la Computación se enseña en Python, y el laboratorio de Ingenierı́a de Software
utiliza Java, C++ también puede ser útil para las oportunidades de investigación.
La investigación en Ciencias de la Computación en el MIT cubre muchas áreas, algunas
son:

Diseño y control de robots

Hacer que las máquinas escuchen, vean, se muevan y aprendan

El uso de máquinas inteligentes como recurso para tomar decisiones

Uso de computadoras en la educación

Uso de computadoras para diseño de chips

Hacer que las computadoras sean fáciles de usar

Determinar si un problema se puede resolver

Hacer mejores lenguajes de programación

Automatizar oficinas y otras funciones

Hacer que las computadores se comuniquen unas con otras

Probabilidad Aplicada
4.2. MIT 26

Toma de decisiones en medicina

Gráficas de computadora

Los Licenciados en Ciencias de la Computación obtienen trabajos desarrollando sistemas


para la Ciencia, empresas, o por diversión. Algunos se unen a grandes compañı́as como
Google, Microsoft, Oracle o IBM; otros se unen o empiezan pequeñas compañı́as emergentes.
Algunos diseñan videojuegos, otros trabajan en supercomputadoras o robots. Los Licenciados
en Ciencias de la Computación del MIT están detrás del diseño y desarrollo de la mayorı́a
de las computadoras del mercado.

4.2.2. Plan de Estudios


El plan de estudios en el MIT acaba de reestructurarse y aquı́ se presenta el nuevo plan
de estudios válido a partir de 2008.

1 Semestre
Cálculo I
Diferenciación e integración de funciones de una variable, con aplicaciones. Estudio
informal de lı́mites y continuidad. Diferenciación: definición, reglas, aplicación a la gra-
ficación, tazas de cambio, aproximaciones y problemas de máximos y mı́nimos. Integra-
ción indefinida; ecuaciones diferenciales de primer orden. Integración definida; teorema
fundamental del cálculo. Aplicaciones de la integración a la Geometrı́a y la Ciencia.
Funciones elementales, técnicas de integración, coordenadas polares, regla de L’Hopital,
integrales impropias, series infinitas: geométricas, armónicas, series de potencias de al-
gunas funciones elementales.

Introducción a las Ciencias de la Computación y la Programación


Introducción a las Ciencias de la Computación y la programación para estudiantes
con poca o sin ninguna experiencia en programación. Los estudiantes aprenderán como
programar y como usar técnicas computacionales para resolver problemas. Los temas
incluyen algoritmos, técnicas de simulación y uso de bibliotecas de software. Las tareas
se hace utilizando Python como lenguaje de programación.

Fı́sica I
Introducción a la mecánica clásica. Espacio y tiempo: cinemática de lı́nea recta; mo-
vimiento en el plano; fuerzas y equilibrio estático; dinámica de partı́culas, con fuerza
y conservación del momento; inercia; trabajo, energı́a potencial y conservación de la
4.2. MIT 27

energı́a; teorı́a cinética y gases ideales; cuerpos rı́gidos y dinámica rotacional; movimien-
tos vibratorios; conservación del momento angular; mecánica de fluidos. La materia se
imparte utilizando TEAL1 .

2 Semestre
Cálculo II
Cálculo de varias variables. Álgebra vectorial en tres dimensiones, determinantes, matri-
ces. Funciones escalares con varias variables: diferenciación parcial, gradientes, técnicas
de optimización. Integrales dobles e integrales de lı́nea en el plano; diferenciales exactas;
teorema de Green y aplicaciones, integrales triples, integrales de lı́nea y de superficie
en el espacio, teorema de Divergencia, teorema de Stokes; aplicaciones.

Fı́sica II
Introducción al electromagnetismo y a la electroestática: carga eléctrica, ley de Coulomb,
estructura eléctrica de la materia, conductores y dieléctricos. Conceptos de campos elec-
troestáticos y potencial, energı́a electroestática. Corriente eléctrica, campos magnéticos
y Ley de Ampere. Materiales magnéticos. Campos variables con el tiempo y Ley de In-
ducción de Faraday. Circuitos eléctricos básicos. Ondas electromagnéticas y ecuaciones
de Maxwell. La materı́a se imparte utilizando TEAL 1.

Matemáticas para Ciencias de la Computación


Matemáticas discretas para Ciencias de la Computación e Ingenierı́a. Se enfoca en
definiciones matemáticas y demostraciones ası́ como en métodos aplicables. Los te-
mas incluyen: notación de lógica formal, métodos de demostración; inducción, buen
orden; conjuntos, relaciones; teorı́a de gráficas básica; congruencias de enteros; nota-
ción asintótica y crecimiento de funciones; permutaciones y combinaciones, principios
de conteo; probabilidad discreta. Algunos temas más avanzados incluyen: definición de
recursividad; máquinas de estado e invariantes; recurrencias; funciones generadoras.

3 Semestre
Ecuaciones Diferenciales
Estudio de ecuaciones diferenciales ordinarias, incluyendo el modelado de sistemas
fı́sicos. Solución de ecuaciones diferenciales ordinarias de primero orden por métodos
analı́ticos, gráficos y numéricos. Ecuaciones diferenciales ordinarias lineales, principal-
mente de segundo orden con coeficientes constantes. Números complejos y exponencia-
les, ecuaciones no homogéneas con entradas: polinomiales, senoidales y exponenciales.
1
Technology-Enabled Active Learning - Formato en el que pequeños grupos interactúan con experimentos
sobre la mesa utilizando computadoras portátiles para la recolección de datos y resolución de problemas.
4.2. MIT 28

Oscilaciones, amortiguamiento, resonancia. Series de Fourier. Métodos de transforma-


ción de Laplace; convolución y función delta. Métodos de matrices para sistemas lineales
de primer orden: eigenvalores y eigenvectores, exponenciales de matrices, variación de
parámetros. Sistemas autónomos no lineales: análisis de puntos crı́ticos, aplicaciones al
modelado.

Álgebra Lineal
Materia elemental sobre teorı́a de matrices y Álgebra Lineal, se enfoca en temas útiles
para otras disciplinas, incluyendo sistemas de ecuaciones, espacios vectoriales, deter-
minantes, eigenvalores, descomposición en valores singulares. Aplicaciones a las apro-
ximaciones de mı́nimos cuadrados, estabilidad de las ecuaciones diferenciales, redes,
transformadas de Fourier, y procesos de Markov. Se utiliza MATLAB.

Introducción a Ciencias de la Computación I


Introducción a Ciencias e Ingenierı́a en Computación, se imparte utilizando una canti-
dad considerable de experimentos de laboratorio con robots móviles. Cuestiones claves
en el diseño de artefactos que operen en el mundo natural: medición y modelado del
comportamiento de sistemas; evaluar errores en sensores; especificar tareas; diseñar
soluciones basadas en modelos analı́ticos y computacionales; planeación, ejecución y
evaluación de pruebas experimentales de desempeño. Problemas en el contexto de pro-
gramas de computadoras, sistemas de control, problemas de inferencia probabilı́stica,
circuitos y transductores.

4 Semestre
Introducción a Ciencias de la Computación II
Introducción a Ciencias e Ingenierı́a en Computación, se imparte utilizando una canti-
dad considerable de experimentos de laboratorio que exploran las señales de comunica-
ción, sistemas y redes. Caracterización fı́sica y modelación de sistemas de transmisión
en tiempo y frecuencia; señales digitales y análogas; codificación, detectar y corregir
errores; relacionar la taza de transmisión de información con el poder de la señan,
ancho de banda y ruido; ingenierı́a de las redes con cambio de paquetes. Estos expe-
rimentos se usan para mostrar la abstracción y modularidad en el diseño; construir
sistemas confiables usando componentes imperfectos; seleccionar la métrica apropiada;
elegir representaciones eficaces de la información; analizar el desempeño y correctud de
algoritmos; compromisos de desempeño en sistemas complejos.

Principios de Desarrollo de Software


Introducción a los principios y técnicas fundamentales del desarrollo de software que
tiene mayor impacto en la práctica. Los temas incluyen capturar la esencia de un pro-
blema reconociendo e inventando abstracciones adecuadas; paradigmas y patrones de
4.2. MIT 29

diseño clave; el rol de las interfaces y especificaciones para alcanzar modularidad y di-
sociación; razonar sobre el código usando invariantes, precondiciones y postcondiciones;
pruebas, generación de casos de pruebas y alcance; fundamentos de programación con
objetos, funciones y tipos abstractos. El trabajo del estudiante incluye ejercicios en
modelado, diseño, implementación y razonamiento.

Introducción a los Algoritmos


Introducción al modelamiento matemático de problemas computacionales, ası́ como
algoritmos comunes, paradigmas de los algoritmos y estructuras de datos utilizadas para
resolver estos problemas. Enfatiza la relación entre los algoritmos y la programación e
introduce técnicas básicas de medición de desempeño y análisis para estos problemas.

5 Semestre
Arquitectura de Computadoras
Introducción a la arquitectura de los sistemas digitales, enfocándose en principios es-
tructurales comunes para un amplio rango de tecnologı́as. Estrategias de implemen-
tación multinivel; definición de nuevas primitivas (compuertas, instrucciones, procedi-
mientos y procesadores) y su mecanización utilizando elementos de bajo nivel. Análisis
de concurrencia potencial; limitaciones de precedencia y medidas de desempeño, siste-
mas multimdimensionales y con pipeline. Problemas de diseño en conjuntos de instruc-
ciones; soporte en la arquitectura para estructuras de software actuales.

Diseño y Análisis de Algoritmos


Técnicas para el diseño y análisis de algoritmos eficientes, haciendo énfasis en métodos
útiles en la práctica. Los temas incluyen ordenamiento, árboles de búsqueda, montı́culos,
pilas y tablas hash; divide y vencerás; programación dinámica, algoritmos glotones;
análisis amortizado; algoritmos en gráficas; y camino más corto. Los temas avanzados
incluyen flujo de redes; geometrı́a computacional, cálculos polinomiales y matriciales;
y computación paralela.

Inteligencia Artificial
Da una introducción a las representaciones, técnicas y arquitecturas utilizadas para
construir sistemas aplicados y para contar con inteligencia desde un puto de vista
computacional. Aplicaciones del encadenamiento de reglas, búsqueda heurı́stica, pro-
pagación de restricciones, búsqueda con restricciones, herencia y otros paradigmas para
resolver problemas. Aplicaciones de árboles de identificación, redes neuronales, algorit-
mos genéticos y otros paradigmas de aprendizaje. Especular sobre las contribuciones
de la visión humana y sistemas de lenguajes a la inteligencia humana.
4.2. MIT 30

6 Semestre
Ingenierı́a de Sistemas de Computo
Temas en la ingenierı́a de software de computadoras y sistemas de hardware: técnicas
para controlar complejidad; fuerte modularización usando el diseño cliente-servidor,
sistemas operativos; desempeño, redes; nombres; seguridad y privacidad; sistemas to-
lerantes a fallas, coordinación de actividades concurrentes, y recuperación; impacto de
los sistemas de computo en la sociedad. Casos de estudio de sistemas reales y lecturas
actuales proveen comparación y contraste. Dos proyectos de diseño. Loes estudiantes
participan en amplios ejercicios para la comunicación escrita.

Laboratorio de Ingenierı́a de Software


Presenta conceptos y técnicas relevantes en la producción de grandes sistemas de soft-
ware. Se enseña una metodologı́a de programación basada en el reconocimiento y des-
cripción de abstraccuiones útiles. Los temas incluyen modularidad; especificaciones;
abstracción de datos; modelación de objetos; patrones de diseño; y pruebas. Los estu-
diantes realizaran varios proyectos de distintos tamaños individualmente y por equipos.

7 Semestre
Preparación para Proyecto Avanzado de Licenciatura2
Los estudiantes aprenderán distintos aspectos para dar buenas presentaciones habla-
das al presentarles diferentes habilidades de comunicación. Como preparación para el
Proyecto Avanzado de Licenciatura los estudiantes investigan sobre diversos temas,
identifican un supervisor para su investigación y preparan una propuesta de investiga-
ción para una presentación tanto oral como escrita.

8 Semestre
Proyecto Avanzado de Licenciatura
Proyecto de investigación para aquellos que estén por completar la Licenciatura, se
coordina entre los estudiantes y miembros de la Facultad.

2
UAP - Undergraduate Advanced Proyect
4.3. Stanford 31

4.3. Stanford
4.3.1. Resumen
El plan de estudios en Stanford no tiene una estructura completamente definida pero si
una serie de cursos por completar, cada curso dura un cuatrimestre y en general la carrera
puede completarse en cuatro años.
Al entrar a Stanford se hacen exámenes de Computación y de Matemáticas y dependien-
do de los resultados se puede no tomar algunas materias introductorias. También existen
cursos que pueden tomarse en dos cuatrimestres o una versión acelerada del curso en un solo
cuatrimestre.
Aquı́ cubriremos todos los cursos introductorios y las materias aceleradas y nos basaremos
en uno de los planes recomendados por Stanford.

4.3.2. Plan de Estudios


1 Cuatrimestre
Cálculo 1
Introducción al cálculo diferencial e integral en funciones de una variable. Se cubre:
repaso de las funciones elementales incluyendo exponenciales y logaritmos, tasas de
cambio derivación, introducción a la integral definida e integración.

Optativa de Ciencias

2 Cuatrimestre
Cálculo 2
Continuación de cálculo uno, se cubre: métodos de integración simbólica y numéri-
ca, aplicaciones de la integral definida, introducción a ecuaciones diferenciales, series
infinitas.

Mecánica

3 Cuatrimestre
Optativa de Matemáticas

Electricidad y Magnetı́smo
4.3. Stanford 32

4 Cuatrimestre
Metodologı́a de Programación
Introducción a la programación de aplicaciones de computadora enfatizando principios
modernos de ingenierı́a de software: diseño orientado a objetos, descomposición, en-
capsulamiento, abstracción y pruebas. Se usa Java como lenguaje de programación. Se
alienta al estudiante a un buen estilo de programación y las funcionalidades de Java.

Optativa de Ingles

5 Cuatrimestre
Abstracciones de Programación
Abstracción y su relación con la programación. Principios de ingenierı́a de software, abs-
tracción de datos y modularización. Programación orientada a objetos, estructuras de
datos fundamentales (pilas, colas, grupos) y diseño orientado a los datos. Recursividad
y estructuras de datos recursivas (listas ligadas, árboles). Introducción a el análisis de
complejidad de espacio y tiempo. Se usa C++ como lenguaje de programación cubriendo
sus aspectos básicos.

Optativa de Matemáticas

6 Cuatrimestre
Paradigmas de Programación
Manejo avanzado de memoria en C y C++; diferencias entre el los paradigmas imperativos
y de orientación a objetos. El paradigma funcional (usando LISP) y programación
concurrente (usando C y C++). Introducción a otros lenguajes de programación modernos
como Python, Objective C y C#.

Introducción a la Electrónica
El curso es una introducción a la electrónica impartido por el departamento de Inge-
nierı́a Eléctrica.

Optativa de Tecnologı́a en la Sociedad

7 Cuatrimestre
Matemáticas Discretas para Ciencias de la Computación
Fundamentos matemáticos requeridos para Ciencias de la Computación. Lógica propo-
sicional y de predicados, técnicas de demostración, inducción, recursión, combinatoria
y funciones.
4.3. Stanford 33

Diseño de Sistemas Orientado a Objetos


Diseño y construcción de software en el contexto de grandes bibliotecas de programación
orientada a objetos, se utiliza Java. Revisión de programación orientada a objetos, la
estructura de una interfaz de usuario, bibliotecas de programación orientada a objetos,
diseño y construcción de aplicaciones con interfaz gráfica, estrategias de ingenierı́a de
software para programación orientada a objetos, acercamiento a la programación en
equipo.

8 Cuatrimestre
Estructuras Discretas
Continuación de Matemáticas Discretas para Ciencias de la Computación, análisis de
algoritmos, relaciones de recurrencia, formulaciones matemáticas de modelos de datos
básicos (conjuntos, relaciones, modelos lineales, árboles y gráficas), expresiones regula-
res, gramáticas y autómatas finitos.
Compiladores
Principios y prácticas para el diseño e implementación de compiladores e intérpretes.
Análisis léxico, teorı́a de parsing, tablas de sı́mbolos, sistemas de tipos, alcances, análisis
semántico, representaciones intermedias, entornos en tiempo de ejecución, generación
de código y análisis y optimización básicos de programas. Los estudiantes construyen
un compilador para un lenguaje sencillo orientado a objetos durante el curso.
Optativa de Ciencias de la Computación

9 Cuatrimestre
Introducción a Autómatas y Teorı́a de Complejidad
Campos regulares: autómatas finitos, expresiones regulares, equivalencias entre notacio-
nes, métodos para probar que un lenguaje no es regular. Lenguajes libres de contexto,
gramáticas, autómatas de pila, forma normal de gramáticas, probar que un lenguaje no
es libre de contexto. Máquinas de Turing: formas equivalentes, indecibilidad. Máquinas
de Turing no deterministas: propiedades, la clase NP, problemas completos para NP,
teorema de Cook, reducción entre problemas.
Teorı́a de la Probabilidad
Espacios probabilı́sticos para fenómenos con regularidad estadı́stica. Espacios discre-
tos (binomial, hipergeométrica, Poisson). Espacios continuos (normal, exponencial) y
densidades. Variables aleatorias, especulación, independencia, probabilidad condicional.
Introducción a las reglas de los grandes números y el teorema del valor central.
Optativa de Ciencias de la Computación
4.3. Stanford 34

10 Cuatrimestre
Sistemas Operativos y Programación de Sistemas
Diseño e implementación de sistemas operativos. Estructura básica, mecanismos de
sincronización y comunicación, implementación de procesos, manejo de procesos, plani-
ficación y protección; organización y manejo de memoria, incluyendo memoria virtual;
Manejo de dispositivos de entrada y salida, almacenamiento secundario, y sistemas de
archivos.
Diseño y Análisis de Algoritmos
Algoritmos eficientes para ordenar, buscar y seleccionar. Análisis de algoritmos: análisis
del peor y mejor caso. Estructuras de datos: árboles balanceados, montı́culos, tablas
de hash. Técnicas de diseño de algoritmos: divide y vencerás, programación dinámica,
algoritmos glotones, análisis amortizado. Algoritmos para problemas fundamentales en
gráficas como búsqueda primero en profundidad, componentes conectados , ordena-
miento topológico y caminos más cortos. Posibles temas adicionales: flujos en una red,
búsqueda de cadenas, computación paralela.
Sistemas Digitales II
Como estudiante de Ciencias de la Computación no es necesario llevar Sistemas Digi-
tales I, ni tampoco llevar el laboratorio de esta materia.
Sistemas Digitales II le presenta al estudiante la arquitectura y diseño de sistemas di-
gitales basados en procesadores. Los temas principales son: conjuntos de instrucciones,
modos de direccionamiento, tipos de datos, programación en lenguaje ensamblador,
estructuras de datos de bajo nivel, introducción a los sistemas operativos, compilado-
res, microarquitectura de procesadores, entubamiento, sistemas de memoria y caches,
entrada/salida, interrupciones.

11 Cuatrimestre
Introducción a la Inteligencia Artificial
Conceptos, representaciones y técnicas usadas en construir sistemas computacionales
prácticos (agentes) que parecen mostrar inteligencia artificial mediante el uso de algorit-
mos de procesamiento de información adaptables. Se cubre: historia de la Inteligencia
Artificial, búsqueda heurı́stica, planeación, satisfacción de restricciones , representa-
ción del conocimiento y razonamiento incierto , aprendizaje de máquinas, clasificación,
aplicaciones al lenguaje y la visión.
Introducción a la Robótica
Fundamentos de cinemática en la robótica, dinámica, control, planeación del movimien-
to, generación de trayectorias, programación y diseño.
4.3. Stanford 35

12 Cuatrimestre
Proyecto de Software
Diseño, especificación, programación y pruebas de un proyecto de programación por
equipo supervisado por miembros de la facultad. La documentación incluye una pro-
puesta detallada. Demostración pública del proyecto al finalizar el cuatrimestre.

Optativa Avanzada de Ciencias de la Computación


4.4. University of California Berkeley 36

4.4. University of California Berkeley


4.4.1. Resumen
En Berkeley las Ciencias de la Computación son vistas de una manera amplia para incluir
la teorı́a de la computación, el diseño y análisis de algoritmos, la arquitectura y diseño
lógico de computadoras, los lenguajes de programación, los compiladores, sistemas operativos,
computación cientı́fica, graficación por computadoras, bases de datos, inteligencia artificial
y procesamiento natural del lenguaje. La meta es preparar a los estudiantes tanto para una
posible carrera en investigación como para una carrera a largo plazo en la industria. Por
esta razón se debe ver más allá de la tecnologı́a actual y dar a los estudiantes las ideas y
herramientas de aprendizaje que los prepararán para aprender por si mismos sobre futuras
tecnologı́as.
Como resultado, el estudio de Ciencias de la Computación en Berkeley requiere una mayor
sofisticación matemática y un más amplio entendimiento de ideas de Ingenierı́a Eléctrica que
otros programas de Ciencias de la Computación. Para estudiar Ciencias de la Computación
en Berkeley se deben disfrutar las matemáticas, también se debe estar preparado para el
trabajo duro y largas horas de programación.

4.4.2. Plan de Estudios


1 Semestre
Cálculo I
Introducción al cálculo diferencial e integral de funciones de una variable, con aplica-
ciones y una introducción a las funciones trascendentales.

Introducción a la Programación y a las Ciencias de la Computación


Este curso asume que el estudiante ha tenido al menos contacto con la programación.
El curso le presenta al estudiante técnicas de abstracción a diferentes niveles: (a) den-
tro de un lenguaje de programación, usando funciones de alto nivel, tipos explı́citos,
programación dependiendo de los datos y paso de mensajes; (b) entre lenguajes de pro-
gramación, usando lenguajes funcionales y basados en reglas como ejemplos. El curso
también relaciona estas técnicas a los problemas prácticos de la implementación de
lenguajes y algoritmos en una máquina de Von Neumann. Hay varios proyectos de
programación considerables, programados en algún dialecto del lenguaje LISP.

Optativa de Ciencia

Optativa de Humanidades
4.4. University of California Berkeley 37

2 Semestre
Cálculo II
Continuación de Cálculo I. Técnicas de integración y aplicaciones de la integración, se-
cuencias y series infinitas, ecuaciones diferenciales ordinarias de primer orden, ecuacio-
nes diferenciales ordinarias de segundo orden, oscilación y amortiguamiento, resolución
de ecuaciones diferenciales ordinarias por series.

Mecánica
Mecánica y movimiento de ondas.

Estructuras de Datos
Asume conocimiento del lenguaje LISP. Este curso le presenta al estudiante el lenguaje
Java (con algo de C también) y presenta los fundamentos de ingenierı́a de software y
estructuras de datos y algoritmos (algoritmos de ordenamiento, estructuras de datos
lineales, árboles y tablas de hash).

Optativa de Humanidades

3 Semestre
Cálculo III
Ecuaciones paramétricas y coordenadas polares. Vectores en el espacio Euclideano de
2 y 3 dimensiones, derivadas parciales, integrales múltiples, cálculo vectorial, teoremas
de Green, Gauss, y Stokes.

Electricidad y Magnetismo
Calor, electricidad y magnetismo.

Estructuras de máquina
Este es un curso en estructuras de máquina, es decir, el uso de las instrucciones internas
de la computadora. El curso incluye programación en lenguaje ensamblador y en C para
ilustrar el conjunto de instrucciones de una computadora, el soporte de la computadora
al sistema operativo mediante interrupciones e instrucciones de manejo de memoria,
ası́ como el manejo de procesos. También involucra el estudio de las partes fundamen-
tales de la arquitectura de computadoras (diseño lógico, organización del procesador y
arquitecturas de pipeline)

Optativa de Humanidades
4.4. University of California Berkeley 38

4 Semestre
Álgebra Lineal
Álgebra lineal básica; aritmética de matrices y determinantes. Espacios vectoriales, pro-
ducto interior como espacios. Eigenvectores y eigenvalores; transformaciones lineales.
Ecuaciones diferencias ordinarias homogéneas; ecuaciones diferenciales de primer orden
con coeficientes constantes. Series de Fourier y ecuaciones diferenciales parciales.

Matemáticas Discretas para Ciencias de la Computación


Este curso abarca las matemáticas discretas y probabilidad desde la perspectiva de
las Ciencias de la Computación. Lógica, infinito, inducción; aplicaciones incluyen in-
decibilidad y emparejamientos estables. Aritmética modular y máximo común divisor;
aplicaciones incluyen prueba de primalidad y criptografı́a. Polinomiales; ejemplos inclu-
yen códigos de corrección de errores e interpolación. Probabilidad incluyendo espacios
de prueba, independencia, variables aleatorias, ley de los números grandes; ejemplos
incluyen balance de carga, argumentos de existencia, inferencia Bayesiana.

Estructura e Interpretación de Sistemas y Señales


Modelado matemático de señales y sistemas. Señales discretas y continuas con aplica-
ciones a audio, imagen, video, comunicaciones y control. Modelos basados en estado,
sistemas de autómata, sistemas de tiempo lineal invariante. Modelos de dominio de
frecuencia para señales y respuesta de frecuencia para sistemas, muestreo de señales de
tiempo continuo. Se lleva un laboratorio donde se hacen prácticas en MATLAB.

Optativa de Humanidades

5 Semestre
Electromagnetı́smo
Ondas electromagnéticas, óptica, relatividad e introducción a la fı́sica cuántica.

Introducción a los Circuitos Microelectrónicos


Conceptos fundamentales de circuitos y técnicas de análisis en el contexto de circuitos
electrónicos digitales. Análisis transitorio de puertas lógicas de CMOS; tecnologı́a y
diseño básico de circuitos integrados. Se lleva un laboratorio de electrónica.

Sistemas Operativos y Programación de Sistemas


Conceptos básicos de Sistemas Operativos y Programación de Sistemas. Programas de
apoyo, subsistemas, sistemas de múltiples programas. Procesos, comunicación y sin-
cronización entre procesos. Asignación de memoria, segmentación y paginación. Carga
y enlace, bibliotecas. Asignación de recursos, planificación, evaluación de desempeño.
4.4. University of California Berkeley 39

Sistemas de archivos, dispositivos de almacenamiento, sistemas de entrada y salida.


Protección de la seguridad y privacidad.

Técnicas de Comunicación
Principios de técnicas de comunicación, analizar la audiencia; organización de materia;
desarrollar un lenguaje claro y conciso; usar formatos apropiados y estrategias retóricas
para reportes técnicos formales, estudios de viabilidad, resúmenes, descripciones e ins-
trucciones, propuestas, cartas y memos. Practica en presentaciones orales a audiencias
técnicas y no técnicas

6 Semestre
Lenguajes de Programación y Compiladores
Examinación de lenguajes de programación. El diseño de los lenguajes de programación
modernos. Principios y técnicas de escaneo, análisis sintáctico, análisis semántico, y
generación de código. Implementación de compiladores, intérpretes y ensambladores.
Descripción general de organización y manejo de errores en tiempo de ejecución.

Algoritmos Eficientes y Problemas Intratables


Conceptos y técnicas básicas para el diseño y análisis de algoritmos; modelos de cálculos;
lı́mites inferiores; algoritmos para la manipulación de estructuras de datos; algoritmos
numéricos y algebráicos; algoritmos de combinatoria. Máquinas de Turing, cómo contar
pasos, máquinas de Turing deterministas y no deterministas, NP-completez. Problemas
insolubles e intratables.

Optativa de Ingenierı́a

Optativa de Humanidades

7 Semestre
Ingenierı́a de Software
Técnicas de diseño modular orientado a funciones y a objetos, diseño para reutilización
y mantenibilidad. Especificación y documentación. Verificación y validación. Medida
y estimación de costo y calidad. Organización y manejo de proyectos por equipo. Los
estudiantes trabajaran en un proyecto de programación considerable.

Optativa de Ingenierı́a

Optativa de Ciencias de la Computación

Optativa de Humanidades
4.4. University of California Berkeley 40

8 Semestre
Optativa de Ingenierı́a

Optativa de Ciencias de la Computación

Optativa de Ciencias de la Computación

Optativa de Humanidades
4.5. University of Illinois–Urbana-Champaign 41

4.5. University of Illinois–Urbana-Champaign


4.5.1. Resumen
Los programas de Ciencias de la Computación de la Universidad de Illinois han educado
históricamente a algunos de los lı́deres y visionarios en el campo de la computación.
La meta de la licenciatura en Ciencias de la Computación es continuar con esta tradición,
educando a los estudiantes en la teorı́a y aplicación de la tecnologı́a de computación como
cualquier universidad en el mundo.
Al término de la licenciatura los estudiantes deben tener:

Un conocimiento profundo de la tecnologı́a de computación

Un alto nivel en habilidades prácticas en el uso de esa tecnologı́a

La habilidad de concebir, diseñar, e implementar sistemas de software, usando las tec-


nologı́as existentes cuando estén disponibles, y generando soluciones creativas cuando
sea necesario.

La habilidad de trabajar en equipo, con otros cientı́ficos en computación ası́ como


gente de otras carreras; de comunicarse, oralmente y por escrito, con especialistas y no
especialistas, sobre la tecnologı́a de computación

Integridad en los asuntos profesionales, ası́ como entendimiento de cuestiones éticas que
surjan en el uso de las computadoras por la sociedad

Conocimiento detallado en al menos una área avanzada de Ciencias de la Computación

Para los estudiantes que contemplen una carrera en investigación, experiencia traba-
jando en un grupo de investigación, y conocimiento de la ética y moral de la comunidad
de investigación

Por encima de todo, los estudiantes deben tener las herramientas intelectuales que les
permitirán mantenerse al dı́a con el cambiante mundo de las Ciencias de la Computación.
La misión de la licenciatura es proveer a cada estudiante la oportunidad de tener éxito
y prosperar en el departamento de Ciencias de la Computación, para que puedan graduarse
con el conocimiento y habilidades antes mencionadas.

4.5.2. Plan de Estudios


El plan de estudios está contemplado para cubrirse en 8 semestres. Los estudiantes deben
elegir especializarse en alguna de las siguientes áreas: Ciencias de la Computación, Ciencias
de la Computación e Ingenierı́a o Matemáticas. Los estudiantes que elijan Ciencias de la
4.5. University of Illinois–Urbana-Champaign 42

Computación deben escoger un campo de especialización dentro de Ciencias de la Compu-


tación, mientras que los estudiantes que elijan Ciencias de la Computación e Ingenierı́a deben
escoger un campo de especialización cientı́fico. Los campos de especialización pueden cam-
biar, pero en general son: Sistemas, Bases de Datos, Gráficas, Interacción Hombre-Máquina,
Lenguajes, Inteligencia Artificial, Seguridad y Redes

1 Semestre
Quı́mica General I
Los principios de las estructuras atómicas, enlaces, estados de la materia, estequiometrı́a
y equilibrio quı́mico; quı́mica descriptiva de los elementos y compuestos.

Orientación en Ciencias de la Computación


Introducción a las Ciencias de la Computación como un campo y una carrera. La des-
cripción general de la carrera es presentada junto con ejemplos especı́ficos de áreas de
problemas y métodos de solución. Se dará una descripción general del plan de estudios
de Ciencias de la Computación, clubes en el departamento de Ciencias de la Compu-
tación, investigación en Ciencias de la Computación, “Sobreviviendo Ciencias de la
Computación” clases por estudiantes avanzados y graduados.

Estructuras Discretas
Estudia estructuras matemáticas discretas encontradas con frecuencia en el estudio de
las Ciencias de la Computación. Los temas incluyen conjuntos, proposiciones, álgebra
booleana, inducción, recursión, relaciones, funciones y gráficas.

Cálculo I
Primer curso de cálculo y geometrı́a analı́tica; técnicas básicas de derivación e integra-
ción con aplicaciones incluyendo esbozo de curvas; antiderivadas, la integral de Rieman,
teorema fundamental del Cálculo, funciones exponencial y trigonométricas.

Principios de Redacción
Estudio de métodos de exposición, el problema del argumento, el uso de evidencia, y
estilo; práctica en la escritura para exposición.

Lectura de Ingenierı́a
Orientación requerida para nuevos estudiantes.

2 Semestre
Introducción a Ciencias de la Computación
4.5. University of Illinois–Urbana-Champaign 43

El curso da una introducción en los conceptos básicos de computación y técnicas fun-


damentales para resolver problemas computacionales. Introducción al software y hard-
ware, procesador y memoria y lenguaje máquina a través de lenguajes de alto nivel.
Almacenamiento y manejo de información, tipos y variables, declaraciones y expresio-
nes, y arreglos. Control de flujo, expresiones booleanas, declaraciones condicionales, y
ciclos. Clases y objetos, instancias de variables e instancias de métodos, y encapsula-
ción. Herencia, sublcases, enlaces dinámicos, clases abstractas e interfaces. Introducción
a la recursividad. Algoritmos de ordenamiento y búsqueda, búsqueda lineal y binaria,
selection sort, insertion sort, y quick sort. Listas ligadas, memoria ligada, métodos
recursivos en listas, merge sort en listas ligadas. Análisis de algoritmos.

Cálculo II
Segundo curso de cálculo y geometrı́a analı́tica: técnicas de integración, secciones cóni-
cas, coordenadas polares y series infinitas.

Fı́sica Universal, Mecánica


Leyes de Newton, trabajo y energı́a, propiedades de estática y fluidos, oscilaciones, on-
das transversales, sistemas de partı́culas, y rotaciones. Las clases tienen demostraciones,
discusiones y laboratorio.

Optativa de Humanidades o Ciencias Sociales

Optativa de Humanidades o Ciencias Sociales

3 Semestre
Estructuras de Datos y Principios de Software
Abstracciones de datos: estructuras de datos elementales: listas, pilas, colas, árboles;
técnicas de búsqueda y ordenamiento. Manejo de memoria, algoritmos en gráficas, algo-
ritmos en cadenas. Introducción a los principios de la ingenierı́a de software incluyendo
un proyecto de programación por equipo.

Arquitectura de Computadoras I
Introducción a la arquitectura de computadoras, trabajando desde el nivel de compuer-
tas lógicas: redes combinacionales y secuenciales; aritmética de computadoras; unidades
aritmérico/lógicas; organización de memoria; jerarquı́a de memoria; diseño de CPU; di-
seño de unidades de control; arquitectura de entrada y salida.

Cálculo III
Cálculo de varias variables, tercer curso de cálculo y geometrı́a analı́tica, incluyendo
análisis de vectores: espacio Euclideano, diferenciación parcial, integrales múltiples,
integrales de lı́nea y de superficie, teoremas de las integrales del cálculo vectorial.
4.5. University of Illinois–Urbana-Champaign 44

Fı́sica Universal, Electricidad y Magnetismo


Ley de Coulomb, campos eléctricos, Ley de Gauss, potencial eléctrico, capacitancia, cir-
cuitos, fuerzas y campos magnéticos, Ley de Ampere, inducción, ondas electromagnéti-
cas, polarización, y óptica. Las clases tienen demostraciones, discusiones y laboratorio.

Optativa de Humanidades o Ciencias Sociales

4 Semestre
Arquitectura de Computadoras II
Segundo curso de arquitectura de computadoras: programación a nivel de máquina;
conjuntos de instrucciones; modos de direccionamiento; representaciones de datos; su-
brutinas; dieño de unidades lógicas de aritmética; diseño básico de procesadores; entuba-
miento; hardware y software de entrada y salida; carga y enlace; relación con lenguajes
de alto nivel; procesamiento paralelo.

Programación de Sistemas
Introducción a la programación de sistemas: Este curso cubre las bases de la progra-
mación de sistemas, incluyendo procesos POSIX, control de procesos, comunicación
entre procesos, sincronización, señales, manejo simple de memoria, entrada y salida
de archivos y directorios, programación de consola, programación de sockets de redes,
programación con llamadas remotas a procedimientos en sistemas distribuidos, meca-
nismos básicos de seguridad, y herramientas standard para programación de sistemas
como herramientas de depuración.

Álgebra Lineal
Curso introductorio que se enfoca en técnicas de álgebra lineal con aplicaciones a la in-
genierı́a; los temas incluyen operaciones de matrices, determinantes, ecuaciones lineales,
espacios vectoriales, transformaciones lineales, eigenvectores y eigenvalores, producto
interior y normas, ortogonalidad, equilibrio, y sistemas lineales dinámicos.

Fı́sica Universal, Termodinámica


Introducción a la primera y segunda ley de la termodinámica, incluyendo teorı́a cinéti-
ca de los gases, capacidad calorı́fica, máquinas térmicas, introducción a la entropı́a y
la mecánica estadı́stica, y introducción a la aplicación del factor de energı́a libre de
Boltzmann. Las clases tienen demostraciones, discusiones y laboratorio.

Optativa de Humanidades o Ciencias Sociales


4.5. University of Illinois–Urbana-Champaign 45

5 Semestre
Cuestiones Éticas y Profesionales en las Ciencias de la Computación
Ética para las Ciencias de la Computación. Toma de decisiones ética, concesión de
licencias, propiedad intelectual, libertad de la información y privacidad. Los estudiantes
tendrán que realizar presentaciones orales.

Estudio de Programación
Laboratorio de programación intensiva destinado a fortalecer las habilidades en pro-
gramación de los estudiantes

Introducción a la Teorı́a de la Computación


Autómatas finitos y lenguajes regulares; autómatas de pila y lenguajes libres de contex-
to; autómatas finitos deterministas y no deterministas; gramáticas libres de contexto;
máquinas de Turing conjuntos numerables recursivamente; indecibilidad; algoritmos
para autómatas y análisis sintáctico.

Optativa de Humanidades o Ciencias Sociales

Optativa

6 Semestre
Teorı́a de Probabilidad
Introducción a la probabilidad; cálculo de probabilidades, análisis combinatorio, varia-
bles aleartorias, expectativa, funciones de distribución, y teorema del lı́mite central.

Optativa de Área

Optativa de Área

Optativa

7 Semestre
Optativa de Área

Optativa de Área

Optativa
4.5. University of Illinois–Urbana-Champaign 46

8 Semestre
Optativa de Área

Optativa de Área

Optativa
4.6. Edinburgh 47

4.6. Edinburgh
4.6.1. Resumen
Las Ciencias de la Computación tratan con el entendimiento, diseño, implementación y
uso de sistemas de computo estando en complejidad desde componentes de un sólo proce-
sador hasta redes de computadoras tan amplias como la WWW World Wide Web. Abarca
hardware y software, ası́ como una amplia variedad de técnicas prácticas apoyadas en fuertes
fundamentos de entendimiento teórico.
En Edinburgh, las Ciencias de la Computación son tratadas como un subconjunto de la
disciplina de la Informática que también cubre la Inteligencia Artificial y la Ciencia Cognitiva.
El programa de Ciencias de la Computación pretende desarrollar licenciados con amplio
conocimiento en diversas áreas con un alto nivel y habilidades en Ciencias de la Computación,
tanto en la parte teórica como práctica.
Cada módulo es normalmente impartido por un experto en la materia que también está lle-
vando acabo investigación sobre el tema, ası́ que la investigación influye en los cursos inevita-
blemente. Los estudiantes llevan a cabo una amplia variedad de ejercicios prácticos y proyec-
tos que refuerzan el material de lectura. Habilidades de comunicación, iniciativa, profesiona-
lismo y la habilidad de trabajar en equipo son desarrolladas como parte integral del proceso
de aprendizaje.

4.6.2. Plan de Estudios


1 Año
Informática 1A
Informática 1A consiste de dos secciones, (i) Lógica y Computación, y (ii) Programación
Funcional.
(i) Lógica y Computación: La meta de esta sección es introducir al estudiante en las
nociones de computación usando sistemas de estados finitos y lógica proposicional. Las
máquinas de estados finitos proporcionan un modelo simple de computación que es am-
pliamente usado, tienen una área de teorı́a interesante y tienen aplicaciones inmediatas
en muchas situaciones. La lógica proposicional es el primer paso en el entendimiento de
la lógica que es un elemento esencial de la especificación de los sistemas informáticos y
sus propiedades. Entre los temas que se estudian en este curso están: diseño de sistemas
de estado finito para describir, controlar y realizar un comportamiento, evaluar la cali-
dad de esos diseños, álgebra de autómatas finitos, descripción de problemas a través de
lógica proposicional, tablas de verdad, prueba de teoremas proposicionales, aplicación
de sistemas de estado finito y lógica proposicional.
4.6. Edinburgh 48

(ii) Programación Funcional: Una introducción a los conceptos de programación, usando


un lenguaje de programación funcional. Los estudiantes aprenden a resolver problemas
a pequeña escala de manera concreta y a un nivel abstracto sin atorarse en detalles.
Entre los temas que se estudian en este curso están: definición de tipos de datos, análisis
de casos, recursión, inferencia deductiva, búsqueda combinatoria, documentación de
programas, técnicas básicas de prueba y depuración de programas incluyendo pruebas
unitarias.

Informática 1B
Informática 1B consiste de dos secciones, (i) Análisis de datos, y (ii) Programación
orientada a objetos.
(i) Análisis de datos: Se da una introducción a la recolección, representación e inter-
pretación de datos. Los estudiantes aprenderán diferentes perspectivas desde las que
se usan los datos, diferente terminologı́a de como referirse a ellos y varios métodos de
representación y manipulación. Entre los temas que se estudian en este curso están: dife-
rentes tipos de datos (estructurados/no estructurados, observacionales/experimentales,
cuantitativos/cualitativos), modelo de entidad/relación, representación lógica de datos,
diferencias entre datos y meta-datos, algoritmos de interpretación de datos.
(ii)Programación orientada a objetos: Esta sección proporciona una introducción prácti-
ca y conceptual a la programación orientada a objetos. El enfoque es en programar más
que en un lenguaje de programación especı́fico con el estudio de principios generales a
través de Java. Entre los temas que se estudian en este curso están: uso de conceptos
básicos usados en lenguajes imperativos y orientados a objetos, implementación de un
diseño en un programa, desarrollo de programas pequeños o componentes de uno más
grande, probar código de un componente, uso de herramientas de depuración, uso de
herramientas de apoyo (IDE, control de versiones).

Matemáticas para Informática 1


En esta materia se ve tanto Cálculo como Álgebra. Entre los temas que se estudian
en este curso están: funciones reales, diferenciación, función logaritmo y exponencial,
integración, inducción matemática, prueba de teoremas, algoritmo de Euclides, con-
gruencias y su aplicación a la computación (RSA), combinatoria básica, teorı́a de gru-
pos, teorı́a de números, conteo, probabilidad básica en espacios discretos y teorı́a de la
información.

Matemáticas para Informática 2


Este curso también está dividido en Cálculo y Álgebra entre los temas que se estudian
están: tasas de crecimiento, funciones trigonométricas, ecuaciones diferenciales bási-
cas, derivadas parciales, números complejos, teorı́a de gráficas, recurrencias, geometrı́a
plana, matrices, determinantes.
4.6. Edinburgh 49

2 Año
Informática 2A
Este curso trata sobre el procesamiento de lenguajes naturales y artificiales, basándose
en conocimiento obtenido en Informática 1 sobre máquinas de estado finito y expresio-
nes regulares. Este curso considera como los mismos modelos de lenguaje pueden usarse
para describir y analizar tanto lenguajes formales (como lenguajes de programación)
y lenguajes naturales (hablado y escrito). Presenta material de lenguajes y gramáti-
cas formales, gramáticas probabilı́sticas (incluyendo la cadena de Markov escondida),
jerarquı́a de Chomsky, lenguajes libres de contexto, algoritmos de parseo (top-down y
bottom-up), análisis semántico y procesamiento de lenguaje humano.

Informática 2B
Este curso presenta estructuras de datos tanto simbólicas como numéricas y algoritmos
para manipularlas usando Java y Haskell. Entre los temas que se estudian en este
curso están: construcción y manipulación de arreglos, estructuras de datos dinámicas,
complejidad computacional de algoritmos básicos, cálculo de estadı́sticas, construcción,
balanceo y búsqueda en árboles; construcción automática de árboles de decisiones,
entrenamiento y uso de una red neuronal sencilla.

Informática 2C
Este curso trata del diseño, implementación e ingenierı́a de un sistema de computo digi-
tal. Considera los sistemas de computo tanto desde el punto de vista de hardware como
de software; ofreciendo una introducción a la estructura interna de las computadoras
digitales y a la ingenierı́a de sistemas de software. Entre los temas que se estudian en
este curso están: entendimiento y operaciones en datos binarios, conceptos básicos de
arquitectura de computadoras (excepciones, interrupciones, memoria virtual, procesos y
ejecución en pipeline), diseño simple de un procesador, dispositivos de E/S, componen-
tes combinacionales y secuenciales en un procesador (sumadores, registros, máquinas
de estado), etapas en el proceso de ingenierı́a de software, construcción de casos de uso
para un determinado escenario, construcción de diagramas UML de clase y secuencia;
construcción, documentación y mantenimiento de grandes programas en Java usando
un IDE moderno, métodos de desarrollo y herramientas de manejo de configuración;
técnicas de prueba, medición y verificación; evaluación de aspectos de usabilidad en
un programa o sitio web, juicio de riesgos de seguridad en la construcción de software,
comparar diferentes acercamientos al otorgamiento de licencias de software.

Matemáticas para Informática 3


Espacios vectoriales, sistemas de ecuaciones lineales, polinomios, códigos lineales (dis-
cutir su aplicación como en detección de errores), conteo, propiedades combinatorias
4.6. Edinburgh 50

de grupos, funciones, teorı́a de gráficas, aplicación y pruebas de correctud de varios


algoritmos de gráficas.

Matemáticas para Informática 4


Geometrı́a vectorial en Rn , propiedades de objetos en un espacio n-dimensional, cálculo
de distintas cantidades geométricas (ángulos, representaciones paramétricas, distancia
más corta a un subespacio), transformaciones Euclideanas de Rn ; probabilidad discreta,
probabilidad condicional, distribuciones conjuntas, probabilidad continua, cadenas de
Markov, uso de probabilidad en otras áreas como teorı́a de colas.

3 Año
Proyecto de Diseño de Sistema
La intención del Proyecto de Diseño de Sistema es dar a los estudiantes la experiencia
práctica de (a) construir un sistema a gran escala (b) trabajar como miembros de
un equipo. El proyecto requiere la aplicación y combinación de material aprendido en
distintos cursos para completar un diseño e implementación complejos. Al final del
curso cada equipo demuestra el sistema implementado y da una presentación formal a
una audiencia de estudiantes, supervisores y visitantes de la industria.
Al finalizar este proyecto, los estudiantes tendrán experiencia en lo siguiente: trabajar
como miembros de un equipo, planeación y monitorización del esfuerzo de un proyecto
para alcanzar fases del proyecto y fechas lı́mites, diseño e implementación de un sistema
complejo, intentar alcanzar un objetivo difı́cil en un periodo de tiempo limitado, reunir
conocimiento y entendimiento de amplias áreas de sistemas de software y hardware,
demostrar y presentar el resultado de un proyecto práctico, documentar la viabilidad,
diseño y desarrollo de un producto potencial.

Proyecto de Programación Individual


Este proyecto expone al estudiante a problemas que surgen con el diseño e implementa-
ción de sistemas de computo a gran escala y a métodos para lidiar con esos problemas.
Los estudiantes ganaran experiencia en como diseñar clara y coherentemente sistemas
estructurados, elegir los medios apropiados para la implementación, descubrir y usar
información relevante, calendarizar su carga de trabajo, presentar su trabajo de una
manera clara y concisa.

Problemas Profesionales
Hay muchas cuestiones comerciales, profesionales y de ingenierı́a complementarias al
conocimiento y habilidades cientı́ficas necesarias que afectan en el trabajo del profesio-
nal en computación. Este curso pretende proveer una conciencia de estor problemas y
cubrir algunos de ellos en profundidad.
4.6. Edinburgh 51

Después de completar el curso el estudiante podrá: describir las caracterı́sticas deseables


de un licenciado en ciencias de la computación, explicar la importancia del profesio-
nalismo en computación, identificar las implicaciones éticas en computación, describir
las cuestiones legales que impactan a la computación, describir la estructura y opera-
ción de las organizaciones de cómputo, describir y explicar la relación entre cuestiones
cientı́ficas, técnicas, de ingenierı́a y de mundo real en computación.
4.7. Oxford 52

4.7. Oxford
4.7.1. Resumen
La Licenciatura en Ciencias de la Computación en Oxford permite al estudiante con-
centrarse en estudiar Ciencias de la Computación desde el principio. Claro que hay clases
durante el primer año para dar una base matemática en el estudiante, pero no se pide que el
estudiante dedique 50 % o más de su primer año en materias fuera de las de Ciencias de la
Computación.
Los cursos asumen que no se tiene conocimiento previo en computación y se enseña todo
desde los principios más básicos. Esto podrı́a parecer como una desventaja si el estudiante
ya sabe algo sobre computación, pero el enfoque a nivel universitario va mucho más allá por
lo que es necesario empezar desde el principio.
Las clases en Oxford se enfocan en enseñar los principios detrás de la tecnologı́a actual,
no la tecnologı́a como un fin en si misma. Los mejores estudiantes rápidamente se hacen
competentes en el uso de tecnologı́a para la resolución de problemas, pero más allá, desarrollan
la habilidad de adaptar sus habilidades a nuevas tecnologı́as. Eso se debe a que cuando se
conocen los principios se hace más fácil entender la tecnologı́a y entender nueva tecnologı́a
cuando se necesita.
El mejor ejemplo de esto es la manera en que se enseña programación desde el principio
de la carrera. En vez de escoger un lenguaje popular y enseñar como escribir programas con
el, se comienza con una manera de entender programas que tiene su base en las matemáticas.
Existe un lenguaje de programación llamado Haskell que conlleva este tipo de entendimiento,
y se utiliza para dejar que el estudiante pruebe sus ideas en una computadora. Pero el punto
principal es que con este modo de acercamiento a los programas de computadoras permite
al estudiante ver las relaciones entre muchos temas aparentemente distintos: bases de datos
y el diseño del hardware de computadoras, inteligencia artificial y el significado de distintos
lenguajes de programación.
En la Maestrı́a de medio tiempo, programadores experimentados de la industria asisten
para aprender sobre programación funcional de la misma manera que los estudiantes de
Licenciatura lo hacen el primer año. Lo más probable es que ninguno de ellos nunca programen
en Haskell después de terminar su Maestrı́a, pero dicen que el conocer este método de
programación revoluciona su manera de pensar sobre otros programas con los que trabajan,
permitiéndoles ver más allá de los detalles de lo que esos programas hacen lı́nea por lı́nea.
Como en todas las licenciaturas de Oxford, la de Ciencias de la Computación se desarro-
lla alrededor de los asesores de Oxford, donde (normalmente) dos estudiantes se juntan con
un asesor para discutir su trabajo por una hora. Conjunto con clases y prácticas, esta es la
forma principal de educación durante el primer año de la Licenciatura, donde los estudiantes
normalmente tienen dos asesorı́as por semana con su asesor de Ciencias de la Computación.
Pocas otras universidades pueden alcanzar este nivel de asesorı́a personalizada, que está di-
señada para permitir a los estudiantes con el potencial adecuado, independientemente de su
4.7. Oxford 53

trasfondo escolar, el alcanzar el mismo nivel de estudio en su área.


En los siguientes años de la Licenciatura, las asesorı́as siguen siendo parte importante,
particularmente para la revisión de proyectos y para repasos antes de los exámenes. También
se usan clases pequeñas de hasta diez o doce estudiantes para enseñar las materias de espe-
cialización que se ofrecen como optativas en la Licenciatura. Estas clases pequeñas permiten
a los estudiantes aprender de maestros con conocimiento especial en el tema, incluyendo
expertos con una reputación mundial e investigadores jóvenes.

4.7.2. Plan de Estudios


El plan de estudios en Oxford está dividido por años:

1 Año
El primer año de Ciencias de la Computación está dedicado a material fundamental que
planta las bases para temas más avanzados en los años posteriores de la carrera.
Programación Funcional
Este es un primer curso en programación. Se usará como lenguaje de programación
Haskell, que permite ver a los programas como funciones matemáticas. Esto hace que
el lenguaje sea muy poderoso, de tal manera que se puedan hacer fácilmente programas
que serı́an muy complicados o extensos en otros lenguajes. Un importante tema de
discusión de este curso es cómo aplicar el razonamiento matemático a programas, para
poder probar que un programa realiza su tarea correctamente, o para derivarlo con
manipulación algebraica desde un programa más simple pero menos eficiente del mismo
problema. Se gana experiencia programando a través de dos ejercicios de laboratorio:
el primero tiene como objetivo familiarizarte con la mecánica de escribir programas en
Haskell, y el segundo es un reto de programación más grande en el que se simula el
mundo de un animal imaginario.
Algoritmos y Estructuras de Datos fundamentales
En este curso el estudiante aprenderá acerca de las bases de algoritmos, métodos para
resolver problemas con la computadora y estructuras de datos. Basándose en la expe-
riencia adquirida con Haskell de Programación Funcional, el curso cubre los principios
de diseños de algoritmos, análisis del desempeño de los algoritmos, y las ideas fun-
damentales en el diseño de de estructuras de datos eficientes. El enfoque es en elegir
adecuadamente una estructura de datos para un tipo de problemas y diseñar algoritmos
correctos que operen en estas estructuras de datos resolviendo el problema.
Programación Imperativa
En este curso el estudiante aplicara lo aprendido en Programación Funcional al di-
seño de programas escritos de una manera más convencional. Al estudiar una varios
4.7. Oxford 54

ejemplos de programación, cada uno siendo una herramienta útil de software, el es-
tudiante aprenderá a construir programas en una forma sistemática, estructurándolos
como una colección de módulos con interfaces bien definidas. El curso también cubre
informalmente el método de invariantes para entender y razonar sobre los programas
que contienen ciclos. Se concluirá el curso con el estudio de un ejemplo de programa-
ción más grande, como un programa con interfaz gráfica para encontrar la mejor ruta
para ir de un pueblo a otro en el Reino Unido. A través de ejercicios de laboratorio, el
estudiante aprenderá a crear, depurar y mantener programas de un tamaño no trivial.

Hardware Digital
En este curso el estudiante aprenderá los fundamentos de los circuitos electrónicos que
son usados para construir computadoras. Empezando con las funciones de transistores
individuales, y construyendo hacia una implementación completa de un procesador sim-
ple, este curso explica de una manera estructurada como se construyen comportamientos
complejos a partir de partes más simples. El estudiante comprenderá los factores que
afectan el desempeño del hardware y como estos factores cambian dependiendo de la
escala, por ejemplo, el tamaño de datos que maneja un sistema de cómputo.

Álgebra Lineal
Otra importante aplicación de las computadoras en Matemáticas es en resolver proble-
mas que pueden ser expresados como sistemas de ecuaciones lineales. Se estudiarán las
condiciones generales que determinan que sistemas de ecuaciones tienen soluciones, y
para que sistemas la solución es única, asó como métodos sistemáticos para resolver
sistemas de ecuaciones. Durante el segundo año se diseñará un programa que utilice
estos conocimientos.

Cálculo - Dos cursos


Las computadoras son ampliamente utilizadas para resolver problemas en Matemáticas
Aplicadas, y estos problemas muchas veces son expresados como ecuaciones diferen-
ciales. Algunas ecuaciones diferenciales se pueden resolver simbólicamente, pero otras
no tienen solución simbólica, y solo pueden resolverse calculando una aproximación.
Este curso es una introducción a la teorı́a básica de las ecuaciones diferenciales y a
los métodos para resolverlas, proporcionando las bases para cursos posteriores que se
enfocan especı́ficamente en métodos computacionales para solucionarlas.

Matemáticas Discretas
Este curso le proporcionará al estudiante el vocabulario de conceptos que se necesitan
para entender en términos matemáticos los problemas para los que las computadoras
están diseñadas a resolver, y para analizar soluciones propuestas para su correctud y
eficiencia. Las especificaciones de sistemas de cómputo pueden expresarse formalmen-
te en términos de conjuntos, relaciones y funciones, y la correctud de los programas
4.7. Oxford 55

que implementan estas especificaciones normalmente es verificada usando técnicas de


lógica matemática, incluyendo razonamiento basado en inducción matemática. Este ra-
zonamiento puede incluir propiedades matemáticas de permutaciones, ordenamientos
y otros conceptos similares. Finalmente, el análisis de la eficiencia de los programas
puede incluir soluciones de relaciones de recurrencia, cálculos combinatorios y el uso
de aproximaciones asintóticas. Todas estas ideas se le presentarán al estudiante en este
curso.

Lógica y Pruebas
Este curso es una introducción par el Cientı́fico en Computación a las ideas de lógica
formal. Comienza con ejemplos básicos de estructuras matemáticas finitas usadas en
computación, y construye un lenguaje lógico y formal para hacer declaraciones sobre
estas estructuras que puedan ser probadas en un sistema de reglas simbólicas de infe-
rencia. El estudiante desarrollará las habilidades para usar lógica formal para expresar
y probar propiedades útiles de estructuras matemáticas, y más generalmente para cons-
truir pruebas rigurosas y manipular notación formal. Se terminará el curso con un breve
panorama de otros usos de formalismos en Ciencias de la Computación.

Probabilidad
Este curso presenta algunos conceptos de probabilidad. El estudiante aprenderá sobre
variables aleatorias y verán ejemplos de distribuciones de probabilidad comunes como
Binomial y Poisson. El entendimiento de la probabilidad es útil en muchas áreas de las
Ciencias de la Computación como los algoritmos aleatorios en los que algún problema
“duro” puede resolverse utilizando un programa aleatorio.

Modelos de Computación
En este curso el estudiante obtendrá un entendimiento básico de modelos matemáticos
clásicos usados para analizar procesos computacionales, incluyendo autómatas finitos,
gramáticas, y máquinas de Turing. Estos modelos matemáticos pueden ser usados para
responder a preguntas como cuáles problemas pueden resolverse con una computadora,
y si algunos problemas son intrı́nsecamente más difı́ciles de resolver que otros.

Perspectivas de Cómputo
Este curso no evaluado le dará al estudiante una visión más amplia de las áreas en las
que las ideas de Ciencias de la Computación pueden aplicarse, a veces viendo hacia a
delante a material más avanzado que puede ser estudiado a detalles en años posteriores.
El curso está organizado como una secuencia de cuatro segmentos de cuatro clases, cada
segmento impartido por alguien diferente. Los temas varı́an año con año, pero normal-
mente algunos segmentos son impartidos por gente invitada de otros departamentos
en Oxford o de la industria. Algunos temas posibles incluyen: gráficas y visualización,
4.7. Oxford 56

seguridad en cómputo, reconocimiento del habla, procesamiento de lenguajes natura-


les, análisis de secuencias de ADN, computación neuronal, minerı́a de datos, análisis
médico de imágenes, bases de datos y representación del conocimiento, computación
cuántica.

2 Año
Materias Obligatorias

En el segundo año, el material básico cubre 50 % del tiempo y el otro 50 % es de materias


optativas.

Programación Orientada a Objetos 1 y 2


En este curso el estudiante se enfocará en la construcción y mantenimiento de progra-
mas más grandes. Basándose en lo aprendido en Procedimientos de Programación, este
curso usa una secuencia de de casos de estudios profesionales para ilustrar los principios
de abstracción y modularidad que conlleva el diseño exitoso de sistemas de software.
Después de algunos ejemplos el caso a estudiar puede consistir en un editor de texto,
un sistema de bases de datos relacional, y un sistema para mostrar información es-
tructurada en páginas web. Aproximadamente una cuarta parte del curso se dedica a
ejercicios prácticos, donde el estudiante explora varios aspectos de los casos de estudio
por su cuenta. El curso pretende desarrollar habilidades en el diseño de software y en la
discusión informada sobre decisiones de diseño; estos temas se desarrollan más a fondo
en el curso optativo Diseño Orientado a Objetos.

Sistemas Concurrentes
Este curso es una introducción a la teorı́a y práctica de la computación concurrente,
enseñando al alumno a escribir programas concurrentes simples y a razonar acerca de su
comportamiento. El estudiante obtendrá una apreciación de los problemas que deben
ser resueltos al construir sistemas que involucran concurrencia y las técnicas que se
usan para resolverlos.

Redes y Sistemas Operativos


En la parte de Redes de este curso el estudiante examinará las comunicaciones por
red entre computadoras, incluyendo el medio fı́sico subyacente, la representación de
datos, y los protocolos que se utilizan para lograr transmisiones confiables y libres de
errores, y el ruteo de datos en grandes redes. También se examinaran a detalle algunas
aplicaciones actuales de redes.
La parte de Sistemas Operativos del curso abarca la construcción y operación de un sis-
tema operativo simple. Se examinaran las principales funciones de un sistema operativo,
y una manera estructurada de implementar estas funciones.
4.7. Oxford 57

Materias Optativas

En el segundo año de la carrera de Ciencias de la Computación, los estudiantes dedican


50 % de su tiempo en cuatro cursos optativos.
En el tercer año, los estudiantes de Ciencias de la Computación pueden escoger ampliar
su conocimiento dedicando hasta 25 % de su tiempo en hasta dos cursos optativos que no
cursaron durante su segundo año.

Diseño Formal de Programas 1 y 2


Estos dos cursos enseñarán al estudiante como los programas de procedimiento pueden
ser desarrollados rigurosamente a partir de especificaciones matemáticas precisas. En el
primer curso, el enfoque es primordialmente en el refinamiento de algoritmos, incluyendo
el diseño de invariantes a partir de las especificaciones, y su uso para guiar el desarrollo
de programas con ciclos.
El segundo curso se enfoca en el refinamiento de los datos, mostrando como pueden
desarrollarse estructuras de datos eficientes a partir de una especificación matemática
de un tipo de datos abstracto. Hacia el final del curso, se cubre el refinamiento de
especificaciones de sistemas grandes.

Análisis Numérico
Este curso es acerca del uso de computadoras para resolver problemas matemáticos a
través de métodos numéricos. El estudiante aprenderá métodos numéricos para proble-
mas comunes y la derivación de estos algoritmos ası́ como el análisis de su precisión y
aplicación. El curso contiene tanto ejercicios teóricos como prácticos usando MATLAB.

Compiladores
Este curso es una introducción a los métodos usados por los compiladores para traducir
lenguajes de programación de alto nivel a código de máquina. El curso cubre métodos
para analizar la sintaxis de los programas y crear un árbol de sintaxis abstracta, seguido
de chequeo de tipos y generación de código para una máquina abstracta. Se discutirá la
implementación de procedimientos con distintos tipos de parámetros.

Lenguajes de Programación
Este curso da una descripción simple y práctica de varios tipos de lenguajes de pro-
gramación y sus pradigmas, y las teorı́as por las cuales el significado de los programas
escritos en estos lenguajes pueden ser definidos. Entre los paradigmas que se cubren
están programación lógica y funcional con varios mecanismos de evaluación y con tipos
polimórficos.

Algoritmos y Estructuras de Datos Avanzados


4.7. Oxford 58

Este curso continua con el material visto en Algoritmos y Estructuras de Datos Funda-
mentales, y cubre material más avanzado y para el cual se necesita mayor conocimiento
matemático conectado con el diseño de algoritmos y estructuras de datos muy eficientes
para resolver problemas de computo que son importantes en aplicaciones.
Graficación por Computadora
Este es un curso introductorio a la Graficación por Computadora, y cubre un amplio
rango del campo de gráficas interactivas a todos los niveles de abstracción haciendo
énfasis tanto en la teorı́a como en la práctica. Se utiliza un libro estándar sobe la
materia, y se usa material adicional para mantener el curso actualizado. El estudiante
aprenderá varias técnicas básicas de graficación, desde la generación de gráficas en
dispositivos de salida (raster) hasta el tipo de hardware utilizado para mostrar objetos
tridimensionales.
Arquitectura de Computadoras
Este curso continua con lo visto en Hardware Digital mostrando al estudiante como
pueden usarse componentes de hardware para diseñar procesadores que tengan un alto
desempeño. Una parte central del curso es el diseño de arquitecturas con pipelining que
puedan ejecutar múltiples instrucciones simultáneamente, detectar y resolver interac-
ciones entre instrucciones dinámicamente. Este curso cubre el diseño de conjuntos de
instrucciones y diferentes estilos de implementación de procesadores, seguido por un
breve resumen de máquinas paralelas que logran un desempeño aún mayor.

3 Año
Materias Optativas

En el tercer año, los estudiantes de Ciencias de la Computación pueden escoger ampliar


su conocimiento dedicando hasta 25 % de su tiempo en hasta dos cursos optativos que no
cursaron durante su segundo año.
La lista de materias optativas es la misma que para el primer año.

Materias Optativas Avanzadas

Los estudiantes de tercer año de Ciencias de la Computación dedican entre 50 % y 75 % de


su tiempo en optativas avanzadas, eligiendo entre cuatro y seis cursos. En el cuarto año, los
estudiantes dedican 66 % de su tiempo en otras materias optativas avanzadas que no eligieron
el tercer año.
La lista de opciones varı́a de un año a otro dependiendo de los intereses de investigación
de los profesores, pero las siguientes materias son las que normalmente se imparten.

Sistemas Inteligentes 1 y 2
4.7. Oxford 59

Diseño Orientado a Objetos

Optimización

Bases de Datos

Complejidad Computacional

Concurrencia Avanzada

Seguridad de Cómputo

Proyecto
Los estudiantes de tercer año de Ciencias de la Computación dedican 25 % de su tiempo
a un proyecto, normalmente esto involucra la creación de un programa más grande que
con los que han trabajado en los ejercicios de laboratorio. En el cuarto año los estudiantes
realizan un proyecto más elaborado (50 % de su tiempo), por lo general más enfocado hacia
los intereses de investigación de algún profesor. Se puede trabajar en equipos pequeños para
estos proyectos para experimentar la dinámica de trabajar en un equipo de programación
Cada año, el Laboratorio de Computación publica una lista de proyectos que algún profe-
sor ha aceptado supervisar, pero los estudiantes también son alentados a proponer sus propios
proyectos. Aquı́ hay algunos ejemplos de la lista del 2008:

Planeación de Caminos para un Robot

Descompilación

Casos de Estudio con CSP y FDR

Recolección de Basura para OBC

Una Familia de Editores Estructurados sin Modelos

4 Año
Materias Optativas Avanzadas

En el cuarto año, los estudiantes dedican 50 % de su tiempo en otras materias optativas


avanzadas que no eligieron el tercer año.
La lista de materias optativas avanzadas es la misma que para tercer año

Proyecto

En el cuarto año los estudiantes realizan un proyecto más elaborado (50 % de su tiempo),
por lo general más enfocado hacia los intereses de investigación de algún profesor. Se puede
4.7. Oxford 60

trabajar en equipos pequeños para estos proyectos para experimentar la dinámica de trabajar
en un equipo de programación
Cada año, el Laboratorio de Computación publica una lista de proyectos que algún profe-
sor ha aceptado supervisar, pero los estudiantes también son alentados a proponer sus propios
proyectos. Aquı́ hay algunos ejemplos de la lista del 2008:
La lista de proyectos es la misma que la de tercer año
4.8. ETH Zurich 61

4.8. ETH Zurich


4.8.1. Resumen
La Licenciatura en Ciencias de la Computación exige tiempo completo. El tiempo normal
para obtener todos los créditos de la Licenciatura es tres años.

Primer Año
El primer año de estudio incluye una introducción a las Ciencias de la Computación
ası́ como los fundamentos matemáticos necesarios para un tı́tulo de Ingenierı́a.

Segundo y Tercer año

• Cursos Obligatorios
Estos cursos contienen los fundamentos principales de las Ciencias de la Compu-
tación. Estos fundamentos son requisitos para la mayorı́a de los cursos de tercer
año por lo que se recomienda tomar la mayorı́a de estos cursos durante el segundo
a año.
• Cursos Fundamentales
Estos cursos se enfocan en áreas centrales de las Ciencias de la Computación,
para una visión general. Los cursos pretenden extender el conocimiento básico
tanto teórico como práctico de los alumnos.
• Especialización
◦ Cursos de Especialización Obligatorios
Los cursos de especialización obligatorios consisten en seminarios y cursos
complementarios. Los participantes de los seminarios reciben un tema que
deben estudiar y presentar a los otros integrantes del seminario en una clase.
Los cursos complementarios pretenden dar una visión más profunda en otras
áreas de las Ciencias de la Computación y mejorar la metodologı́a de trabajo.
◦ Cursos Optativos
Los estudiantes son relativamente libres al momento de escoger sus materias
optativas. Los estudiantes deben considerar si creen que cumplen con los re-
querimientos potenciales de las materias optativas que elijan.
• Proyecto
Se realizará un proyecto, el cual puede hacerse internamente o ser externo en
términos de una estancia en la industria. El proyecto puede ser hecho tanto de
manera individual como en equipo.
◦ Existe una lista de compañı́as aprobada por el Departamento de Ciencias de
la Computación.
4.8. ETH Zurich 62

Humanidades y Ciencias Sociales


Durante la carrera, los estudiantes deben elegir un número de cursos de Humanidades
y Ciencias Sociales. El objetivo de estas clases es permitir a los estudiantes relacionar
su conocimiento en su disciplina principal a asuntos sociales y económicos, mejorando
ası́ su desarrollo intelectual y académico

4.8.2. Plan de Estudios


El plan de estudios está divido por semestres y tiene una duración de 3 años, dejando
muy en claro que se debe dedicar tiempo completo a la carrera.

1 Semestre
Introducción a la Programación
Introducción a los fundamentos de la programación moderna y las habilidades para
desarrollar programas de alta calidad, incluyendo programas grandes adecuados para
la industria.
Fundamentos de programación orientado a objetos. Objetos y clases. Herencia. Pre-y
post-condiciones, invariantes, Diseño por Contrato. Estructuras elementales de control.
Asignaciones y referencias. Términos básicos del hardware. Estructuras de datos y algo-
ritmos elementales. Recursión. Introducción a la programación concurrente. Conceptos
básicos de ingenierı́a de software, especificaciones y documentación, reutilización y el
aseguramiento de la calidad.
Lógica
Introducción a la lógica proposicional, lógica de predicados y programación lógica en
Prolog.
Proposiciones, operadores lógicos, tablas de verdad, consecuencia lógica, axiomas, de-
rivaciones formales, forma normal, procedimientos de prueba automáticos. Predicados,
cuatificadores, lógica de primer orden, estructuras isomórficas, estructuras finitas, sis-
temas deductivos, indecibilidad, aritmética de Peano, inducción. Cláusulas de Horn,
consultas, unificación, sustituciones, backtrack, programación declarativa
Cálculo I
Cálculo de una variable, números reales y complejos, vectores, funciones, lı́mites, suce-
siones, series, diferenciación e integración en una variable, introducción a las ecuaciones
diferenciales ordinarias.
Parte de este curso se enseñará utilizando el proyecto de enseñanza electrónica LEMU-
REN3 .
3
http://www.lemuren.math.ethz.ch
4.8. ETH Zurich 63

Álgebra Lineal
Introducción al álgebra lineal orientada a sus aplicaciones, espacios vectoriales, trans-
formaciones lineales, sistemas de ecuaciones, descomposición de matrices,LU, QR, ei-
genvectores y eigenvalores, determinantes, dificultades de los cálculos numéricos, errores
de redondeo, estabilidad de los algoritmos. Introducción a MATLAB.

Probabilidad y Estadı́stica
Conceptos básicos de probabilidad y estadı́stica, introducción a la teorı́a de la proba-
bilidad, espacios de probabilidad, medida de la probabilidad, independencia, variables
aleatorias, distribuciones discretas y continuas, probabilidad condicional, expectativa y
varianza, teoremas de lı́mites. Métodos estadı́sticos, estimación de parámetros, pruebas,
intervalos de confianza.

2 Semestre
Estructuras de Datos y Algoritmos
Este curso cubre los fundamentos en algunos paradigmas de diseño de algoritmos,
problemas clásicos de algoritmos y estructuras de datos, con un enfoque en la relación
entre los algoritmos y las estructuras de datos.
Patrones de diseño de algoritmos, inducción, divide y vencerás, backtrack, optimización
dinámica, ası́ como problemas tradicionales como búsqueda y ordenamiento, Por otro
lado se tratan estructuras de datos para diferentes propósitos, listas ligadas, tablas de
hash, montı́culos, árboles de búsqueda balanceados, pilas.

Fı́sica
Introducción a la fı́sica con énfasis en la mecánica, electromagnetismo y los principios
básicos de la mecánica cuántica.
Movimiento, leyes de Newton, trabajo y energı́a, vibración y ondas, relatividad especial.
Electroestática, corriente, campos dependientes del tiempo, ecuaciones de Maxwell,
ondas electromagnéticas. Historia de la teorı́a cuántica, función de ondas, principio de
incertidumbre, ecuación de Schroedinger.

Cálculo II
Cálculo de varias variables, ecuaciones diferenciales.

Matemáticas Discretas
Se cubren temas como pruebas por inducción, conjuntos, funciones, relaciones, relacio-
nes de orden y de equivalencia, teorı́a de gráficas, combinatoria, conteo, grupos, anillo,
campos, subálgebras, morfismos, teorı́a de números.
4.8. ETH Zurich 64

Tecnologı́a Digital - Diseño de Circuitos Digitales


Este curso es una introducción al diseño de circuitos digitales. El curso abarca las
bases de en el diseño de circuitos usando compuertas lógicas, una introducción a los
lenguajes de descripción de hardware y su aplicación práctica en el proceso de diseño,
lógica combinatoria y secuencial.

3 Semestre
Programación de Sistemas
Este curso le proporciona al programador una visión de como los sistemas de computo
ejecutan programas, almacenan información y se comunican. El curso intenta exponer
a los estudiantes a situaciones prácticas que afectan el desempeño, la portabilidad,
robustez, y extensibilidad . El curso proporciona las bases para los cursos siguientes de
sistemas operativos, redes, compiladores y otros cursos que requieren un entendimiento
de el funcionamiento a bajo nivel. Los temas que se cubren incluyen código a nivel de
máquina y su generación por compiladores optimizados, entrada y salida, manejadores
de eventos, evaluación de desempeño y optimización, una visión de redes y protocolos
para un programa, y técnicas para controlar ejecución concurrente (múltiples hilos).
Arquitectura de Computadoras
Este curso proporciona una descripción general de la arquitectura de computadoras
como plataforma para la ejecución de programas (compilados). El curso presenta la
mayorı́a de las estructuras que tienen influencia directa en la ejecución de programas
(procesadores con registros, caches, distintos niveles en la jerarquı́a de memoria) y
cubre la implementación y representación de cuestiones solo hasta el punto en que
son necesarias para entender la estructura y operación de un sistema de computo. El
curso también cubre de manera básica la evaluación de desempeño enfocándose en los
aspectos prácticos de la recolección de datos y su análisis.
Teorı́a de la Información
Este curso cubre los conceptos fundamentales de la Teorı́a de la Información de Shan-
non, los temas incluyen procesos estocásticos, entropı́a, fuentes de información, canales
con ruido, codificación de canales, compresión Lempel-Ziv.
Teorı́a de la Computación
Este curso es una introducción a la teorı́a de la computación, los conceptos y métodos
básicos de las Ciencias de la Computación en su contexto tanto histórico como actual.
Se presenta a las Ciencias de la Computación como una ciencia interdisciplinaria. Los
temas incluyen alfabetos, palabras, lenguajes, medición de los niveles de información, la
presentación de tareas algorı́tmicas, máquinas finitas, gramáticas, máquinas de Turing,
teorı́a de la complejidad y NP-completez.
4.8. ETH Zurich 65

Introducción a la Electrónica
Introducción a conceptos básicos de la electrónica y las comunicaciones para estudian-
tes de Ciencias de la Computación. Los temas incluyen fundamentos de la ingenierı́a
electrónica, procesos de cambio, corriente directa, corriente alterna, semiconductores,
lı́neas de transmisión, antenas, comunicaciones ópticas.

Introducción a la Ciencias Computacional


Ecuaciones no lineales, métodos de iteración, puntos únicos y múltiples, fundamentos
de interpolación (puntos y funciones), extrapolación, método de Lagrange, Newton y
Aitken-Nevile, mı́nimos cuadrados, introducción a la computación simbólica, represen-
tación de objetos matemáticos, operaciones en polinomios.

4 Semestre
Sistemas Operativos
Este curso tratara en detalle las dos principales tareas de un sistema operativo mo-
derno: gestión de recursos y soporte en tiempo de ejecución para programas. Se cubre
procesos de arranque, sistemas de archivos, asignación de memoria, recolección de ba-
sura, procesos e hilos, controladores de dispositivos, soporte en tiempo de ejecución,
sistemas virtuales.

Sistemas Distribuidos
Algoritmos de control distribuidos (exclusión mutua, relojes lógicos), modelos de co-
municación (RPC, Cliente-Servidor, comunicación sincronizada y ası́ncrona, sockets),
principios abstractos de comunicación (emisión (broadcast), eventos), servicio de nom-
bres, mecanismos de seguridad, servicios web (SOAP, WSDL, UDDI).

Arquitectura de Software
Introducción a las técnicas de Ingenierı́a de Software, construcción de software orientada
a objetos, diseño de alto nivel. Este curso cubre la organización general de los sistemas
de software y las técnicas que hacen posible el desarrollo de sistemas grandes. No todas
las técnicas de programación que funcionan en programas pequeños pueden usarse a
una mayor escala.
Los temas que el curso abarca son: técnicas avanzadas de orientación a objetos, patrones
de diseño, técnicas de ingenierı́a de software para programación concurrente, distribuida
y de múltiples hilos, desarrollo basado en componentes, validación y verificación de
software, ingenierı́a de software para sistemas grandes (modelos de ciclo de vida, de
costo y confiabilidad, métricas de software, manejo de proyectos).

Métodos Formales y Programación Funcional


4.8. ETH Zurich 66

En este curso los estudiantes aprenderán nuevas maneras de especificar, razonar, y


desarrollar programas y sistemas de cómputo. La primera mitad se enfocará en usar
programas funcionales abarcando las bases matemáticas para la programación fun-
cional, cálculo lambda, tipos, pruebas de correctud y programación de alto nivel. La
segunda mitad presenta métodos para desarrollar y verificar programas representados
como sistemas discretos de transiciones.

Introducción a Sistemas de Bases de Datos


Este curso cubre los fundamentos del diseño y la implementación de bases de datos y
sistemas de información. El curso se enfoca en la tecnologı́a de bases de datos relacio-
nales. Los temas incluyen modelado de datos (ER y diagramas de clase UML), modelo
de datos relacional, teorı́a de diseño relacional (formas normales), SQL, integridad de
bases de datos, seguridad, transacciones y almacenamiento de datos (OLAP).

Redes de Computadoras
Curso introductorio a las redes de computadoras, se cubre desde protocolos básicos
hasta la capa de red. El curso también cubre las bases de sistemas distribuidos para
transacciones RPC, consistencia, ası́ como una introducción a servicios web. La pro-
gramación de red a diferentes niveles (sockets, RMI, colas de mensajes) es una parte
integral del curso.

Computación Cientı́fica - Ecuaciones Diferenciales


Cuadratura numérica: métodos para integración numérica, sumatoria de Euler-Maclaurin.
Ecuaciones diferenciales ordinarias: discretización, análisis de errores, método de Runge-
Kutta, métodos adaptables. Diferenciación numérica: derivadas numéricas por diferen-
ciación finita, diferenciación algorı́tmica. Introducción a ecuaciones diferenciales par-
ciales.

5 Semestre
Sistemas de Información
Este curso extiende los conceptos básicos de el manejo relacional de datos presen-
tado en un curso anterior para examinar los modelos y tecnologı́as requeridas para
soportar otras plataformas para el manejo de información incluyendo información semi-
estructurada y de XML, información orientados a objetos y sistemas de recuperación
de documentos. El curso examina varios modelos para la representación de información
y provee un estudio a fondo del modelado de datos y como pueden ser usados en el
diseño de arquitecturas y aplicaciones.

Modelación y Simulación
4.8. ETH Zurich 67

Curso orientado a resolver problemas de computación cientı́fica con énfasis en la optimi-


zación y el modelamiento. Se abarca mı́nimos cuadrados lineales y no lineales, minimi-
zación de limitaciones (multiplicadores de Lagrange), método de radianes conjugado,
descomposición de valores singulares, programación lineal, teorı́a de filtros (filtro de
Wiener), difusión no lineal, programación dinámica.

Computación Visual
Este curso familiariza al estudiante con el conocimiento básico de gráficas de compu-
tadoras, visión y aprendizaje. Los temas incluyen pipeline de gráficas, percepción y
modelos de cámara, transformación, sombreado, iluminación global, texturas, mues-
treo, filtros, detección de bordes, teorı́a de decisión Bayesiana, clasificación, máquinas
vectoriales, reducción de dimensión, redes Bayesianas.

Ingenierı́a de Software
La ingenierı́a de software es una disciplina que se enfoca en el desarrollo eficiente de sis-
temas de software de alta calidad. El curso cubre los principios, métodos y herramientas
para la ingenierı́a de software. Como parte central del curso están las etapas clásicas
del ciclo de vida del desarrollo de software: análisis de requerimientos, diseño, imple-
mentación, pruebas y mantenimiento. El curso también cubre temas que conjuntan la
ingenierı́a de software y la gestión de proyectos como las métricas de software.

Seguridad de la Información
Este curso provee una introducción a la seguridad de la información enfocándose en los
modelos y conceptos básicos, criptografı́a, protocolos y seguridad de sistemas, privaci-
dad y protección de información.

Optativa

6 Semestre
Proyecto Individual

Optativa

Optativa

Optativa

Optativa
4.9. Technion 68

4.9. Technion
4.9.1. Resumen
El departamento de Ciencias de la Computación ofrece las licenciaturas de: Ciencias de
la Computación, Ingenierı́a de Software, Ingenierı́a en Sistemas de Información, Ingenierı́a
en Computación y Ciencias de la Computación en Bioinformática. El objetivo del Technion
es formar cientı́ficos e ingenieros con amplios conocimientos y habilidades para desarrollar
aplicaciones tecnológicas avanzadas para poder satisfacer las necesidades actuales.

4.9.2. Plan de Estudios


Se deben completar 55 créditos de optativas de 3 áreas diferentes, como 3 materias mı́nimo
por área.
Grupos de optativas:

Sistemas de cómputo
Cálculos
Visión y robótica
Algoritmos
Lógica y sus aplicaciones Geometrı́a y gráficas
Criptografı́a, seguridad e información Aprendizaje e Inteligencia Artificial
Desarrollo de sistemas de software
Fı́sica computacional
Comunicación y sistemas descentraliza-
dos Bioinformática

Cada alumno debe participar en al menos 2 proyectos o un proyecto y un seminario.

1 Semestre
Cálculo Diferencial e Integral I
Números reales, secuencias, funciones reales de una variable: lı́mites, continuidad, fun-
ciones inversas. Diferenciabilidad, teorema fundamental del cálculo, Teorema de Taylor,
regla de L’Hopital, comportamiento de las funciones, antiderivada, métodos de integra-
ción. La integral definida y sus propiedades, funciones integrables, teoremas principales
del cálculo integral, integrales impropias, series.

Álgebra Lineal A
4.9. Technion 69

Campos, números complejos, espacios vectoriales, subespacios, bases, dimensión, ecua-


ciones lineales, matrices, proceso de eliminación de Gauss, determinantes, transforma-
ciones lineales, núcleos, imágenes, eigenvalores y diagonalización.

Introducción a las Ciencias de la Computación


Arquitectura de computadoras, resolución de problemas por medio de algoritmos, con-
ceptos básicos del lenguaje C, programación estructurada, depuración, pruebas de co-
rrectud de un programa, medidas de la eficiencia de un algoritmo, complejidad de espa-
cio y tiempo, tiempo polinomial y exponencial, análisis probabilı́stico de algoritmos, al-
goritmos aleatorios, problemas intratables, pilas, colas, representaciones de expresiones
aritméticas y su implementación por medio de una pila, recursión y su implementación,
búsqueda, ordenamiento.

Sistemas Digitales
Operaciones lógicas, álgebra booleana, circuitos combinacionales, técnicas de minimi-
zación, elementos lógicos electrónicos, códigos, diseño y análisis de sistemas sı́ncronos y
ası́ncronos secuenciales, elementos de memoria, contadores y registros, ejemplos de di-
seño de sistemas de control digital, métodos de simplificación de circuitos secuenciales,
limitaciones de circuitos secuenciales.

Inglés Técnico
El objetivo principal de este curso es mejorar la habilidad del alumno para leer litera-
tura profesional. Los grupos son con gente de la misma facultad para cubrir material
especı́fico de su campo. Se cubre gramática y sintaxis técnica y cientı́fica. El curso
también mejora las habilidades orales y escritas de comunicación.

Educación Fı́sica
Se hace énfasis en la resistencia cardiovascular, la fuerza, flexibilidad y coordinación
del alumno. Se aprenden y practican habilidades básicas de varios deportes. Se práctica
educación fı́sica como medio para mejorar la salud y la calidad de vida.

2 Semestre
Cálculo Diferencial e Integral 2
Funciones de varias variables, cálculo diferencial básico de esas funciones, secuencias
y series de funciones, fórmula de Taylor, funciones implı́citas, transformaciones en Rn ,
integrales múltiples, integrales de lı́nea, integrales de superficie, cálculo vectorial.

Álgebra Moderna
4.9. Technion 70

Propiedades de los enteros, relaciones de equivalencia, grupos, subgrupos, grupos cı́cli-


cos, subgrupos normales, teorema de Lagrange, grupos de consiente, teoremas de ho-
meomorfismo, anillos y campos, anillos polinomiales, algoritmo de Euclides y el máximo
común divisor, dominios integrales, anillos de cociente, factorización única en anillos
de polinomios sobre un campo.
Fı́sica 1
Mecánica clásica, leyes de Newton, dinámica de una partı́cula, sistemas no lineales, con-
servación de la energı́a, momento angular y lineal, sistemas de varias partı́culas, dinámi-
ca de cuerpos rı́gidos, oscilador armónico, gravitación, mecánica relativista, transforma-
ción de espacio tiempo y de energı́a-momento de Lorentz, transformación de velocidad,
partı́culas de masa cero.
Organización de Computadoras y Programación
Organización de memoria y representación de la información, formato de instruccio-
nes de máquina y modos de direccionamiento, estructura de programas en lenguaje
ensamblador, programación en lenguaje ensamblador, ciclos, condiciones y subrutinas,
implementación de estructuras de datos (arreglos y listas ligadas), entrada/salida e
interrupciones.
Introducción a la Programación de Sistemas
Conceptos de C: estructuras, listas ligadas, módulos, manejo de memoria, manejo de
archivos, proceso de compilación. Utilización del ambiente UNIX y herramientas de sis-
tema para el desarrollo de software: el sistema de archivos, procesos, scripts de consola,
control de versiones, manejo del proceso de compilación.
Combinatoria para Ciencias de la Computación
Principios básicos de conteo, binomio de Newton, principio de inclusión-exclusión, re-
cursión e inducción, particiones, gráficas dirigidas y no dirigidas, árboles de conteo,
caminos de Euler, árboles.
Educación Fı́sica
Se hace énfasis en la resistencia cardiovascular, la fuerza, flexibilidad y coordinación
del alumno. Se aprenden y practican habilidades básicas de varios deportes. Se práctica
educación fı́sica como medio para mejorar la salud y la calidad de vida.

3 Semestre
Introducción a la Probabilidad
Espacios de probabilidad, probabilidad condicional, variables aleatorias, transforma-
ción de variables aleatorias, expectativas, distribuciones continua y discreta, funciones
caracterı́sticas y teoremas de lı́mites, distribuciones condicionales y expectativas.
4.9. Technion 71

Fı́sica 2
Electroestática, campo eléctrico, potencial eléctrico, campos de cargas en movimiento,
campos magnéticos, inducción electromagnética, ecuación de Maxwell, introducción a
ondas, dispersión, reflexión y refracción, velocidad de fase y grupos, momento y energı́a
de ondas electromagnéticas, polarización, interferencia, difracción.
Estructuras de Datos
Énfasis en estructuras de datos abstractas, selección y diseño de estructuras de datos
para dar soluciones eficientes a problemas, propiedades, implementación y aplicación
de estructuras de datos (arreglos, pilas, colas, varios tipos de listas, árboles de búsque-
da, montı́culos, colas de prioridad, tablas de hash), conceptos básicos de complejidad,
recolección de basura, asignación de memorial, búsqueda y ordenamiento.
Diseño Lógico
Bloques para el diseño digital con y sin memoria, consideraciones de tiempo, aritmética
binaria y su implementación, algoritmos para acelerar las operaciones aritméticas, lógica
programable y su implementación.
Lógica y Teorı́a de Conjuntos para Ciencias de la Computación
Este curso tiene dos objetivos, primero, este curso presenta nociones básicas que se
necesitaran para muchos de los cursos de Ciencias de la Computación. Segundo, fami-
liarizar al estudiante con el pensamiento matemático abstracto. Teorı́a de conjuntos:
definiciones básicas, relaciones, funciones, relaciones de equivalencia, órdenes, cardinali-
dad de conjuntos, métodos de diagonalización de Kantor. Lógica: cálculo proposicional
y lógica de primer orden, semánticas, sistemas de pruebas.
Optativa:
• Ecuaciones Diferenciales Ordinarias
• Funciones Complejas
• Teorı́a de las funciones complejas
• Introducción a los espacios métricos y topológicos
• Introducción a la Teorı́a de Aproximación

4 Semestre
Análisis Numérico 1
Introducción al análisis numérico, análisis de errores, aproximación de funciones, in-
terpolación, mı́nimos cuadrados, polinomiales ortogonales, integración y diferenciación
numérica, solución a ecuaciones no lineales, métodos directos para la solución de siste-
mas de ecuaciones lineales.
4.9. Technion 72

Sistemas Operativos
Este curso presenta las cuestiones fundamentales de los sistemas operativos modernos:
procesos e hilos, calendarización y cambio de contexto, cooperación, sección crı́tica,
semáforos y variables de condición, interrupciones, manejo de memoria, paginación,
memoria virtual, sistemas de archivos.

Introducción al Análisis de Algoritmos


En este curso se ven métodos básicos para el diseño y análisis de algoritmos, inclu-
yendo métodos de búsqueda, algoritmos glotones, programación dinámica, reducciones,
algoritmos aleatorios, métodos algebráicos. El curso presenta algoritmos eficientes para
problemas fundamentales en teorı́a de gráficas y otros campos. Otros temas incluyen:
búsqueda en profundidad y en amplitud, árbol generador mı́nimo, camino más corto,
flujos, cortes, emparejamiento de cadenas, problemas geométricos y algebráicos.

Arquitectura de Computadoras
Conjunto de instrucciones, familias de computadoras, RISC vs CISC, desempeño, pipe-
lining, ejecución fuera de orden, optimización del compilador, interacción compilador-
hardware, excepciones e interrupciones, jerarquı́a de memoria, cache, memoria princi-
pal, memoria virtual, tabla de paginación, multiprocesadores simétricos, consistencia
de memoria compartida, entrada/salida.

Autómatas y Lenguajes Formales


Autómatas finitos y lenguajes regulares, autómatas no determinı́sticos, teoremas de
Nerode y Kleene, álgebra de las expresiones regulares, transición de autómatas a ex-
presiones regulares y viceversa, jerarquı́a de Chomsky, gramáticas libres de contexto,
reducciones y formas normales.

Optativa:

• Fisica 3
• Mecánica Analı́tica
• Teorı́a Electromagnética
• Principios de Quı́mica
• Quı́mica General
• Laboratorio de Quı́mica General
• Biologı́a 1
4.9. Technion 73

5 Semestre
Teorı́a de la Computación
Recursión, máquinas de Turing, equivalencia entre distintos modelos, tesis de Church,
máquina universal, problemas de indecibilidad, máquinas deterministas y no determi-
nistas, la clase P y NP-completez, teorema de Cook.

Compiladores
Gramáticas y lenguajes, programación de un scanner, parsers de arriba a abajo, gramáti-
cas de precedencia y sus parsers, organización del almacenamiento en tiempo de ejecu-
ción, tablas de sı́mbolos, rutinas semánticas, asignación de memoria, recuperación de
errores, organización de código.

Optativa

Optativa

6 Semestre
Proyecto o Seminario

Optativa

Optativa

Optativa

7 Semestre
Optativa

Optativa

Optativa

8 Semestre
Proyecto

Optativa
4.10. National University of Singapore 74

4.10. National University of Singapore


4.10.1. Resumen
La Licenciatura en Ciencias de la Computación tiene como objetivo el preparar al los
estudiantes con un fuerte y amplio conocimiento en Ciencias de la Computación y tecnologı́a.
También le da a los estudiantes la flexibilidad de especializarse en distintos campos de las
Ciencias de la Computación. La licenciatura hace énfasis en cuatro pilares de las Ciencias de
la Computación: Lenguajes de Programación, Sistemas de Cómputo, Modelaje y Algoritmos
e Interacción Humano-Computadora.
La Licenciatura es reconocida por ABET4 , quien ha certificado que el programa es equipa-
rable a programas acreditados de Estados Unidos. Los estudiantes de Ciencias de la Compu-
tación también aprenderán sobre ciencia, incluyendo matemáticas y fı́sica. El programa in-
culca la aplicación de la teorı́a de la información en múltiples disciplinas. También le brinda
al estudiante la oportunidad de recibir una educación interdisciplinaria.
El Licenciado en Ciencias de la Computación puede posicionarse en un amplio número de
campos de trabajo, incluyendo manejo de proyectos, ingenierı́a del conocimiento, arquitectura
de software, diseño web, medios digitales, y consultorı́a de seguridad.

4.10.2. Plan de Estudios


1 Semestre
Metodologı́a de Programación
Este curso presenta los conceptos fundamentales para la programación desde una pers-
pectiva de orientación a objetos y es el primero curso introductorio de computación.
Es el primero de dos cursos de introducción a la programación que incluye también a
Estructuras de Datos y Algoritmos. Los temas incluyen: descripción general de
los lenguajes de programación y el proceso de compilación, objetos, clases, métodos,
elementos fundamentales de programación (variables, tipos, expresiones, asignaciones,
paso de mensajes, etc.), fundamentos de estructuras de datos: arreglos, cadenas, recur-
sión básica, E/S, manejo de excepciones, uso de API5 y librerı́as de clase, subclases y
herencia, depuración y prueba.

Estructuras Discretas
Este curso presenta las herramientas matemáticas requeridas para el estudio de las
Ciencias de la Computación. Los temas incluyen: Técnicas de demostración y lógi-
ca: proposiciones, condicionales, cuantificaciones. Relaciones y funciones: relaciones de
equivalencia y particiones, conjuntos parcialmente ordenados, principio del buen orden,
4
Accreditation Board for Engineering and Technology http://www.abet.org/
5
Application Programming Interface - Interfaz de Programación de Aplicaciones
4.10. National University of Singapore 75

equivalencia de funciones, funciones identidad, inversa. Formulaciones matemáticas de


modelos de datos (modelo lineal, árboles y gráficas). Conteo y combinatoria: principio
del palomar, principio de inclusión-exclusión, número de relaciones en un conjunto,
número de inyecciones de un conjunto finito a otro, prueba de diagonalización.

Introducción a las Matemáticas


Este curso tiene como objetivo el brindar a los estudiantes el conocimiento matemáti-
co apropiado para prepararlos en el estudio de disciplinas relacionadas con las ma-
temáticas. Los temas incluyen: Conjuntos, funciones y gráficas, polinomios y funciones
racionales, desigualdades de una variable, secuencias y series, funciones logaritmo y ex-
ponencial, funciones trigonométricas, técnicas de diferenciación, técnicas de integración,
números complejos, vectores.

Optativa de Ciencias

Optativa de Computación

2 Semestre
Estructuras de Datos y Algoritmos
Este curso es la segunda parte de la introducción a la programación desde una perspec-
tiva de orientación a objetos comenzada con Metodologı́a de Programación, con un
énfasis en algoritmos, estructuras de datos, ingenierı́a de software y el contexto social
de la computación. Los temas incluyen: responsabilidad ética y social del profesional
en computo, usos e implementaciones de abstracciones y encapsulación mediante es-
tructuras de datos (listas, pilas, colas, y sus diseños algorı́tmicos), varios algoritmos de
ordenamiento, árboles, tablas de hash, montı́culos, colas de prioridad, representación
de gráficas y varios algoritmos de búsqueda en gráficas, análisis de algoritmos básico.

Matemáticas I
Este curso tiene como objetivo el brindar al estudiante los fundamentos básicos del
cálculo y sus temas relacionados requeridos por los estudiantes de ingenierı́a y ciencias.
Los temas incluyen: conjuntos, números complejos, cálculo en funciones de una variable,
lı́mites, continuidad de funciones, diferenciación, teorema del valor medio, integración,
aplicaciones del área bajo la curva, sólidos de revolución, series, álgebra vectorial, fun-
ciones de varias variables, cálculo vectorial, ecuaciones parciales diferenciales.

Álgebra Lineal I
Este es un primer curso en álgebra lineal, se presentarán conceptos fundamentales y
serán vistos en el contexto de los espacios Euclidianos Rn . Se espera que los estudiantes
adquieran facilidad computacional e intuición geométrica respecto a vectores y matri-
ces. Los temas incluyen: sistemas de ecuaciones lineales, matrices, determinantes, el
4.10. National University of Singapore 76

espacio Euclidiano, combinaciones lineales, subespacios, independencia lineal, bases y


dimensión, rango de una matriz, producto interior, eigenvectores y eigenvalores, diago-
nalización, transformaciones lineales, aplicaciones.

Optativa de Ciencias

Optativa de Computación

3 Semestre
Organización de Computadoras
El objetivo de este curso es familiarizar a los estudiantes con los fundamentos de los
dispositivos de cómputo. En este curso los estudiantes entenderán los principios básicos
de la representación de datos, y como funcionan varias partes de una computadora,
por separado y juntas. Esto permite a los estudiantes entender cuestiones de los dis-
positivos de cómputo y como estas cuestiones afectan la implementación de soluciones.
Los temas incluyen: sistemas de representación de datos, técnicas de diseño de circuitos
combinacionales y secuenciales, lenguaje ensamblador, ciclos de ejecución de procesa-
dor, pipelining, jerarquı́a de memoria y sistemas de entrada/salida.

Computación y Sociedad
En este curso los estudiantes aprenderán y analizarán las cuestiones sociales, éticas
y profesionales de la computación. Los temas incluyen: historia de la computación,
implicaciones sociales de la computación, privacidad, profesionalismo, responsabilidad
ética, riesgo y responsabilidad de sistemas crı́ticos, propiedad intelectual.

Probabilidad
El objetivo de este curso es dar una introducción a la teorı́a de la probabilidad a estu-
diantes de ciencias e ingenierı́a. El curso cubre la parte matemática de la probabilidad
ası́ como muchos ejemplos para ilustrar el amplio campo de aplicación de la probabi-
lidad. Los temas incluyen: análisis combinatorio, axiomas de la probabilidad, proba-
bilidad condicional e independencia, variables aleatorias, distribuciones, expectativas,
teorema del lı́mite central.

Optativa de Ciencias

Optativa de Computación

4 Semestre
Teorı́a de la Computación
4.10. National University of Singapore 77

El objetivo de este curso es proveer a los estudiantes un entendimiento teórico de lo que


puede ser computado y una introducción a la teorı́a de la complejidad. Le presenta al
estudiante: algunos modelos formales de computación para desarrollar un entendimiento
de lo que puede y no ser computado por distintos sistemas de cómputo, técnicas de
razonamiento usadas comúnmente en las Ciencias de la Computación como equivalencia
de modelos, no determinismo, digitalización, simulación y reducción; la formulación
matemática de objetos en Ciencias de la Computación para estudiar sus propiedades.
Diseño y Análisis de Algoritmos
Este curso presenta distintas técnicas para el diseño y análisis de algoritmos. El es-
tudiante aprenderá las herramientas para el análisis de algoritmos, argumentos para
lı́mites inferiores, análisis de casos promedio y teorı́a de NP-completez. Además los
estudiantes tratarán con distintos paradigmas de diseño de algoritmos. El curso tiene
dos objetivos principales. mejorar la habilidad del estudiante para diseñar algoritmos,
y preparar al estudiante para el estudio de algoritmos más avanzados. Los temas in-
cluyen: lı́mites inferiores y superiores, recurrencias, paradigmas básicos de algoritmos
(como podar y buscar, programación dinámica), análisis amortizado, NP-completez, y
algunos temas avanzados.
Optativa de Ciencias
Optativa de Computación

5 Semestre
Sistemas de Bases de Datos
Este curso tiene como objetivo el brindarle al estudiante el conocimiento y entendi-
miento de cuestiones básicas y técnicas para manipular grandes cantidades de datos
almacenados en un dispositivo secundario. Los temas incluyen: organización fı́sica de
los datos, métodos de acceso que faciliten la recuperación de datos, conceptos para
manipular grandes cantidades de datos compartidos, principios de los sistemas de ges-
tión de bases de datos, modelo de datos relacional y su uso a nivel de aplicación, SQL,
nuevos desarrollos en técnicas de procesamiento de datos no convencionales.
Ingenierı́a de Software
Este curso presenta las herramientas tanto analı́ticas como conceptuales necesarias para
el desarrollo sistemático y riguroso de sistemas de software. Cubre cuatro áreas básicas
del desarrollo de software, análisis orientado a objetos, diseño orientado a objetos,
implementación y pruebas, con un énfasis en el diseño e implementación de módulos
de software que trabajen en conjunto para satisfacer los requerimientos de un sistema.
El estudiante conocerá herramientas y técnicas para el desarrollo de software como
UML, especificación de programas y métodos de prueba. También se cubrirán cuestiones
4.10. National University of Singapore 78

fundamentales de la ingenierı́a de software como el criterio de modularización, correctés


de un programa y calidad del software.

Optativa de Computación

Optativa de Computación

6 Semestre
Introducción a las Redes de Computadoras
Este curso es una amplia introducción a las redes de computadoras y a algunas apre-
ciaciones de la aplicación de las redes en programación. Abarca un amplio rango de
temas incluyendo comunicación de datos básica y conceptos de redes de computado-
ras, protocolos, conceptos y principios, desarrollo de aplicaciones de red y seguridad de
redes.

Sistemas Operativos
Este curso presenta los conceptos y principios básicos de los sistemas operativos. Se
enfoca en cuatro áreas principales: procesos, memoria, sistemas de archivos y dispo-
sitivos. Los temas incluyen: procesos e hilos, mecanismo para concurrencia y sincro-
nización, calendarización de procesos y abrazos mortales, paginación y segmentación,
memoria virtual, organización de sistemas de archivos, caracterı́sticas de dispositivos y
controladores.

Lenguajes de Programación
Este curso le brinda al aluno el conocimiento teórico y las habilidades prácticas en
el diseño e implementación de lenguajes de programación. Discute la teorı́a detrás de
los paradigmas fundamentales de programación (imperativo, funcional, lógico y orien-
tado a objetos) y detrás de los conceptos básicos de los lenguajes de programación
como alcance, paso de parámetros y tipos. Presenta las técnicas de interpretación y
compilación. Se habla sobre máquinas virtuales, manejo automático de memoria y su
implementación.

Comunicación Técnica y de Negocios


Este es un curso diseñado para la Escuela de Computación. El alumno aprenderá a es-
cribir cartas de negocios persuasivas y correos a clientes, presentar sus ideas, productos
y servicios en una propuesta bien escrita y como presentaciones, y a hablar con con-
fianza en juntas y reuniones. El alumno también aprenderá como mejorar sus palabras
con soporte visual.

Optativa de Computación
4.10. National University of Singapore 79

7 Semestre
Proyecto de Ingenierı́a de Software
En este curso los alumnos deben trabajar en equipo para trabajar en el ciclo de vida
completo del desarrollo de un sistema, para desarrollar un sistema de software a gran
escala, bien probado y de calidad de producción. Los estudiantes aplicaran lo apren-
dido en Ingenierı́a de Software, también mejorará sus habilidades de comunicación
mediante la interacción con los miembros del equipo, las consultas y las presentaciones
formales. El curso hace énfasis en el correcto diseño, una implementación eficiente y
pruebas rigurosas, ası́ como en la comunicación eficiente entre los estudiantes

Disertación
El objetivo de este curso es permitirle a los estudiantes el trabajar en un proyecto de
investigación individual a lo largo de dos semestres, con aproximadamente 400 horas de
trabajo. Los estudiantes aprenderán como aplicar habilidades adquiridas en sus clases
y también a pensar en formas innovadoras para resolver problemas. Al terminar el
proyecto, el estudiante de enviar su una disertación describiendo el trabajo del proyecto
y dar una presentación oral ante un grupo de examinadores.

8 Semestre
Optativa de Computación

Optativa de Computación
Capı́tulo 5

Comparación de los Planes de Estudio

Para la comparación de los distintos planes de estudio, elaboraremos una tabla por materia
para ver que temas cubre cada una de las universidades.

5.1. Computación
5.1.1. Matemáticas Discretas
Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Lógica Formal 3 3 3 3 3 3 3 3 3 3 3 100 %
Demostraciones 3 3 3 3 3 3 3 3 3 3 3 100 %
Relaciones 3 3 3 3 7 3 3 3 3 3 3 90 %
Gráficas 3 3 3 3 7 3 3 3 3 3 3 90 %
Funciones 3 3 3 3 3 3 3 3 3 3 3 100 %
Orden 3 3 3 3 3 3 3 3 3 3 3 100 %
Arboles 3 3 3 3 3 3 3 3 3 3 3 100 %
Problemas de Coloración 3 7 7 7 7 7 7 7 7 7 7 0%
Recursión 3 3 3 3 3 3 3 3 3 3 3 100 %
Teorı́a de Números 7 3 7 7 7 7 3 7 3 3 3 50 %

80
5.1. Computación 81

5.1.2. Introducción a la Programación

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Abstracciones 3 3 3 3 3 3 3 3 3 3 3 100 %
Tipos de Datos 3 3 3 3 3 3 3 3 3 3 3 100 %
Introducción a un lenguaje de 3 3 3 3 3 3 3 3 3 3 3 100 %
programación
Representación de datos 3 3 3 3 3 3 3 3 3 3 3 100 %
Recursividad 3 3 3 3 3 3 3 3 3 3 3 100 %
Búsquedas y ordenamientos li- 3 3 3 3 3 3 3 3 3 3 3 100 %
neales
Contexto histórico y social de la 3 7 7 7 7 7 7 7 7 7 3 10 %
computación

5.1.3. Estructuras de Datos


Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Tipos de Datos Abstractos 3 3 3 3 3 3 3 3 3 3 3 100 %
Estructuras de Datos Básicas 3 3 3 3 3 3 3 3 3 3 3 100 %
Estructuras de Datos No Linea- 3 3 3 3 3 3 3 3 3 3 3 100 %
les
Búsquedas y Ordenamientos 3 3 3 3 3 3 3 3 3 3 3 100 %
5.1. Computación 82

5.1.4. Lógica

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Lenguajes de Primer Orden 3 7 7 7 7 7 3 3 3 3 7 40 %
Estructuras de Primer Orden 3 7 7 7 7 7 3 3 3 3 7 40 %
Validez y Equivalencia Lógica 3 7 7 7 7 7 3 3 3 3 7 40 %
Teorema de Finitud 3 7 7 7 7 7 3 3 3 3 7 40 %

5.1.5. Sistemas Digitales Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Lógica Digital 3 7 3 3 3 3 3 3 3 3 7 80 %
Sistemas Digitales 3 7 3 3 3 3 3 3 3 3 7 80 %
Organización de Memoria 3 7 3 3 3 3 3 3 3 3 7 80 %
Interfaces y comunicación 3 7 3 3 3 3 3 3 3 3 7 80 %
Otras Arquitecturas 3 7 3 3 3 3 3 7 7 7 7 50 %
5.1. Computación 83

5.1.6. Arquitectura de Computadoras

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Medidas de desempeño 3 3 3 3 3 3 3 7 3 3 3 90 %
Organización de una Compu- 3 3 3 3 3 3 3 7 3 3 3 90 %
tadora
Conjunto de Instrucciones 3 3 3 3 3 3 3 7 3 3 3 90 %
Organización Funcional 3 3 3 3 3 3 3 7 3 3 3 90 %
Pipeline 3 3 3 3 3 3 3 7 3 3 3 90 %
Jerarquı́a de Memoria 3 3 3 3 3 3 3 7 3 3 3 90 %
Entrada y Salida 3 7 3 3 3 3 3 7 3 3 3 80 %
Multiprocesadores 3 7 3 3 3 3 3 7 3 3 3 80 %
Tendencias de Arquitecturas 3 7 3 7 7 7 7 7 7 7 7 10 %
Modernas

5.1.7. Análisis de Algoritmos


Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Complejidad 3 3 3 3 3 7 3 3 3 3 3 90 %
Tipos de Algoritmos 3 3 3 3 3 7 3 3 3 3 3 90 %
Dise?o de Algoritmos 3 3 3 3 3 7 3 3 3 3 3 90 %
Búsquedas y Ordenamientos 3 3 3 3 3 7 3 3 3 3 3 90 %
Algoritmos en Gráficas 3 3 3 3 7 3 3 3 3 3 3 80 %
Problemas NP-completos 3 3 3 3 3 7 7 7 3 3 3 70 %
5.1. Computación 84

5.1.8. Teorı́a de la Computación

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Cadenas, alfabetos y lenguajes 3 7 7 3 7 3 3 3 3 3 3 70 %
Máquinas de estados finitos 3 7 7 3 7 3 3 3 3 3 3 70 %
Gramáticas y lenguajes formales 3 7 7 3 7 3 3 3 3 3 3 70 %
Autómatas de estados finitos 3 7 7 3 7 3 3 3 3 3 3 70 %
Autómatas de pila 3 7 7 3 7 3 3 3 3 3 3 70 %
Lenguajes libres del contexto 3 7 7 3 7 3 3 3 3 3 3 70 %
M?quinas de Turing 3 7 7 3 7 3 3 3 3 3 3 70 %

5.1.9. Inteligencia Artificial


Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Agentes Inteligentes 3 7 3 3 7 7 7 7 7 7 7 20 %
Búsquedas 3 7 3 3 7 7 7 7 7 7 7 20 %
Conocimiento 3 7 3 3 7 7 7 7 7 7 7 20 %
Razonamiento 3 7 3 3 7 7 7 7 7 7 7 20 %
Elementos de Planificación 3 7 3 3 7 7 7 7 7 7 7 20 %
Incertidumbre 3 7 3 3 7 7 7 7 7 7 7 20 %
Aprendizaje 3 7 3 3 7 7 7 7 7 7 7 20 %
Filosofı́a de la Inteligencia Arti- 3 7 3 7 7 7 7 7 7 7 7 10 %
ficial
Redes Neuronales 7 7 3 7 7 7 7 7 7 7 7 10 %
Algoritmos Genéticos 7 7 3 7 7 7 7 7 7 7 7 10 %
5.1. Computación 85

5.1.10. Lenguajes de Programación

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Historia y evolución 3 7 7 7 7 7 7 7 7 7 7 0%
Organización de la Computado- 3 3 7 7 3 7 3 7 3 3 3 60 %
ra
Máquinas Virtuales 3 7 7 7 3 7 7 7 7 3 3 30 %
Control de Secuencia 3 7 7 7 3 7 3 7 7 3 3 40 %
Control de Datos 3 7 7 7 3 7 3 7 7 3 3 40 %
Chequeo de Tipos 3 7 7 7 3 7 3 7 7 3 3 40 %
Almacenamiento durante la eje- 3 7 7 7 3 7 3 7 7 3 3 40 %
cución
Paradigmas de programación 3 7 7 3 3 7 3 7 3 3 3 60 %
Semántica 3 7 7 3 3 7 3 7 7 3 3 50 %
Pragmática 3 7 7 3 3 7 3 7 7 3 3 50 %
Programación Funcional 3 3 7 3 3 7 3 3 3 3 7 70 %

5.1.11. Sistemas Operativos


Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Estructura 3 7 3 3 3 3 7 3 3 3 3 80 %
Procesos 3 7 3 3 3 3 7 3 3 3 3 80 %
Manejo de memoria 3 7 7 3 3 3 7 3 3 3 3 70 %
Sistemas de Archivos 3 7 7 3 3 3 7 3 3 3 3 70 %
Entrada-salida 3 7 7 3 3 3 7 3 3 3 3 70 %
Sistemas Operativos Modernos 3 7 7 3 7 7 7 3 3 3 3 50 %
Seguridad 7 7 7 7 3 3 7 7 3 7 7 30 %
Sistemas Concurrentes 7 7 7 7 7 7 7 3 3 7 7 20 %
5.1. Computación 86

5.1.12. Redes de Computadoras

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Conceptos 3 7 3 7 7 7 7 3 3 7 3 40 %
Modelo OSI 3 7 3 7 7 7 7 3 3 7 3 40 %
Nivel de Enlace de Datos 3 7 3 7 7 7 7 3 3 7 3 40 %
Redes Locales 3 7 3 7 7 7 7 3 3 7 3 40 %
Interconexión de Redes 3 7 3 7 7 7 7 3 3 7 3 40 %
Transporte 3 7 3 7 7 7 7 3 3 7 3 40 %
Aplicaciones 3 7 3 7 7 7 7 3 3 7 3 40 %
Sistemas Operativos para Redes 3 7 7 7 7 7 7 3 3 7 7 20 %
Sistemas Distribuidos 3 7 7 7 7 7 7 7 3 7 7 10 %

5.1.13. Ingenierı́a de Software


Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Proceso de Software 3 7 3 3 3 7 3 3 3 7 3 70 %
Requerimientos 3 7 3 3 3 7 3 3 3 7 3 70 %
Diseño 3 7 3 3 3 7 3 3 3 7 3 70 %
Construcción 3 7 3 3 3 7 3 3 3 7 3 70 %
Verificación y Validación 3 7 3 3 3 7 3 3 3 7 3 70 %
Evolución del Software 3 7 3 3 3 7 3 3 3 7 3 70 %
Administración de Proyectos de 3 7 3 3 3 7 3 3 3 7 3 70 %
Software
Interfaz Gráfica 7 7 3 3 7 7 7 7 7 7 7 20 %
5.1. Computación 87

5.1.14. Sistemas de Bases de Datos

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Conceptos 3 7 7 7 7 7 7 7 3 7 3 20 %
Modelos de Datos 3 7 7 7 7 7 7 7 3 7 3 20 %
Lógica como Modelo de Datos 3 7 7 7 7 7 7 7 3 7 3 20 %
Lenguajes de Consulta Relacio- 3 7 7 7 7 7 7 7 3 7 3 20 %
nales
Organización fı́sica de los datos 3 7 7 7 7 7 7 7 3 7 3 20 %
Diseño de Bases de Datos Rela- 3 7 7 7 7 7 7 7 3 7 3 20 %
cionales
Bases de Datos Orientadas a Ob- 3 7 7 7 7 7 7 7 3 7 7 10 %
jetos
Seguridad en Bases de Datos 3 7 7 7 7 7 7 7 3 7 7 10 %

5.1.15. C y UNIX
Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Lenguaje C 7 3 7 3 3 3 7 7 7 3 7 50 %
Ambiente UNIX 7 3 7 7 7 3 7 7 7 3 3 40 %
Herramientas de programación 7 3 7 7 7 3 3 3 3 3 3 70 %
Portabilidad 7 3 7 3 7 7 3 7 3 3 7 50 %
5.1. Computación 88

5.1.16. Compiladores

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Análisis Léxico 7 7 7 3 3 7 7 7 7 3 7 30 %
Análisis sintáctico 7 7 7 3 3 7 7 7 7 3 7 30 %
Representaciones intermedias 7 7 7 3 3 7 7 7 7 3 7 30 %
Generación de Código 7 7 7 3 3 7 7 7 7 3 7 30 %
Optimización 7 7 7 3 7 7 7 7 7 7 7 10 %

5.1.17. Teorı́a de la Información


Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Procesos Estocásticos 7 7 7 7 7 7 7 7 3 7 7 10 %
Entropı́a 7 7 7 7 7 7 7 7 3 7 7 10 %
Canales 7 7 7 7 7 7 7 7 3 7 7 10 %
Compresión Lempel-Ziv 7 7 7 7 7 7 7 7 3 7 7 10 %
5.1. Computación 89

5.1.18. Computación Visual

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Graficación por Computadora 7 7 7 7 7 7 7 7 3 7 7 10 %
Transformaciones 7 7 7 7 7 7 7 7 3 7 7 10 %
Filtros 7 7 7 7 7 7 7 7 3 7 7 10 %
Máquinas Vectoriales 7 7 7 7 7 7 7 7 3 7 7 10 %
Redes Bayesianas 7 7 7 7 7 7 7 7 3 7 7 10 %

5.1.19. Seguridad de la Información


Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Criptografı́a 7 7 7 7 7 7 7 7 3 7 7 10 %
Protocolos 7 7 7 7 7 7 7 7 3 7 7 10 %
Protección de la información 7 7 7 7 7 7 7 7 3 7 7 10 %

5.1.20. Comunicación Técnica


Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Comunicación Oral 7 3 3 7 3 3 7 7 7 3 3 60 %
Comunicación Escrita 7 3 3 7 3 3 7 7 7 3 3 60 %
Presentaciones 7 3 3 7 3 7 7 7 7 7 3 40 %
5.2. Matemáticas 90

5.2. Matemáticas
5.2.1. Cálculo de una variable

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Números reales 3 3 3 3 3 3 3 3 3 3 3 100 %
Funciones 3 3 3 3 3 3 3 3 3 3 3 100 %
Sucesiones 3 3 3 3 3 3 3 3 3 3 3 100 %
Lı́mites 3 3 3 3 3 3 3 3 3 3 3 100 %
Continuidad 3 3 3 3 3 3 3 3 3 3 3 100 %
Derivación 3 3 3 3 3 3 3 3 3 3 3 100 %
Integración 3 3 3 3 3 3 3 3 3 3 3 100 %
Teorema fundamental del cálcu- 3 3 3 3 3 3 3 3 3 3 3 100 %
lo
Funciones logaritmo y exponen- 3 3 3 3 3 3 3 3 3 3 3 100 %
cial
Series 3 7 3 3 3 3 3 7 3 3 3 80 %

5.2.2. Cálculo de varias variables


Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Funciones 3 3 3 3 3 3 3 3 3 3 3 100 %
Topologı́a de Rn 3 7 7 7 7 7 7 7 7 7 7 0%
Máximos y mı́nimos 3 3 3 3 3 3 3 3 3 3 3 100 %
Integrales múltiples 3 3 3 3 3 3 3 7 7 3 3 80 %
Integral de Lı́nea 3 7 3 7 3 3 7 7 7 3 7 40 %
Integra de Superficie 3 7 3 7 3 3 7 7 7 3 7 40 %
Teoremas de integrales 3 7 3 7 3 3 7 7 7 3 7 40 %
Convergencia uniforme 3 7 3 7 3 3 7 7 7 7 7 30 %
5.2. Matemáticas 91

5.2.3. Ecuaciones Diferenciales

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Ecuaciones Diferenciales Linea- 7 3 3 7 3 7 3 3 3 3 3 80 %
les de primer orden
Ecuaciones Diferenciales No Li- 7 3 3 7 3 7 3 3 3 3 3 80 %
neales de primer orden
Ecuaciones Diferenciales Linea- 7 3 3 7 3 7 3 3 3 3 3 80 %
les de segundo orden
Ecuaciones Diferenciales Linea- 7 7 3 7 3 7 7 3 3 3 7 50 %
les de segundo orden con Coefi-
cientes Variables
Transformada de Laplace y de 7 7 3 7 3 7 7 7 3 3 7 40 %
Fourier
Series de Fourier 7 7 3 7 3 7 7 7 7 3 7 30 %
Sistemas de Ecuaciones Lineales 7 7 3 7 3 7 7 7 7 3 7 30 %
Ecuaciones Diferenciales y 7 3 3 7 3 7 7 7 7 7 7 30 %
Métodos Numéricos
Teorı́a Cualitativa de ED 7 7 7 7 7 7 7 7 7 7 7 0%
5.2. Matemáticas 92

5.2.4. Análisis Numérico

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Aritmética de punto flotante 3 7 3 7 7 7 3 7 3 3 7 40 %
Ecuaciones algebraicas lineales 3 7 3 7 7 7 3 7 3 3 7 40 %
Interpolación 3 7 7 7 7 7 7 7 3 3 7 20 %
Cuadratura Numérica 3 7 7 7 7 7 7 7 3 3 7 20 %
Mı́nimos Cuadrados 3 7 3 7 7 7 7 7 3 3 7 30 %
Ecuaciones no lineales 3 7 7 7 7 7 7 7 3 3 7 20 %
Optimización en una dimensión 3 7 7 7 7 7 7 7 3 7 7 10 %

5.2.5. Álgebra
Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Conjuntos 3 3 3 3 3 3 3 3 3 3 3 100 %
Relaciones y Funciones 3 3 3 3 3 3 3 3 3 3 3 100 %
Números naturales 3 7 7 7 7 7 7 7 3 7 7 10 %
Combinatoria 3 3 3 3 3 3 3 3 3 3 3 100 %
Espacios vectoriales 3 3 3 3 3 3 3 3 3 3 3 100 %
Matrices 3 3 3 3 3 3 3 3 3 3 3 100 %
Determinantes 3 3 3 3 3 3 3 3 3 3 3 100 %
Ecuaciones lineales 3 3 3 7 3 3 3 3 3 3 3 90 %
Números enteros 3 7 3 7 3 3 3 7 3 3 7 60 %
Divisibilidad 3 7 3 7 3 3 3 7 3 3 7 60 %
Números complejos 3 7 7 7 7 7 3 7 3 3 3 40 %
Polinomios 3 7 3 7 3 7 3 7 3 3 3 60 %
Ecuaciones polinomiales 3 7 3 7 3 7 3 7 3 3 7 50 %
5.2. Matemáticas 93

5.2.6. Álgebra Moderna

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Grupos 7 7 7 7 7 7 7 7 3 7 7 10 %
Teorema de Lagrange 7 7 7 7 7 7 7 7 3 7 7 10 %
Anillos 7 7 7 7 7 7 7 7 3 7 7 10 %

5.2.7. Álgebra Lineal Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Espacios vectoriales 3 3 3 7 3 3 3 3 3 3 3 90 %
Matrices 3 3 3 7 3 3 3 3 3 3 3 90 %
Transformaciones lineales 3 3 3 7 3 3 3 3 3 3 3 90 %
Producto Escalar 3 3 3 7 3 3 3 3 3 3 3 90 %
Determinantes 3 3 3 7 3 3 3 3 3 3 3 90 %
Transformaciones Simétricas 3 3 3 7 3 3 3 3 3 3 3 90 %
Formas bilineales y operadores 3 7 7 7 7 7 7 7 7 7 7 0%
Diagonalización 3 7 7 7 7 7 7 7 7 3 3 20 %
Eigenvectores y Eigenvalores 7 3 3 7 3 3 7 7 3 3 3 70 %
Triangulación 3 7 7 7 7 7 7 7 7 7 7 0%
Teorema Espectral 3 7 7 7 7 7 7 7 7 7 7 0%
Forma canónica de Jordan 3 7 7 7 7 7 7 7 7 7 7 0%
5.2. Matemáticas 94

5.2.8. Probabilidad

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Espacio de probabilidad 3 3 3 3 3 3 3 3 3 3 3 100 %
Cálculo de probabilidades 3 3 3 3 3 3 3 3 3 3 3 100 %
Probabilidad Condicional 3 3 3 3 3 3 3 3 3 3 3 100 %
Eventos Independientes 3 3 3 3 3 3 3 3 3 3 3 100 %
Variables aleatorias 3 3 3 3 3 3 3 3 3 3 3 100 %
Funciones de Probabilidad 3 3 3 3 3 3 3 3 3 3 3 100 %
Teorema del Valor Central 7 3 7 3 3 3 7 7 7 3 3 60 %

5.2.9. Estadı́stica
Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT

Tema
Muestra Aleatoria 3 7 7 7 7 7 7 7 3 7 7 10 %
Parámetros de la muestra 3 7 7 7 7 7 7 7 3 7 7 10 %
Rango 3 7 7 7 7 7 7 7 3 7 7 10 %
Varianza 3 7 7 7 7 7 7 7 3 7 7 10 %
Pruebas de Hipótesis 3 7 7 7 7 7 7 7 3 7 7 10 %
5.2. Matemáticas 95

5.2.10. Geometrı́a Analı́tica

Carnegie Mellon

Porcentaje
Edinburgh

Techninon
Stanford
Berlkely
UNAM

Oxford
Illinois

Zurich
NUS
MIT
Tema
Rectas 3 7 7 7 7 3 3 7 7 7 7 20 %
Planos 3 7 7 7 7 3 3 7 7 7 7 20 %
Trigonometrı́a 3 7 7 7 7 3 3 7 7 7 7 20 %
Espacios vectoriales 3 7 7 7 7 3 3 7 7 7 7 20 %
Cónicas 3 7 7 7 7 3 3 7 7 7 7 20 %
Superficies Cuadráticas 3 7 7 7 7 7 3 7 7 7 7 10 %
Transformaciones 3 7 7 7 7 7 3 7 7 7 7 10 %
Geometrı́a de la esfera 3 7 7 7 7 7 7 7 7 7 7 0%
Transformaciones de Möbius 3 7 7 7 7 7 7 7 7 7 7 0%
Capı́tulo 6

Resultados de la Comparación

6.1. Temas impartidos en la Facultad de ciencias


En esta sección nos enfocaremos en los temas que se enseñan en la Facultad de Ciencias
pero se imparten en menos del 50 % de las universidades de nuestro análisis.

96
6.1. Temas impartidos en la Facultad de ciencias 97
6.1. Temas impartidos en la Facultad de ciencias 98
6.1. Temas impartidos en la Facultad de ciencias 99
6.2. Temas no impartidos en la Facultad de Ciencias 100

6.2. Temas no impartidos en la Facultad de Ciencias


En esta sección nos enfocaremos en los temas que no se enseñan en la Facultad de Ciencias
pero se imparten en al menos el 50 % de las universidades de nuestro análisis.
6.2. Temas no impartidos en la Facultad de Ciencias 101
Índice alfabético

Álgebra, 11, 12, 48, 92 Fı́sica, 26, 27, 43, 44, 63, 70, 71
Álgebra Lineal, 13, 14, 21, 28, 38, 44, 49, 54, Facultad de Ciencias, 11
63, 68, 75, 93, 99
Álgebra Moderna, 69 Geometrı́a, 99
Geometrı́a Analı́tica, 12, 95
ABET, 74 Guardian The, 8
Análisis de Algoritmos, 15, 20, 22, 29, 34, 39,
57, 63, 72, 77, 83 Haskell, 49, 52, 53
Análisis Lógico, 96
Ingenierı́a de Software, 17, 30, 39, 65, 67, 77,
Análisis Numérico, 16, 57, 66, 71, 92, 100
79, 86
Arquitectura de Computadoras, 15, 29, 43,
Inteligencia Artificial, 15, 29, 34, 84, 97
44, 49, 58, 64, 72, 83
Introducción a la Computación, 47
Bases de Datos, 16, 66, 77, 87, 98 Introducción a la Programación, 19, 26, 42,
Berkeley, 8, 36 62, 70, 74

C, 21, 32, 37, 69, 70, 100 Java, 19, 25, 32, 37, 48, 49
C y UNIX, 20
C++, 25, 32 Lógica, 19, 47, 55, 62, 71, 82
C#, 32 Lenguajes de Programación, 32, 39, 57, 78,
Cálculo, 19, 26, 27, 31, 36, 37, 42, 43, 48, 62, 85, 97
63, 68, 69, 75, 90, 98 LISP, 32, 36, 37
Carnegie Mellon, 6, 8, 18 Matemáticas, 90
Combinatoria, 70 Matemáticas Discretas, 27, 32, 38, 42, 54, 63,
Compiladores, 33, 39, 57, 73, 88 74, 80
Computación, 80 MATLAB, 38, 57, 63
Ecuaciones Diferenciales, 20, 27, 48, 54, 66, Mecánica, 43
71, 101 MIT, 6, 8, 25
Edinburgh, 9, 47 National University of Singapore, 9
Electricidad y Magnetismo, 44
Estadı́stica, 13, 63, 94, 99 Objective C, 32
Estructuras de Datos, 19, 20, 37, 43, 49, 53, Oxford, 6, 9, 52
57, 63, 71, 75, 81
ETH Zurich, 9, 61 Probabilidad, 13, 33, 45, 55, 63, 70, 76, 94

102
ÍNDICE ALFABÉTICO 103

Procesamiento Digital de Señales, 28


Programación Funcional, 21, 48, 53, 65
Prolog, 62
Python, 32

Redes, 16, 56, 66, 78, 86, 97


Robótica, 28, 34

Seguridad, 67
Shangai Rankings, 5
Sistemas Digitales, 38, 54, 64, 69, 71, 82
Sistemas Distribuidos, 65
Sistemas Operativos, 15, 34, 38, 44, 56, 65,
72, 78, 85
Stanford, 6, 8, 31

Técnicas de Comunicación, 39, 42, 101


Technion, 10, 68
Teorı́a de la Computación, 45, 49, 55, 64, 72,
73, 76, 84
Teorı́a de la Información, 64
Termodinámica, 44
Times Higher Education, 5

U.S. News & World Report, 8


Universidad de Tokyo, 9
University of Illinois–Urbana-Champaign, 8,
41
UNIX, 20, 70, 100

You might also like