El conocimiento de algoritmos y programación es fundamental para el estudio de la ciencia y el análisis de datos, resultando fundamental para las aplicaciones informáticas generales en ciencias e ingeniería. Este curso abarca los conceptos fundamentales de algoritmos, tipos de datos, estructuras de control, manejo de archivos, clases y métodos. Estas herramientas algorítmicas se vinculan con los conceptos de programación de Python: tipos y estructuras de datos, flujo de control de procesamiento, definición de funciones, E/S de archivos, clases y métodos para la programación orientada a objetos.
No conocimientos previos a nivel universitario son requeridos
El objetivo principal de este curso es estudiar los fundamentos de la programación y las mejores prácticas de implementación en el lenguaje de propósito general Python. Los objetivos específicos son proporcionar a los estudiantes las siguientes capacidades:
•Proponer soluciones algorítmicas a problemas básicos en Ciencia de Datos, Estadística y Matemáticas fundamentales.
•Construir programas utilizando adecuadamente las estructuras de datos de Python, el control de flujo y la gestión de primitivas de archivos, así como las unidades de modularización (funciones).
•Comprender los fundamentos de la programación orientada a objetos y utilizar las clases de Python para resolver problemas en los campos de aplicación arriba mencionados.
- Sistemas numéricos, modelo de computador de programa almacenado y representación de números.
- Sistemas numéricos, modelo de computador de programa almacenado y representación de números.
- Estructuras de control secuenciales y condicionales: operaciones booleanas o lógicas. Estructuras de control condicional o de selección (simples, múltiples y anidadas).
- Estructuras de control iterativas: bucles for y while; bucles anidados; combinaciones de for y while; instrucción break.
- Estructuras de datos tipo arrays y sus operaciones: vectores y matrices. Operaciones elemento a elemento y a nivel de array; métodos de búsqueda de elementos y ordenación.
- Estructuras de datos en Python: listas, diccionarios, conjuntos (sets) y tuplas: creación, operaciones y aplicaciones.
- Funciones en Python: concepto (código reutilizable), paso de argumentos, ejemplos, recursión.
La asignatura consta de dos sesiones lectivas semanales. La primera sesión es una clase magistral donde se introducen los conceptos teóricos y se presentan ejemplos prácticos. La segunda sesión es práctica, donde los estudiantes realizan ejercicios de ordenador para consolidar la materia. Cada dos o tres sesiones, se realizan actividades de evaluación, individuales o grupales, mediante pruebas escritas o ejercicios de ordenador, basados en preguntas o ejercicios planteados durante las sesiones o previamente asignados. En el caso de los ejercicios de ordenador, se podrán solicitar presentaciones orales, las cuales serán calificadas por el profesor.
1) Actividades prácticas de evaluación: 20%
2) Examen parcial (parte de programación + teoría): 30%
3) Proyecto en grupo (informe + presentación oral): 20%
4) Examen final (parte de programación + teoría): 20%
5) Participación en clase: 10%
Uso de herramientas de IA: Si se utilizan herramientas de inteligencia artificial en alguna actividad, deberá incluirse un párrafo indicando para qué se utilizó la IA y qué indicaciones (prompts) se emplearon para obtener los resultados. El incumplimiento de este requisito constituye una infracción de las normas de integridad académica.
1) Actividades prácticas de evaluación: 20%
2) Examen parcial (parte de programación + teoría): 30%
3) Proyecto en grupo (informe + presentación oral): 20%
4) Examen final (parte de programación + teoría): 20%
5) Participación en clase: 10%
Uso de herramientas de IA: Si se utilizan herramientas de inteligencia artificial en alguna actividad, deberá incluirse un párrafo indicando para qué se utilizó la IA y qué indicaciones (prompts) se emplearon para obtener los resultados. El incumplimiento de este requisito constituye una infracción de las normas de integridad académica.
- Laudon, Kenneth C. and Laudon, Jane P. (2014). Management Information Systems: Managing the Digital Firm. Global Edition. 13th edition. - Davenport, T & Harris, J. Competing on Analytics: The New Science of Winning (2014, 2017). Havard Business School - Foster Provost and Tom Fawcett. Data Science for Business. O'Reilly (2013). - Carl Anderson. Creating a Data-Driven Organization. O'Reilly. (2015). - DJ Patil. Building Data Science Teams. O'Reilly. (2011). - DJ Patil and Hilary Mason. Data Driven: Creating a Data Culture. O'Reilly. (2015).
• Barry, P. (2017). Head first Python, 2nd edition: A brain-friendly guide. O'Reilly Media, Inc.
• Phillips, D. (2015). Python 3 Object-oriented programming, 2nd edition. Packt Publishing Ltd.