Programa de
PROGRAMACIÓN I
Código: IA 1.4
Identificación y características de la Actividad Curricular
Carrera: Tecnicatura Universitaria en Inteligencia Artificial
Plan de Estudios: 2021 Carácter: Obligatoria
Bloque: Ciencias y Tecnologías Básicas
Régimen de cursado: cuatrimestral
Cuatrimestre: 1°
Carga horaria: 64 hs / 4 hs semanales
Programa Sintético
Tipos de datos, variables, operaciones básicas de entrada y salida, operadores básicos.
Valores booleanos, ejecución condicional, bucles, listas y procesamiento de listas,
operaciones lógicas y bit a bit. Funciones, tuplas, diccionarios y procesamiento de datos.
Módulos, paquetes, cadenas, métodos de listas y excepciones. Enfoque Orientado a
Objetos: clases, métodos, objetos y sus características estándar: manejo de
excepciones y manejo de archivos. Desarrollo integral de proyecto de programación.
Asignaturas Relacionadas
Previas: -
Simultáneas Recomendadas: IA1.3 Entorno de Programación
Posteriores: IA2.2 Programación II - IA3.5 Redes de Datos
Objetivos
● Presentar los conceptos fundamentales de la programación como herramienta
para la resolución de problemas.
● Conocer y saber emplear un lenguaje de programación de alto nivel.
● Comprender los aspectos principales del trabajo de programador, de manera
individual o como miembro de un equipo de programación.
● Incentivar el pensamiento abstracto para la construcción de soluciones,
apoyándose sobre bases matemáticas y lógicas.
● Resolver de manera eficaz diferentes tipos de problemas, de complejidad
variada, con independencia del lenguaje de programación utilizado.
● Motivar la adopción de buenas prácticas durante el desarrollo de los programas.
Contenido Temático
Unidad 1. PRELIMINARES.
1.1 Programación, definiciones
1.2 Concepto de Algoritmo
1.3 Lenguajes de programación, diferentes paradigmas y categorías
1.4 Sintaxis y semántica de un lenguaje de programación
1.5 Compilación e Interpretación de código
1.6 Escritura de un primer programa y ejecución
1.7 Estrategias algorítmicas: Divide y vencerás, reducción, desarrollo iterativo
1.8 Comentarios y palabras reservadas.
1.9 Documentación de programas, aspectos básicos.
Unidad 2. REPRESENTACIÓN DE DATOS. OPERADORES Y EXPRESIONES.
2.1 Tipos de datos, rango de valores y límites
2.2 Declaraciones de variables, nomenclatura
2.3 Números, enteros, flotantes y complejos
2.4 Strings (texto) y operadores relacionados
2.5 Booleanos y bits. Operadores
2.6 Selección adecuada de tipos de datos para representación
2.7 Operadores, precedencia, asociatividad y aridad.
2.8 Operadores de asignación, aritméticos, relacionales, lógicos
2.9 Funciones para entrada y salida de datos, formato
Unidad 3. EJECUCIÓN CONDICIONAL.
3.1 Sentencia if-else
3.2 Condiciones simples y compuestas
3.3 Anidamiento
3.4 Buenas prácticas
Unidad 4. CONSTRUCCIONES ITERATIVAS.
4.1 Concepto de bucle
4.2 Sentencia for
4.3 Sentencia while
4.4 Anidamiento
4.5 Condiciones y errores comunes
4.6 Control: break, pass y continue
Unidad 5. VECTORES, LISTAS, TUPLAS Y DICCIONARIOS.
5.1 Declaración y uso de listas
5.2 Declaración y uso de tuplas
5.3 Declaración y uso de vectores
5.4 Declaración y uso de diccionarios
5.5 Operadores y funciones
5.6 Índices y slicing
5.7 Procesamiento de datos
Unidad 6. FUNCIONES.
6.1 Funciones integradas (built-in)
6.2 Declaración e invocación de funciones propias
6.3 Retorno y envío de valores
6.4 Argumentos, parámetros, valor y referencia
6.5 Argumentos indeterminados: args y kwargs.
6.6 Funciones lambda
6.7 Números aleatorios
Unidad 7. MODULARIZACIÓN.
7.1 Conceptos de módulo y paquete
7.2 Módulos estándar
7.3 Creación de módulos propios
7.4 Namespaces
7.5 Listado de contenidos de un módulo
7.6 Buenas prácticas
Unidad 8. ENFOQUE ORIENTADO A OBJETOS.
8.1 Descripción del concepto de clase
8.2 Atributos
8.3 Constructores y métodos, getters & setters
8.4 Objetos, creación/instanciación
8.5 Conceptos: Encapsulamiento, Herencia y Polimorfismo
Unidad 9. EXCEPCIONES.
9.1 Errores y excepciones
9.2 Tratamiento de excepciones
9.3 Lanzamiento de excepciones
9.4 Desarrollo de excepciones propias
Unidad 10. GESTIÓN DE ARCHIVOS.
10.1 Persistencia de datos
10.2 Apertura de archivos. Modos de apertura
10.3 Posicionamiento (seek)
10.4 Excepciones comunes
Unidad 11. PROYECTO FINAL.
11.1 Análisis de requerimientos
11.2 Prototipado
11.3 Documentación
11.4 Desarrollo siguiendo buenas prácticas
11.5 Presentación formal del proyecto
Evaluación
La evaluación de la materia se lleva a cabo mediante el desarrollo, entrega y
presentación de un trabajo práctico, donde se evalúa que el alumno haya conseguido
dominar los aspectos fundamentales de la programación, demuestre un empleo
adecuado de los elementos y construcciones del lenguaje de programación y desarrolle
un documentación con los detalles y lineamientos solicitados.
El Proyecto Final trata de la resolución de un problema de una dimensión y complejidad
que permita evaluar los conocimientos adquiridos.
Se introduce al alumno en el proceso completo del desarrollo de una solución, iniciando
por el análisis de requerimientos, planteando uno o más diseños que puedan ser
validados con el docente. Posteriormente debe realizar la implementación y
documentación, los cuales deben ser consistentes entre sí. Por último deberá realizar la
oposición de la solución demostrando cómo la misma satisface los requerimientos y
brindando comentarios u observaciones sobre mejoras funcionales o complementos que
puedan agregarse.
Distribución de la carga horaria
Unidad Carga Dedicación fuera de
Temática horaria clases
1 4 2
2 6 4
3 7 4
4 7 4
5 6 3
6 8 4
7 5 4
8 7 5
9 4 3
10 4 3
11 6 12
Total 64 48
Bibliografía básica
● Programming Languages Academy (2020). Python para Principiantes: 2 Libros
en 1: Programación de Python para principiantes + Libro de trabajo de Python.
● Lutz, M. (2013). Learning Python, 5th Edition.
● Downey, A. B. (2016). Think Python: How to Think Like a Computer Scientist.
Bibliografía complementaria
● Severance, C. R. (2020). Python para Todos: Explorando la información con
Python 3
● Sweigart, A. (2019). Automate the Boring Stuff with Python, 2nd Edition:
Practical Programming for Total Beginners.