- Capítulo 1. Algunos conceptos básicos
- 1.1. Computadoras y programas
- 1.2. El mito de la máquina todopoderosa
- 1.3. Cómo darle instrucciones a la máquina usando Python
- 1.4. Devolver un resultado
- 1.5. Una instrucción un poco más compleja: el ciclo definido
- 1.6. Construir programas y módulos
- 1.7. La forma de un programa Python
- 1.8. Estado y computación
- 1.9. Depuración de programas
- 1.10. Ejercicios
- Capítulo 2. Programas sencillos
- 2.1. Construcción de programas
- 2.2. Realizando un programa sencillo
- 2.3. Piezas de un programa Python
- 2.4. No sólo de números viven los programas
- 2.5. Instrucciones
- 2.6. Ciclos definidos
- 2.7. Una guía para el diseño
- 2.8. Ejercicios
- Capítulo 3. Funciones
- 3.1. Documentación de funciones
- 3.2. Imprimir versus Devolver
- 3.3. Cómo usar una función en un programa
- 3.4. Más sobre los resultados de las funciones
- 3.5. Un ejemplo completo
- 3.6. Devolver múltiples resultados
- 3.7. Resumen
- 3.8. Ejercicios
- Capítulo 4. Decisiones
- 4.1. Expresiones booleanas
- 4.2. Comparaciones simples
- 4.3. Múltiples decisiones consecutivas
- 4.4. Ejercicios
- 4.5. Resumen
- 4.6. Ejercicios
- Capítulo 5. Más sobre ciclos
- 5.1. Ciclos indefinidos
- 5.2. Ciclo interactivo
- 5.3. Ciclo con centinela
- 5.4. Cómo romper un ciclo
- 5.5. Ejercicios
- 5.6. Resumen
- 5.7. Ejercicios
- Capítulo 6. Cadenas de caracteres
- 6.1. Operaciones con cadenas
- 6.2. Segmentos de cadenas
- 6.3. Las cadenas son inmutables
- 6.4. Procesamiento sencillo de cadenas
- 6.5. Nuestro primer juego
- 6.6. Ejercicios
- 6.7. Resumen
- 6.8. Ejercicios
- Capítulo 7. Tuplas y listas
- 7.1. Tuplas
- 7.2. Listas
- 7.3. Ordenar listas
- 7.4. Listas y cadenas
- 7.5. Resumen
- 7.6. Ejercicios
- Capítulo 8. Algoritmos de búsqueda
- 8.2. Cómo programar la búsqueda lineal a mano
- 8.3. Búsqueda lineal
- 8.4. Buscar sobre una lista ordenada
- 8.5. Búsqueda binaria
- 8.6. Resumen
- 8.7. Ejercicios
- Capítulo 9. Diccionarios
- 9.1. Qué es un diccionario
- 9.2. Utilizando diccionarios en Python
- 9.3. Algunos usos de diccionarios
- 9.4. Resumen
- 9.5. Ejercicios
- Capítulo 10. Contratos y Mutabilidad
- 10.1. Pre y Postcondiciones
- 10.2. Invariantes de ciclo
- 10.3. Mutabilidad e Inmutabilidad
- 10.4. Resumen
- 10.5. Apéndice - Acertijo MU
- Capítulo 11. Manejo de archivos
- 11.1. Cerrar un archivo
- 11.2. Ejemplo de procesamiento de archivos
- 11.3. Modo de apertura de los archivos
- 11.4. Escribir en un archivo
- 11.5. Agregar información a un archivo
- 11.6. Manipular un archivo en forma binaria
- 11.7. Persistencia de datos
- 11.8. Directorios
- 11.9. Resumen
- 11.10. Ejercicios
- 11.11. Apéndice
- Capítulo 12. Manejo de errores y excepciones
- 12.2. Excepciones
- 12.3. Validaciones
- 12.4. Resumen
- 12.5. Apéndice
- Capítulo 13. Procesamiento de archivos
- 13.1. Corte de control
- 13.2. Apareo
- 13.3. Resumen
- Capítulo 14. Objetos
- 14.1. Tipos
- 14.2. Qué es un objeto
- 14.3. Definiendo nuevos tipos
- 14.4. Métodos especiales
- 14.5. Creando clases más complejas
- 14.6. Resumen
- 14.7. Ejercicios
- Capítulo 15. Polimorfismo, Herencia y Delegación
- 15.1. Polimorfismo
- 15.2. Herencia
- 15.3. Delegación
- 15.4. Resumen
- 15.5. Ejercicios
- Capítulo 16. Listas enlazadas
- 16.1. Una clase sencilla de vagones
- 16.2. Tipos abstractos de datos
-
16.3.
La clase
ListaEnlazada
- 16.4. Invariantes de objetos
- 16.5. Otras listas enlazadas
- 16.6. Iteradores
- 16.7. Resumen
- 16.8. Ejercicios
- Capítulo 17. Pilas y colas
- 17.1. Pilas
- 17.2. Colas
- 17.3. Resumen
- 17.4. Ejercicios
- 17.5. Apéndice
- Capítulo 18. Modelo de ejecución de funciones y recursividad
- 18.2. Pasaje de parámetros
- 18.3. Devolución de resultados
- 18.4. La recursión y cómo puede ser que funcione
- 18.5. Una función recursiva matemática
- 18.6. Algoritmos recursivos y algoritmos iterativos
- 18.7. Un ejemplo de recursividad elegante
- 18.8. Un ejemplo de recursividad poco eficiente
- 18.9. Limitaciones
- 18.10. Resumen
- 18.11. Ejercicios
- Capítulo 19. Ordenar listas
- 19.1. Ordenamiento por selección
- 19.2. Ordenamiento por inserción
- 19.3. Resumen
- Capítulo 20. Algunos ordenamientos recursivos
- 20.1. Ordenamiento por mezcla o Merge sort
- 20.2. ¿Cuánto cuesta el Merge sort?
- 20.3. Ordenamiento rápido o Quick sort
- 20.4. ¿Cuánto cuesta el Quick sort?
- 20.5. Una versión mejorada de Quick sort
- 20.6. Resumen
- 20.7. Ejercicios
Algoritmos de Programación con Python
Escrito por Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano, Nicolás Paez