Última actualización: 05/05/2020


Curso Académico: 2019/2020

Programación
(18302)
Grado en Ingeniería Física (Plan: 434 - Estudio: 363)


Coordinador/a: ALVAREZ RODRIGUEZ, JOSE MARIA

Departamento asignado a la asignatura: Departamento de Informática

Tipo: Formación Básica
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:

Rama de Conocimiento: Ingeniería y Arquitectura



Requisitos (Asignaturas o materias cuyo conocimiento se presupone)
-Se recomienda tener experiencia en el uso de ordenadores.
Competencias Básicas: CB1. Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio. CB2. Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio. CB3. Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética. CB4. Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado. CB5. Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía. Competencias Generales: CG2. Aprender nuevos métodos y tecnologías a partir de conocimientos básicos científicos y técnicos, y tener versatilidad para adaptarse a nuevas situaciones. CG3. Resolver problemas con iniciativa, toma de decisiones, creatividad, y comunicar y transmitir conocimientos, habilidades y destrezas, comprendiendo la responsabilidad ética, social y profesional de la actividad de ingeniero. Capacidad de liderazgo, innovación y espíritu emprendedor. CG5. Utilizar los conocimientos teóricos y prácticos adquiridos en la definición, planteamiento y resolución de problemas en el marco del ejercicio de su profesión. CE3. Usar y programar ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería, e implementar algoritmos numéricos en lenguajes de bajo y alto nivel. CT1. Trabajar en equipos de carácter multidisciplinar e internacional así como organizar y planificar el trabajo tomando las decisiones correctas basadas en la información disponible, reuniendo e interpretando datos relevantes para emitir juicios y pensamiento crítico dentro del área de estudio. RA1. Haber adquirido conocimientos y demostrado una comprensión profunda de los principios básicos, tanto teóricos como prácticos, así como de la metodología de trabajo en los campos de las ciencias y la tecnología, con profundidad suficiente como para poder desenvolverse con soltura en los mismos. RA2. Poder, mediante argumentos, estrategias o procedimientos desarrollados por ellos mismos, aplicar sus conocimientos y capacidades a la resolución de problemas tecnológicos complejos que requieran del uso de ideas creativas e innovadoras; RA3. Tener la capacidad de buscar, recopilar e interpretar datos e informaciones relevantes sobre las que poder fundamentar sus conclusiones incluyendo, cuando sea preciso y pertinente, la reflexión sobre asuntos de índole social, científica o ética en el ámbito de su campo de estudio; RA6. Ser capaces de identificar sus propias carencias y necesidades formativas en su campo de especialidad y entorno laboral/profesional y de planificar y organizar su propio aprendizaje con un alto grado de autonomía en cualquier situación. En base al "Common European framework for ICT Professionals in all industry sectors": B.1. Application Development Level 3 B.2. Component Integration Level 2 B.3. Testing Level 2 B.5. Documentation Production Level 3 C.4. Problem Management Level 3
Descripción de contenidos: Programa
1 Introducción conceptual. 1.1 Estructura de un computador: hardware y software. Codificación de la información. 1.2 Álgebra de Boole. 1.3 Lenguaje de programación y paradigmas: la programación estructurada. 1.4 Conceptos: algoritmo, programa, proceso, etc. 1.5 Compilación, depuración y ejecución. 1.6 Pseudocode. 2 Elementos de programación. 2.1 Identificadores. 2.2 Variables y constantes. 2.3 Tipos de datos simples. 2.4 Operadores, expresiones y sentencias. 3 Control de flujo. 3.1 Sentencias condicionales. 3.2 Sentencias repetitivas. 3.3 Otros tipos de control flujo. 4 Estructuras de datos y tipos de datos definidos por el usuario. 4.1 Definición y principios de diseño. 4.2 Strings: concepto, gestión y aplicación. 4.3 Arrays: concepto, gestión y aplicación. 4.4 Punteros: concepto, gestión y aplicación. 4.5 Registros: concepto, gestión y aplicación. 5 Subprogramas: procedimientos y funciones. 5.1 Definición y principios de diseño. 5.2 Signatura de las funciones, parámetros e invocación. 5.3 Introducción a las funciones recursivas. 6 Algoritmos básicos. 6.1 Búsqueda y ordenación. 7 Gestión de recursos. 7.1 Memoria estática y dinámica. 7.2 Operaciones con la memoria: reserva y liberación. 8 El sistema de entrada/salida. 8.1 Concepto de fichero y tipología: de texto y binarios. 8.2 Gestión de ficheros, operaciones básicas: crear, escribir, leer y borrar.
Actividades formativas, metodología a utilizar y régimen de tutorías
Clases Teóricas: 1 ECTS Clases Prácticas: 1 ECTS - Resolución de ejercicios - Buenas prácticas de programación - Tutoría general Trabajo en Equipo: 3 ECTS - Desarrollo de la práctica - Aplicación de buenas prácticas de programación Trabajo Individual: 1 ECTS - Contribución a la práctica del equipo - Estudio y preparación del examen
Sistema de evaluación
  • Peso porcentual del Examen Final 60
  • Peso porcentual del resto de la evaluación 40

Bibliografía básica
  • Allen B. Downey. Think Python: How to Think Like a Computer Scientist, 2nd edition. O'Reilly. 2015
  • Andrew Koenig. C Traps and Pitfalls. Addison-Wesley Professional. 1989
  • Anthony Scopatz, Kathryn D. Huff . Effective Computation in Physics: Field Guide to Research with Python. O'Reilly. 2015
  • Brian W. Kernighan / Dennis Ritchie. The C Programming Language. Pearson. 2015
  • David M. Beazley. Python Cookbook: Recipes for Mastering Python 3. O'Reilly. 2011
  • Luciano Ramalho. Fluent Python. O'Reilly. 2015
  • Mark Lutz . Learning Python. 0'Reilly. 2013
  • Paul Barry. Head-First Python, 2nd edition. O'Reilly. 2016
  • Robert C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship . Prentice Hall. 2008
  • Samuel P. Harbison, Guy L. Steele Jr. . C: A Reference Manual, 5th Edition. Pearson. 2002
  • Zed A. Shaw. Learn Python 3 the Hard Way. Addison-Wesley. 2016
Bibliografía complementaria
  • Peter Prinz, Tony Crawford. C in a Nutshell. O'Reilly Media. 2015
  • Richard M. Reese . Understanding and Using C Pointers. O'Reilly Media. 2013
Recursos electrónicosRecursos Electrónicos *
(*) El acceso a algunos recursos electrónicos puede estar restringido a los miembros de la comunidad universitaria mediante su validación en campus global. Si esta fuera de la Universidad, establezca una VPN


El programa de la asignatura podría sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.


Dirección web para más información: https://www.inf.uc3m.es/en/component/comprofiler/userprofile/joalvare