TC2006
Lenguajes de programación Programming Languages
Curso en el que se recomienda incorporar el uso de tecnologías de información.
CIP: 110101  Ciencias Computacionales/de Información   CL-L-U-CA-UDC:  3-0-8-3-3.5       

Disciplina asociada:  

Tecnologías Computacionales

Escuela:  

Ingeniería y Ciencias

Departamento Académico:   

Computación

Programas académicos:   

Requisitos:  

(Haber Cursado TC2003 y Haber Cursado TC2001) o (Haber Cursado TC2020 y Haber Cursado TC2017)

Equivalencia:  

CB00853

Intención del curso en el contexto general del plan de estudios:  

Curso de nivel intermedio de computación, que proporciona a los alumnos la oportunidad de conocer y aplicar estilos de programación distintos a los que hasta el momento han utilizado durante su carrera. Esto resulta de suma importancia, ya que en su vida profesional tendrán que enfrentarse a una gran diversidad de lenguajes y estilos de programación. El conocer las ventajas y desventajas que tienen distintos lenguajes y paradigmas de programación facilita el aprendizaje y dominio de nuevos lenguajes. Requiere de conocimientos previos de programación orientada a objetos y/o imperativa, estructuras de datos, expresiones regulares, gramáticas libres de contexto. Como resultado de aprendizaje, el alumno desarrolla programas que implementan la solución a problemas de programación de mediana complejidad usando de manera adecuada los estilos de programación funcional, concurrente/paralela y basada en reglas de razonamiento.

Objetivo general de la Unidad de Formación:  

Al finalizar este curso se espera que el alumno: 1) conozca los elementos esenciales que conforman un lenguaje de programación, para favorecer la habilidad de aprender por cuenta propia lenguajes nuevos; 2) tenga una visión general de diferentes estilos de programación, a través del conocimiento y aplicación de algunos lenguajes de programación representativos de éstos.

Técnica didáctica sugerida:  

Aprendizaje colaborativo

Bibliografía sugerida:  

LIBROS DE TEXTO:
* Scott, Michael Lee, Programming language pragmatics, California : San Francisco : Morgan Kaufmann, 2011, eng,  1558604421 (encaudernado), 1558605789 (rústica)
* Friedman, Daniel P., Essentials of programming languages, 2nd ed., Massachusetts : Cambridge, Mass. : MIT Press, 2003, eng,  0262062178 (encuadernado : papel alcalino)
* Kenneth C. Louden, PROGRAMMING LANGUAGES. PRINCIPLES AND PRACTICE., Second Ed., Course Technology, 2006, 

LIBROS DE CONSULTA:
* Dybvig, R. Kent., The scheme programming language, 3a ed., Massachusetts : Cambridge, Mass. : MIT Press, eng,  0262541483 (pbk. : alk. paper)
* M. Ben-Ari, PRINCIPLES OF CONCURRENT AND DISTRIBUTED PROGRAMMING, Segunda Edición, Adisson Wesley, c2003, 

Perfil del Profesor:  

(110101)Maestría en Ciencias Computacionales/de Información ; (110701)Maestría en Ciencias Computacionales ; (110102)Maestría en Inteligencia Artificial /Robótica ; (110103)Maestría en Tecnología de la Información/Informática/Sistemas Computacionales ; (110101)Doctorado en Ciencias Computacionales/de Información ; (110701)Doctorado en Ciencias Computacionales ; (110102)Doctorado en Inteligencia Artificial /Robótica ; (110103)Doctorado en Tecnología de la Información/Informática/Sistemas Computacionales
CIP: 110101, 110701, 110102, 110103

Experiencia recomendada:  

Profesor con maestría en algún área de ciencias computacionales y con experiencia desarrollando software usando diferentes lenguajes de programación.

Idioma en que se imparte la materia:  


Español
Course in which it’s recommended to incorporate the use of information technologies.
CIP: 110101  Computer and Information Sciences, General.   CL-L-U-CA-UDC:  3-0-8-3-3.5       

Discipline:  

Computer Technologies

School:   

Engineering and Sciences

Academic Department:   

Computing

Programs:   

Prerequisites:  

( TC2003 and TC2001) or ( TC2020 and TC2017)

Equivalences:  

CB00853

Course intention within the general study plan context:  

Intermediate level course in computing. Students will know and apply different programming styles which will be very useful for their professional development. They will also know advantages and disadvantages of different programming languages and paradigms which will help students to have a broad command of new languages. Previous knowledge on object-oriented, imperative programming, common expressions and free context grammars. As a learning result, students will develop programs that implement solutions for medium complex programming problems by using functional, concurrent/parallel styles based on reasoning rules.

Course objective:  

Upon completion of this course, students will be able to: identify the essential elements which constitute a programming language in order to develop the ability to learn new languages on their own; have a general perspective of different styles of programming, through the knowledge and application of some programming languages which are representative of the styles.

Teaching and learning tecniques:  

Collaborative learning

Suggested Bibliography:  

TEXT BOOKS:
* Scott, Michael Lee, Programming language pragmatics, California : San Francisco : Morgan Kaufmann, 2011, eng,  1558604421 (encaudernado), 1558605789 (rústica)
* Friedman, Daniel P., Essentials of programming languages, 2nd ed., Massachusetts : Cambridge, Mass. : MIT Press, 2003, eng,  0262062178 (encuadernado : papel alcalino)
* Kenneth C. Louden, PROGRAMMING LANGUAGES. PRINCIPLES AND PRACTICE., Second Ed., Course Technology, 2006, 

BOOKS FOR CONSULTATION:
* Dybvig, R. Kent., The scheme programming language, 3a ed., Massachusetts : Cambridge, Mass. : MIT Press, eng,  0262541483 (pbk. : alk. paper)
* M. Ben-Ari, PRINCIPLES OF CONCURRENT AND DISTRIBUTED PROGRAMMING, Segunda Edición, Adisson Wesley, c2003, 

Academic credentials required to teach the course:  

(110101)Master Degree in Computer/Information Sciences and (110701)Master Degree in Computational Sciences and (110102)Master Degree in Artificial Intelligence/Robotics and (110103)Master Degree in Information Technology. and (110101)Doctoral Degree in Computer/Information Sciences and (110701)Doctoral Degree in Computational Sciences and (110102)Doctoral Degree in Artificial Intelligence/Robotics and (110103)Doctoral Degree in Information Technology.
CIP: 110101, 110701, 110102, 110103

Language of Instruction:  


Spanish