Datos Identificativos 2017/18
Asignatura (*) Programación I Código 614G01001
Titulación
Grao en Enxeñaría Informática
Descriptores Ciclo Período Curso Tipo Créditos
Grao 1º cuadrimestre
Primeiro Formación básica 6
Idioma
Castelán
Inglés
Modalidade docente Presencial
Prerrequisitos
Departamento Computación
Coordinación
Boveda alvarez, Maria del Carmen
Correo electrónico
carmen.boveda@udc.es
Profesorado
Arcay Varela, Bernardino
Boveda alvarez, Maria del Carmen
Castro Martinez, Alfonso
Garcia Martin, Esteban
Martinez Perez, Maria
Munteanu , Cristian Robert
Rabuñal Dopico, Juan Ramon
Correo electrónico
bernardino.arcay@udc.es
carmen.boveda@udc.es
alfonso.castro@udc.es
esteban.garcia@udc.es
maria.martinez@udc.es
c.munteanu@udc.es
juan.rabunal@udc.es
Web http://moodle.udc.es/
Descrición xeral Esta materia é unha introdución á programación, na que se ve como resolver problemas nunha linguaxe estructurada.
Nela axúdase ao alumno a comprender os tipos e estruturas de datos básicos, ao mesmo tempo que se sentan as bases para deseñar correctamente un algoritmo. E para asentar os coñecementos fundamentáis da programación de forma máis rápida e óptima é necesario empregar unha linguaxe que sexa lexible, flexible,clara, na que se poida escribir o código de forma sinxela e limpa;por eso se traballa co Linguaxe Pascal ISO-10206, familiarizando o alumno co emprego dunha linguaxe que cumple cunha normativa estandar.

Competencias do título
Código Competencias do título
A3 Capacidade para comprender e dominar os conceptos básicos de matemática discreta, lóxica, algorítmica e complexidade computacional e a súa aplicación para a resolución de problemas propios da enxeñaría.
A4 Coñecementos básicos sobre o uso e a programación dos ordenadores, sistemas operativos, bases de datos e programas informáticos con aplicación na enxeñaría.
A5 Coñecemento da estrutura, organización, funcionamento e interconexión dos sistemas informáticos, os fundamentos da súa programación e a súa aplicación para a resolución de problemas propios da enxeñaría.
A13 Coñecemento, deseño e utilización de forma eficiente dos tipos e estruturas de datos máis adecuados á resolución dun problema.
B1 Capacidade de resolución de problemas
B2 Traballo en equipo
B3 Capacidade de análise e síntese
B4 Capacidade para organizar e planificar
B5 Habilidades de xestión da información
B6 Toma de decisións
B7 Preocupación pola calidade
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.
C4 Desenvolverse para o exercicio dunha cidadanía aberta, culta, crítica, comprometida, democrática e solidaria, capaz de analizar a realidade, diagnosticar problemas, formular e implantar solucións baseadas no coñecemento e orientadas ao ben común.
C6 Valorar criticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas cos que deben enfrontarse.
C7 Asumir como profesional e cidadán a importancia da aprendizaxe ao longo da vida.
C8 Valorar a importancia que ten a investigación, a innovación e o desenvolvemento tecnolóxico no avance socioeconómico e cultural da sociedade.

Resultados de aprendizaxe
Resultados de aprendizaxe Competencias do título
Coñecer e comprender a importancia dos obxectivos da programación. Coñecer os aspectos xerais sobre as linguaxes e paradigmas da programación. Coñecer pseudocódigo e a sintaxis da linguaxe Pascal ISO10206 utilizado para describir algoritmos e programas. Coñecer os pasos para a realización dun programa e os seus principais compoñentes. Coñecer os tipos de datos básicos usando Pascal ISO_10206. Coñecer as estruturas de control da programación estructurada e as diferenzas entre elas. Coñecer todos os aspectos relacionados coa realización de funcións e procedementos. A4
A5
Ser capaz de realizar o seguimiento dun algoritmo (en pseudocódigo) ou programa (en Pascal ISO-10206), explicar que realiza, e atopar posibles erros. Ser capaz de resolver pequenos algoritmos e programas. A partir da formulación dun problema de pequena-mediana envergadura saber realizar o programa para resolvelo: tendo en conta os obxectivos da programación. Realizar a descomposición adecuada implementando as funcións e procedementos necesarios correctamente. Empregar un estilo de programación apropiado: saber facer bo uso de identificadores, comentarios xustos, saber establecer precondiciones e postcondiciones, saber realizar un bo deseño das interfaces de procedementos e funcións, saber elixir e utilizar os tipos e estruturas de datos adecuados, saber elixir e utilizar as estruturas de control convenientes. Saber facer bo coñecemento da parte da linguaxe que se explique. A3
A5
A13
B1
B2
B3
B4
B5
B6
B7
C3
Aprendizaxe autónoma. Planificación das actividades a desenvolver. Capacidade de abstracción. Toma de decisiónes. Capacidade de iniciativa e participación. C3
C4
C6
C7
C8

Contidos
Temas Subtemas
1 CONCEPTOS BÁSICOS 1.1 Algoritmos
1.1.1 Representación de algoritmos

1.2 Programas
1.2.1 Tipos de programas

1.3 Linguaxes de programación
1.3.1 Unha visión histórica
1.3.2 Clasificación das linguaxes
1.3.3 Instrucións máis importantes
1.3.4 Propiedades das linguaxes

1.4 Tradutores

1.5 Descrición das linguaxes
1.5.1 Notación BNF
1.5.2 Diagramas de Conway

1.6 Estrutura dun programa

1.7 Elementos dun programa
1.7.1 Símbolos predefinidos
1.7.2 Símbolos especiais
1.7.3 Identificadores
1.7.4 Etiquetas
1.7.5 Comentarios
1.7.6 Directivas
1.7.7 Constantes
1.7.8 Números
1.7.9 Cadeas de carácteres
1.7.10 Variables: Declaración e iniciación

1.8 Saída e Entrada
1.8.1 Sentenzas de saída
1.8.2 Sentenzas de entrada

1.9 Tipos de datos e operadores
1.9.1 Tipos de datos
1.9.2 Operadores
1.9.3 Expresións
2 SENTENZAS DE CONTROL 2.1 Secuencial

2.2 Alternativa
2.2.1 A sentenza IF
2.2.2 A sentenza CASE

2.3 Repetitiva
2.3.1 Introdución
2.3.2 Variables asociadas aos bucles
2.3.3 Bucle WHILE
2.3.5 Bucle FOR
2.3.6 Bucle REPEAT
2.3.7 Equivalencia entre bucles
2.3.8 Erros nos bucles
2.3.9 Deseño de bucles
3 ARQUITECTURA DUN PROGRAMA 3.1 Procedementos
3.1.1 Concepto
3.1.2 Tipos de procedementos
3.1.3 Parámetros por valor e referencia
3.1.4 Parámetros protexidos
3.1.5 A pila de activación de procedementos
3.1.6 Variables globais e locais: Alcance
3.1.7 Efectos laterales

3.2 Funcións
3.2.1 Concepto
3.2.2 Funcións predefinidas
3.2.3 Funcións de usuario

3.3 Recursividad
3.3.1 Natureza da recursividad
3.3.2 Recursividad directa e indirecta. Directiva FORWARD.
3.3.3 Recursión infinita
4 ESTRUTURAS SIMPLES DE DATOS 4.1 Arrays
4.1.1 Tipo de dato ARRAY
4.1.2 Declaración dun Array
4.1.3 Arrays de máis dunha dimensión
4.1.4 Operacións con Arrays
4.1.5 Arrays como parámetros
4.1.6 Funcións de tipo Array
4.1.7 Constantes de tipo Array

4.2 Rexistros
4.2.1 Tipo de dato rexistro
4.2.2 A sentenza with
4.2.3 Operacións con registros
4.2.4 Registros variantes
4.2.5 Registros como parámetros
4.2.6 Constantes de tipo rexistro

4.3 Cadeas
4.3.1 Cadeas de lonxitude fixa
4.3.2 Cadeas de lonxitude variable

4.4 Conxuntos
4.4.1 Operacións e relacións entre conxuntos
4.4.2 Procesamiento de conxuntos

4.5 Operacións básicas sobre Arrays
5 ENTRADA / SALIDA 5.1 Ficheros
5.2 Tipos
5.3 Operaciones y modos de acceso
5.4 Funciones y procedimientos predefinidos específicos

Planificación
Metodoloxías / probas Competencias Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Sesión maxistral A3 A4 A5 A13 B5 B7 C3 C4 C6 C7 30 30 60
Seminario C8 8 10 18
Prácticas de laboratorio A4 A5 A13 B1 B2 B3 B4 B6 B7 20 50 70
 
Atención personalizada 2 0 2
 
*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 Nas sesións de teoría, o profesor describe os obxectivos e os contidos da materia, para dar unha visión particular do tema a tratar e relacionalo con outros dentro da asignatura

Despois desenvólvese o tema correspondente na forma de sesión magistral, axudándose das ferramentas técnicas dispoñibles, facendo fincapé en certas cuestións nas que o alumno debe profundar no seu autoaprendizaje.

O obxectivo é que o alumno aprenda a algoritmizar, utilizar as estruturas básicas de datos e resolver sinxelos problemas de programación. Utilizarase como linguaxe de codificación Pascal Estandard Estendido ISO-10206

Seminario Nas sesións de seminario realizaranse exercicios e prácticas coa finalidade de detectar nos alumnos lagoas de coñecemento na materia impartida ata ese momento, e dar as explicacións e/ou referencias necesarias para emendalas.
Prácticas de laboratorio Nas sesións de prácticas o alumno realizará programas en papel para despois codificarlo en Pascal Estandar Estendido ISO-10206, compilarlo, executalo e comprobar o seu nivel de corrección.

Os enunciados dos programas proporcionarase coa suficiente antelación para que os alumnos poidan aproveitar mellor o seu tempo.

É misión do profesor supervisar o código xerado polo alumno para resolver dúbidas, corrixir malos estilos de programación e corrixir erros, contando con que o profesor non é un compilador que busca erros.

Atención personalizada
Metodoloxías
Sesión maxistral
Prácticas de laboratorio
Seminario
Descrición

Tanto nas sesións magistrales como nos laboratorios de prácticas e nas sesións de seminario levarase unha atención personalizada do alumno, en distintos niveis segundo sexa o tipo de clase, detectando o nivel de asimilación e comprensión dos temas explicados e as prácticas requiridas a implantar.

Nas sesións de seminario é onde se pode chegar máis ao alumno para coñecer as lagoas que presente e indicarlle o camiño para cubrilas.

Os alumnos que teñan matrícula a tempo parcial deben falar, o comezo do curso, con o/os profesores encargados do seu grupo.

Avaliación
Metodoloxías Competencias Descrición Cualificación
Sesión maxistral A3 A4 A5 A13 B5 B7 C3 C4 C6 C7 A nota da asignatura será a suma do obtido na Avaliación Continua (durante as 15 semanas do periodo lectivo correspondente á asignatura) e o obtido no Exame Final.

A nota de AVALIACIÓN CONTINUA, valorada en 5 puntos, divídese en dous partes:
1.- Á metade do curso realizarase unha proba escrita que valerá 2 puntos.
2.- Nas últimas semanas de prácticas do curso realízase unha proba no laboratorio utilizando ordenadores que valerá un máximo de 3 puntos.



O EXAME FINAL constará de tres exercicios que o alumno terá que desenvolver en código ISO-10206, e terá un valor de 5 puntos.


O exame oficial, tanto na primeira(xaneiro) como na segunda(xullo) oportunidade constará de tres problemas a desenvolver en código ISO-10206. Devandito Exame Final ten un valor máximo de 5 puntos, que se sumarán ao obtido na Avaliación Continua.
70
Prácticas de laboratorio A4 A5 A13 B1 B2 B3 B4 B6 B7
Como se indicou anteriormente, durante as últimas semanas con prácticas do curso realizarase unha proba no laboratorio usando ordenadores que terá un valor máximo de 3 puntos sobre a nota total do curso. Será necesario que o programa a realizar polo alumno no laboratorio compile e execute de forma correcta e completa.
30
 
Observacións avaliación

A nota final virá dada pola nota obtida por AVALIACIÓN CONTINUA e a obtida no EXAME FINAL. O Exame Final constará de tres problemas a codificar na linguaxe empregada nas sesións prácticas.


Fontes de información
Bibliografía básica ISO (1990). Extended Pascal ISO 10206. ISO
Carmen Bóveda, Esteban García, Alejandra Martínez (2016). Problemas en Pascal Estándar ISO-10206. La Coruña , Reprografia del Noroeste
Carmen Bóveda, Esteban García, Alejandra Martínez (2014). Programación estructurada en un lenguaje didáctico y estándar. La Coruña , Reprografia del Noroeste

Bibliografía complementaria Leestma, S e Nyhoff, L.. (1993). Pascal Programming and Problem Solving. Prentice Hall
Leestma, S e Nyhoff, L.. (1999). Programación en Pascal. Madrid Prentice Hall
Grogono, P (). Programación en Pascal. Addison-Wesley I
Valls, J. e Camacho, D. (2004). Programación estructurado y algoritmos en Pascal. Madrid Prentice Hall


Recomendacións
Materias que se recomenda ter cursado previamente

Materias que se recomenda cursar simultaneamente
Informática Básica/614G01002

Materias que continúan o temario
Programación II/614G01006

Observacións

O alumno debe ter en conta que debe realizar un labor autodidacta moi importante, seguindo o seguinte esquema: Ler, atender, comprender, preguntar, estudar e practicar.

  • Ler: Lea o tema a tratar antes de asistir ás sesións teóricas. É MOI IMPORTANTE!
  • Atender: Atenda en clase, non só estea de corpo presente.
  • Comprender: Comprenda o que se lle di nas sesións de teoría, e si non pregunte.
  • Preguntar: Pregunte todo o que non comprenda, non quede con dúbidas.
  • Estudar: Estude logo das sesións, para reter o comprendido.
  • Practicar: Faga moitos programas, os que se lle pidan, suxiran, e outros pola súa conta, tanto en papel como no ordenador.

Programación é unha asignatura que non se pode aprender estudando en dous días. O alumno debe ir madurando os conceptos, facer sobre o papel e na máquina moitos programas, aprendendo tamén dos erros ao realizalos.

É unha asignatura que, por medio do sistema de avaliación continua, pódese aprobar sen máis que seguir, de forma activa, o ritmo das distintas sesións teóricas e prácticas. Debe facer caso ás indicacións particulares de reforzo de estudo que lle sinale o profesor.



(*)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