Publicado el 6 de Febrero del 2019
7.464 visualizaciones desde el 6 de Febrero del 2019
9,4 MB
656 paginas
Creado hace 6a (20/02/2018)
Tabla de contenido
Prefacio
Nivel 1: Problemas, Soluciones y Programas
Objetivos Pedagógicos
Motivación
Problemas y Soluciones
Casos de Estudio
Comprensión y Especificación del Problema
Elementos de un Programa
Diseño de la Solución
Construcción de la Solución
Hojas de Trabajo
Nivel 2: Definición de Situaciones y Manejo de Casos
Objetivos Pedagógicos
Motivación
El Primer Caso de Estudio
Nuevos Elementos De Modelado
Expresiones
Clases y Objetos
Instrucciones Condicionales
Responsabilidades de una Clase
Eclipse: Nuevas Opciones
Hojas de trabajo
Nivel 3: Manejo de Grupos de Atributos
Objetivos Pedagógicos
Motivación
Caso de Estudio Nº 1: Las Notas de un Curso
Contenedoras de Tamaño Fijo
Instrucciones Repetitivas
Caso de Estudio Nº 2: Reservas en un Vuelo
Caso de Estudio Nº 3: Una Tienda de Libros
1.1
1.2
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
1.2.9
1.3
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.3.10
1.4
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
2
Contenedoras de Tamaño Variable
Uso de Ciclos en Otros Contextos
Creación de una Clase en Java
Hojas de trabajo
Nivel 4: Definición y Cumplimiento de Responsabilidades
Objetivos Pedagógicos
Motivación
Caso de Estudio Nº 1: Un Club Social
Asignación de responsabilidades
Manejo de las Excepciones
Contrato de un Método
Diseño de las Signaturas de los Métodos
Caso de Estudio Nº 2: Un Brazo Mecánico
Hojas de trabajo
Nivel 5: Construcción de la Interfaz Gráfica
Objetivos Pedagógicos
Motivación
El Caso de Estudio
Construcción de Interfaces Gráficas
Elementos Gráficos Estructurales
Elementos de Interacción
Mensajes al Usuario y Lectura Simple de Datos
Arquitectura y Distribución de Responsabilidades
Ejecución de un Programa en Java
Hojas de trabajo
Nivel 6: Manejo de Estructuras de dos Dimensiones y Persistencia
Objetivos Pedagógicos
Motivación
Caso de Estudio Nº 1: Un Visor de Imágenes
Contenedoras de dos Dimensiones: Matrices
Caso de Estudio Nº 2: Campeonato de Fútbol
Persistencia y Manejo del Estado Inicial
Completar la Solución del Campeonato
Proceso de Construcción de un Programa
1.4.8
1.4.9
1.4.10
1.4.11
1.5
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.5.9
1.6
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
1.6.8
1.6.9
1.6.10
1.7
1.7.1
1.7.2
1.7.3
1.7.4
1.7.5
1.7.6
1.7.7
1.7.8
3
Hojas de trabajo
Anexos
A. El Lenguaje Java
B. Resumen de Comandos de Windows
C. Tabla de Códigos UNICODE
1.7.9
1.8
1.8.1
1.8.2
1.8.3
4
Prefacio
Fundamentos de Programación
5
Prefacio
Prefacio
Objetivos
Este libro es uno de los resultados del proyecto Cupi2, un proyecto de actualización
curricular de la Universidad de los Andes (Bogotá, Colombia), cuyo principal propósito es
encontrar mejores formas de enseñar/aprender a resolver problemas usando como
herramienta un lenguaje de programación de computadores.
Este libro tiene como objetivo servir de herramienta fundamental en el proceso de
enseñaza/aprendizaje de un primer curso de programación, usando un enfoque novedoso
desde el punto de vista pedagógico, y moderno desde el punto de vista tecnológico.
Queremos que el libro sea una herramienta de trabajo dentro de un proceso de aprendizaje,
en el que el lector debe ser su principal protagonista. Por esta razón, a lo largo de los
niveles que conforman el libro, se le irá pidiendo al lector que realice pequeñas tareas a
medida que se presenta la teoría y, luego, que resuelva problemas completos directamente
sobre el libro.
El Público Destinatario
El libro está dirigido a estudiantes que toman por primera vez un curso de programación de
computadores, sin importar el programa de estudios que estén siguiendo. Esto quiere decir
que para utilizar el libro no se necesita ninguna formación específica previa, y que las
competencias generadas con este texto se pueden enmarcar fácilmente dentro de cualquier
perfil profesional.
El Enfoque del Libro
La estrategia pedagógica diseñada para este libro gira alrededor de cinco pilares, los cuales
se ilustran en la siguiente figura.
6
Prefacio
Aprendizaje activo: La participación activa del lector dentro del proceso de aprendizaje es
un elemento fundamental en este tema, puesto que, más que presentar un amplio conjunto
de conocimientos, el libro debe ayudar a generar las competencias o habilidades necesarias
para utilizarlos de manera efectiva. Una cosa es entender una idea, y otra muy distinta
lograr utilizarla para resolver un problema.
Desarrollo incremental de habilidades: Muchas de las competencias necesarias para
resolver un problema usando un lenguaje de programación se generan a partir del uso
reiterado de una técnica o metodología. No es suficiente con que el lector realice una vez
una tarea aplicando los conceptos vistos en el curso, sino que debe ser capaz de utilizarlos
de distintas maneras en distintos contextos.
Equilibrio en los ejes temáticos: La solución de un problema usando un lenguaje de
programación incluye un conjunto de conocimientos y habilidades de varios dominios.
Dichos dominios son los que en la siguiente sección denominamos ejes conceptuales. Este
curso intenta mantener un equilibro entre dichos ejes, mostrando así al lector que es en el
adecuado uso de las herramientas y técnicas que provee cada uno de los ejes, donde se
encuentra la manera correcta de escribir un programa de computador.
Basado en problemas: El libro gira alrededor de 24 problemas completos, cuya solución
requiere el uso del conjunto de conceptos y técnicas presentadas en el libro. La mitad de los
problemas se utilizan como casos de estudio y la otra mitad, como hojas de trabajo.
Actualidad tecnológica: En este libro se utilizan los elementos tecnológicos actuales, entre
los cuales se encuentran el lenguaje de programación Java, el lenguaje de modelado UML,
el ambiente de desarrollo de programas Eclipse y las técnicas de la programación orientada
por objetos
7
Prefacio
Los Ejes Conceptuales de la Programación
Para resolver un problema utilizando como herramienta un lenguaje de programación, se
necesitan conocimientos y habilidades en siete dominios conceptuales (llamados también
ejes temáticos), los cuales se resumen en la siguiente figura:
Modelado y solución de problemas: Es la capacidad de abstraer la información de la
realidad relevante para un problema, de expresar dicha realidad en términos de algún
lenguaje y proponer una solución en términos de modificaciones de dicha abstracción. Se
denomina "análisis" al proceso de crear dicha abstracción a partir de la realidad, y
"especificación del problema" al resultado de expresar el problema en términos de dicha
abstracción.
Algorítmica: Es la capacidad de utilizar un conjunto de instrucciones para expresar las
modificaciones que se deben hacer sobre la abstracción de la realidad, para llegar a un
punto en el cual el problema se considere resuelto. Se denomina "diseño de un algoritmo" al
proceso de construcción de dicho conjunto de instrucciones.
Tecnología y programación: Son los elementos tecnológicos necesarios (lenguaje de
programación, lenguaje de modelado, etc.) para expresar, en un lenguaje comprensible por
una máquina, la abstracción de la realidad y el algoritmo que resuelve un problema sobre
dicha abstracción. Programar es la habilidad de utilizar dicha tecnología para que una
máquina sea capaz de resolver el problema.
8
Prefacio
Herramientas de programación: Son las herramientas computacionales (compiladores,
editores, depuradores, gestores de proyectos, etc.) que permiten a una persona desarrollar
un programa. Se pueden considerar una implementación particular de la tecnología.
Procesos de software: Es el soporte al proceso de programación, que permite dividir el
trabajo en etapas claras, identificar las entradas y las salidas de cada etapa, garantizar la
calidad de la solución, y la capacidad de las personas involucradas y estimar en un futuro el
esfuerzo de desarrollar un programa. Aquí se incluye el ciclo de vida de un programa, los
formularios, la definición de los entregables, el estándar de documentación y codificación, el
control de tiempo, las técnicas de inspección de código, las técnicas de pruebas de
programas, etc.
Técnicas de programación y metodologías: Son las estrategias y guías que ayudan a
una persona a crear un programa. Se concentran en el cómo hacer las cosas. Definen un
vocabulario sobre la manera de trabajar en cada una de las facetas de un programa, y
están constituidas por un conjunto de técnicas, métricas, consejos, patrones, etc. para que
un programador sea capaz de pasar con éxito por todo el ciclo de vida de desarrollo de una
aplicación.
Elementos estructuradores y arquitecturas: Definen la estructura de la aplicación
resultante, en términos del problema y de los elementos del mundo del problema. Se
consideran elementos estructuradores las funciones, los objetos, los componentes, los
servicios, los modelos, etc. Este eje se concentra en la forma de la solución, las
responsabilidades de cada uno de los elementos, la manera como esos elementos se
comunican, etc.
La Estructura del Libro
El libro sigue una estructura de niveles, en el cual se introducen los conceptos de manera
gradual en los distintos ejes alrededor de los cuales gira la programación. Para hacerlo, se
utilizan diversos casos de estudio o problemas, que le dan contexto a los temas y permiten
ayudar a generar las habilidades necesarias para que el lector utilice de manera adecuada
los conceptos vistos.
Los 6 niveles en los cuales se encuentra dividido el libro se muestran en la siguiente figura:
9
Prefacio
En cada uno de dichos niveles, se presentan de manera trasversal los elementos de los
siete ejes conceptuales, dando lugar a una estructura como la que se presenta a
continuación:
El contenido de cada uno de los niveles se resume de la siguiente manera:
Nivel 1. Problemas, Soluciones y Programas:
10
Prefacio
Se explica el proceso global de solución de un problema con un programa de computador.
Esto incluye las etapas que deben se
Comentarios de: Fundamentos de Programación - Aprendizaje activo basado en casos (0)
No hay comentarios