You are on page 1of 9

UNIVERSIDAD DEL TOLIMA

Instituto de Educación a Distancia - IDEAD

PIC (Plan Integral de Curso)

Programa: Ingeniería de Sistemas por ciclos


Área: Ingeniería aplicada
Núcleo
Programático: Sistemas de Información
Asignatura: Paradigmas de Programación
Semestre: II
Créditos: 4
(15 horas de trabajo académico en sesiones presénciales, 2 horas de acuerdo
pedagógico, 4 horas de convocatoria individual, asesorías, actividades no
presénciales: trabajo colaborativo en CIPAS, lecturas, consultas e investigación)

Proyecto de
Investigación: Los Sistemas de Información como agentes de cambio para la
competitividad organizacional.

OBJETO DE TRABAJO CURRICULAR

Ante la transitoriedad de las tecnologías informáticas, los estudiantes de sistemas


necesitan capacitarse con conocimientos y habilidades para ejercer en forma
competente esta profesión. Fundamentalmente, se requiere que el ingeniero tenga
capacidad para “aprender a aprender” y adaptación al cambio, mentalidad de
actualización permanente, capacidad para valorar, aportar y transformar el medio
en que se desempeña.

Para el dominio de las tecnologías computacionales, con énfasis en los sistemas


de información, el estudiante deberá apropiarse de los aspectos cognitivos
relacionados con programación, construyendo conceptos básicos sobre:
Generalidades de los paradigmas de programación más comunes y
características principales de los lenguajes de programación correspondientes.

COMO ESTRATEGIA METODOLÓGICA PRINCIPAL, SE PROMOVERÁ LA INTERACCIÓN Y DESARROLLO DE


HABILIDADES DE AUTO-ESTUDIO, MOTIVANDO SIEMPRE AL ESTUDIANTE PARA QUE CONSULTE, INVESTIGUE,
SOLUCIONE EJERCICIOS Y PROBLEMAS DEL MUNDO REAL, APLICANDO LOS PARADIGMAS DE
PROGRAMACIÓN EN UN MUNDO COMPUTACIONAL.
OBJETIVOS
o Generales
Formar profesionales con competencias necesarias para la eficiente
producción de software.
o Específicos
• Dominar los diferentes paradigmas de programación (imperativo, funcional,
orientado a objetos, lógico o declarativo…).

• Hacer posible una mejor elección del lenguaje de programación.

• Fomentar en el estudiante su espíritu de investigación en el campo del


análisis y desarrollo de software.

PRINCIPIOS DE FORMACIÓN
• Aprender a diferenciar los diferentes paradigmas de programación

• Facilitar el aprendizaje de un nuevo lenguaje de programación.

• Mejorar la habilidad para desarrollar programas eficientes.

• Hacer posible una mejor elección del lenguaje de programación.

• Optimizar el uso de los lenguajes de programación disponibles.

• Aumentar el propio vocabulario con construcciones útiles sobre


programación.

• Fomentar en el estudiante su espíritu de investigación en el campo del


análisis y desarrollo de software.

• Dominar los diferentes paradigmas de programación (imperativo, funcional,


orientado a objetos, lógico o declarativo…).

ARTICULACIÓN DEL CURSO


Los procesos de enseñanza y de aprendizaje han evolucionado a través del
tiempo, como ha sucedido también con los paradigmas y lenguajes de
programación. La educación contemporánea exige un gran cambio de actitud,
tanto de alumnos como de docentes, y es por eso que atrás quedaron los
modelos gastados del pasado. Hoy nuestro reto es formar profesionales para la
comprensión de las necesidades de una comunidad y entrega de eficientes
alternativas de solución en el mundo del software, un mundo abstracto,
siempre dinámico, cambiante e interdisciplinario que exige una constante
actualización, para lo cual se requiere mayor habilidad de auto-estudio,
capacidad de lectura crítica y actitud investigativa.

Las tecnologías de desarrollo de software se han convertido en las últimas


décadas en uno de los motores de la economía mundial. Por ello es importante
que los estudiantes conozcan, y aprendan haciendo, los conceptos
fundamentales, las técnicas de análisis, diseño y construcción de programas
genéricos.
Sólo a través de un aprendizaje autónomo y significativo, el alumno puede ser
el verdadero protagonista de su propio proceso de formación.

JUSTIFICACIÓN DEL CURSO


La formación del estudiante en el manejo de los diferentes paradigmas de
programación de computadores le permitirá aplicar su conocimiento para la
solución de diversos problemas reales en el contexto social. Para desarrollar
software de calidad, se requiere también la capacidad de elegir el paradigma y el
lenguaje de programación pertinentes.

UNIDADES ACADÉMICAS
• Unidad 1
Introducción a los Paradigmas de Programación
• Descripción y análisis de temática
Descripción
Existen más de 1000 lenguajes de programación y normalmente uno utiliza 1 o
dos, hasta cuatro quizás. Muchos estudiantes piensan que si no van a utilizar
esos lenguajes, entonces no deberían estudiarlos, pero existen muchas
razones en el mundo del software que justifican la necesidad e importancia de
estudiar, no sólo las características principales de los lenguajes, sino también
el paradigma de programación al cual corresponden y muchos otros conceptos
esenciales e inherentes al desarrollo de software.

Temática
• Conceptos fundamentales de programación
• Reseña histórica de los Lenguajes de Programación
• Influencias en la evolución de los LP
• Atributos de un buen Lenguaje de Programación
• Modelos básicos de Paradigmas de los LP
• Nuevos Paradigmas de Programación

Preguntas generadoras
• ¿Cuál es la diferencia entre un compilador y un intérprete?
• ¿Por qué la capacidad de los computadores influye en la evolución de los
lenguajes de programación?
• ¿Un programa escrito en lenguaje de alto nivel se ejecuta más rápido que
un programa escrito en lenguaje de bajo nivel?
• ¿En qué consiste la arquitectura de Von Neumann?
• ¿Qué constituye el entorno de programación?
• ¿En cuál paradigma los lenguajes de programación están orientados al
“qué” y no al “cómo”?.
• ¿Por qué es importante la portabilidad de un lenguaje de programación?

Acreditación de la Unidad
Dominar los conceptos fundamentales de programación.

• Unidad 2
Programación Imperativa o Procedural
• Descripción y análisis de temática
Descripción
Es el paradigma clásico o tradicional. En el paradigma imperativo, un programa
es visto como una lista de instrucciones o comandos. Los programas
imperativos o procedurales, explícitamente o implícitamente, asumen el
computador basado en la arquitectura de Von Neumann.

Temática
• Características del paradigma imperativo
• Lenguaje C
• Tipos de datos
• Estructuras de control
• Procesos iterativos
• Definición de funciones
• Estructuras de datos

Preguntas generadoras
• ¿Cuáles son los tipos de datos básicos en programación? ¿Existen
restricciones al declarar variables y/o constantes? ¿En qué se diferencian
estos identificadores?
• ¿Cuáles son los operadores matemáticos, relacionales y lógicos? ¿Existe
alguna jerarquía entre estos operadores?
• ¿Cómo añadir comentarios a un programa y para qué sirven?
• ¿Para qué sirve una instrucción de asignación? ¿Cuáles son las
instrucciones de entrada/salida?
• ¿Qué son las estructuras de selección y para qué se utilizan?
• ¿Para qué sirven los contadores y acumuladores en programación?
• ¿Cómo devuelve valores una función? ¿cuántos valores puede retornar una
función?

Acreditación de la Unidad
Comprender las principales características del paradigma de programación
imperativa.

• Unidad 3
Programación Funcional
• Descripción y análisis de temática
Descripción
Un punto de vista alternativo de la computación representado por un lenguaje
de programación consiste en examinar la función que el programa representa,
y no sólo los cambios de estado conforme el programa se ejecuta, enunciado
por enunciado.

Temática
• Características del paradigma Funcional
• Imperativo Vs Funcional
• Lenguaje Scheme
• Tipos de datos
• Sintaxis
• Definición de procedimientos
• Estructuras de control
• Procedimientos recursivos
• Listas

Preguntas generadoras
• ¿Qué significa la notación posfija en programación Funcional?
• ¿Cómo se realiza el control de un programa a través de recursión?
• ¿Se utiliza la instrucción de asignación en un programa Funcional?
• ¿En qué consiste el Lexical Scoping del lenguaje Scheme?
• ¿Qué tipo de aplicaciones se desarrollan con el paradigma de
programación Funcional?

Acreditación de la Unidad
Comprender las principales características del paradigma de programación
Funcional.

• Unidad 4
Programación Orientada a Objetos
• Descripción y análisis de temática
Descripción
La programación Orientada a Objetos es un paradigma muy importante en el
desarrollo de software contemporáneo. En la programación Orientada a
Objetos, las estructuras de datos y los algoritmos se integran en bloques o
unidades llamadas Clases.

Temática
• Características de la Programación Orientada a Objetos
• Clases y Objetos
• Herencia
• Polimorfismo
• Lenguaje Java
• Tipos de datos
• Creación de Objetos
• Constructores
• Applets
Preguntas generadoras
• ¿Cuál es la diferencia entre una Clase y un Objeto?
• ¿En qué consiste el encapsulamiento?
• ¿Cómo se comunican los Objetos?
• ¿Cómo se accede a los atributos de una Clase?
• ¿Qué es una Clase Base y qué características debe tener una Clase para
ser considerada así?
• ¿A qué se le llama variables de instancia?
• ¿Toda Clase definida en Java debe ser una extensión de otra Clase?
• ¿La sobrecarga es una clase de Polimorfismo?

Acreditación de la Unidad
Comprender las principales características del paradigma de Programación
Orientada a Objetos.

• Unidad 5
Programación Lógica
• Descripción y análisis de temática
Descripción
La programación Lógica, la otra variedad de la programación declarativa, usa
como base sentencias de la lógica de primer orden, en concreto las cláusulas
de Horn (restricción del Cálculo de Predicados de Primer Orden) y su forma de
ejecución es el principio de Resolución de Robinson.

Temática
• Características de la Programación Lógica
• Lenguaje Prolog
• Hechos y Reglas
• Preguntas (Queries)
• Cláusulas de Horn
• Cláusulas de Horn y Prolog
• Listas
Preguntas generadoras
• ¿En qué consiste un motor de inferencia?
• ¿El lenguaje natural es muy diferente del Cálculo de predicados?
• ¿Qué es una pregunta en Prolog?
• ¿Cuál es la estructura de una cláusula de Horn?
• ¿Qué tipo de aplicaciones se desarrollan con el paradigma de
programación Lógica?

Acreditación de la Unidad
Comprender las principales características del paradigma de Programación
Lógica.

ACREDITACIÓN GENERAL DEL CURSO


Cada CIPAS deberá desarrollar un proyecto computacional utilizando alguno
de los paradigmas de programación estudiados.

MATERIAL DE CONSULTA RECOMENDADO

• Pratt, Terrence W. Lenguajes de Programación. Prentice-Hall.

• Schildt, Herbert. C guía de autoenseñanza. McGraw-Hill.

• Stroustrup, Bjarne. El lenguaje de programación C++. Addison Wesley.

• Deitel, H.M. Cómo programar en C/C++. Prentice-Hall.

• Joyanes Aguilar, Luis. Programación orientada a objetos. McGraw-Hill.

• Fernández Sastre, Sergio. Fundamentos del diseño y la programación orientada a


objetos. McGraw-Hill.

• Deitel, Harvey. C/C++ cómo programar y Java. Prentice-Hall.

• Villalobos, Jorge / Casallas, Rubby. Fundamentos de programación. Aprendizaje


activo basado en casos. Pearson Educación

Enlaces de interés:

• www.frsf.utn.edu.ar/universidad_virtual/catedras/sistemas/paradigmas/
• www.elrincondelc.com

• www.programadores.net

• www.c.conclase.net

• www.programacion.com

• www.lawebdelprogramador.com

• www.toptutoriales.com

• http://www.java.sun.com/docs/books/tutorial/

• www.abcdatos.com/tutoriales/programacion/prolog.html

• www.mundotutoriales.com/ tutoriales_prolog-mdpal15249.htm

• es.wikipedia.org/wiki/Programación_funcional

• es.wikipedia.org/wiki/Écheme

• webdia.cem.itesm.mx/ac/rtrejo/Scheme/karina/

• www.geocities.com/v.iniestra/apuntes/pro_log/

• www.lania.mx/biblioteca/newsletters/ 1996-primavera-verano/art4.html

• www.solocursos.net/lisp-slckey14587.htm

http://www.cui.edu.co/~gmartin

You might also like