Py-Libre¶
Prólogo¶
El objetivo de este libro electrónico interactivo, llamado Py-Libre, es el de apoyar a los alumnos del curso de introducción a la programación de la Escuela de Ingeniería UC, en el aprendizaje de los conceptos básicos de programación computacional para modelar y resolver problemas en ingeniería, matemática y ciencias básicas. Se utiliza el lenguaje Python como base para demostrar los conceptos y generar la interpretación y solución de problemas.
El énfasis del libro está más en el “aprender haciendo” que en el desarrollo conceptual o teórico. Para estos efectos se cuenta con una herramienta interactiva (Runestone, http://interactivepython.org/) que permite probar directamente (desde el mismo libro-electrónico que se accede por la Web) diversos programas y visualizar los resultados de su ejecución. Se presentan dos modalidades de ejercicios interactivos: programas incompletos que se pueden rellenar y luego ejecutar o simplemente un espacio para escribir un programa nuevo y probarlo, todo esto sin salir del Py-Libre.
Los editores de este libro agradecen el financiamiento de FONDEDOC Universidad Católica de Chile, el generoso apoyo de la comunidad Runestone Iteractive (http://interactivepython.org/) y al alumno Adrián Soto por la instalación de los servicios de Runestone y la implementación de los ejercicios interactivos. También se agradece a los profesores que han generado diversos materiales: Jorge Baier, Daniela Caballeros y Cristián Ruz.
Ignacio Casas
Valeria Hershkovic
Editores
Tabla de Contenidos¶
- 1. Razonamiento Computacional
- Contenidos
- 1.1 Introducción a la Programación
- 1.2 Modelación
- 1.3 Evolución del método científico
- 1.4 Asunto éticos en la informática
- 1.5 Programas, lenguajes y compiladores
- 1.6 Hardware: los “fierros” del computador
- 1.7 Algoritmos
- 1.8 Depuración (“debugging”) de programas
- 1.9 Resumen y glosario
- 1.10 Referencias
- 2. Introducción al lenguaje Python
- 3. Control de Flujo: Condicionales
- 4. Control de Flujo: Ciclos-Iteraciones
- 5. Funciones
- 6. Strings: Cadenas de caracteres
- 7. Listas: Secuencias de elementos
- 8. Archivos: Datos en memoria secundaria
- 9. Programación con Objetos y Clases
- Contenidos
- 9.1 Modelación del mundo real con objetos
- 9.2 Definiendo y utilizando una nueva clase de objetos
- 9.3 Estructura general de un programa orientado a objetos
- 9.4 Método constructor: Creación de objetos/instancias de una clase
- 9.5 Creación de métodos e invocación de ellos
- 9.6 Sobrecarga de operadores
- 9.7 Ejemplos
- 9.8 Ejercicios
- 10. Búsqueda y Ordenamiento
- 11. Recursión
- Contenidos
- 11.1 Introducción a recursión
- 11.2 La repetición descrita como recursión
- 11.3 Funciones Recursivas: Más Allá de los Ejemplos Simples
- 11.4 Merge Sort: El Poder de la Recursión al Servicio de la Ordenación
- 11.5 Backtracking
- 11.6 Árbol de Decisiones y Esqueleto de Backtracking
- 11.7 Ejemplos
- 11.8 Ejercicios