Revision Plan de Estudios Ciencias de La Computacion UBA

36
Ideas a tener en cuenta al discutir el plan de estudios de la Licenciatura en Ciencias de la Computación Introducción Objetivo de este documento Durante los próximos meses se va a estar iniciando una discusión en el Departamento de Computación de Exactas sobre el plan de estudios de la Licenciatura Ciencias de la Computación. Si bien este plan demostró una gran solidez, tiene ya 17 años de vigencia y la computación ha evolucionado mucho durante los últimos años a partir de diversos factores. Algunos de ellos son analizados más adelante en este documento. Por otro lado, queremos destacar que este documento no tiene una propuesta concreta de nuevo plan de estudios sino que intenta levantar algunos puntos que pueden ser tenidos en cuenta a la hora de hacer esta revisión en detalle. Imaginamos que ese trabajo quedará a cargo de una comisión curricular con participación amplia. A su vez, se incluye un análisis superficial sobre la posibilidad de crear orientaciones o nuevas carreras de grado relacionadas con la Computación en el ámbito de esta Facultad. Este tema requiere de un análisis mucho más profundo antes de poder seguir adelante. Por lo tanto, este documento sólo intenta actuar como disparador de ideas, que luego puedan ser llevadas a una propuesta concreta. Fuentes de comparación Para analizar el plan de estudios se tuvieron en cuenta: - Estudios de la evolución de la computación en los últimos años y estudios prospectivos sobre la disciplina. - Planes de estudio de universidades de Europa y Estados Unidos consideradas líderes en la disciplina - Las recomendaciones curriculares de la ACM / IEEE específicas para carreras de Ciencias de la Computación [1] - Las recomendaciones de la Secretaría de Políticas Universitarias de la Nación para carreras de Licenciatura en Ciencias de la

Transcript of Revision Plan de Estudios Ciencias de La Computacion UBA

Ideas a tener en cuenta al discutir el plan de estudios de la Licenciatura en Ciencias de la Computación

Introducción

Objetivo de este documento

Durante los próximos meses se va a estar iniciando una discusión en el Departamento de Computación de Exactas sobre el plan de estudios de la Licenciatura Ciencias de la Computación. Si bien este plan demostró una gran solidez, tiene ya 17 años de vigencia y la computación ha evolucionado mucho durante los últimos años a partir de diversos factores. Algunos de ellos son analizados más adelante en este documento.

Por otro lado, queremos destacar que este documento no tiene una propuesta concreta de nuevo plan de estudios sino que intenta levantar algunos puntos que pueden ser tenidos en cuenta a la hora de hacer esta revisión en detalle. Imaginamos que ese trabajo quedará a cargo de una comisión curricular con participación amplia.

A su vez, se incluye un análisis superficial sobre la posibilidad de crear orientaciones o nuevas carreras de grado relacionadas con la Computación en el ámbito de esta Facultad. Este tema requiere de un análisis mucho más profundo antes de poder seguir adelante. Por lo tanto, este documento sólo intenta actuar como disparador de ideas, que luego puedan ser llevadas a una propuesta concreta.

Fuentes de comparación

Para analizar el plan de estudios se tuvieron en cuenta:

- Estudios de la evolución de la computación en los últimos años y estudios prospectivos sobre la disciplina.

- Planes de estudio de universidades de Europa y Estados Unidos consideradas líderes en la disciplina- Las recomendaciones curriculares de la ACM / IEEE específicas para carreras de Ciencias de la

Computación [1]- Las recomendaciones de la Secretaría de Políticas Universitarias de la Nación para carreras de

Licenciatura en Ciencias de la Computación, que son usados por la CONEAU para evaluar carreras de todo el país [2]

Este último punto incluye además el análisis de lo que se hace en otras universidades del país, teniendo en cuenta que los contenidos mínimos mencionados fueron definidos por la RedUNCI (Red de Universidades con Carreras de Informática) y por lo tanto es de esperar que refleje lo que las Universidades que participan de esta red consideran “Mejores Prácticas”.

Con respecto a la comparación con carreras de Estados Unidos, si bien es claro el liderazgo de este país en todo lo que tenga que ver con computación se debe tener en cuenta que el sistema educativo es diferente, ya que las carreras de grado suelen tener menos peso y profundidad debido a la abundancia de carreras de posgrado. En general la duración de estas carreras es de cuatro años, a diferencia de las carreras de nuestro país que tienen entre 5 y 6 años.

Las Universidades usadas para la Comparación son:

De Estados Unidos

- MIT [3]- Stanford [4]- Carnegie Mellon [5]

De Europa

- Imperial College, UK [6]

Situación de la Carrera Actual

Plan de Estudios

El plan de estudios actual de la carrera está vigente desde 1993. Sus detalles pueden verse en: http://www.dc.uba.ar/aca/carr/grado/licenciatura/plan.

A modo de resumen se detallan los siguientes puntos:

Materias Obligatorias

Ciclo básico común

Análisis Matemático

Algebra

Física

Química

Introducción al pensamiento científico

Introducción al Conocimiento de la Sociedad y el Estado

Primer año

Algebra I

Análisis Matemático II

Probabilidad y estadística

Algoritmos y estructuras de datos I

Segundo año

Métodos numéricos

Organización del computador I

Organización del computador II

Algoritmos y estructuras de datos II

Tercer año

Algoritmos y estructuras de datos III

Sistemas operativos

Lógica y computabilidad

Teoría de las comunicaciones

Ingeniería de software I

Cuarto año

Bases de datos

Teoría de lenguajes

Paradigmas de programación

Ingeniería de software II

Materias Optativas

Existe una amplia lista de materias optativas que los alumnos pueden tomar. En general otorgan entre 2 y 3 puntos, y deben sumar un total de 12 puntos de optativas.

Tesis de Licenciatura

Para obtener el título de Licenciado los alumnos deben completar una tesis de Licenciatura, que implica un trabajo de investigación. En general este esfuerzo suele durar no menos de 6 meses.

Título Intermedio

Con la aprobación de un subconjunto de las materias obligatorias se puede obtener el título Intermedio de Analista Universitario en Computación.

Duración Real de la carrera

Uno de los aspectos preocupantes de la carrera actual es la duración completa que lleva en la realidad a los alumnos. El valor promedio de los últimos años está cerca de 10 años.

A su vez, es alta la tasa de alumnos que no terminan la Licenciatura y sólo obtienen el título de Analista Universitario en Computación. Si bien no nos es posible calcular este número con precisión, porque siempre un alumno puede volver y terminar su tesis, sabemos que este valor es alto.

Perfil Profesional de los Egresados

Si bien no tenemos estadísticas precisas, es sabido que un porcentaje muy alto (probablemente más del 80%) de los egresados de Exactas se dedican a trabajar en el ámbito de la industria. En los últimos, con el proceso de reconstrucción del sistema científico Argentino, comenzó a aumentar la cantidad de egresados que se dedican a la Investigación y deciden seguir un Doctorado. Por ejemplo, actualmente el Departamento tiene 60 doctorandos.

Otros Planes de Estudio Analizados para Comparación

Massachusetts Institute of Technology (MIT)

El MIT tiene un departamento de “Electrical Engineering and Computer Science”, y ofrece el título de grado Bachelor of Science in Computer Science and Engineering.

El plan de estudios no está publicado de forma clara indicando las materias a cursar en cada semestre. El mejor resumen, que es un poco críptico, está en: http://web.mit.edu/catalog/degre.engin.ch6.html#. Hay más información sobre el nuevo plan de estudios en: http://www.eecs.mit.edu/ug/newcurriculum/index.html.

La visión a vuelo de pájaro que presentan es:Electrical engineers and computer scientists are everywhere—in industry and research areas as diverse as computer and communication networks, electronic circuits and systems, lasers and photonics, semiconductor and solid-state devices, nanoelectronics, biomedical engineering, computational biology, artificial intelligence, robotics, design and manufacturing, control and optimization, computer algorithms, games and graphics, software engineering, computer architecture, cryptography and computer security, power and energy systems, financial analysis, and many more. The infrastructure and fabric of the

information age, including technologies such as the internet and the web, search engines, cell phones, high-definition television, and magnetic resonance imaging, are largely the result of innovations in electrical engineering and computer science. The Department of Electrical Engineering and Computer Science at MIT and its graduates have been at the forefront of a great many of these advances. Current work in the department holds promise of continuing this record of innovation and leadership, in both research and education, across the full spectrum of departmental activity.

The career paths and opportunities for EECS graduates cover a wide range and continue to grow: fundamental technologies, devices, and systems based on electrical engineering and computer science are pervasive and essential to improving the lives of people around the world and managing the environments they live in. The basis for the success of EECS graduates is a deep education in engineering principles, built on mathematical, computational, physical, and life sciences, and exercised with practical applications and project experiences in a breadth of areas. Our graduates have also demonstrated over the years that EECS provides a strong foundation for those whose work and careers develop in areas quite removed from their origins in engineering.

Undergraduate students in the department take two core subjects that introduce electrical engineering and computer science, and then systematically build up broad foundations and depth in selected intellectual theme areas that match their individual interests. Laboratory subjects, independent projects, and research provide engagement with principles and techniques of analysis, design, and experimentation in a variety of fields. The department also offers a range of programs that enable students to gain experience in industrial settings, ranging from collaborative industrial projects done on campus to term-long experiences at partner companies.

Graduate study in the department moves students toward mastery of areas of individual interest, through coursework and significant research, often defined in interdisciplinary areas that take advantage of the tremendous range of faculty expertise in the department and, more broadly, across MIT.

Los cursos para recibir este título son:

6.042J – Mathematics for Computer Science 18.03 – Differential Equations or 18.06 – Linear Algebra (restricted elective, deben elegir una de las dos)6.01 – Introduction to Electrical Engineering and Computer Science I6.02 – Introduction to Electrical Engineering and Computer Science II6.004 – Computation Structures6.005 – Elements of Software Construction 6.006 – Introduction to Algorithms 6.033 – Computer System Engineering6.034 – Artificial Intelligence 6.046 – Design and Analysis of Algorithms 6.UAT and 6.UAP – Undergraduate Advanced Project 1 Curso de Laboratorio, a elegir entre muchos como Analog Electronics, RF Design, Digital Systems, Microcomputer Project, Instrumentation and Measurement for Biological Systems, Power Electronics, Robotics, etc. Materias optativas

Comparación materia por materia

La siguiente tabla intenta nivelar las materias de nuestro plan de estudios con el de CMU, comentando en cada caso las diferencias:

Materia Exactas Materia MIT Comentarios

Análisis Matemático --

Algebra Mathematics for Computer Science

Física --

Química --

Introducción al pensamiento científico

--

Introducción al Conocimiento de la Sociedad y el Estado

--

Algebra I Mathematics for Computer Science

Análisis Matemático II Differential Equations Esta materia aparece como “optativa”, pero hay que elegir entre esta y Linear Algebra.

Probabilidad y estadística --

Algoritmos y estructuras de datos I Introduction to Algorithms

Métodos numéricos No parece haber material donde se traten estos temas, aunque puede haber algunos en 6.01 y 6.02

Organización del computador I Computation Structures Introduces architecture of digital systems, emphasizing structural principles common to a wide range of technologies. Multilevel implementation strategies; definition of new primitives (e.g., gates, instructions, procedures, and processes) and their mechanization using lower-level elements. Analysis of potential concurrency; precedence constraints and performance measures; pipelined and multidimensional systems. Instruction set design issues; architectural support for contemporary software structures. 4 Engineering Design Points. 

Organización del computador II Computation Structures

Algoritmos y estructuras de datos II Design and Analysis of Algorithms

Algoritmos y estructuras de datos III Design and Analysis of Algorithms

Sistemas operativos Computer System Engineering

Lógica y computabilidad Design and Analysis of Algorithms

Teoría de las comunicaciones Computer System Engineering

Ingeniería de software I Elements of Software Construction

Bases de datos --

Teoría de lenguajes --

Paradigmas de programación --

Ingeniería de software II --

Inteligencia Artificial (optativa) Artificial Inteligence

-- Undergraduate Advanced Project Este curso incluye una preparación

Materia Exactas Materia MIT Comentarios

con foco en temas de comunicación (similar a CMU).

Algunas observaciones sobre el plan de estudios de MIT

Resulta bastante complejo realizar esta comparación dado que los dos planes de estudio parecen tener una organización muy diferente. Algunos puntos que resultan claramente son:

- Dado que el Departamento es de Electrical Engineering and Computer Science, se nota el foco fuerte por temas de ingeniería electrónica, en particular en las dos materias introductorias (Introduction to Computer Science and EE I y II). Hay un enfoque muy particular a la enseñanza de los temas introductorios. A continuación se pegan las descripciones de estos dos cursos:

o An integrated introduction to electrical engineering and computer science, taught using substantial laboratory experiments with mobile robots. Key issues in the design of engineered artifacts operating in the natural world: measuring and modeling system behaviors; assessing errors in sensors and effectors; specifying tasks; designing solutions based on analytical and computational models; planning, executing, and evaluating experimental tests of performance; refining models and designs. Issues addressed in the context of computer programs, control systems, probabilistic inference problems, circuits and transducers, which all play important roles in achieving robust operation of a large variety of engineered systems.

o Explores communication signals, systems and networks. Substantial laboratory experiments illustrate the role of abstraction and modularity in engineering design. Students gain practical experience in building reliable systems using imperfect components; selecting appropriate design metrics; choosing effective representations for information; and evaluating tradeoffs in complex systems. Topics include physical characterization and modeling of transmission systems in the time and frequency domains; analog and digital signaling; coding; detecting and correcting errors; relating information transmission rate to signal power, bandwidth and noise; and engineering of packet-switched networks.

- Hay una materia muy interesante dictada por Daniel Jackson que parece combinar ciertos aspectos con lo que tradicionalmente se enseña en materias de Ingeniería de Software con aspectos de paradigmas de programación (funcional, objetos). Este es el resumen: Introduction to the fundamental principles and techniques of software development that have greatest impact on practice. Topics include capturing the essence of a problem by recognizing and inventing suitable abstractions; key paradigms, including state machines, functional programming, and object-oriented programming; use of design patterns to bridge gap between models and code; the role of interfaces and specification in achieving modularity and decoupling; reasoning about code using invariants; testing, test-case generation and coverage; essentials of programming with objects, functions, and abstract types. Includes exercises in modeling, design, implementation and reasoning.

- Llama la atención el poco foco en los fundamentos de la programación. Es probable que estén cubiertos aunque no aparecen en las descripciones disponibles de los cursos obligatorios.

Otras carreras de grado en MIT

Hay una enorme variedad de carreras relacionadas con la tecnología en el MIT. En particular, dentro del Departamento que estamos analizando, se dictan otras dos carreras:

- Bachelor of Science in Electrical Science and Engineering- Bachelor of Science in Electrical Engineering and Computer Science

Si bien cambian algunos requisitos, las materias son similares en los tres casos. A veces, la única diferencia es que algunas materias obligatorias pasan a ser optativas y viceversa.

Carnegie Mellon University

Plan de Estudios del “Bachelor of Science in Computer Science”

La School of Computer Science de Carnegie Mellon ofrece un título de grado de Bachelor of Science in Computer Science.

Así explican el curso:

Carnegie Mellon University founded one of the first Computer Science departments in the world in 1965. Today, the Computer Science Department forms the centerpiece of the School of Computer Science, and is joined by the Human-Computer Interaction Institute, Institute for Software Research, Lane Center for Computational Biology, Language Technologies Institute, Machine Learning Department, Robotics Institute, and the Entertainment Technology Center. Together, these units make the School of Computer Science a world leader in research and education.

The B.S. program in Computer Science combines a solid core of Computer Science courses with the ability to gain substantial depth in another area through a required minor in a second subject. In addition, the curriculum provides numerous choices for science and humanities courses. As computing is a discipline with strong links to many fields, this provides students with unparalleled flexibility to pursue allied (or non-allied) interests. The curriculum's mathematics and statistics component ensures that students have the formal tools to remain current as technologies and systems change, rather than be limited by a narrow focus on programming alone. At the same time, students gain insight into the practical issues of building and maintaining systems by participating in intensive project-oriented courses. Due to the tremendous number of ongoing research projects within the School, many students obtain part-time or summer jobs, or receive independent study credit, working on research while pursuing their undergraduate degree. Students seeking a research/graduate school career may pursue an intensive course of research, equivalent to four classroom courses, culminating in the preparation of a senior research honors thesis.

Suitably prepared students from other Carnegie Mellon colleges are eligible to apply for internal transfer to the School of Computer Science and will be considered for transfer if space is available. Computation-oriented programs are also available within the Departments of Biology, Chemistry, Physics, Electrical and Computer Engineering, Information Systems, Philosophy, Psychology, and Design. Additionally, SCS offers a double major in Computer Science and Human-Computer Interaction, and minors in Computer Science, Language Technologies, Neural Computation, Robotics, and Software Engineering.

A continuación se describen los cursos del plan de estudios:

Primer Cuatrimestre

15-122 Principles of Imperative Computation

15-128 Freshman Immigration Course

21-120 Differential and Integral Calculus

21-127 Concepts of Mathematics

76-101 Interpretation and Argument

99-10x Computing Skills Workshop

xx-xxx Science/Engineering Course

Segundo Cuatrimestre

15-211 Fundamental Data Structures and Algorithms

15-251 Great Theoretical Ideas in Computer Science

21-122 Integration, Differential Equations and Approximation

xx-xxx Science/Engineering Course

xx-xxx Humanities and Arts Elective

Tercer Cuatrimestre

15-123 Effective Programming in C and UNIX

15-212 Principles of Programming

21-241 Matrix Algebra

xx-xxx Science/Engineering Course

xx-xxx Humanities and Arts Elective

Cuarto Cuatrimestre

15-213 Introduction to Computer Systems

15-221 Technical Communication for Computer Scientists

15-xxx Computer Science Elective

xx-xxx Science/Engineering Course

xx-xxx Minor Requirement / Free Elective

Quinto Cuatrimestre

15-451 Algorithm Design and Analysis

15-xxx Computer Science Elective

xx-xxx Probability Course

xx-xxx Humanities and Arts Elective

xx-xxx Minor Requirement / Free Elective

Sexto Cuatrimestre

15-xxx Computer Science Elective

15-xxx Computer Science Elective

xx-xxx Humanities and Arts Elective

xx-xxx Minor Requirement / Free Elective

Séptimo Cuatrimestre

15-xxx Computer Science Elective

xx-xxx Humanities and Arts Elective

xx-xxx Minor Requirement / Free Elective

xx-xxx Minor Requirement / Free Elective

Octavo Cuatrimestre

15-xxx Computer Science Elective

xx-xxx Humanities and Arts Elective

xx-xxx Minor Requirement / Free Elective

xx-xxx Minor Requirement / Free Elective

Comparación materia por materia

La siguiente tabla intenta nivelar las materias de nuestro plan de estudios con el de CMU, comentando en cada caso las diferencias:

Materia Exactas Materia CMU Comentarios

Análisis Matemático Differential and Integral Calculus

Algebra Concepts of Mathematics

Física --

Química --

Introducción al pensamiento científico

--

Introducción al Conocimiento de la Sociedad y el Estado

--

Algebra I Concepts of Mathematics

Análisis Matemático II Differential and Integral Calculus

Integration, Differential Equations and Approximation

Probablemente todos los puntos de esta materia estén cubiertos con la materia del CBC.

Probabilidad y estadística

Algoritmos y estructuras de datos I Principles of Imperative Computation.

Fundamental Data Structures and Algorithms

Effective programming in C and Unix

Usan lenguaje C.

Este curso es un poco “raro”. Parece un curso de C y Unix directamente… pero algunos temas se cubren en AEDII.

Materia Exactas Materia CMU Comentarios

Métodos numéricos Introduction to Computer Systems (solo algunos temas)

Organización del computador I Introduction to Computer Systems

Organización del computador II

Algoritmos y estructuras de datos II Fundamental Data Structures and Algorithms

Algorithms design and analysis

Algoritmos y estructuras de datos III Concepts of mathematics

Great Theoretical ideas in computer science

En esta materia de CMU se ve teoría de grafos

Este es un curso de temas variados, pero algunos se cubren en esta materia de Exactas.

Sistemas operativos

Lógica y computabilidad Great theoretical ideas in computer science

Algorithms design and analysis

Este es un curso de temas variados, pero algunos se cubren en esta materia de Exactas.

Teoría de las comunicaciones

Ingeniería de software I

Bases de datos

Teoría de lenguajes

Paradigmas de programación Principles of Programming Languages En CMU este curso se da bastante antes (tercer cuatrimestre)

Ingeniería de software II

-- Interpretation and argument. This course in freshman composition is meant to help students understand work: to know it as a part ofthemselves personally, familialy, culturally, historically, and locally. Students must also be able toproduce a rhetorical artifact about work which has the possibility of changing local conditions for the better (even in small ways).

-- Computing Skills Workshop Computing@Carnegie Mellon (C@CM) is a 3-unit, pass/fail mini course that will help you develop foundational computing and information literacy skills, focusing on the tools and technologies that are specific to Carnegie Mellon so you can be successful in your other academic courses. All undergraduate students are required to take the course

Algebra Lineal (optativa) Matrix Algebra Probablemente algunos de estos puntos se cubran en alguna otra materia.

Materia Exactas Materia CMU Comentarios

Technical communication for computer scientists

It aims to help students compose clear, concise technical writings and oral presentations for multi-level audiences

Algunas observaciones sobre el plan de estudios de CMU

Los siguientes puntos resumen algunos aspectos notables que resultan de la comparación entre este plan de estudios y el actual del DC:

- La cantidad de materias obligatorias es significativamente menor (12 contra 17), lo cual reafirma la idea de que un BS probablemente sea más fácilmente asimilable al título intermedio de esta Facultad.

- En CMU no se dictan como obligatorios muchos de los cursos “aplicados” de nuestra carrera. Entre ellos podemos mencionar a los de Ingeniería de Software, Bases de Datos, Sistemas Operativos, Organización del Computador II y Teoría de las Comunicaciones.

- Se piden explícitamente optativas en las áreas de “arts and humanities”. - Existe un curso de “comunicación técnica”- No existen requisitos de trabajos finales (Tesis o similar).- Existe una gran carga de materias optativas, y la idea de que las optativas de un año en particular

respeten al departamento de origen. Por ejemplo, en el primer cuatrimestre hay una optativa pero debe ser un “Science / Engineering course”. Este esquema de “cantidad mínima de optativas de un área” es una idea interesante presente en todos los planes de estudio de universidades líderes de USA que analizamos.

Otras carreras de grado en CMU

CMU ofrece tres carreras adicionales de grado relacionadas con la computación:

- Bachelor of Science in Computational Biology

- Bachelor of Science in Computer Science and Arts

- Bachelor of Science in Music and Technology

La carrera de “computational biology” ofrece una oportunidad interesante de análisis para nuestra Facultad teniendo en cuenta la posibilidad de colaboración con otros departamentos para el dictado de cursos, dirección de tesis y trabajo interdisciplinario.

Stanford University

La Universidad de Stanford tiene un prestigioso programa de Computer Science

MISSION OF THE UNDERGRADUATE PROGRAM IN COMPUTER SCIENCE

The mission of the undergraduate program in Computer Science is to develop students' breadth of knowledge across the subject areas of computer sciences, including their ability to apply the defining processes of computer science theory, abstraction, design, and implementation to solve problems in the discipline. Students take a set of core courses. After learning the essential programming techniques and the mathematical foundations of computer science, students take courses in areas such as programming techniques, automata and complexity theory, systems programming, computer architecture, analysis of

algorithms, artificial intelligence, and applications. The program prepares students for careers in government, law, and the corporate sector, and for graduate study.

LEARNING OUTCOMES

The department expects undergraduate majors in the program to be able to demonstrate the following learning outcomes. These learning outcomes are used in evaluating students and the department's undergraduate program. Students are expected to be able:

to apply the knowledge of mathematics, science, and engineering. to design and conduct experiments, as well to analyze and interpret data. to design a system, component, or process to meet desired needs within realistic constraints such

as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability.

to function on multidisciplinary teams. to identify, formulate, and solve engineering problems. to understand professional and ethical responsibility. to communicate effectively. to understand the impact of engineering solutions in a global, economic, environmental, and

societal context. to demonstrate a working knowledge of contemporary issues. to apply the techniques, skills, and modern engineering tools necessary for engineering practice. to transition from engineering concepts and theory to real engineering application

El programa se organiza por “tracks”. A continuación se listan los cursos principales del programa:

Matemática

Calculus Mathematical Foundations of Computing Introduction to Probability for Computer Scientists Dos optativas de matemáticas de un conjunto restringido.

Ciencia

Mechanics Electricity and Magnetism Una optativa de ciencias de la lista de la Facultad de Ingeniería

Fundamentos de la Ingeniería

Engineering Fundamentals Programming Abstractions Introductory Electronics Una optativa de ingeniería de la lista de la Facultad de Ingeniería.

Tecnología en la Sociedad

Un curso de Tecnología en la Sociedad de la lista de la Facultad de Ingeniería.

“Core” de Computer Science

Computer Organization and Systems Principles of Computer Systems

Data Structures and Algorithms Computer Science Depth Completar requerimientos de un “track” Optativas de una lista restringida Senior Capstone Project Senior Project

En cuanto a los “tracks” que pueden elegirse, estos son:

Inteligencia Artificial Biocomputación Gráficos Interacción hombre-máquina Información Sistemas Teoría

Comparación materia por materia

La siguiente tabla intenta nivelar las materias de nuestro plan de estudios con el de CMU, comentando en cada caso las diferencias:

Materia Exactas Materia Stanford Comentarios

Análisis Matemático Calculus

Algebra --

Física Mechanics

Química --

Introducción al pensamiento científico

--

Introducción al Conocimiento de la Sociedad y el Estado

--

Algebra I --

Análisis Matemático II Calculus

Probabilidad y estadística Introduction to Probability for Computer Scientists

Algoritmos y estructuras de datos I Discrete Mathematics Contiene una sección de “algorithmic thinking”.

Métodos numéricos

Organización del computador I Computer Organization and Systems

Organización del computador II Introduction to Computer Systems

Data Structures and Algorithms

Programming Abstractions

Algoritmos y estructuras de datos II Data Structures and Algorithms

Materia Exactas Materia Stanford Comentarios

Programming Abstractions

Algoritmos y estructuras de datos III Discrete Mathematics

Sistemas operativos

Lógica y computabilidad Discrete Mathematics Tema de “mathematical reasoning” y algunos temas de complejidad

Teoría de las comunicaciones Introduction to Computer Systems

Ingeniería de software I --

Bases de datos --

Teoría de lenguajes --

Paradigmas de programación Programming Abstractions

Ingeniería de software II --

Algunas observaciones sobre el plan de estudios de Stanford

- Es difícil analizar este plan de estudios sólo a partir del “core” común teniendo en cuenta que tiene también los “tracks” de especialización.

- De las tres universidades americanas analizadas, es la única que implementa el concepto de “tracks”.

- Al igual que las otras dos universidades analizadas, también existe una materia con un proyecto completo, también con foco en temas de comunicación.

- Al igual que la carrera de MIT, esta tiene un foco bastante fuerte en los temas de electrónica básica (introductory electronics) y los fundamentos científicos necesarios (electricidad y magnetismo). Llama la atención una materia de mecánica.

- Al igual que la carrera de Carnegie Mellon, no se ven en el plan de estudios materias de los temas considerados “aplicados” de la carrera actual del DC, como Ingeniería de Software o Bases de Datos (aunque sí hay cursos de Bases de Datos en el Track de “Information”).

- La idea de incluir conceptos de electrónica resulta interesante en la medida en que cada vez hay más campos de aplicación de los tradicionalmente llamados “sistemas embebidos”. Creemos que esto probablemente marque cómo las carreras de computación van siguiendo un poco la evolución de “para qué se usa el software”.

o En un principio hace muchas décadas, las computadoras se vieron como ayuda para realizar cálculos para aplicaciones científicas o ingenieriles que antes eran imposibles. Por eso hubo una tendencia a carreras como las de “computador científico”.

o Luego las computadoras ganaron su lugar en las empresas y por mucho tiempo el foco estuvo en los “sistemas de información”.

o Actualmente las computadoras y el software están en todos lados, y esto generó nuevas carreras o especializaciones, pero en todos los casos se intenta presentar una visión amplia de la problemática del software, y el “hardware” tiene más peso por la mayor presencia de sistemas embebidos y mayor interacción entre sistemas de software y dispositivos de hardware.

Imperial College de Londres

El Imperial College de Londres dicta carreras de Computación en la Facultad de Ingeniería. Ofrece un BS en Mathematics and Computer Science (3 años), MSci in Mathematics and Computer Science (4 años) y los siguientes títulos de Ingeniero / Master:

BEng Computing MEng Computing MEng Computing (Software Engineering) MEng Computing (Artificial Intelligence) MEng Computing (International Programme of Study) MEng Computing (Games, Vision and Interaction) MEng Computing (Computation in Biology and Medicine)

Las materias para el BS / MS en Computer Science son:

Primer año:

Comp.110 Architecture Comp.120 Programming Comp.123 Object-oriented programming Comp.140 Logic Comp.141 Reasoning about programs Comp.162 Laboratory workshop I Comp.164 Professional issues Comp.176 Laboratory I (Laboratory and project work in various computer languages including:

Prolog, Turing, Haskell, 80x86 Assembler).

Segundo Año

Obligatorias

Comp.211 Operating systems II Comp.220 Software engineering—design I Comp.261 Laboratory II Comp.262 Laboratory workshop II

Optativas (eligen 3 de la siguiente lista)

Comp.202 Software Engineering —algorithms Comp.221 Compilers Comp.222 Software engineering—design II Comp.223 Concurrency Comp.231 Introduction to Artificial Intelligence I Comp.240 Models of computation

Tercer Año (7 módulos optativos de la siguiente lista)

Comp.221 Compilers Comp.223 Concurrency Comp.302 Software engineering—methods

Comp.317 Graphics Comp.318 Custom computing Comp.335 Distributed systems Comp.337 Simulation and modelling Comp.341 Introduction to bioinformatics Comp.343 Operations research Comp.352 Humanities/foreign language1 Comp.395 Machine learning Comp.436 Performance analysis Comp.480 Automated reasoning Comp.526 Databases Comp.527 Computer networks and distributed systems

Cuarto Año (se eligen 7 módulos)

Comp.312 Advanced databases Comp.317 Graphics Comp.332 Advanced computer architecture Comp.395 Machine learning Comp.417 Advanced graphics and visualisation Comp.418 Computer vision Comp.420 Cognitive robotics Comp.429 Parallel algorithms Comp.430 Network security Comp.436 Performance analysis Comp.437 Distributed algorithms Comp.438 Complexity Comp.452 Humanities/foreign language1 Comp.461 Project outsourcing exercise2 Comp.464 Industrial placement—presentation and report2 Comp.470 Program analysis Comp.471 Advanced issues in object-oriented programming Comp.474 Multi-agent systems Comp.475 Advanced topics in software engineering Comp.477 Computing for optimal decisions Comp.480 Automated reasoning Comp.481 Models of concurrent computation Comp.482 Type systems for programming languages Comp.484 Quantum computing Comp.491 Knowledge representation Comp.493 Intelligent data and probabilistic inference Comp.499 Modal and temporal logic Comp. 527 Computer networks and distributed systems

Existen algunas restricciones sobre materias que se pueden cursar y oferta adicional de cursos pero no creemos que valga la pena en esta instancia entrar en ese nivel de detalle.

Para simplificar un poco el análisis, en los casos en que hay que elegir por ejemplo “4 obligatorias entre 7”, vamos a asumir que las 4 son obligatorias, aunque en esos casos las materias estarán marcadas con negrita.

Comparación “materia por materia”

Materia Exactas Materia Imperial College Comentarios

Análisis Matemático --

Algebra --

Física --

Química --

Introducción al pensamiento científico

--

Introducción al Conocimiento de la Sociedad y el Estado

--

Algebra I --

Análisis Matemático II

Probabilidad y estadística

Algoritmos y estructuras de datos I Programming, Object Oriented Programming, Reasoning about programs

Métodos numéricos

Organización del computador I Architecture

Organización del computador II

Algoritmos y estructuras de datos II Programming, Software Engineering – Algorithms

Algoritmos y estructuras de datos III

Sistemas operativos Operating Systems

Lógica y computabilidad Logic, Complexity

Teoría de las comunicaciones Computer Networks and Distributed Systems

Ingeniería de software I

Bases de datos Databases

Teoría de lenguajes Compilers

Paradigmas de programación Object Oriented Programming, Laboratory I

Ingeniería de software II Professional Issues, Software Engineering – Design, Software Engineering – Methods.

Algunas observaciones sobre el plan de estudios del Imperial College

- Llama la atención en este plan de estudios la falta de materias iniciales en temas de matemática, como por ejemplo algunos temas de matemática discreta y de análisis matemático. Es posible que estén en materias introductorias o de nivelación.

- Existe una cobertura importante de las materias más “aplicadas” como Ingeniería de Software y Bases de Datos. Esto aparece como una diferencia con los planes de estudios americanos.

- Esta Universidad implementa también la idea de elección de optativas de listas limitadas. Esta opción permite tener una mayor carga de materias optativas.

- Esta Facultad otorga el título de BS en 3 años y de MS en 4 años.

Comparación con los contenidos mínimos del Ministerio de Educación

A partir de la declaración de interés público de la computación, las carreras de Informática / Sistemas / Ciencias de la Computación e Ingeniería en Computación deben respetar ciertas pautas definidas por el Ministerio de Educación que son usadas por la CONEAU en las acreditaciones.

Si bien la Facultad de Ciencias Exactas decidió no acreditar sus carreras ante la CONEAU, los contenidos mínimos de las carreras de Ciencias de la Computación (y del resto de las Licenciaturas) fueron definidos por la RedUNCI, una red de universidades con carreras de Informática de la que participa esta Facultad junto con la mayoría de las Universidades Públicas con carreras de Informática del país. Por lo tanto, esos contenidos mínimos representan la opinión de la comunidad local de informática sobre lo que se debe enseñar. Estos contenidos además están basados en las recomendaciones curriculares de la ACM / IEEE.

A continuación se resumen los contenidos mínimos de la Resolución 786/09 para carreras de Licenciatura en Ciencias de la Computación. Luego de cada contenido mínimo, entre paréntesis, se incluye el nombre de la o las materias en las que se dictan esos temas en la carrera actual de Exactas. Si el tema no se dicta se indica con las siglas ND.

Area Horas Contenidos Mínimos

Ciencias Básicas 400 hs - Teoría de la Estructuras Discretas. Definiciones y pruebas estructurales.

- Estructuras Algebraicas. Algebra Lineal y Geometría Analítica.- Cálculo diferencial e integral en una y varias variables. (An1)- Elementos de lógica proposicional y de primer orden: Enfoque

sintáctico y semántico.- Técnicas de prueba. Estructura de las Pruebas formales. (Al1)- Probabilidad y estadística. (PE)

Teoría de la Computación

500 hs - Lenguajes formales y autómatas. Minimización de Autómatas. Expresiones Regulares. Máquinas de Turing. Jerarquía de Chomsky. Gramáticas e Isomorfismos. (TL)

- Lenguajes de Programación: Entidades y ligaduras. Sistema de Tipos, Niveles de Polimorfismo. Encapsule- miento y

Area Horas Contenidos Mínimos

Abstracción. Conceptos de Intérpretes y Compiladores. Criterios de Diseño y de Implementación de Lenguajes de Programación. Nociones básicas de semántica formal. (PLP, TL)

- Análisis de Algoritmos: Análisis asintótico, comportamiento en el mejor caso, caso promedio y peor caso. Notación 00. Balance entre tiempo y espacio en los algoritmos.. Análisis de Complejidad de Algoritmos. (LC)

- Conceptos Básicos de Teoría de Computabilidad y Complejidad: Problemas computables y no computables. Problema de la detención. Problemas tratables e intratables. Funciones Recursivas. (LC)

- Fundamentos de inteligencia artificial simbólica y no simbólica.

- Especificaciones Formales. Corrección de Programas. (AED1)- Compiladores. (TL)- Relación entre los distintos formalismos de cómputo.- Lógica Matemática. Lógicas Aplicadas.- Teoría de Bases de Datos. (BD)

Algoritmos y Lenguajes

550 hs Algoritmos y Estructuras de Datos

- Resolución de problemas y algoritmos. (AED1)- Estructuras de Control. Recursividad, Eventos, Excepciones.

Concurrencia. (AEDII)- Tipos abstractos de datos. Estructuras de Datos (AEDII)- Tipos de datos recursivos. Representación de datos en

memoria. Estrategias de implementación (AEDII)- Manejo de memoria en ejecución. - Algoritmos fundamentales: Recorrido, búsqueda,

ordenamiento, actualización- Estrategias de diseño de algoritmos. Algoritmos numéricos y

propagación de error. (MN)- Algoritmos concurrentes, distribuidos y paralelos.- Verificación de Algoritmos- Uso de Heurísticas en Algoritmos (AEDIII)

Paradigmas y lenguajes

- Paradigmas de Programación: Imperativo, Orientado a Objetos, Funcional, Lógico. (PLP)

- Concurrencia y Paralelismo.

Arquitectura, Sistemas Operativos y Redes

250 hs Arquitectura

- Arquitectura y Organización de Computadoras. (OC1)- Representación de los datos a nivel máquina. (OC1)

Area Horas Contenidos Mínimos

- Error. Lenguaje Ensamblador. (OC1)- Jerarquía de memoria, Organización funcional. (OC1)- Circuitos combinatorios y secuenciales. (OC1)- Máquinas Algorítmicas. Procesadores de alta prestación.

(OC1)- Arquitecturas no Von Neumann. (OC1)- Arquitecturas multiprocesadores. Conceptos de arquitecturas

Grid. (OC1)- Conceptos de arquitecturas reconfigurables. Conceptos de

arquitecturas basadas en servicios (OC1)

Sistemas Operativos

- Sistemas Operativos. Concepto de Proceso. Planificación de Procesos. (SO)

- Concurrencia de ejecución. Interbloqueos. (SO)- Administración de memoria. (SO)- Sistema de Archivos. Protección. (SO)- Sistemas operativos: de tiempo real, embebidos (embedded),

distribuidos. (SO)- Comunicación, Sincronización, Manejo de Recursos y Sistemas

de Archivos en Sistemas Distribuidos. (SO)- Memoria Compartida Distribuida. (SO)- Control de Concurrencia en Sistemas Distribuidos. (SO)- Transacciones Distribuidas. Seguridad en Sistemas

Distribuidos. (SO)

Redes y Comunicaciones.

- Técnicas de transmisión de datos, modelos, topologias, algoritmos de tuteo y protocolos. (TC)

- Sistemas operativos de redes. (TC)- Seguridad en Redes, elementos de criptografía. (TC)- Sistemas clienteiservidor y sus variantes. El modelo

computacional de la Web. (TC)- Administración de Redes. Computación orientada a redes (TC)

Aspectos Profesionales y Sociales

50 hs. - Historia de la Computación (ISII).- Responsabilidad y Etica Profesional (ISII).- Computación y Sociedad (ND).- Propiedad Intelectual, licenciamiento de software y contratos

informáticos. (ND)- Aspectos legales. (ND)- Software libre. (ND)

Ingeniería de Software, Bases de Datos y Sistemas

450 hs. Ingeniería de Software

- El Proceso de software. Ciclos de vida del software. (ISII)

Area Horas Contenidos Mínimos

de Información - Ingeniería de Requerimientos. (ISI)- Arquitectura y Diseño. Patrones (ISII).- Reingenieria de software. (ND)- Métodos formales (ISI).- Calidad de Software: del producto y del proceso (ISII).- Ingeniería de Software de Sistemas de Tiempo Real. (ISI)- Diseño centrado en el usuario. (ND)

Bases de Datos

- Sistemas de Bases de Datos. (BDD)- Diseño y administración de Sistemas de Bases de Datos. (BDD)

Escalabiiidad, eficiencia y efectividad. (BDD)- Modelado y calidad de datos. (BDD)- Lenguajes de DBMS. (BDD)- Nociones de minería de datos (BDD).

Sistemas de Información

- Administración y Control de proyectos. (ISII)- Nociones de Auditoria y Peritaje. (ND)- Teoría general de Sistemas. (ND)- Sistemas de Información. (ND)- Privacidad, integridad y seguridad en sistemas de información.

(ND)- Nociones de sistemas colaborativos. (ND)

Algunas observaciones sobre los Contenidos Mínimos y su relación con la carrera

- El análisis de los contenidos mínimos con la carrera muestra un nivel de cobertura mucho más completo y un mapeo mucho más simple que con los planes de estudio de carreras de Estados Unidos. Esto es lógico teniendo en cuenta las características del sistema universitario Argentino en cuanto a tener carreras más largas y además en el hecho de tener una mayor presencia de los temas que hacen al ejercicio profesional de disciplinas relacionadas con la computación.

- Por lo tanto, resulta claro que el análisis en detalle de estos contenidos mínimos no va a aportar nuevas ideas que impliquen un cambio sustancial con respecto al plan de estudios vigente.

- En cuanto a otros requisitos de la resolución ministerial, éstos abarcan temas generales como disponibilidad de laboratorios, carga de trabajo práctico y otros temas que no afectan el diseño de la currícula.

Comparación con la currícula recomendada de la ACM/IEEE

La currícula recomendada de la IEEE / ACM fue originalmente aprobada en 2001 y actualizada en 2008. El trabajo curricular de la RedUNCI está basado parcialmente en este trabajo, y por lo tanto es de esperar que el “mapeo” entre esta currícula y el plan de estudios actual de Exactas sea similar al del punto anterior.

Un aspecto interesante a analizar de esta currícula es la lista de “recent trends”, es decir los cambios que se dieron en la computación en general durante los últimos años que de alguna manera afectan al desarrollo curricular.

Estos son:

- The emergence of security as a major area of concern - The growing relevance of concurrency- The pervasive nature of net centric computing

La siguiente tabla muestra el llamado “Body of Knowledge” que debe formar parte de la educación en Ciencias de la Computación según la IEEE / ACM (entre paréntesis se indica la cantidad de horas de cada tema), y en la segunda columna la materia o materias del plan actual de la Licenciatura que lo cubre.

Body of Knowledge IEEE / ACM Materia que lo cubre en DC DS. Discrete Structures (43 core hours)DS/FunctionsRelationsAndSets (6)DS/BasicLogic (10)DS/ProofTechniques (12)DS/BasicsOfCounting (5)DS/GraphsAndTrees (4) AEDII, AEDIIIDS/DiscreteProbability (6) Probabilidad y estadísticaPF. Programming Fundamentals (47 core hours)PF/FundamentalConstructs (9) AEDI, AEDIIPF/AlgorithmicProblemSolving (6) AEDI, AEDIIPF/DataStructures (10) AEDI, AEDIIPF/Recursion (4) AEDIPF/EventDrivenProgramming (4)PF/ObjectOriented (8) PLPPF/FoundationsInformationSecurity (4) --PF/SecureProgramming (2) --AL. Algorithms and Complexity (31 core hours)AL/BasicAnalysis (4) LyCAL/AlgorithmicStrategies (6)AL/FundamentalAlgorithms (12)AL/DistributedAlgorithms (3)AL/BasicComputability (6)AL/PversusNP LyCAL/AutomataTheory LyCAL/AdvancedAnalysisAL/CryptographicAlgorithmsAL/GeometricAlgorithmsAL/ParallelAlgorithmsAR. Architecture and Organization (36 corehours)AR/DigitalLogicAndDataRepresentation (7) OC1AR/ComputerArchitectureAndOrganization (9) OC1AR/InterfacingAndI/OStrategies (3) OC1AR/MemoryArchitecture (5) OC1AR/FunctionalOrganization (6) OC1AR/Multiprocessing (6) OC1

Body of Knowledge IEEE / ACM Materia que lo cubre en DC AR/PerformanceEnhancements OC2AR/DistributedArchitectures TCAR/Devices OC2AR/DirectionsInComputing --OS. Operating Systems (18 core hours)OS/OverviewOfOperatingSystems (2) SOOS/OperatingSystemPrinciples (2) SOOS/Concurrency (6) SOOS/SchedulingandDispatch (3) SOOS/MemoryManagement (3) SOOS/DeviceManagement SOOS/SecurityAndProtection (2) SOOS/FileSystems SOOS/RealTimeAndEmbeddedSystems SOOS/FaultToleranceOS/SystemPerformanceEvaluationOS/ScriptingOS/DigitalForensicsOS/SecurityModelsNC. Net-Centric Computing (15 corehours)NC/Introduction(2) TCNC/NetworkCommunication (7) TCNC/NetworkSecurity (6) TCNC/WebOrganization TCNC/NetworkedApplications TCNC/NetworkManagement TCNC/Compression TCNC/MultimediaTechnologiesNC/MobileComputingPL. Programming Languages (21 corehours)PL/Overview(2)PL/VirtualMachines(1)PL/BasicLanguageTranslation(2)PL/DeclarationsAndTypes(3)PL/AbstractionMechanisms(3)PL/ObjectOrientedProgramming(10)PL/FunctionalProgrammingPL/LanguageTranslationSystemsPL/TypeSystemsPL/ProgrammingLanguageSemanticsPL/ProgrammingLanguageDesignHC. Human-Computer Interaction (8 corehours)HC/Foundations (6) --HC/BuildingGUIInterfaces (2) --HC/UserCcenteredSoftwareEvaluation --HC/UserCenteredSoftwareDevelopment --HC/GUIDesign --

Body of Knowledge IEEE / ACM Materia que lo cubre en DC HC/GUIProgramming --HC/MultimediaAndMultimodalSystems --HC/CollaborationAndCommunication --HC/InteractionDesignForNewEnvironments --HC/HumanFactorsAndSecurity --GV. Graphics and Visual Computing (3core hours)GV/FundamentalTechniques (2) --GV/GraphicSystems (1) --GV/GraphicCommunication --GV/GeometricModeling --GV/BasicRendering --GV/AdvancedRendering --GV/AdvancedTechniques --GV/ComputerAnimation --GV/Visualization --GV/VirtualReality --GV/ComputerVision --GV/ComputationalGeometry --GV/GameEngineProgramming --IS. Intelligent Systems (10 corehours)IS/FundamentalIssues (1) --IS/BasicSearchStrategies (5) --IS/KnowledgeBasedReasoning (4) --IS/AdvancedSearch --IS/AdvancedReasoning --IS/Agents --IS/NaturaLanguageProcessing --IS/MachineLearning --IS/PlanningSystems --IS/Robotics --IS/Perception --IM. Information Management (11core hours)IM/InformationModels (4) BDIM/DatabaseSystems (3) BDIM/DataModeling (4) BDIM/Indexing BDIM/RelationalDatabases BDIM/QueryLanguages BDIM/RelationalDatabaseDesign BDIM/TransactionProcessing BDIM/DistributedDatabases BDIM/PhysicalDatabaseDesign BDIM/DataMining BDIM/InformationStorageAndRetrieval BDIM/Hypermedia BDIM/MultimediaSystems BDIM/DigitalLibraries BD

Body of Knowledge IEEE / ACM Materia que lo cubre en DC SP. Social and Professional Issues (16core hours)SP/HistoryOfComputing (1) IS2SP/SocialContext (3) --SP/AnalyticalTools (2) --SP/ProfessionalEthics (3) IS2SP/Risks (2) --SP/SecurityOperations --SP/IntellectualProperty (3) --SP/PrivacyAndCivilLiberties (2) --SP/ComputerCrime --SP/EconomicsOfComputing IS2SP/PhilosophicalFrameworks --SE. Software Engineering (31 corehours)SE/SoftwareDesign (8)SE/UsingAPIs (5) IS2SE/ToolsAndEnvironments (3) --SE/SoftwareProcesses (2) IS2SE/RequirementsSpecifications (4) IS1SE/SoftwareVerificationValidation (3) IS1SE/SoftwareEvolution (3) --SE/SoftwareProjectManagement (3) IS2SE/ComponentBasedComputing --SE/FormalMethods IS1SE/SoftwareReliability IS2SE/SpecializedSystems --SE/RiskAssessment --SE/RobustAndSecurity- --EnhancedProgramming --CN. Computational Science (no corehours)CN/ModelingAndSimulationCN/OperationsResearchCN/ParallelComputation

Algunas observaciones sobre la currícula de la ACM / IEEE y su relación con la carrera

- La currícula recomendada de la ACM / IEEE tiene una gran variedad de temas, aunque con una dedicación horaria relativamente baja (aunque se especifica que son cantidades mínimas).

- En esta currícula aparecen muchos requisitos relacionados con temas “aplicados” que no vimos en las currículas de universidades americanas, pero que en muchos casos están presentes en nuestro plan de estudios actual.

- En cuanto al detalle de los contenidos, hay muchas ideas interesantes para tener en cuenta en la revisión de nuestro plan de estudios. Por ejemplo la presencia de los temas de diseño de interfaces hombre – máquina.

Conclusiones generales

Es notable cómo todas estas universidades, en particular las tres analizadas de Estados Unidos, que vienen disputándose los primeros puestos en los Rankings con UC Berkeley durante las últimas décadas, tienen planes de estudio tan disímiles. Una lectura, tal vez un poco apresurada de este tema, es que el plan de estudios, si bien es claramente un aspecto importante, no es el aspecto clave en lograr educación de excelencia. Queda claro que un excelente plan de estudios no es condición suficiente para una carrera de excelencia. La duda es si es o no condición necesaria, o en realidad es algo que está en un nivel inferior a otros factores como los planteles de profesores e investigadores y el trabajo en conjunto con otras disciplinas u otros departamentos de la Facultad u organizaciones que usan tecnología de punta, que por lo tanto derivan en la atracción de los mejores alumnos, armando un “círculo virtuoso”. Para poner un ejemplo, Carnegie Mellon no saca buenos graduados en robótica porque tiene una buena materia de Robótica en su carrera, sino porque tiene un Robotics Institute.

De todas formas, esto no quita de ninguna manera el valor de un plan de estudios sólido e innovador, mientras se trabaja además en fortalecer todos los otros temas. Debido al cierto retraso que tiene nuestra carrera, la importancia del plan de estudios es mayor.

Algunas ideas interesantes que surgen de este trabajo son:

- La UBA – Exactas es la única Facultad analizada que ofrece una única carrera en computación. Nuestra oferta de materias optativas del Departamento, y la disponibilidad de materias de otros departamentos relacionados con la computación ofrecen una oportunidad enorme para crear especializaciones o nuevas carreras de grado. Especializaciones en Ingeniería de Software, Teoría de la Computación o Computación Científica o nuevas carreras de grado como Bioinformática son tal vez los ejemplos más claros.

- La idea de elecciones limitadas de optativas a partir de una lista predefinida tal vez permita sacar un poco el peso de las materias obligatorias y permitir una mayor cantidad de puntos de optativas. Es un contrapeso: te doy más libertad, pero limitada.

- La tesis de Licenciatura no aparece como requisito en ninguno de los casos analizados. Es claro que esta tesis tiene un gran valor para nuestros estudiantes, sobre todo aquellos que luego se inclinan por una carrera académica. Pero por otro lado es una de las grandes barreras a que los alumnos se reciban. Por esto, creemos que se deben analizar otras opciones como la realización de trabajos finales en una materia específica “Proyecto de Investigación”.

- Cada Facultad parece tener un sesgo a partir de su nacimiento de un Departamento de Matemática o de Ingeniería Eléctrica. A medida que el software ha ido evolucionando y ganando más espacio, tal vez las que tengan el sesgo de la Ingeniería Eléctrica tengan alguna ventaja. El origen de nuestra carrera no se puede modificar, pero tal vez se pueda poner un poco más de foco en temas relacionados con el hardware en un sentido amplio.

- El análisis bien valió la pena. Hay por todos lados ideas interesantes para inspirarse, como por ejemplo la materia de “Great theoretical ideas in Computer Science de Carnegie Mellon”.

- ¿Debiéramos prestar un poco más de atención a los temas de comunicación escrita y oral / presentación? Es bastante evidente que de nada sirve tener excelentes ideas si no se las puede comunicar efectivamente, aunque difícilmente se haya pensado previamente en tener materias de este tipo.

Bibliografía y Referencias

[1] Recomendaciones curriculares en Ciencias de la Computación de la ACM / IEEE. Ver: http://www.acm.org//education/curricula/ComputerScience2008.pdf

[2] Resolución 786/09 de la Secretaría de Políticas Universitarias de La Nación con contenidos mínimos y requerimientos para carreras de grado de Licenciatura en Ciencias de la Computación. Ver: http://www.coneau.edu.ar/archivos/Res786_09.pdf

[3] Información de carreras de grado en Computación del Massachusetts Institute of TEchnolgy. Ver: http://www.eecs.mit.edu/ug/newcurriculum/index.html

[4] Información de carreras de grado en Computación de la Universidad de Stanford. Ver: http://cs.stanford.edu/degrees/undergrad/ProgramSheets.shtml

[5] Información de carreras de grado en Computación de la Universidad de Carnegie Mellon. Ver: http://coursecatalog.web.cmu.edu/schoolofcomputerscience/

[6] Información de carreras de grado en Computación del Imperial College de Londres. Ver: http://www3.imperial.ac.uk/ugprospectus/facultiesanddepartments/computing/computingcourses