Documente Academic
Documente Profesional
Documente Cultură
Introduccin
Objetivo de este documento
Durante los prximos meses se va a estar iniciando una discusin en el Departamento de Computacin de Exactas sobre el plan de estudios de la Licenciatura Ciencias de la Computacin. Si bien este plan demostr una gran solidez, tiene ya 17 aos de vigencia y la computacin ha evolucionado mucho durante los ltimos aos a partir de diversos factores. Algunos de ellos son analizados ms 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 revisin en detalle. Imaginamos que ese trabajo quedar a cargo de una comisin curricular con participacin amplia. A su vez, se incluye un anlisis superficial sobre la posibilidad de crear orientaciones o nuevas carreras de grado relacionadas con la Computacin en el mbito de esta Facultad. Este tema requiere de un anlisis mucho ms profundo antes de poder seguir adelante. Por lo tanto, este documento slo intenta actuar como disparador de ideas, que luego puedan ser llevadas a una propuesta concreta.
Fuentes de comparacin
Para analizar el plan de estudios se tuvieron en cuenta: Estudios de la evolucin de la computacin en los ltimos aos y estudios prospectivos sobre la disciplina. Planes de estudio de universidades de Europa y Estados Unidos consideradas lderes en la disciplina Las recomendaciones curriculares de la ACM / IEEE especficas para carreras de Ciencias de la Computacin [1] Las recomendaciones de la Secretara de Polticas Universitarias de la Nacin para carreras de Licenciatura en Ciencias de la Computacin, que son usados por la CONEAU para evaluar carreras de todo el pas [2]
Este ltimo punto incluye adems el anlisis de lo que se hace en otras universidades del pas, teniendo en cuenta que los contenidos mnimos mencionados fueron definidos por la RedUNCI (Red de Universidades con Carreras de Informtica) y por lo tanto es de esperar que refleje lo que las Universidades que participan de esta red consideran Mejores Prcticas. Con respecto a la comparacin con carreras de Estados Unidos, si bien es claro el liderazgo de este pas en todo lo que tenga que ver con computacin 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 duracin de estas carreras es de cuatro aos, a diferencia de las carreras de nuestro pas que tienen entre 5 y 6 aos. Las Universidades usadas para la Comparacin son:
Mtodos numricos Organizacin del computador I Organizacin del computador II Algoritmos y estructuras de datos II
Tercer ao
Algoritmos y estructuras de datos III Sistemas operativos Lgica y computabilidad Teora de las comunicaciones Ingeniera de software I
Cuarto ao
Paradigmas de programacin Ingeniera 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 ttulo de Licenciado los alumnos deben completar una tesis de Licenciatura, que implica un trabajo de investigacin. En general este esfuerzo suele durar no menos de 6 meses. Ttulo Intermedio Con la aprobacin de un subconjunto de las materias obligatorias se puede obtener el ttulo Intermedio de Analista Universitario en Computacin. Duracin Real de la carrera Uno de los aspectos preocupantes de la carrera actual es la duracin completa que lleva en la realidad a los alumnos. El valor promedio de los ltimos aos est cerca de 10 aos. A su vez, es alta la tasa de alumnos que no terminan la Licenciatura y slo obtienen el ttulo de Analista Universitario en Computacin. Si bien no nos es posible calcular este nmero con precisin, 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 estadsticas precisas, es sabido que un porcentaje muy alto (probablemente ms del 80%) de los egresados de Exactas se dedican a trabajar en el mbito de la industria. En los ltimos, con el proceso de reconstruccin del sistema cientfico Argentino, comenz a aumentar la cantidad de egresados que se dedican a la Investigacin y deciden seguir un Doctorado. Por ejemplo, actualmente el Departamento tiene 60 doctorandos.
information age, including technologies such as the internet and the web, search engines, cell phones, highdefinition 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 ttulo 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 I 6.02 Introduction to Electrical Engineering and Computer Science II 6.004 Computation Structures 6.005 Elements of Software Construction 6.006 Introduction to Algorithms 6.033 Computer System Engineering 6.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 Comparacin 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 Anlisis Matemtico Algebra Fsica Qumica Introduccin al pensamiento cientfico Introduccin al Conocimiento de la Sociedad y el Estado Algebra I Anlisis Matemtico II
Comentarios
--
Mathematics for Computer Science Differential Equations Esta materia aparece como optativa, pero hay que elegir entre esta y Linear Algebra.
-Introduction to Algorithms No parece haber material donde se traten estos temas, aunque puede haber algunos en 6.01 y 6.02 Computation Structures 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.
Algoritmos y estructuras de datos II Algoritmos y estructuras de datos III Sistemas operativos Lgica y computabilidad Teora de las comunicaciones Ingeniera de software I Bases de datos Teora de lenguajes Paradigmas de programacin Ingeniera de software II Inteligencia Artificial (optativa)
Design and Analysis of Algorithms Design and Analysis of Algorithms Computer System Engineering Design and Analysis of Algorithms Computer System Engineering Elements of Software Construction ----Artificial Inteligence
Materia Exactas --
Comentarios Este curso incluye una preparacin con foco en temas de comunicacin (similar a CMU).
Algunas observaciones sobre el plan de estudios de MIT Resulta bastante complejo realizar esta comparacin dado que los dos planes de estudio parecen tener una organizacin 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 ingeniera electrnica, en particular en las dos materias introductorias (Introduction to Computer Science and EE I y II). Hay un enfoque muy particular a la enseanza de los temas introductorios. A continuacin 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 ensea en materias de Ingeniera de Software con aspectos de paradigmas de programacin (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 objectoriented 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 atencin el poco foco en los fundamentos de la programacin. Es probable que estn cubiertos aunque no aparecen en las descripciones disponibles de los cursos obligatorios.
Hay una enorme variedad de carreras relacionadas con la tecnologa 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.
15-128 Freshman Immigration Course 21-120 Differential and Integral Calculus 21-127 Concepts of Mathematics 76-101 Interpretation and Argument 99-10x xx-xxx Computing Skills Workshop 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 xx-xxx Science/Engineering Course 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 xx-xxx Science/Engineering Course Humanities and Arts Elective
Cuarto Cuatrimestre 15-213 Introduction to Computer Systems 15-221 Technical Communication for Computer Scientists 15-xxx xx-xxx xx-xxx Computer Science Elective Science/Engineering Course Minor Requirement / Free Elective
Quinto Cuatrimestre 15-451 Algorithm Design and Analysis 15-xxx xx-xxx xx-xxx xx-xxx Computer Science Elective Probability Course Humanities and Arts Elective Minor Requirement / Free Elective
Computer Science Elective Humanities and Arts Elective Minor Requirement / Free Elective
Sptimo Cuatrimestre 15-xxx xx-xxx xx-xxx xx-xxx Computer Science Elective Humanities and Arts Elective Minor Requirement / Free Elective Minor Requirement / Free Elective
Octavo Cuatrimestre 15-xxx xx-xxx xx-xxx xx-xxx Computer Science Elective Humanities and Arts Elective Minor Requirement / Free Elective Minor Requirement / Free Elective
Comparacin 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 Anlisis Matemtico Algebra Fsica Qumica Introduccin al pensamiento cientfico Introduccin al Conocimiento de la Sociedad y el Estado Algebra I Anlisis Matemtico II Materia CMU Differential and Integral Calculus Concepts of Mathematics ---Comentarios
--
Concepts of Mathematics Differential and Integral Calculus Integration, Differential Equations and Approximation Probablemente todos los puntos de esta materia estn cubiertos con la materia del CBC.
Probabilidad y estadstica Algoritmos y estructuras de datos I Principles of Imperative Computation. Fundamental Data Structures and Algorithms Effective programming in C and Unix Este curso es un poco raro. Parece un curso de C y Unix directamente Usan lenguaje C.
Materia Exactas
Materia CMU
Mtodos numricos
Concepts of mathematics
En esta materia de CMU se ve teora de grafos Este es un curso de temas variados, pero algunos se cubren en esta materia de Exactas.
Great Theoretical ideas in computer science Sistemas operativos Lgica y computabilidad Great theoretical ideas in computer science Algorithms design and analysis Teora de las comunicaciones Ingeniera de software I Bases de datos Teora de lenguajes Paradigmas de programacin Principles of Programming Languages
Este es un curso de temas variados, pero algunos se cubren en esta materia de Exactas.
Ingeniera de software II -Interpretation and argument. This course in freshman composition is meant to help students understand work: to know it as a part of themselves personally, familialy, culturally, historically, and locally. Students must also be able to produce a rhetorical artifact about work which has the possibility of changing local conditions for the better (even in small ways).
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
--
Comentarios
Probablemente algunos de estos puntos se cubran en alguna otra materia. 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 comparacin 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 ms fcilmente asimilable al ttulo 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 Ingeniera de Software, Bases de Datos, Sistemas Operativos, Organizacin del Computador II y Teora de las Comunicaciones. Se piden explcitamente optativas en las reas de arts and humanities. Existe un curso de comunicacin tcnica 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 ao 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 mnima de optativas de un rea es una idea interesante presente en todos los planes de estudio de universidades lderes de USA que analizamos.
Otras carreras de grado en CMU CMU ofrece tres carreras adicionales de grado relacionadas con la computacin: - 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 anlisis para nuestra Facultad teniendo en cuenta la posibilidad de colaboracin con otros departamentos para el dictado de cursos, direccin 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 continuacin se listan los cursos principales del programa: Matemtica Ciencia Mechanics Electricity and Magnetism Una optativa de ciencias de la lista de la Facultad de Ingeniera Calculus Mathematical Foundations of Computing Introduction to Probability for Computer Scientists Dos optativas de matemticas de un conjunto restringido.
Fundamentos de la Ingeniera Engineering Fundamentals Programming Abstractions Introductory Electronics Una optativa de ingeniera de la lista de la Facultad de Ingeniera.
Tecnologa en la Sociedad Un curso de Tecnologa en la Sociedad de la lista de la Facultad de Ingeniera. 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 Biocomputacin Grficos Interaccin hombre-mquina Informacin Sistemas Teora
Comparacin 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 Anlisis Matemtico Algebra Fsica Qumica Introduccin al pensamiento cientfico Introduccin al Conocimiento de la Sociedad y el Estado Algebra I Anlisis Matemtico II Probabilidad y estadstica Materia Stanford Calculus -Mechanics --Comentarios
--
-Calculus Introduction to Probability for Computer Scientists Discrete Mathematics Contiene una seccin de algorithmic thinking.
Mtodos numricos Organizacin del computador I Organizacin del computador II Computer Organization and Systems Introduction to Computer Systems Data Structures and Algorithms Programming Abstractions
Comentarios
Discrete Mathematics
Discrete Mathematics
Teora de las comunicaciones Ingeniera de software I Bases de datos Teora de lenguajes Paradigmas de programacin Ingeniera de software II
Algunas observaciones sobre el plan de estudios de Stanford Es difcil analizar este plan de estudios slo a partir del core comn teniendo en cuenta que tiene tambin los tracks de especializacin. De las tres universidades americanas analizadas, es la nica que implementa el concepto de tracks. Al igual que las otras dos universidades analizadas, tambin existe una materia con un proyecto completo, tambin con foco en temas de comunicacin. Al igual que la carrera de MIT, esta tiene un foco bastante fuerte en los temas de electrnica bsica (introductory electronics) y los fundamentos cientficos necesarios (electricidad y magnetismo). Llama la atencin una materia de mecnica. 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 Ingeniera 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 electrnica resulta interesante en la medida en que cada vez hay ms campos de aplicacin de los tradicionalmente llamados sistemas embebidos. Creemos que esto probablemente marque cmo las carreras de computacin van siguiendo un poco la evolucin de para qu se usa el software. o En un principio hace muchas dcadas, las computadoras se vieron como ayuda para realizar clculos para aplicaciones cientficas o ingenieriles que antes eran imposibles. Por eso hubo una tendencia a carreras como las de computador cientfico. o Luego las computadoras ganaron su lugar en las empresas y por mucho tiempo el foco estuvo en los sistemas de informacin. o Actualmente las computadoras y el software estn en todos lados, y esto gener nuevas carreras o especializaciones, pero en todos los casos se intenta presentar una visin amplia de la problemtica del software, y el hardware tiene ms peso por la mayor presencia de
Las materias para el BS / MS en Computer Science son: Primer ao: 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 Ao Obligatorias Comp.211 Operating systems II Comp.220 Software engineeringdesign 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 engineeringdesign II Comp.223 Concurrency Comp.231 Introduction to Artificial Intelligence I Comp.240 Models of computation
Comp.221 Compilers Comp.223 Concurrency Comp.302 Software engineeringmethods 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 Ao (se eligen 7 mdulos) 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 placementpresentation 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
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 anlisis, 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 estarn marcadas con negrita. Comparacin materia por materia
Materia Exactas Anlisis Matemtico Algebra Fsica Qumica Introduccin al pensamiento cientfico Introduccin al Conocimiento de la Sociedad y el Estado Algebra I Anlisis Matemtico II Probabilidad y estadstica Algoritmos y estructuras de datos I Programming, Object Oriented Programming, Reasoning about programs Materia Imperial College -----Comentarios
--
--
Mtodos numricos Organizacin del computador I Organizacin del computador II Algoritmos y estructuras de datos II Programming, Software Engineering Algorithms Architecture
Algoritmos y estructuras de datos III Sistemas operativos Lgica y computabilidad Teora de las comunicaciones Operating Systems Logic, Complexity Computer Networks and Distributed Systems
Ingeniera de software I Bases de datos Teora de lenguajes Paradigmas de programacin Databases Compilers Object Oriented Programming, Laboratory I
Materia Imperial College Professional Issues, Software Engineering Design, Software Engineering Methods.
Comentarios
Algunas observaciones sobre el plan de estudios del Imperial College Llama la atencin en este plan de estudios la falta de materias iniciales en temas de matemtica, como por ejemplo algunos temas de matemtica discreta y de anlisis matemtico. Es posible que estn en materias introductorias o de nivelacin. Existe una cobertura importante de las materias ms aplicadas como Ingeniera de Software y Bases de Datos. Esto aparece como una diferencia con los planes de estudios americanos. Esta Universidad implementa tambin la idea de eleccin de optativas de listas limitadas. Esta opcin permite tener una mayor carga de materias optativas. Esta Facultad otorga el ttulo de BS en 3 aos y de MS en 4 aos.
Horas 400 hs
Contenidos Mnimos Teora de la Estructuras Discretas. Definiciones y pruebas estructurales. Estructuras Algebraicas. Algebra Lineal y Geometra Analtica. Clculo diferencial e integral en una y varias variables. (An1) Elementos de lgica proposicional y de primer orden: Enfoque sintctico y semntico. Tcnicas de prueba. Estructura de las Pruebas formales. (Al1)
Area
Horas
Contenidos Mnimos Probabilidad y estadstica. (PE) Lenguajes formales y autmatas. Minimizacin de Autmatas. Expresiones Regulares. Mquinas de Turing. Jerarqua de Chomsky. Gramticas e Isomorfismos. (TL) Lenguajes de Programacin: Entidades y ligaduras. Sistema de Tipos, Niveles de Polimorfismo. Encapsule- miento y Abstraccin. Conceptos de Intrpretes y Compiladores. Criterios de Diseo y de Implementacin de Lenguajes de Programacin. Nociones bsicas de semntica formal. (PLP, TL) Anlisis de Algoritmos: Anlisis asinttico, comportamiento en el mejor caso, caso promedio y peor caso. Notacin 00. Balance entre tiempo y espacio en los algoritmos.. Anlisis de Complejidad de Algoritmos. (LC) Conceptos Bsicos de Teora de Computabilidad y Complejidad: Problemas computables y no computables. Problema de la detencin. Problemas tratables e intratables. Funciones Recursivas. (LC) Fundamentos de inteligencia artificial simblica y no simblica. Especificaciones Formales. Correccin de Programas. (AED1) Compiladores. (TL) Relacin entre los distintos formalismos de cmputo. Lgica Matemtica. Lgicas Aplicadas. Teora de Bases de Datos. (BD)
Teora de la Computacin
500 hs
Algoritmos y Estructuras de Datos Resolucin 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. Representacin de datos en memoria. Estrategias de implementacin (AEDII) Manejo de memoria en ejecucin. Algoritmos fundamentales: Recorrido, bsqueda, ordenamiento, actualizacin Estrategias de diseo de algoritmos. Algoritmos numricos y propagacin de error. (MN) Algoritmos concurrentes, distribuidos y paralelos. Verificacin de Algoritmos Uso de Heursticas en Algoritmos (AEDIII)
Area
Horas
250 hs
Arquitectura Arquitectura y Organizacin de Computadoras. (OC1) Representacin de los datos a nivel mquina. (OC1) Error. Lenguaje Ensamblador. (OC1) Jerarqua de memoria, Organizacin funcional. (OC1) Circuitos combinatorios y secuenciales. (OC1) Mquinas Algortmicas. Procesadores de alta prestacin. (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. Planificacin de Procesos. (SO) Concurrencia de ejecucin. Interbloqueos. (SO) Administracin de memoria. (SO) Sistema de Archivos. Proteccin. (SO) Sistemas operativos: de tiempo real, embebidos (embedded), distribuidos. (SO) Comunicacin, Sincronizacin, 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. Aspectos Profesionales y Sociales 50 hs. Tcnicas de transmisin de datos, modelos, topologias, algoritmos de tuteo y protocolos. (TC) Sistemas operativos de redes. (TC) Seguridad en Redes, elementos de criptografa. (TC) Sistemas clienteiservidor y sus variantes. El modelo computacional de la Web. (TC) Administracin de Redes. Computacin orientada a redes (TC) Historia de la Computacin (ISII). Responsabilidad y Etica Profesional (ISII). Computacin y Sociedad (ND). Propiedad Intelectual, licenciamiento de software y contratos
Area
Horas
Contenidos Mnimos informticos. (ND) Aspectos legales. (ND) Software libre. (ND)
450 hs.
Ingeniera de Software El Proceso de software. Ciclos de vida del software. (ISII) Ingeniera de Requerimientos. (ISI) Arquitectura y Diseo. Patrones (ISII). Reingenieria de software. (ND) Mtodos formales (ISI). Calidad de Software: del producto y del proceso (ISII). Ingeniera de Software de Sistemas de Tiempo Real. (ISI) Diseo centrado en el usuario. (ND)
Bases de Datos Sistemas de Bases de Datos. (BDD) Diseo y administracin de Sistemas de Bases de Datos. (BDD) Escalabiiidad, eficiencia y efectividad. (BDD) Modelado y calidad de datos. (BDD) Lenguajes de DBMS. (BDD) Nociones de minera de datos (BDD).
Sistemas de Informacin Administracin y Control de proyectos. (ISII) Nociones de Auditoria y Peritaje. (ND) Teora general de Sistemas. (ND) Sistemas de Informacin. (ND) Privacidad, integridad y seguridad en sistemas de informacin. (ND) Nociones de sistemas colaborativos. (ND)
Algunas observaciones sobre los Contenidos Mnimos y su relacin con la carrera El anlisis de los contenidos mnimos con la carrera muestra un nivel de cobertura mucho ms completo y un mapeo mucho ms simple que con los planes de estudio de carreras de Estados Unidos. Esto es lgico teniendo en cuenta las caractersticas del sistema universitario Argentino en cuanto a tener carreras ms largas y adems en el hecho de tener una mayor presencia de los temas que hacen al ejercicio profesional de disciplinas relacionadas con la computacin. Por lo tanto, resulta claro que el anlisis en detalle de estos contenidos mnimos 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 resolucin ministerial, stos abarcan temas generales como disponibilidad de laboratorios, carga de trabajo prctico y otros temas que no afectan el diseo de la currcula.
La siguiente tabla muestra el llamado Body of Knowledge que debe formar parte de la educacin en Ciencias de la Computacin segn la IEEE / ACM (entre parntesis 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 DS. Discrete Structures (43 core hours) DS/FunctionsRelationsAndSets (6) DS/BasicLogic (10) DS/ProofTechniques (12) DS/BasicsOfCounting (5) DS/GraphsAndTrees (4) DS/DiscreteProbability (6) PF. Programming Fundamentals (47 core hours) PF/FundamentalConstructs (9) PF/AlgorithmicProblemSolving (6) PF/DataStructures (10) PF/Recursion (4) PF/EventDrivenProgramming (4) PF/ObjectOriented (8) PF/FoundationsInformationSecurity (4) PF/SecureProgramming (2) AL. Algorithms and Complexity (31 core hours) AL/BasicAnalysis (4) AL/AlgorithmicStrategies (6) AL/FundamentalAlgorithms (12) AL/DistributedAlgorithms (3) AL/BasicComputability (6) AL/PversusNP AL/AutomataTheory AL/AdvancedAnalysis AL/CryptographicAlgorithms AL/GeometricAlgorithms AL/ParallelAlgorithms AR. Architecture and Organization (36 core hours) Materia que lo cubre en DC
AEDII, AEDIII Probabilidad y estadstica AEDI, AEDII AEDI, AEDII AEDI, AEDII AEDI PLP --LyC
LyC LyC
Body of Knowledge IEEE / ACM AR/DigitalLogicAndDataRepresentation (7) AR/ComputerArchitectureAndOrganization (9) AR/InterfacingAndI/OStrategies (3) AR/MemoryArchitecture (5) AR/FunctionalOrganization (6) AR/Multiprocessing (6) AR/PerformanceEnhancements AR/DistributedArchitectures AR/Devices AR/DirectionsInComputing OS. Operating Systems (18 core hours) OS/OverviewOfOperatingSystems (2) OS/OperatingSystemPrinciples (2) OS/Concurrency (6) OS/SchedulingandDispatch (3) OS/MemoryManagement (3) OS/DeviceManagement OS/SecurityAndProtection (2) OS/FileSystems OS/RealTimeAndEmbeddedSystems OS/FaultTolerance OS/SystemPerformanceEvaluation OS/Scripting OS/DigitalForensics OS/SecurityModels NC. Net-Centric Computing (15 core hours) NC/Introduction(2) NC/NetworkCommunication (7) NC/NetworkSecurity (6) NC/WebOrganization NC/NetworkedApplications NC/NetworkManagement NC/Compression NC/MultimediaTechnologies NC/MobileComputing PL. Programming Languages (21 core hours) PL/Overview(2) PL/VirtualMachines(1) PL/BasicLanguageTranslation(2) PL/DeclarationsAndTypes(3) PL/AbstractionMechanisms(3) PL/ObjectOrientedProgramming(10) PL/FunctionalProgramming PL/LanguageTranslationSystems PL/TypeSystems PL/ProgrammingLanguageSemantics PL/ProgrammingLanguageDesign HC. Human-Computer Interaction (8 core
Materia que lo cubre en DC OC1 OC1 OC1 OC1 OC1 OC1 OC2 TC OC2 -SO SO SO SO SO SO SO SO SO
TC TC TC TC TC TC TC
Body of Knowledge IEEE / ACM hours) HC/Foundations (6) HC/BuildingGUIInterfaces (2) HC/UserCcenteredSoftwareEvaluation HC/UserCenteredSoftwareDevelopment HC/GUIDesign HC/GUIProgramming HC/MultimediaAndMultimodalSystems HC/CollaborationAndCommunication HC/InteractionDesignForNewEnvironments HC/HumanFactorsAndSecurity GV. Graphics and Visual Computing (3 core 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 core hours) 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 (11 core hours) IM/InformationModels (4) IM/DatabaseSystems (3) IM/DataModeling (4) IM/Indexing IM/RelationalDatabases IM/QueryLanguages IM/RelationalDatabaseDesign IM/TransactionProcessing IM/DistributedDatabases
--------------
------------
BD BD BD BD BD BD BD BD BD
Body of Knowledge IEEE / ACM IM/PhysicalDatabaseDesign IM/DataMining IM/InformationStorageAndRetrieval IM/Hypermedia IM/MultimediaSystems IM/DigitalLibraries SP. Social and Professional Issues (16 core hours) SP/HistoryOfComputing (1) SP/SocialContext (3) SP/AnalyticalTools (2) SP/ProfessionalEthics (3) SP/Risks (2) SP/SecurityOperations SP/IntellectualProperty (3) SP/PrivacyAndCivilLiberties (2) SP/ComputerCrime SP/EconomicsOfComputing SP/PhilosophicalFrameworks SE. Software Engineering (31 core hours) SE/SoftwareDesign (8) SE/UsingAPIs (5) SE/ToolsAndEnvironments (3) SE/SoftwareProcesses (2) SE/RequirementsSpecifications (4) SE/SoftwareVerificationValidation (3) SE/SoftwareEvolution (3) SE/SoftwareProjectManagement (3) SE/ComponentBasedComputing SE/FormalMethods SE/SoftwareReliability SE/SpecializedSystems SE/RiskAssessment SE/RobustAndSecurityEnhancedProgramming CN. Computational Science (no core hours) CN/ModelingAndSimulation CN/OperationsResearch CN/ParallelComputation
Algunas observaciones sobre la currcula de la ACM / IEEE y su relacin con la carrera La currcula recomendada de la ACM / IEEE tiene una gran variedad de temas, aunque con una dedicacin horaria relativamente baja (aunque se especifica que son cantidades mnimas).
En esta currcula aparecen muchos requisitos relacionados con temas aplicados que no vi mos en las currculas de universidades americanas, pero que en muchos casos estn presentes en nuestro plan de estudios actual. En cuanto al detalle de los contenidos, hay muchas ideas interesantes para tener en cuenta en la revisin de nuestro plan de estudios. Por ejemplo la presencia de los temas de diseo de interfaces hombre mquina.
Conclusiones generales
Es notable cmo todas estas universidades, en particular las tres analizadas de Estados Unidos, que vienen disputndose los primeros puestos en los Rankings con UC Berkeley durante las ltimas dcadas, tienen planes de estudio tan dismiles. 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 educacin de excelencia. Queda claro que un excelente plan de estudios no es condicin suficiente para una carrera de excelencia. La duda es si es o no condicin 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 tecnologa de punta, que por lo tanto derivan en la atraccin de los mejores alumnos, armando un crculo virtuoso. Para poner un ejemplo, Carnegie Mellon no saca buenos graduados en robtica porque tiene una buena materia de Robtica 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 slido e innovador, mientras se trabaja adems 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 computacin. Nuestra oferta de materias optativas del Departamento, y la disponibilidad de materias de otros departamentos relacionados con la computacin ofrecen una oportunidad enorme para crear especializaciones o nuevas carreras de grado. Especializaciones en Ingeniera de Software, Teora de la Computacin o Computacin Cientfica o nuevas carreras de grado como Bioinformtica son tal vez los ejemplos ms 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 ms 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 acadmica. 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 realizacin de trabajos finales en una materia especfica Proyecto de Investigacin. Cada Facultad parece tener un sesgo a partir de su nacimiento de un Departamento de Matemtica o de Ingeniera Elctrica. A medida que el software ha ido evolucionando y ganando ms espacio, tal vez las que tengan el sesgo de la Ingeniera Elctrica tengan alguna ventaja. El origen de nuestra carrera no se puede modificar, pero tal vez se pueda poner un poco ms de foco en temas relacionados con el hardware en un sentido amplio.
El anlisis 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. Debiramos prestar un poco ms de atencin a los temas de comunicacin escrita y oral / presentacin? Es bastante evidente que de nada sirve tener excelentes ideas si no se las puede comunicar efectivamente, aunque difcilmente se haya pensado previamente en tener materias de este tipo.
Bibliografa y Referencias
[1] Recomendaciones curriculares en Ciencias de la Computacin de la ACM / IEEE. Ver: http://www.acm.org//education/curricula/ComputerScience2008.pdf [2] Resolucin 786/09 de la Secretara de Polticas Universitarias de La Nacin con contenidos mnimos y requerimientos para carreras de grado de Licenciatura en Ciencias de la Computacin. Ver: http://www.coneau.edu.ar/archivos/Res786_09.pdf [3] Informacin de carreras de grado en Computacin del Massachusetts Institute of TEchnolgy. Ver: http://www.eecs.mit.edu/ug/newcurriculum/index.html [4] Informacin de carreras de grado en Computacin de la Universidad de Stanford. Ver: http://cs.stanford.edu/degrees/undergrad/ProgramSheets.shtml [5] Informacin de carreras de grado en Computacin de la Universidad de Carnegie Mellon. Ver: http://coursecatalog.web.cmu.edu/schoolofcomputerscience/ [6] Informacin de carreras de grado en Computacin del Imperial College de Londres. Ver: http://www3.imperial.ac.uk/ugprospectus/facultiesanddepartments/computing/computingcourses