Fundamentos de Programación. Información de la Asignatura.

Anuncio
Fundamentos de Programación.
Información de la Asignatura.
Grado en Informática. Grupo A
Curso 2016/2017
Información general
Información general
Este documento se encuentra en:
http://decsai.ugr.es/jccubero/fp_A.pdf
Información sobre el profesorado.
• Profesor de teoría y prácticas: Juan Carlos Cubero.
Web: http://decsai.ugr.es/jccubero
e-mail: [email protected]
Despacho: D-37. Ciencias de la Computación e Inteligencia Artificial
Tutorías (por favor, avisar con antelación): Martes de 11:30 a 13:30, Miércoles de 12:30
a 13:30, Jueves de 11:30 a 12:30 y Viernes de 10:30 a 12:30.
También pueden consultarse dudas por e-mail.
Descargue el siguiente fichero:
http://decsai.ugr.es/jccubero/fp.zip
Este fichero contiene:
• Transparencia de los dos primeros temas.
• Guión de prácticas con las primeras sesiones.
• Instrucciones para el registro en la plataforma decsai (ver siguiente apartado)
Fundamentos de Programación. Información de la Asignatura
1
Acceso identificado
Acceso identificado
Los alumnos deben registrarse electrónicamente en dos sitios distintos. Realizad el registro
hoy mismo
• En la web de la Universidad de Granada.
Los alumnos deben registrarse electrónicamente en la UGR para poder entrar en las
aulas de prácticas de la asignatura. Las instrucciones están en:
http://csirc.ugr.es/informatica/cuentasinstitucionales/
AccesoIdentificado.html
Se necesita el DNI y el PIN obtenido con la matrícula. El registro electrónico tarda un
día (incluso dos) en activarse. Por tanto, realizad el registro al menos tres días antes
de la primera sesión de prácticas (que tendrá lugar la segunda semana de clases)
Para obtener una dirección de correo electrónico de la Universidad, hay que seguir las
instrucciones detalladas en
http://csirc.ugr.es/informatica/correoelectronico/
SolicitarCuentaCorreo.html
Una vez que se tenga cuenta de correo en la UGR, el alumno podrá iniciar sesión
en cualquiera de los ordenadores de la Escuela de Informática. Para ello, tendrá que
introducir como usuario y contraseña, los mismos que se han elegido para la UGR.
Automáticamente, tendrá acceso a un sitio de almacenamiento en los servidores de la
Escuela. Esto se explica en la primera sesión de prácticas.
• En la web del departamento de Ciencias de la Computación e Inteligencia Artificial DECSAI
https://decsai.ugr.es
– En primer lugar, el alumno debe tener activa una cuenta de correo electrónico en
la UGR (ver apartado anterior)
– Una vez se tenga activa la cuenta de correo electrónico de la UGR, se puede
proceder a activar la cuenta en la plataforma decsai. Para ello, debe seguir las
instrucciones especificadas en el fichero RegistroWebDECSAI.pdf incluido en
http://decsai.ugr.es/jccubero/fp.zip
Si tiene una cuenta activa en la UGR y no puede acceder a la plataforma de
decsai, envíe un e-mail a [email protected] indicando la letra de
su grupo, su número de DNI, Nombre y Apellidos.
El alumno usará la plataforma decsai para:
◦ Bajarse el material de la asignatura (transparencias seguidas en clase de
teoría, guiones de prácticas, soluciones de los ejercicios, etc) Las transparencias también se dejarán en la fotocopiadora de la ETSII. Los guiones de
Fundamentos de Programación. Información de la Asignatura
2
Asignación del grupo de prácticas
prácticas se dejarán únicamente en la Web. Ya está disponible el material del
primer tema.
◦ Subir las soluciones a los ejercicios propuestos en los guiones de prácticas.
◦ Consultar las notas de prácticas y de teoría. En cualquier caso, la nota oficial
final es la que aparece a través del acceso identificado de la Universidad de
Granada.
MUY IMPORTANTE: El alumno nunca deberá dar a conocer a un tercero su nombre de usuario y contraseña, ya que es el responsable del mal uso que se pudiese
realizar con su cuenta (como por ejemplo, copias en los exámenes prácticos).
Asignación del grupo de prácticas
Los grupos de prácticas están numerados del 1 al 3 (A.1, A.2, A.3):
Grupo A.1: De ABRIL MOYA, JAIRO LUIS hasta GARZON SEGURA, IVAN ambos
inclusive
Clases de FP: Martes de 9:30 a 11:30. Aula: 3.1
Grupo A.2: De GONZALEZ MONTEOLIVA, MIGUEL hasta MOLINA TRUJILLO, JAIME ambos inclusive
Clases de FP: Jueves de 9:30 a 11:30. Aula: 2.1
Grupo A.3: De MORENO PEINADO, ALBA AURORA hasta VARGAS PEREZ, VICTOR
ALEJANDRO ambos inclusive
Clases de FP: Miércoles de 9:30 a 11:30. Aula: 3.1
Los alumnos ya están asignados a su grupo de prácticas en la plataforma decsai, pero,
en cualquier caso, es necesario que el alumno active su cuenta en decsai, tal y como se ha
indicado anteriormente.
Excepcionalmente se atenderán cambios de grupos de prácticas debido a problemas laborales, de salud, etc. Para ello, el alumno debe notificarlo por e-mail a su profesor de teoría
de Fundamentos de Programación (Juan Carlos Cubero)
Fundamentos de Programación. Información de la Asignatura
3
Desarrollo de las clases
Desarrollo de las clases
• Clases de teoría.
La asistencia a clase de teoría no es obligatoria.
Justo antes de empezar cada tema en el aula de teoría, traed a clase de teoría las fotocopias de dicho tema para poder trabajar sobre ellas. Traed también folios en blanco
para poder trabajar durante la clase.
Consejo: Trabajar de forma continuada en casa desde el primer día.
• Clases prácticas.
– Asistencia. La asistencia a clase de prácticas es obligatoria. Las clases de prácticas empiezan la semana del 28 de Septiembre.
– Resolución de ejercicios. Cada semana se propondrá la resolución de una serie
de problemas. Éstos vendrán indicados en el Guión de Prácticas (se irán publicando en decsai). Los alumnos tendrán que subir la solución a través de la
plataforma decsai.
A la semana siguiente, el profesor seleccionará algunos alumnos para que defiendan dichos ejercicios durante las horas de prácticas. El alumno obtendrá una
calificación de esta defensa que constituirá la Nota de Evaluación Continua. Posteriormente se indica el peso de esta nota en la calificación final.
Esta semana ya hay que resolver una serie de ejercicios que se corregirán la
próxima semana, durante las horas de prácticas. Como excepción, no se subirán
a decsai. El alumno los resolverá en papel y los llevará a su sesión de prácticas.
– Compilador. En las prácticas trabajaremos en entorno Windows y usaremos Orwell Dev C++. También puede usarse cualquier otro compilador como por ejemplo
CodeBlocks.
Para más información sobre la instalación del compilador, consultad el guión de
prácticas.
Fundamentos de Programación. Información de la Asignatura
4
Evaluación de la asignatura
Evaluación de la asignatura
Convocatoria de Febrero.
La nota final se computa de la siguiente forma:
• En Febrero se realizará un examen escrito consistente en la resolución de varios problemas de programación relacionados con la materia impartida. La ponderación de
este bloque es del 60 %.
Nota mínima en el examen escrito para aprobar la asignatura: 4
• La parte práctica se evalúa de la siguiente forma:
– Evaluación continua: Durante las sesiones de prácticas, los alumnos deberán
defender ante la clase o ante el profesor, los problemas encargados para dicha
sesión de prácticas. La ponderación de esta parte es del 10 %.
– Exámenes de prácticas: A mediados de Noviembre y a principios de Enero se
realizará un examen de prácticas. Cada uno de estos exámenes consistirá en la
resolución de un ejercicio de programación delante del ordenador.
Cada uno de los dos exámenes durará una hora y se realizará en las aulas de
prácticas de la Escuela de Informática.
La ponderación del primer examen es del 10 % y la del segundo del 20 %
Si la nota de la parte escrita es inferior a 4, la nota final será la nota de la parte teórica, pudiendo el alumno mantener la nota de la parte práctica para la convocatoria de Septiembre.
De forma excepcional, aquellos alumnos que opten por acogerse a la Evaluación Única Final, tendrán la opción de presentarse a un único examen práctico. Éste se realizará en el ordenador, en un solo acto académico, junto con el examen de Febrero
correspondiente a la parte escrita. Para más información sobre la evaluación única final, véase la Normativa de Evaluación y Calificación de los Estudiantes de la Universidad de Granada: http://grados.ugr.es/matematicas/pages/infoacademica/
normativaevaluacion. Importante: el plazo para solicitarlo es las dos primeras semanas de clase.
Convocatoria de Septiembre.
En Septiembre, se realizarán las siguientes pruebas en un único acto académico. La nota final del alumno se obtendrá como la suma ponderada de las calificaciones en dichas
pruebas:
• Parte escrita: La ponderación de esta parte es del 60 %. Para la parte escrita se realizará un examen escrito multipregunta sobre los contenidos de la materia impartida.
Fundamentos de Programación. Información de la Asignatura
5
Evaluación de la asignatura
• Parte práctica: La ponderación de esta parte es del 40 %. Para la parte práctica se
realizará un examen práctico en el ordenador.
Los alumnos podrán optar entre conservar la nota de cada parte obtenida en Febrero o
volver a evaluarse.
Fundamentos de Programación. Información de la Asignatura
6
Sobre los contenidos
Sobre los contenidos
Importancia de la asignatura y dedicación
Esta asignatura introduce al alumno al mundo de la Programación. El objetivo de la Programación es poder construir nuestros propios programas (aplicación de ofimática, gestión de
clientes, juegos, etc)
Fundamentos de Programación es la base para muchas otras asignaturas de la carrera, como Metodología de la Programación, Estructuras de Datos, Programación dirigida a objetos,
etc.
Programar no es fácil. Es un lenguaje nuevo para el alumno y se necesita mucha práctica.
El plan de estudios en Informática de la UGR le asigna 6 ECTS a FP. Ésto se traduce en 4
horas presenciales a la semana y 6 horas de estudio en casa a la semana (como mínimo)
Fundamentos de Programación. Información de la Asignatura
7
Sobre los contenidos
Temario
Tema 1. Programación en C++: Fundamentos
1.1 El ordenador, algoritmos y programas
1.2 Especificación de programas
1.3 Datos y tipos de datos
1.4 Operadores y Expresiones
1.5 Tipos de datos comunes en C++
Tema 2. Estructuras de Control
2.1 Estructura Condicional
2.2 Estructuras Repetitivas
Tema 3. Funciones y Clases
3.1 Funciones
3.2 Clases
Tema 4. Vectores y Matrices
4.1 Fundamentos
4.2 La clase MiVector
4.2 Algoritmos de Búsqueda y Ordenación
4.2 Vectores de varias dimensiones: matrices
Tema 5. Clases (parte II)
5.1 Copia de objetos
5.2 Relaciones entre objetos
5.3 Diseño de una solución
5.4 Tratamiento de Errores: Excepciones
Tema 6. Recursividad
6.1 Diseño de algoritmos recursivos
6.2 Funciones recursivas
Fundamentos de Programación. Información de la Asignatura
8
Sobre los contenidos
Bibliografía
BIBLIOGRAFÍA FUNDAMENTAL.
La mayor parte de los libros recomendados en esta página están disponibles de forma
gratuita para los alumnos de la UGR en
http://proquest.safaribooksonline.com/
El acceso es directo desde un ordenador de la Universidad. Desde un ordenador particular
hay que crear previamente una VPN con la UGR. Se puede consultar las instrucciones en
https://csirc.ugr.es/informatica/RedUGR/VPN/ConfVPN/
• T. Gaddis, J. Walters, G. Muganda. Starting out with C++: early objects. Pearson;
8va Ed. 2013
Es uno de los textos de C++ con una estructura de presentación de contenidos que
más se asemeja a la presentada en este curso.
• Steve McConnell. Code Complete: A Practical Handbook of Software Construction. Microsoft Press; 2nd edition, 2004
Estupendo manual del buen estilo de programación.
• Garrido, A. Fundamentos de Programación en C++. Delta Publicaciones, 2005
(Temas 1 y 2)
Un libro muy recomendado para los dos primeros temas. Es un libro centrado en
programación estructurada, por lo que no nos servirá cuando veamos programación
dirigida a objetos a partir del tercer tema.
• C++: An Active Learning Approach. Todd W. Breedlove; Randal L. Albert. Jones
& Bartlett Learning. 2010
Otro texto con una estructura similar a la del curso.
• Starting out with C++: From Control Structures through Objects, Brief, Student
Value Edition (7th Edition). Pearson. 2011.
Otro texto con una estructura similar a la del curso.
• Deitel & Deitel. C++ Cómo Programar. Séptima edición, Prentice Hall-Pearson,
2010
Un libro clásico que puede ayudar a los que están completamente perdidos desde el
principio. Se queda un poco corto en algunos temas. A partir de la sexta edición se
encuentran versiones early object y late object según si se introduce el concepto de
clase desde el primer momento o no. Nosotros seguiremos la versión late object.
La cuarta edición se encuentra disponible en español.
Fundamentos de Programación. Información de la Asignatura
9
Sobre los contenidos
• Mercer, R., Computing Fundamentals with C++. Object-oriented Programming
and Design. 2a Edición. Palgrave Macmillan. 2000.
Un libro muy didáctico para aprender orientación a objetos con C++. Será un libro
importante para la asignatura, a partir del tema de las clases.
• Stephen Prata. C++ Primer Plus. Fifth edition. SAMS, 2004
Un libro con muchos detalles y explicaciones. Abarca los contenidos de las asignaturas
de Fundamentos de la Programación y Metodología de la Programación. Si hubiese
que elegir algún libro fundamental para Fundamentos de la Programación sería éste.
Le falta ver con más profundidad el diseño de una solución utilizando programación
dirigida a objetos.
BIBLIOGRAFÍA COMPLEMENTARIA:
• Robert Martin. Clean Code: A Handbook of Agile Software Craftsmanship, Prentice Hall, 2008
Libro muy interesante, con muchos consejos de diseño orientado a objetos. Requiere
conocer los fundamentos de PDO.
• Kayshav Dattatri. C++ Effective Object-Oriented Software Construction. Prentice
Hall, 1999.
Un libro antiguo y poco conocido, pero muy bueno para aprender programación dirigida a objetos con C++. Complementa a la perfección al libro de Stephen Prata en la
parte más avanzada de diseño orientado a objetos.
• Robert Lafore. Object-Oriented Programming in C++. Sams. 2002
Libro similar al de Stephen Prata, aunque es más completo el de Prata
• Bjarne Stroustrup. El Lenguaje de Programación C++. Addison Wesley, 2001.
El libro del creador de C++. Poco didáctico. Recomendado sólo como referencia de
todo aquello que puede hacerse con C++.
• Walter Savitch. Resolución de problemas con C++, Pearson, 2006.
Tiene un nivel muy equilibrado, aunque se queda corto en la parte de orientación a
objetos. Recomendado para los dos primeros temas.
ENLACES DE INTERÉS:
• Web con material docente y muchos ejercicios resueltos:
http://www.fdi.ucm.es/profesor/luis/
• Tutorial de C++ muy completo:
http://www.zator.com/Cpp/
Fundamentos de Programación. Información de la Asignatura
10
Sobre los contenidos
• Cómo NO realizar una práctica de programación. En tono irónico:
http://www.di.uniovi.es/~cernuda/noprog_ESP.html
• Páginas a destacar sobre C++, incluyendo tutoriales y referencias de las bibliotecas
standard:
http://www.cplusplus.com
http://www.cppreference.com
• Otras páginas sobre C++:
http://c.conclase.net
http://www.cprogramming.com/
http://www.programmersheaven.com
http://stackoverflow.com
Fundamentos de Programación. Información de la Asignatura
11
Sobre la profesión
Sobre la profesión
¿Cuál es el Ingeniero Informático?
Fundamentos de Programación. Información de la Asignatura
12
Sobre la profesión
La respuesta correcta corresponde a la segunda imagen:
Profesionales que siguen protocolos de actuación y modelos de desarrollo bien definidos.
Trabajan en equipo, usualmente en compañías de relevancia
Tienen competencias específicas y las desarrollan en equipo
Tratan directamente con clientes importantes y por tanto no se les ocurre usar la k en
sustituto de la c, ni escribir aprovar, hinundaciones, etc.
Recordad: ¡Sólo se contestarán correos electrónicos que vengan sin faltas de ortografía
(incluidos los acentos, signos de puntuación, etc)!
IMPORTANTE: En el examen, se bajará la nota hasta un máximo de 2 puntos por las faltas
de ortografía.
Fundamentos de Programación. Información de la Asignatura
13
Descargar