Créditos ECTS Créditos ECTS: 6
Horas ECTS Criterios/Memorias Traballo do Alumno/a ECTS: 97 Horas de Titorías: 3 Clase Expositiva: 20 Clase Interactiva: 30 Total: 150
Linguas de uso Castelán, Galego
Tipo: Materia Ordinaria Grao RD 1393/2007 - 822/2021
Departamentos: Electrónica e Computación
Áreas: Linguaxes e Sistemas Informáticos
Centro Escola Técnica Superior de Enxeñaría
Convocatoria: Primeiro semestre
Docencia: Con docencia
Matrícula: Matriculable | 1ro curso (Si)
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 semestres. De xeito inmediato, a programación en C resulta imprescindible para as materias Programación II (2º Semestre) e Algoritmos e Estrutura de Datos (2ºCurso, 1 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.
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. 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. Vectores e matrices
3.5. 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. Recursividade
4.5. Deseño modular
4.6. Bibliotecas
4.7 Arquivos
4.7.1. Tipos de acceso: secuencial e directo
4.7.2. Operacións con arquivos
4.7.3. Procedementos e funcións de tratamento de arquivos
Os obxectivos dos temas 2-4 son aprender as metodoloxías da programación estruturada e a programación modular enmarcándoas no contexto histórico da evolución do software. Ademais, no tema 4 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.
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
5.5. Punteiros e funcións
5.6. Punteiros e estruturas
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.
Básica:
Ao comezo do curso, o estudantado terá acceso aos apuntamentos preparados polo profesor e que cobren todos os temas da materia. Adicionalmente recomendamos as seguintes referencias bibliográficas complementarias:
Complementaria:
1. GARCÍA, Jesús J. Una introducción a la programación. Madrid: Thomson, 2005. ISBN 84-9732-185-5.
Referencia interesante que cubre a maior parte dos contidos da materia. Adicionalmente inclúe un curso básico de programación C.
2. GOTTFRIED, Byron S. Programación en C. 2ª ed. Madrid: McGraw-Hill, 2005. ISBN 84-481-9846-8.
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.
3. BROOKSHEAR, J. Glenn. Introducción a la computación. 12ª ed. Pearson Addison-Wesley, 2013. ISBN 9788478291397.
4. JOYANES, Luís . Fundamentos de programación. 4º ed. Aravaca (Madrid): McGraw-Hil, 2008. ISBN 978-84-481-6111-8.
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.
5. GRIFFITHS, David. Head first C. O’Reilly, 2013. ISBN 978-1-449-39991-7.
Este texto baséase nos últimos resultados sobre procesos de aprendizaxe para facilitar a aprendizaxe da da linguaxe de programación C.
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.
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 expositiva 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 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 oral diante do profesor.
As competencias FB4, FB5, RI8, CG8 e CG9, así como as indicadas do módulo de programación teñen contidos específicos asociados na parte teórica e práctica da materia e avalíanse de xeito explícito nas probas realizadas ao longo do curso.
As competencias de tipo TR1 trabállanse fundamentalmente no aspecto de comunicación mediante presentacións orais de resultados como pola achega a bases de datos con código de exemplo que constrúen os estudantes durante o curso.
As competencias de tipo TR2 trabállanse de xeito implícito pola propia dinámica das clases onde o traballo en equipo é necesario e obrigatorio para a realización de tarefas que serán avaliadas.
Do grupo de competencias TR3 traballamos especialmente a creatividade e a motivación pola calidade. A ensinanza de patróns de programación e técnicas básicas para avaliación da eficiencia
axudan a buscar as mellores solucións para cada caso e avaliar os resultados en función diso.
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.
A Avaliación na Primeira Oportunidade realizarse de xeito continuo ao longo do semestre. A parte teórica pesará un 40% na nota final, e a parte práctica pesará un 60%.
Na avaliación continua, para superar a materia cada estudante realizará traballos ou probas que se propoñan ao longo do semestre.
Na avaliación combinarase presencialidade con uso de ferramentas da aula virtual.
A propia dinámica das clases e o tipo de probas realizadas implican o traballo e avaliación de todas as competencias da materia. Adicionalmente propóñense tarefas que permiten sumar puntuación extra (variable segundo a programación de cada curso) para traballar de xeito específico as habilidades de comunicación (presentación de traballos, preparación de material didáctico, etc.), a creatividade e a motivación pola calidade (retos de programación). Ao longo do curso proponse un número grande de tarefas deste tipo coa idea que cada estudante realice só algunhas delas (un número mínimo para tomarllas en conta dependente do tipo e dificultade das propostas de cada curso), de acordo coa súa planificación e carga de traballo en cada momento.
Para aprobar a materia hai que obter unha nota igual ou superior a 5 na suma das contrubuccións das actividades teóricas e prácticas.
A Avaliación na Segunda Oportunidade basearase na realización dun proxecto de deseño e programación, que se poñerá a disposición do alumnado a comezos do segundo semestre, ou nunha proba final escrita.
Considerarase Non Presentado a quen non se presente a ningunha das probas de avaliación continua que se realicen ao longo do curso, nin á proba de avaliación na Segundo Oportunidade.
No sistema de avaliación non se distingue entre estudantes de primeira matrícula e sucesivas.
Para os casos de realización fraudulenta de exercicios ou probas será de aplicación o recollido na Normativa de avaliación do rendemento académico do/as estudantes e de revisión de cualificacións.
En aplicación do Regulamento ETSE sobre plaxio (aprobado pola Xunta ETSE o 19/12/2019) a copia total ou parcial de calquera exercicio de práctica ou teoría suporá un suspenso en ambas as ocasións do curso, cunha cualificación de 0,0 en ambos os casos.
O tempo de estudo medio recomendable é de 2 horas semanais. Adicionalmente, deberá contarse o tempo dedicado á realización de traballos de prácticas e o proxecto, que estimamos en 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/semestre.
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.
A docencia desta materia vaise impartir prioritariamente en galego e farase uso intensivo da aula virtual.
Xosé Manuel Pardo López
Coordinador/a- Departamento
- Electrónica e Computación
- Área
- Linguaxes e Sistemas Informáticos
- Teléfono
- 881816438
- Correo electrónico
- xose.pardo [at] usc.es
- Categoría
- Profesor/a: Titular de Universidade
Roi Santos Mateos
- Departamento
- Electrónica e Computación
- Área
- Linguaxes e Sistemas Informáticos
- Correo electrónico
- roi.santos [at] usc.es
- Categoría
- Profesor/a: Profesor Interino/a substitución redución docencia
Luns | |||
---|---|---|---|
09:00-10:00 | Grupo /CLE_01 | Galego | Aula A1 |
15:30-18:00 | Grupo /CLIL_04 | Galego | Aula de Informática I7 |
Martes | |||
15:30-18:00 | Grupo /CLIL_05 | Castelán | Aula de Informática I7 |
Mércores | |||
15:30-18:00 | Grupo /CLIL_01 | Castelán | Aula de Informática I7 |
Xoves | |||
09:00-10:00 | Grupo /CLE_01 | Galego | Aula A1 |
15:30-18:00 | Grupo /CLIL_02 | Galego | Aula de Informática I7 |
Venres | |||
15:30-18:00 | Grupo /CLIL_03 | Galego | Aula de Informática I7 |
15.01.2025 10:00-14:00 | Grupo /CLE_01 | Aula A3 |
15.01.2025 10:00-14:00 | Grupo /CLIL_01 | Aula A3 |
15.01.2025 10:00-14:00 | Grupo /CLIL_02 | Aula A3 |
15.01.2025 10:00-14:00 | Grupo /CLIL_03 | Aula A3 |
15.01.2025 10:00-14:00 | Grupo /CLIL_04 | Aula A3 |
15.01.2025 10:00-14:00 | Grupo /CLIL_05 | Aula A3 |
15.01.2025 10:00-14:00 | Grupo /CLIL_01 | Aula A4 |
15.01.2025 10:00-14:00 | Grupo /CLIL_02 | Aula A4 |
15.01.2025 10:00-14:00 | Grupo /CLIL_03 | Aula A4 |
15.01.2025 10:00-14:00 | Grupo /CLIL_04 | Aula A4 |
15.01.2025 10:00-14:00 | Grupo /CLIL_05 | Aula A4 |
15.01.2025 10:00-14:00 | Grupo /CLE_01 | Aula A4 |
25.06.2025 10:00-14:00 | Grupo /CLE_01 | Aula A1 |
25.06.2025 10:00-14:00 | Grupo /CLIL_01 | Aula A1 |
25.06.2025 10:00-14:00 | Grupo /CLIL_02 | Aula A1 |
25.06.2025 10:00-14:00 | Grupo /CLIL_03 | Aula A1 |
25.06.2025 10:00-14:00 | Grupo /CLIL_04 | Aula A1 |
25.06.2025 10:00-14:00 | Grupo /CLIL_05 | Aula A1 |