Saltar ao contido principal
Inicio  »  Centros  »  Escola Técnica Superior de Enxeñaría  »  Información da Materia

G4011105 - Programación I (Programación) - Curso 2013/2014

Información

  • Créditos ECTS
  • Créditos ECTS: 6.00
  • Total: 6.0
  • Horas ECTS
  • Clase Expositiva: 20.00
  • Clase Interactiva Laboratorio: 30.00
  • Horas de Titorías: 1.00
  • Total: 51.0

Outros Datos

  • Tipo: Materia Ordinaria Grao RD 1393/2007
  • Departamentos: Electrónica e Computación
  • Áreas: Linguaxes e Sistemas Informáticos
  • Centro: Escola Técnica Superior de Enxeñaría
  • Convocatoria: 1º Semestre de Titulacións de Grao/Máster
  • Docencia e Matrícula: Primeiro Curso (1º 1ª vez)

Profesores

NomeCoordinador
Pardo López, Xosé Manuel.SI
VARELA PET, JOSE.NON

Horarios

NomeTipo GrupoTipo DocenciaHorario ClaseHorario exames
Grupo CLE01OrdinarioClase ExpositivaSISI
Grupo CLIL_01OrdinarioClase Interactiva LaboratorioSISI
Grupo CLIL_02OrdinarioClase Interactiva LaboratorioSISI
Grupo CLIL_03OrdinarioClase Interactiva LaboratorioSISI
Grupo CLIL_04OrdinarioClase Interactiva LaboratorioSISI
Grupo TI-ECTS01OrdinarioHoras de TitoríasNONNON
Grupo TI-ECTS02OrdinarioHoras de TitoríasNONNON
Grupo TI-ECTS03OrdinarioHoras de TitoríasNONNON
Grupo TI-ECTS04OrdinarioHoras de TitoríasNONNON
Grupo TI-ECTS05OrdinarioHoras de TitoríasNONNON
Grupo TI-ECTS06OrdinarioHoras de TitoríasNONNON
Grupo TI-ECTS07OrdinarioHoras de TitoríasNONNON

Programa

Existen programas da materia para os seguintes idiomas:

  • Castelán
  • Galego
  • Inglés


  • Obxectivos da materia
    Os obxectivos principais da materia son:
    - Desenvolver os fundamentos do deseño estruturado de algoritmos.
    - Proporcionar os coñecementos e habilidades para a súa implementación na linguaxe C.
    - Comprender e saber aplicar as técnicas básicas de deseño e implementación de algoritmos en casos prácticos simples.

    Esta materia ofrece un primeiro contacto cunha linguaxe de programación de alto nivel, desenvolvendo un curso básico de programación estruturada. Desenvólvense os conceptos de expresión, os distintos tipos de instrucións e estruturas de programación, funcións e procedementos e xestión dinámica de memoria. Fórmase ao estudante no deseño descendente de algoritmos, as bases da programación modular e o deseño ascendente.. Ademais da súa compoñente formativa directa no ámbito da programación, a materia ten unha compoñente instrumental, xa que os coñecementos e habilidades de programación na linguaxe de programación escollida (C) son de aplicación directa noutros cursos. De xeito inmediato, a programación en C resulta imprescindible para as materia Programación II (2º Semestre) e Algoritmos e Estrutura de Datos (2ºCurso, 2º Semestre). A programación en C tamén proporciona os fundamentos de case todas as materias técnicas ou de enxeñaría do segundo curso, sendo unha boa base para a programación en Java que se emprega na materia de Programación Orientada a Obxectos, para toda a parte práctica das materias relacionadas cos Sistemas Operativos e para a Enxeñaría do Software.

    Contidos
    1. Algoritmos e programas
    1.1. Conceptos de algoritmo e programa
    1.2. Linguaxes de programación
    1.3. Linguaxe máquina e ensamblador
    1.4. Linguaxes de alto nivel
    1.5. Especificación de algoritmos
    1.6. Deseño de algoritmos
    1.7. Verificación de algoritmos
    1.8. Codificación e proba

    Os obxectivos do primeiro tema son: (i) introducir algúns elementos básicos da enxeñería do software, incluíndo requisitos, especificación, deseño e avaliación;(ii) establecer a conexión entre conceptos software e hardware.

    2. Variables e Instrucións
    2.1. Variables e tipos de datos
    2.2. Cadeas de caracteres
    2.3. Instrucións de asignación
    2.4. Expresións aritméticas e lóxicas
    2.5. Instrucións de Entrada/Saída

    3. Programación estruturada
    3.1. Teorema da programación estruturada
    3.2. Estruturas de control
    3.3. Deseño descendente
    3.4. Notacións algorítmicas
    3.5. Vectores e matrices
    3.6. Rexistros

    4. Programación modular
    4.1. Funcións e procedementos
    4.2. Ámbito de variables: datos locais e globais
    4.3. Paso de argumentos
    4.4. Deseño modular
    4.5. Principios de deseño

    Os obxectivos dos temas 2-4son aprender as metodoloxías da programación estruturada e a programación modular enmarcándoas no contexto histórico da evolución do software.

    5. Referencias
    5.1. Definición
    5.2. Declaración de punteiros e asignación de memoria
    5.3. Compartición de memoria
    5.4. Reserva dinámica de memoria

    Este tema trata sobre o mecanismo das referencias. Esta é unha das características fundamentais das linguaxes de programación, común a case todas as linguaxes modernas. Mesmo aquelas linguaxes que non fan uso explícito de referencias teñen algún uso implícito.

    6. Arquivos
    6.1. Tipos de acceso: secuencial e directo
    6.2. Operacións con arquivos
    6.3. Procedementos e funcións de tratamento de arquivos

    Neste tema defínense os dous tipos principais de acceso a arquivos, facendo fincapé na importancia dos formatos e a súa relación directa cos tipos de datos utilizados nunha aplicación.

    Bibliografía básica e complementaria
    Ao comezo do curso, os estudantes terán acceso aos apuntamentos preparados polo profesor e que cobren todos os temas da materia. Adicionalmente recomendamos as seguintes referencias bibliográficas:

    Básica:

    1. J. García e outros. Una introducción a la programación. Ed. Thomson, 2005.
    Referencia interesante que cubre a maior parte dos contidos da materia. Adicionalmente inclúe un curso básico de programación C.

    2. B.S. Gottfried Ed. McGraw-Hill, 2005.
    Curso básico de programación en C. Este libro contempla todos os aspectos de interese, pero en realidade calquera manual similar é válido para a parte práctica da materia.


    Complementaria:

    3. L. Joyanes. Fundamentos de programación. Ed. McGraw-Hill, 1996, 2002.
    Esta referencia resulta interesante polo feito de que complementa a referencia #1 amosando enfoques lixeiramente diferentes usando un seudocódigo propio para os exemplos, o que permite un nivel de abstracción por enriba das linguaxes específicas.

    4. R. Peña Marí. Diseño de Programas: formalismo y abstracción. Ed. Prentice-Hall.
    Esta referencia resulta un complemento interesante nos aspectos de especificación e verificación de algoritmos. O feito de tratar estes temas moito máis en rigor do que nos o facemos nesta materia fai que a consideremos como referencia complementaria.


    Competencias
    Ao remate do curso o/a estudante será quen de desenvolver de xeito modular un proxecto de programación na linguaxe de programación C, incluíndo unha axeitada indicación das especificacións, o seu deseño e unha documentación descritiva do proxecto.

    Traballaranse en certa medida, de acordo coas características da materia, as seguintes competencias escollidas entre as globais do título e as do módulo de formación básica:

    FB4. Coñecementos básicos do uso e programación dos ordenadores, sistemas operativos, bases de datos e programas informáticos con aplicación en enxeñaría.

    FB5. 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.

    RI8. Capacidade para analizar, deseñar, construír e manter aplicacións de forma robusta, segura e eficiente, elixindo o paradigma e as linguaxes de programación máis adecuados.

    CG8. Coñecemento das materias básicas e tecnoloxías, que capaciten para a aprendizaxe e desenvolvemento de novos métodos e tecnoloxías, así como as que lles doten dunha gran versatilidade para adaptarse a novas situacións.

    CG9. Capacidade para resolver problemas con iniciativa, toma de decisións, autonomía e creatividade. Capacidade para saber comunicar e transmitir os coñecementos, habilidades e destrezas da profesión de Enxeñeiro Técnico en Informática.

    TR1. Instrumentais: Capacidade de análise e síntese. Capacidade de organización e planificación. Comunicación oral e escrita en galego, castelán e inglés. Capacidade de xestión da información. Resolución de problemas. Toma de decisións.

    TR2. Persoais: Traballo en equipo. Traballo nun equipo multidisciplinar e multilingüe. Habilidades nas relacións interpersoais. Razoamento crítico. Compromiso ético.

    TR3. Sistémicas: Aprendizaxe autónoma. Adaptación a novas situacións. Creatividade. Iniciativa e espírito emprendedor. Motivación pola calidade. Sensibilidade cara a temas ambientais.

    Ademais, trabállanse as seguintes competencias do módulo de programación:
    - Desenvolver programas cun bo estilo de programación, coa documentación necesaria e os comentarios adecuados.
    - Utilizar ferramentas de edición, compilación, e execución para desenvolver programas. Capacidade para aplicar estratexias de depuración, proba e corrección de programas.
    - Manexar diferentes niveis de abstracción para estruturar o software a desenvolver.
    - Deseñar algoritmos dunha certa complexidade e implementalos aplicando os principios da programación estruturada e modular.
    - Comprensión de conceptos relacionados co desenvolvemento de algoritmos.
    - Coñecemento das diferentes paradigmas de programación.
    - Exposición oral do traballo realizado.
    - Motivación e capacidade de autoaprendizaxe.
    - Autoestima e espírito de superación.

    Metodoloxía da ensinanza
    O programa de docencia expositiva baséase en clases semanais, nas que se inclúen as explicacións dos temas e os seminarios de problemas. O programa de docencia interactiva articúlase habitualmente en sesións semanais de dúas horas, e estará orientado a traballar de xeito práctico os contidos introducidos nas clases expositivas.

    O horario prevé 21 horas de docencia expostiva distribuídas ao longo do cuadrimestre, segundo o horario académico oficial, e 2 horas semanais de docencia interactiva. Empezaremos en teoría vendo temas relacionados coa especificación e a verificación de algoritmos, ao tempo que en prácticas iremos introducindo e manexando os conceptos de programación máis básicos. Cando cheguemos aos temas de teoría relacionados coa programación estruturada a teoría e a práctica xa serán complementarias, de xeito que a partires dese momento os alumnos irán resolvendo en prácticas de xeito autónomo exercicios de programación en linguaxe C nos que terán que manexar os coñecementos teóricos. Cada tema terá un boletín de exercicios de deseño e de implementación asociado e o traballo do alumno será avaliado sobre un subconxunto representativo destes exercicios. Tanto os exercicios coma os proxectos seleccionados para avaliación dos boletíns terán que ser defendidos de xeito presencial diante do profesor.

    Durante o curso farase uso intensivo da USC-Virtual tanto como repositorio de apuntamentos, exercicios teóricos, boletíns de prácticas e as correspondentes solucións, coma ferramenta de comunicación para o envío de traballos, foro de discusión e consulta de dúbidas.


    Sistema de evaluación
    A Avaliación de Xaneiro poderá realizarse de xeito continuo ao longo do semestre, ou ben a través de dúas probas finais. En ámbolos dous casos a parte teórica pesará un 30% na nota final, e a parte práctica pesará un 70%.

    Na avaliación continua, para superar a parte teórica o estudante realizará traballos ou probas que se propoñan ao longo do semestre. Na parte máis práctica, o estudante realizará varios proxectos pequenos ao longo do semestre. Os estudantes que non realicen estas probas ou queiran subir nota, poderán presentarse ás probas finais.

    As probas finais tamén se dividen en dúas partes. A proba teórica (30% da nota) consistirá nun cuestionario escrito. A parte práctica avaliarase mediante un proxecto de programación que se proporá ao comezo do semestre (70% da nota).

    Para aprobar a materia deberán superarse independentemente as partes teórica e práctica.

    A Avaliación de Xullo consistirá dun custionario escrito para a parte teórica e un proxecto para a parte práctica, e conservarase a nota da parte aprobada na Avaliación de Xaneiro. O proxecto de programación será o mesmo da Avaliación de Xaneiro.

    Considerarase Non Presentado a aquel estudante que non se presente nin a ningunha das probas de avaliación contínua que se realicen ao longo do curso, nin a ningunha das probas finais da Avaliación de Xaneiro e Xullo.

    Na avaliación será de aplicación a normativa da ETSE sobre autoría de traballos prácticos (Xunta de Escola de 26-10-2006). En particular o plaxio de traballos será avaliado coa puntuación de 0 na proba a todos os implicados.
    Tempo de estudo e traballo persoal
    O tempo de estudo medio recomendable para o alumno é dunhas 2 horas semanais. Adicionalmente, deberá contarse o tempo dedicado á realización de traballos de prácticas e o proxecto, que podemos estimar nunhas 4 h./semana máis. Totalizando 6 horas de estudo e traballo persoal, o que xunto coas actividades de docencia presencial nos levan a 150h/cuadrimestre.
    Recomendacións para o estudo da materia
    Recoméndase levar ao día o estudo da teoría, a realización de prácticas e a resolución de problemas. Igualmente consideramos importante facer un bo aproveitamento das titorías para a discusión dos exercicios prácticos e como vía de resolución inmediata de dúbidas.
    Observacións
    A docencia vaise impartir prioritariamente en galego.