Datos Identificativos 2015/16
Asignatura (*) Fundamentos de Programación Código 631G02511
Titulación
Grao en Tecnoloxías Mariñas
Descriptores Ciclo Período Curso Tipo Créditos
Grao 1º cuadrimestre
Cuarto Optativa 6
Idioma
Castelán
Galego
Modalidade docente Presencial
Prerrequisitos
Departamento Electrónica e Sistemas
Coordinación
Vidal Paz, Jose
Correo electrónico
jose.vidal.paz@udc.es
Profesorado
Vidal Paz, Jose
Correo electrónico
jose.vidal.paz@udc.es
Web
Descrición xeral Fundamentos de Programación é unha materia optativa impartida no 1º cuadrimestre do itinerario de Mantemento e Instalacións do Grao en Enxeñaría Marina. É unha materia que introduce ao alumno nos principios básicos da Algoritmia e a Programación de Computadores. O seu obxectivo é doble: a) proporcionar as capacidades necesarias aos alumnos para a resolución de problemas por medio do deseño de algoritmos nos que apliquen os principios da programación estruturada; e b) a adquisición por parte dos alumnos de bos hábitos de programación no desenvolvimento de programas correctos e ben estruturados manexando unha linguaxe de programación estruturada e as estruturas de datos mais habituais na Programación de Computadores. Os seus contidos teñen unha clara aplicación práctica na futura vida profesional dos egresados da titulación. As competencias adquiridas nesta materia proporcionanlle ao alumno técnicas xenéricas para abordar e prantexar solucións algorítimicas na resolución de problemas e coñecementos mais específicos sobre a maneira de desenvolver programas de computador utilizando unha linguaxe de programación. Polo tanto ademais da capacidade de programar computadores, que é unha competencia cada vez mais demandada no campo profesional debido á crecente utilización de equipamientos industriáis e ferramentas informáticas con capacidades programables, o alumno adquirirá as habilidades propias da programación estruturada á hora de prantexar solucións a problemas (tales como a descomposición modular, a abstracción, etc.), que teñen unha aplicación mais xeral en diferentes ámbitos da vida profesional. No que respecta á relación con outras materias da titulación, contidos como a representación dos datos nun computador, a lóxica booleana das condicións, as estruturas de control dun programa, etc. teñen aplicación en materias como Fundamentos de Regulación e Control, Automatización e Control de Procesos, Automatización con PLCs e Instrumentación Industrial ou Sistemas Electrónicos de Adquisición de Datos.

Competencias do título
Código Competencias do título
A13 CE13 - Levar a cabo automatizacións de procesos e instalacións marítimas.
A16 CE16 - Ensamblar e realizar tarefas básicas de mantemento e reparación de equipos informáticos. Instalar e manexar sistemas operativos e aplicacións informáticas. Instalar e realizar as tarefas básicas de xestión de redes de ordenadores, no ámbito da súa especialidade.
A53 Realizar operacións de mantemento e explotación óptima de instalacións marítimo - industriais.
B2 CT2 - Resolver problemas de forma efectiva.
B4 CT4 - Traballar de forma autónoma con iniciativa.
B8 CT8 - Versatilidade.
B9 CT9 - Capacidade para a aprendizaxe de novos métodos e teorías, que lle doten dunha gran versatilidade para adaptarse a novas situacións.
C3 C3 - Utilizar as ferramentas básicas das tecnoloxías da información e as comunicacións (TIC) necesarias para o exercicio da súa profesión e para a aprendizaxe ao longo da súa vida.
C9 CB1 - Demostrar que posúen e comprenden coñecementos na área de estudo que parte da base da educación secundaria xeneral, e que inclúe coñecementos procedentes da vanguardia do seu campo de estudo
C10 CB2 - Aplicar os coñecementos no seu traballo ou vocación dunha forma profesional e poseer competencias demostrables por medio da elaboración e defensa de argumentos e resolución de problemas dentro da área dos seus estudos
C11 CB3 - Ter a capacidade de reunir e interpretar datos relevantes para emitir xuicios que inclúan unha reflexión sobre temas relevantes de índole social, científica ou ética
C12 CB4 - Poder transmitir información, ideas, problemas e solucións a un público tanto especializado como non especializado.
C13 CB5 - Ter desenvolvido aquelas habilidades de aprendizaxe necesarias para emprender estudos posteriores con un alto grao de autonomía.

Resultados de aprendizaxe
Resultados de aprendizaxe Competencias do título
Coñecer o concepto de algoritmo e os métodos básicos para representalos: pseudocódigo e diagramas de fluxo. B2
C3
Deseñar algoritmos para resolver problemas de complexidade pequena a media B2
B8
Coñecer os principios básicos da programación estructurada B2
C3
Coñecer os principais elementos da linguaxe de programación C A13
B2
B8
C3
Implementar algoritmos utilizando a linguaxe de programación C e aplicando os principios da programación estructurada A13
A16
A53
B2
B4
B8
B9
C3
C9
C10
C11
C12
C13
Coñecer as estructuras de datos básicas (vectores, cadeas de caracteres, matrices e listas) C3
Escoller e aplicar as estructuras de datos mais adecuadas para a resolución dun problema A13
B2
B8
C3
Coñecer as librarías estándar mais importantes de C B8
C3
Integrar e utilizar funcións desenvolvidas en C desde a contorna Matlab A13
A53
B2
B8
C3
C10
Manexar as funcionalidades básicas proporcionadas por unha contorna de desenvolvimento integrada (IDE): editor, compilador, depurador, etc. B8
C3

Contidos
Temas Subtemas
Tema 1. Introdución á programación Algoritmos e programas. Paradigmas e linguaxes de programación. Fases no desenvolvimento e execución dun programa. Contornas de desenvolvimento integradas (IDEs). Especificación de algoritmos: pseudocódigo, diagramas de fluxo. Construcións básicas para a especificación de algoritmos. Exemplos de algoritmos para a resolución de problemas sinxelos. Ferramentas para a interpretación automática de algoritmos.
Tema 2. Fundamentos da linguaxe C Historia e características da linguaxe C. Estructura básica dun programa C. Comentarios, sentencias, identificadores e palabras reservadas. Introdución á E/S estándar. Biblioteca estándar de C. O preprocesador. Exemplo de programa C. Compilación, execución e depuración dun programa C.
Tema 3. Elementos básicos da linguaxe C Tipos de datos primitivos. Constantes e Variables. Operadores aritméticos e lóxicos. Regras de precedencia entre operadores. Expresións aritméticas e lóxicas. Conversións de tipo. Tipos de datos e E/S estándar.
Tema 4. Estruturas de control Secuencia de instrucións ou bloque. Estruturas de selección: sentencias if-else e switch. Estruturas de iteración: sentencias for, while e do-while. Exemplos de algoritmos sinxelos.
Tema 5: Vectores e matrices Declaración e inicialización estática de vectores e matrices. Percorrido e pesquisa en vectores mediante índices. Algoritmos básicos de ordenación de vectores. Operacións con matrices e vectores.
Tema 6: Cadeas de caracteres Declaración e inicialización estática de cadeas de caracteres. Manexo de cadeas de caracteres mediante índices. Cadeas de caracteres e E/S estándar. Funcións da biblioteca estándar para o manexo de cadeas de caracteres.
Tema 7: Estruturas Concepto de estrutura. Definición e inicialización de estruturas en C. Operadores de acceso a membros dunha estrutura. Vectores de estruturas.
Tema 8: Punteiros Conceptos básicos sobre direcionamento de memoria. Declaracion e inicialización de punteiros. Operadores de dirección e indirección. Aritmética de punteiros. Reserva e liberación dinámica de memoria. Declaración e inicialización dinámica de vectores e cadeas de caracteres. Manexo de vectores e cadeas de caracteres mediante punteiros.
Tema 9: Funcións Principios e vantaxes da programación estruturada e a descomposición modular. Funcións na linguaxe C. Paso de parámetros a unha función: paso por valor e referencia. Paso de vectores a unha función. Paso de parámetros á función main. Funcións recursivas.
Tema 10: Ficheiros Introdución aos ficheiros en C. Operacións básicas con ficheiros. Ficheiros de texto. Ficheiros binarios. Acceso aleatorio a ficheiros. Ficheiros de estruturas.
Tema 11: Listas Estruturas dinámicas de datos. Concepto de lista. Inicialización dinámica e acceso a membros dunha estrutura mediante punteiros. Creación dunha lista simple. Operacións de percorrido, pesquisa, inserción e eliminación en listas.
Tema 12: C e Matlab Uso de funcións C desde MATLAB. Compilación de programas MATLAB a C. Uso de funcións MATLAB desde programas C.

Planificación
Metodoloxías / probas Competencias Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Sesión maxistral B9 C3 C9 C11 C12 21 0 21
Solución de problemas A13 A16 A53 B2 B4 B8 C10 C13 21 84 105
Proba obxectiva B2 B4 B8 C9 C10 C11 C12 C13 3 18 21
 
Atención personalizada 3 0 3
 
*Os datos que aparecen na táboa de planificación son de carácter orientativo, considerando a heteroxeneidade do alumnado

Metodoloxías
Metodoloxías Descrición
Sesión maxistral Realizarase unha explicación introdutoria dos contidos de cada tema. Proporcionaránselle ao alumno ou ben materiais ou ben indicacións de como consultar fontes adicionais para profundizar no estudo do tema. Os conceptos básicos serán traballados individualmente polo alumno no aula contando coa asistencia do profesor e utilizando exercícios ou tutoriais que este previamente terá preparados na plataforma de aprendizaxe da universidade.
Solución de problemas As clases maxistrais combinaranse coa resolución de problemas por parte do alumno. Esta será a metodoloxía mais potenciada durante o curso, e usarase tanto no aula coa presenza do profesor como no traballo non presencial do alumno. Unha parte importante do traballo con problemas será a implementación de pequenos programas en C, nos que o alumno poña en práctica os coñecementos aprendidos e comprobe como lle permiten solucionar problemas reales.
Proba obxectiva Ao final do cuadrimestre realizarase unha proba escrita, que constará de cuestións teóricas e problemas.

Atención personalizada
Metodoloxías
Solución de problemas
Descrición
SOLUCIÓN DE PROBLEMAS: A atención personalizada realizarase no aula resolvendo ás dubidas prantexadas polo alumno durante a resolución autónoma de problemas.

ATENCIÓN PERSONALIZADA: Realizarase nos horarios de titorías establecido a comezo de curso e posto en coñecemento do alumno polos medios apropiados no centro e na plataforma de teleaprendizaxe da universidade.

Ademais o profesor resolverá as dúbidas recibidas por medios electrónicos como correo electrónico ou foros creados a tal efecto na plataforma de teleaprendizaxe da universidade.

Avaliación
Metodoloxías Competencias Descrición Cualificación
Solución de problemas A13 A16 A53 B2 B4 B8 C10 C13 Esta será a metodoloxía utilizada durante o curso para realizar a avaliación continua do alumnado. Semanalmente o profesor prantexará diferentes problemas que o alumno terá que resolver aplicando os conceptos do temario tratados nesa semana. 40
Proba obxectiva B2 B4 B8 C9 C10 C11 C12 C13 Ao final do cuadrimestre se realizará unha proba consistente na resposta a preguntas teóricas e a resolución de exercicios do mesmo tipo que os prantexados nas sesións de problemas durante o cuadrimestre. 60
 
Observacións avaliación
O alumno ten dúas posibilidades de avaliación:

1. A avaliación continua. Mediante esta via, o alumno ten a posibilidade de obter ata un 40% da nota final mediante a solución dos problemas prantexados semanalmente durante o cuadrimestre. O 60% restante virá da nota que obteña na proba obxectiva. A nota que o alumno obteña na avaliación continua só se terá en conta se supera un mínimo de problemas correctamente solucionados. Ademais, no caso de superar ese mínimo, esta nota gardarase para o exame da convocatoria de xullo.

2.A avaliación mediante proba obxectiva. Esta via se aplicará cando o alumno non opte á posibilidade da avaliación continua. Neste caso o 100% da nota virá da proba obxectiva e non se garda nenguna nota para a convocatoria de xullo.

Fontes de información
Bibliografía básica
  • Programación en C. Metodología, algoritmos y estructura de datos (2ª ed). Joyanes Aguilar, Luís; Zahonero Martínez, Ignacio. Ed. McGraw-Hill. 2005. ISBN: 8448198441
  • Programación en C. Libro de problemas. Joyanes Aguilar, Luís; Castillo Sanz, Andrés; Sánchez García, Lucas; Zahonero Martínez, Ignacio. Ed. McGraw-Hill. 2002. ISBN: 8448136225
  • Problemas resueltos de programación en lenguaje C. García Carballeira, Félix et al. Ed. Thomson Paraninfo. 2002. ISBN: 9788497321020
  • Fundamentos de programación. Piensa en C. Osvaldo Cairó. Ed. Prentice Hall. 2006. ISBN: 9702608104
Bibliografía complementaria
  • Fundamentos de programación y lenguaje C (3ª ed). María del Carmen Fernández Lameiro, Roberto Romero Restrebada y José María Acebo Rodríguez. Ed. Tórculo Edicións. 2002. ISBN: 8484082172
  • Fundamentos de Informatica. Codificación y Algoritmia (2ª ed). Pedro María Alcover Garau. Ed. Universidad Politécnica de Cartagena. 2007. ISBN: 8495781727
  • Fundamentos de Informatica. Programación en C. Pedro María Alcover Garau. Ed. Universidad Politécnica de Cartagena. 2006. ISBN: 8495781611
  • Aprenda lenguaje C como si estuviera en primero. Javier García de Jalón de la Fuente y otros. Ed. Universidad de Navarra. 1998.
  • Programación en C (2ª ed). Byron Gottfried. Ed. McGraw-Hill. Serie Schaum. 2005. ISBN: 844819846801

Recomendacións
Materias que se recomenda ter cursado previamente

Materias que se recomenda cursar simultaneamente
Sistemas Electrónicos de Adquisición de Datos/631G02512
Automatización con PLCs e Instrumentación Industrial/631G02509

Materias que continúan o temario
Matemáticas 1/631G02151
Informática/631G02154

Observacións


(*)A Guía docente é o documento onde se visualiza a proposta académica da UDC. Este documento é público e non se pode modificar, salvo casos excepcionais baixo a revisión do órgano competente dacordo coa normativa vixente que establece o proceso de elaboración de guías