Syllabus - Departamento de Ingeniería de Sistemas

Pontificia Universidad Javeriana
Departamento de Ingeniería de Sistemas
Pensamiento Algorítmico
Syllabus
Nombre de la Asignatura
Id de la Asignatura
Fecha de Actualización
Horas semanales
Créditos Académicos
Pre-Requisitos
Vigencia
Pensamiento Algorítmico
004206
Julio de 2014
Horas Contacto Clase : 4
3
Ninguno
2015
Horas Trabajo Independiente : 5
Objetivos
 El objetivo principal es estimular su capacidad para enfrentar la solución de problemas y lograr que el
estudiante desarrolle una nueva forma de pensar para que pueda emplear el computador como
herramienta para la solución de problemas.
 El alumno al terminar el curso estará en capacidad de aplicar los tres paradigmas de pensamiento que
constituyen la disciplina de la Informática: teoría, abstracción y diseño.
 Para lograr el objetivo se utilizan metodologías que ayudan a la definición y desarrollo de algoritmos.
Igualmente en la segunda parte del curso, se utiliza una herramienta para la programación (lenguaje
C/C++) para así implementar las soluciones algorítmicas en el computador.
Habilidades que contribuye a Desarrollar
 Estimular la capacidad para entender el planteamiento de problemas.
 Definir varias alternativas para solucionar un problema y seleccionar la alternativa más viable.
 Estimular la destreza para solucionar problemas mediante algoritmos.
 Desarrollar los conocimientos de programación básica.
 Desarrollar la habilidad para implementar los algoritmos diseñados en un lenguaje de programación.
Estrategias Pedagógicas
1. Aprendizaje Directivo Mediado (Clases magistrales)
2. Proyecto
3. Aprendizaje Colaborativo (Trabajo en grupo)
4. Talleres basados en problemas
5. Práctica: Interacción estudiante-profesor Apoyado por: Herramientas Tecnológicas de Interacción
6. Práctica: Revisión Bibliográfica Apoyado por: Herramientas Tecnológicas Biblioteca
Evaluación
 Primer Parcial 20%
 Segundo Parcial 25%
 Tercer Parcial
25%
 Proyecto
15%
o Primera Entrega
o Entrega Final y Sustentación
 Quices y Talleres 15%
5%
10%
Referencias Bibliográficas
Solución de Problemas
1. Peña, Monica, El Problema
2. Polya, George, Como Plantear y Resolver Problemas, Editorial Trillas
3. Wod, Larry E, Estrategias de Pensamiento, Ejercicios de Agilidad Mental, Editorial Labor
4. Rueda Serrano, Jairo, Matemática divertida, Sistemas & Computadores
5.
6.
7.
8.
9.
Bolt, Brian, Actividades matemáticas, Editorial Labor
Bolt, Brian, Divertimentos matemáticos, Editorial Labor
Bolt, Brian, Más actividades matemáticas, Editorial Labor
Bolt, Brian, Aún más actividades matemáticas, Editorial Labor
Mataix Lorda, Mariano, Fácil, menos fácil y difícil : 100 problemas de lógica y matemáticas, Editorial
Marcombo
10. Castro Ch, Iván, El arte de razonar, Pontificia Universidad Javeriana 2003
Algoritmos
1. Cairó Osvaldo, Metodología de la programación, Segunda Edición, AlfaOmega , 2003
2. Joyanes Aguilar, Luis Fundamentos de Programación, Ed. McGraw Hill
Joyanes Luis, Problemas de Metodología de la Programación, Mc Graw Hill
3. Becerra, César Algoritmos: Conceptos Básicos , 1995
Solución de problemas utilizando un Lenguaje de Programación
 Savitch Walter, Resolución de Problemas con C++, Ed. Pearson
Deitel H.M., Como Programar en C/C++, Segunda Edición. Prentice Hall. 1995
 Joyanes, Luis, Programación en C++, McGraw Hill. 2000
 Mata Toledo, Ramón Introducción a la programación, McGraw Hill, 2001
Programa por semana y por clase
Semana
Clase
Tema
Presentación del Curso
1
1



1
2
2
3
2
4
3
5
3
4
6
7
4
8
Objetivos del curso
Método para solución de problemas
Fases en la solución de problemas (ciclo de vida)
Solución de problemas
Análisis y Diseño de Problemas.
Presentación de una plantilla guía para análisis y diseño.
Solución de problemas utilizando algoritmos
 Introducción a los Algoritmos
Definición
Modelo Conceptual
Componentes
Características
 Formas de representar un algoritmo
Pseudocódigo /Flujogramas
 Tipos de Datos
entero
real
caracter
cadena (string)
booleano
 Variables, constantes
 Operadores aritméticos y lógicos
 Expresiones
 Instrucciones de entrada / salida y asignación, Introducción a PsiCoder
Taller Utilización de Psicoder
Entrega del enunciado del Proyecto a los Estudiantes
Sentencias Condicionales
 Alternativa sencilla (si - fin_si)

Alternativa doble (si – sino – fin_si))
Taller Condicionales Sencillos y Dobles
Sentencias Condicionales
 Condicionales Anidados (si – sino si … fin_si)

Condicional Múltiple Excluyente (seleccionar)
 Condicionales Anidados – Múltiple Excluyente

Taller Condicionales Anidados
Sentencias Repetitivas
 Mientras (mientras (condición) hacer …. – fin_mientras)

Repetir (hacer …. mientras(condición))

Para (para (valor inicial; valor final; incremento) …. fin_para
5
9
5
6
10
11
Taller Sentencias Repetitivas
6
12
Taller Sentencias Repetitivas
7
13
7
14
Sentencias Repetitivas
 Contadores
 Acumuladores
 Encontrar Mayor/Menor
 Terminación de ciclos
o Con contador
o Con respuesta de usuario
o Con centinela
o Bandera (variable booleana)
Primer Parcial Conjunto
Presentación en clase de la primera entrega del Proyecto
El objetivo es verificar si los estudiantes comprendieron el enunciado del proyecto y
se espera que utilicen psicoder para resolver una o dos opciones del proyecto
donde se involucre sentencias condicionales y repetitivas.
Lenguaje de programación
 Conceptos
 Sistemas Operativos
 Lenguajes de Programación
 Compilación
 Instrucciones Psicoder – Instrucciones Lenguaje C/C++ (Lo visto en clases
anteriores al lenguaje de programación).
Psicoder
Lenguaje C/C++
Leer
cin>>
Imprimir
cout<<
si (condición)
If (condición)
entonces …
else
si_no
…..
Mientras (condición)
hacer
…..Fin_Mientras
Seleccionar
(condición) entre …
…
While ( )
Switch (condición)
……
.....
Taller Psicoder – Lenguaje de Programación
8
15
Lenguaje de programación
 Depuración de un programa
 Errores de sintaxis
 Errores Lógicos
 Mensajes de error
 Errores en tiempo de ejecución.
 Constantes declaradas const, #define
 Operadores de incremento y decremento (++, --)
 Conversión de tipos
 Sentencia break en los ciclos

Comentarios en el Lenguaje de Programación
8
9
16
17
Taller Lenguaje de programación
Funciones
 Definición
 Firma y Prototipo
 Terminación de funciones
 Retorno
 Parámetros (sólo por valor)
 Ámbito global y local de variables
Concepto y Uso de Funciones de Biblioteca
 Funciones Numéricas
 Funciones matemáticas de carácter general
 Funciones Trigonométricas
 Funciones logarítmicas y exponenciales
 Funciones aleatorias
Taller de Funciones
Arreglos Unidimensionales - Vectores
 Declaración
 Subíndices
 Almacenamiento en memoria de los arreglos
 Tamaño de los arreglos.
Taller Arreglos Unidimensionales
9
10
18
19
10
11
20
21
11
12
12
22
23
24
13
25
13
26
Arreglos en dos dimensiones - Matrices

Conceptos Básicos

Declarar una matriz

Recorrer una Matriz por filas

Recorrer una matriz por columnas

Capturar e imprimir datos de una matriz
14
27
14
15
15
16
16
28
29
30
31
32
Arreglos en dos dimensiones – Matrices
Operaciones con matrices
Taller Arreglos en dos dimensiones - Matrices
Estructuras (Registros)
Taller de Estructuras
Arreglos de Estructuras
Taller Arreglo de Estructuras
Tercer Parcial Conjunto
Entrega del Proyecto
17 y 18
Arreglos Unidimensionales – Vectores

Algoritmo de Búsqueda

Algoritmos de Ordenación
Taller Vectores - Aplicación de Métodos de Ordenación y Búsqueda
Vectores y Funciones (Vectores como parámetros)
Taller de Vectores y Funciones
Segundo Parcial Conjunto
Revisión avance del proyecto (Retroalimentación)
proyecto y uso de arreglos
Mínimo una función del