PROGRAMACIÓN I
Doble Titulación de Grado en Estadística y en Ingeniería Informática
Curso 2022/2023
1. Datos de la asignatura
(Fecha última modificación: 26-05-22 10:15)- Código
- 101102
- Plan
- ECTS
- 6
- Carácter
- Curso
- 1
- Periodicidad
- Primer Semestre
- Idioma
- ESPAÑOL
- Área
- CIENCIA DE LA COMPUTACIÓN E INTELIGENCIA ARTIFICIAL
- Departamento
- Informática y Automática
- Plataforma Virtual
Datos del profesorado
- Profesor/Profesora
- María Angélica González Arrieta
- Grupo/s
- A y B (Teoría)
- Centro
- Fac. Ciencias
- Departamento
- Informática y Automática
- Área
- Ciencia de la Computación e Inteligencia Artific.
- Despacho
- F3003
- Horario de tutorías
- Consultar su página web
- URL Web
- http://informatica.usal.es/angelica
- angelica@usal.es
- Teléfono
- 923294500, Ext. 1302
- Profesor/Profesora
- Juan Andrés Hernández Simón
- Grupo/s
- PA1 y PB2
- Centro
- Fac. Ciencias
- Departamento
- Informática y Automática
- Área
- Lenguajes y Sistemas Informáticos
- Despacho
- D1515
- Horario de tutorías
- Consultar su página web
- URL Web
- http://diaweb.usal.es/diaweb/personas/jahsimon
- jahsimon@usal.es
- Teléfono
- 923 294500, Ext. 6098
- Profesor/Profesora
- Guillermo Hernández González
- Grupo/s
- PA2 Y PB4
- Centro
- Fac. Ciencias
- Departamento
- Informática y Automática
- Área
- Ciencia de la Computación e Inteligencia Artific.
- Despacho
- F3003
- Horario de tutorías
- Consultar su página web
- URL Web
- https://produccioncientifica.usal.es/investigadores/147991/detalle
- guillehg@usal.es
- Teléfono
- 923 294500, Ext. 1302
- Profesor/Profesora
- María Resurrección Gutiérrez Rodríguez
- Grupo/s
- PA3
- Centro
- Fac. Ciencias
- Departamento
- Informática y Automática
- Área
- Lenguajes y Sistemas Informáticos
- Despacho
- D1515
- Horario de tutorías
- Consultar su página web
- URL Web
- http://diaweb.usal.es/diaweb/personas/resu
- resu@usal.es
- Teléfono
- 1309
- Profesor/Profesora
- Fernando de la Prieta Pintado
- Grupo/s
- PA4 y PB1
- Centro
- Fac. Ciencias
- Departamento
- Informática y Automática
- Área
- Ciencia de la Computación e Inteligencia Artific.
- Despacho
- Ed. Ciencias, D1514
- Horario de tutorías
- Consultar su página web
- URL Web
- http://bisite.usal.es/es/grupo/equipo/delaprieta
- fer@usal.es
- Teléfono
- 923 294500, Ext. 6590
- Profesor/Profesora
- Iván Alvarez Navia
- Grupo/s
- PB3
- Centro
- Fac. Ciencias
- Departamento
- Informática y Automática
- Área
- Lenguajes y Sistemas Informáticos
- Despacho
- F3021
- Horario de tutorías
- Consultar su página web
- URL Web
- http://diaweb.usal.es/diaweb/personas/inavia
- inavia@usal.es
- Teléfono
- 6078
2. Sentido de la materia en el plan de estudios
Bloque formativo al que pertenece la materia.
Materia “Programación”, que consta de las siguientes asignaturas:
- Programación I
- Programación II
- Programación III
- Estructuras de Datos y Algoritmos I
- Estructuras de Datos y Algoritmos II
- Informática Teórica
- Programación Avanzada
- Animación Digital (optativa)
- Desarrollo de Aplicaciones Avanzadas(optativa).
Papel de la asignatura.
Esta asignatura es el primer contacto del alumno con las cuestiones relacionadas con Programación, y aporta unas bases que se desarrollarán posteriormente en Programación II, Programación III (POO) y las demás asignaturas de esta Materia. La programación, con distintos paradigmas y lenguajes, constituye el esqueleto de esta titulación, puesto que permite implementar los conceptos que se aportan a lo largo y ancho de todo el Plande Estudios. Es imprescindible dominar los métodos y conceptos que se aportan en estas asignaturas para llegar aun correcto aprovechamiento en el Grado en Informática.
Perfil profesional.
Los alumnos que cursan el Grado en Informática tienen como objetivo laboral la industria, o quizá el mundo académico. Tanto la Empresa como la Universidad exigen resultados concretos, o más exactamente programas que resuelvan problemas. Los métodos y conceptos que se aportan en esta materia tienen como fin la creación de software correcto, robusto, eficiente y reutilizable, que deberá estar dotado de una interfaz de usuario que satisfaga criterios de usabilidad, portabilidad y mantenibilidad. Para alcanzar un desarrollo profesional, se necesitan como mínimo las asignaturas básicas y obligatorias de esta materia, sin olvidar las asignaturas optativas que contiene, y que ofrecen lo necesario para construir software avanzado.
De este modo, el perfil profesional de los graduados será el adecuado para entrar en el mercado laboral, o quizá para abordar la realización de un Máster que complemente su formación.
3. Recomendaciones previas
Al tratarse de una asignatura de primer curso, es posible recomendar asignaturas anteriores. Sin embargo, se observa lo siguiente:
- Un conocimiento razonable del manejo de ordenadores personales (con nivel de usuario) facilita los primeros pasos. Resulta especialmente necesario conocer los conceptos básicos de los sistemas de archivos, tanto desde el punto de vista de la línea de órdenes como empleando alguna interfaz gráfica de usuario. En general, el conocimiento de sistemas operativos facilitará la comprensión de esta asignatura.
- El desarrollo de capacidades lógicas, especialmente las que se adquieren mediante el estudio de disciplinas científicas, facilita mucho la comp- rensión y utilización de las herramientas de programación.
- La enorme cantidad de información disponible en Internet, y especialmente en lo tocante a Programación, hace que sea muy conveniente saber usar los principales buscadores de la red.
- El correcto conocimiento del idioma Inglés resulta esencial, puesto que un porcentaje muy elevado de los contenidos de Internet hacen uso de este idioma. En general, el conocimiento de idiomas (inglés, francés, alemán, italiano y cualquier otro) es realmente muy deseable, tanto a efectos de obtener información como desde un punto de vista laboral, por cuanto la empresa (y la Universidad) aprecian mucho la capacidad de comunicación con el resto de la UE.
Finalmente, el interés por cuestiones relacionadas con el manejo de ordenadores para resolver problemas de todo tipo es realmente el único requisito imprescindible para abordar con éxito esta asignatura.
4. Objetivo de la asignatura
Objetivos Generales
- Conocer el modelo que utilizan los lenguajes de programación para llegar a la resolución de problemas
- Conocer las bases de la Programación Estructurada
- Adquirir buenos hábitos de programación
- Llegar a la construcción de software correcto, robusto y eficiente
- Conocer el proceso de creación de aplicaciones, desde la creación eficiente de código fuente hasta la generación de aplicaciones
- Conocer algunos algoritmos clásicos, y ser capaz de formular soluciones algorítmicas para las aplicaciones que deba construir
Objetivos Específicos
- Conocer un lenguaje basado en el paradigma de programación estructurada
- Conocer y manejar tipos de datos primitivos
- Conocer y manejar tipos estructurados homogéneos
- Conocer y manejar las estructuras de control de flujo
- Conocer y manejar subprogramas
- Conocer y manejar técnicas básicas de compilación.
5. Contenidos
Teoría.
1.- Diseño de programas. Lenguajes de programación
2.- Elementos básicos del C.
3.- Operadores, expresiones y funciones de biblioteca.
4.- Sentencias de control alternativas.
5.- Sentencias de control repetitivas.
6.- Arrays: vectores y matrices. Cadenas de caracteres.
7.- Punteros. Relación entre los punteros y los arrays.
8.- Funciones. Paso de parámetros por valor y por referencia.
6. Competencias a adquirir
Básicas / Generales.
-CECB3. Capacidad para comprender y dominar conceptos básicos de matemática discreta, lógica, algorítmica y complejidad computacional, y su aplicación para la resolución de problemas propios de la ingeniería. . CECB4 –Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informativos máticos con aplicación en ingeniería. . CECB5-Conocimiento dela estructura,organización, funcionamiento e interconexión de los sistemas informáticos,los fundamentos de su programación,y su aplicaciónpara la resolución de problemaspropios de la ingeniería. Comunes: . CECC1- Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad, seguridad y calidad, conformea principios éticos y a la legislación ynormativa vigente. . CECC6-Conocimiento yaplicación delosprocedimientos algorítmicosbásicos de las tecnologías informáticas paradiseñar soluciones a problemas. .CECC7 - Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de un problema. .CECC8 - Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente. |
Específicas.
|
Transversales.
|
7. Metodologías
Actividades no presenciales
- Estudio autónomo por parte del estudiante, con especial atención a un enfoque práctico.
- Revisión bibliográfica y búsqueda de información, especialmente en Internet.
- Realización de prácticas y trabajos individuales y autónomos.
Actividades presenciales:
- Lección magistral: exposición de teoría y resolución de problemas
- Realización de prácticas guiadas en laboratorio
- Sesiones de tutorías, seguimiento y evaluación, individuales o en grupo
- Exposición de trabajos y pruebas de evaluación
8. Previsión de Técnicas (Estrategias) Docentes
9. Recursos
Libros de consulta para el alumno.
- Fundamentos de Programación. Ed.McGraw-Hill. JoyanesAguilar
- Programación estructurada en C.Ed.Prentice Hall.José Rafael García-Bermejo Giner
- Programación en C. Ed. DIA. Varios autores
- Programación en C. Ed. McGraw-Hill. Antonakos-Mansfield
- El lenguaje deprogramación C. Ed.Prentice-Hall. Brian Kernighan y Dennis Ritchie
- Programación en C. Ed. McGraw-Hill. Byron Gottfried
- Estructuras de datos en C. Prentice-Hall Tannenbaum.
- El lenguaje de Programación C. Ed. Prentice-Hall. Brian W.Kernighan y Dennins M. Ritchie.
Otras referencias bibliográficas, electrónicas o cualquier otro tipo de recurso.
CodeBlocks http://www.codeblocks.org/
XCode-Apple http://developer.apple.com/
Netbeans http://www.netbeans.org/
Eclipse http://www.eclipse.org/
NinGW http://sourceforge.net/projects/mingw/
Gcc-GNU http://www.gnu.org/
Videos http://maxus.fs.usal.es/hothouse/programacion/podcasts.index.html
El servidor maxus (http://maxus.fis.usal.es) contine información relativa a Programación; de hecho se ofrece al alumno una extensa colección de exposiciones teóricas, ejercicios, gráficas, enlaces y sugerencias.
10. Evaluación
Consideraciones generales.
Con objeto de llevar a cabo una evaluación continua, se hace uso de la plataforma virtual para notificar las tareas y fechas de entrega de las mismas.
Entre estas tareas se consideran las asociadas a los temas vistos e teoría y los resultados de las defensas que se soliciten en grupos de prácticas. La evaluación considera especialmente relevantes los aspectos prácticos de la asignatura.
Criterios de evaluación.
Los objetivos generalesyespecíficos de esta asignatura hacen que el conocimiento práctico resulte esencial, y por tanto los criterios de evaluación son básicamente relativos a los aspectos aplicados de los conceptosque se tratan. Seplantearán al alumnovariaspruebas de tipo test, con objeto de comprobar su comprensión de conceptos básicos sin los cuales no es posible abordar los problemas tratados. Adicionalmente, se plantearán trabajos prácticos que, mediante la construcción de programas, muestren un conocimiento práctico adecuado para el estudio de otros temas avanzados (como los que se abordarán en Programación II y III). Por último, se realizará un examen final en que el alumno deberá mostrar por escrito las capacidades adquiridas.
Instrumentos de evaluación.
Se propone una evaluación basada en tres mecanismos:
Evaluación continua: Teoría enfocada a la práctica............................................ ........................................ 10%
Este apartado se refiere a pruebas tipo test efectuadas en Studium o en papel de lectora óptica, en días programados, que se darán a conocer en clase y por la plataforma studium. El contenido de estas pruebas corresponderá a temas tratados en clases de teoría y de prácticas, con enfoque teórico práctico. Habrá dos pruebas y cada una de ellas tendrá el peso del 5%.
Evaluación continua: Prácticas ............... ................................................................ 20%
Se realizarán dos pruebas prácticas sobre papel en días programados, que se darán a conocer en clase y por la plataforma studium. El contenido de estas pruebas corresponderá a temas tratados en las prácticas. Habrá dos pruebas y cada una de ellas tendrá el peso del 10%.
Realización de exámenes . .................................................................................................... 70%
El contenido del examen será teórico-práctico (parte tipo test y ejercicios prácticos a desarrollar sobre papel), y tendrá por objeto comprobar la correcta comprensión de los conceptos abordados en la asignatura, así como las capacidades adquiridas por el alumno.
Nota.- La nota de evaluación continua tipo test y de prácticas será la que se obtenga durante el desarrollo del curso mantendrá la nota para la convocatoria extraordinaria del mismo curso académico.
Recomendaciones para la evaluación.
- Se recomienda estudiar y practicar los aspectos básicos de la programación estructurada, por ser este el tema principal de Programación I.
- Se recomienda conocer de forma práctica los aspectos básicos y fundamentales del proceso de compilación (línea de órdenes), relegando. Aspectos más avanzados (IDE) para Programación II.
- Se recomienda conocer de manera práctica las estructuras de datos y de control vistas a lo largo del curso.
- Se recomienda conocer de forma práctica el uso de tipos de datos estructurados, así como el de los mecanismos sencillos de iteración.
- Se recomienda conocer de forma práctica el uso de subprogramas, paso de parámetros y devolución de resultados por distintas vías.
- Finalmente, se recomienda construir programas partiendo de cero, empleando únicamente las herramientas básicas de edición y compilación. Vistas a lo largo del curso.
Recomendaciones para la recuperación.
Se recomienda utilizar un enfoque totalmente práctico para abordar esta asignatura. Las técnicas memorísticas producen siempre resultados nefastos, puesto que un pequeño cambio en los requisitos de un programa puede dar lugar al uso de técnicas muy distintas de las que quizá se considerasen inicialmente.
Se recomienda “jugar” haciendo programas. Los conocimientos adquiridos de forma autónoma no se olvidan fácilmente, aunque se cuente siempre con la ayuda del profesor.