Identifying Data 2017/18
Subject (*) Integrative Programming Code 614G01049
Study programme
Grao en Enxeñaría Informática
Descriptors Cycle Period Year Type Credits
Graduate 2nd four-month period
Third Obligatoria 6
Language
Spanish
Teaching method Face-to-face
Prerequisites
Department Enxeñaría de Computadores
Coordinador
Rodríguez Álvarez, Gabriel
E-mail
gabriel.rodriguez@udc.es
Lecturers
Andrade Canosa, Diego
Rodríguez Álvarez, Gabriel
E-mail
diego.andrade@udc.es
gabriel.rodriguez@udc.es
Web
General description Una organización emplea gran número de diversas tecnologías para la realización
de diferentes tareas. Estas tecnologías deben ser capaces de comunicarse y
cooperar unas con otras. Así, un componente clave para la disciplina de las TI
es la integración de aplicaciones y sistemas. Esta asignatura explorará los
diferentes tipos de lenguajes de programación y su uso apropiado, así como el
uso de lenguajes de scripting, arquitecturas, interfaces de aplicación y
prácticas de programación que facilitan la gestión, integración y seguridad de
los sistemas que dan soporte a una organización.

Study programme competencies
Code Study programme competences
A53 Capacidade para seleccionar, deseñar, despregar, integrar, avaliar, construír, xestionar, explotar e manter as tecnoloxías de hárdware, sóftware e redes dentro dos parámetros de custo e calidade adecuados.
B1 Capacidade de resolución de problemas
B3 Capacidade de análise e síntese
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.

Learning aims
Learning outcomes Study programme competences
Conocer los modelos y funcionamiento de los programas compilados vs. programas interpretados. A53
B1
B3
Poder elegir entre un lenguaje de aplicación vs. un lenguaje de scripting para resolver un problema determinado, dando razones lógicas que avalen la elección. A53
B1
B3
C6
C7
C8
Identificar los lenguajes de scripting más comúnmente usados en diferentes entornos: web, server-side, sistema operativo. A53
B1
B3
Conocer y saber utilizar herramientas para la obtención, manipulación, visualización y análisis de grandes volúmenes de datos procedentes de diferentes fuentes, posiblemente heterogéneas. A53
B1
B3
C6
C7
C8
Escribir, depurar y probar un script que incluya selección, repetición y paso de parámetros. A53
B1
C7
Escribir, depurar y probar una página web que use scripting para validar los valores de entrada a un formulario. A53
C7
Escribir, depurar y probar una aplicación web interactiva que use server-side scripting para procesar las entradas desde una página web. A53
C7
Escribir, depurar y probar un script para facilitar la gestión de un sistema operativo. A53
B1
B3
C6
C7

Contents
Topic Sub-topic
1. Linguaxes de scripting - Historia das linguaxes de programación
- Paradigmas de programación
- Linguaxes compilados vs. interpretados
- Linguaxes de aplicación vs. scripting
- Shell scripting
2. Análise de datos con Python - Introducción.
- Almacenaxe de datos e formato de ficheiros.
- Limpeza e transformación de datos.
- Visualización.
- Agregación.
- Series temporais.
3. Creación de páxinas web en Python - Alternativas existentes
- Creación de páxinas web con Django
- Uso avanzado de Django
4. Integración con Python - Integración de Python con outras linguaxes
- Conceptos básicos de APIs de terceiros: JSON e OAuth
- A arquitectura REST
5. Linguaxes de scripting do lado do cliente - Javascript
- Librarías que facilitan o uso de Javascript

Planning
Methodologies / tests Competencies Ordinary class hours Student’s personal work hours Total hours
Guest lecture / keynote speech A53 B1 B3 C6 C7 C8 21 46 67
Laboratory practice B1 B3 C6 15 15 30
Supervised projects A53 B1 C6 C7 C8 7 42 49
Mixed objective/subjective test A53 B1 B3 C6 3 0 3
 
Personalized attention 1 0 1
 
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies Description
Guest lecture / keynote speech Exposición oral coa finalidade de transmitir conceptos e facilitar a aprendizaxe. Se usará a pizarra xunto con transparencias que amosen os conceptos fundamentais, así como unha serie de exemplos e figuras que axuden a clarificar os devanditos conceptos. As sesións maxistrais versarán sobre todos os contidos do temario, sendo o punto de partida para o resto das actividades previstas.
Laboratory practice Os alumnos deberán enfrontarse a unha serie de problemas plantexados polo profesor durante as sesións prácticas en ordenadores. Para a súa realización, o alumno contará coa tutela do profesor; outros exemplos realizados na clase; e a bibliografía recomendada. Ademáis, desenvolverá as prácticas guiadas para se familiarizar coas ferramentas vistas na clase e para resolver problemas específicos. A finalidade desta actividade será aprender e afianzar os coñecementos xa adquiridos.
Supervised projects Resolución dun caso de estudo de maior dificultade ca os realizados de forma guiada, estudando en maior profundidade unha aplicación específica directamente relacionada cos contidos da materia. Deberá facerse unha defensa do traballo realizado, resumindo as principais conclusións do mesmo.
Mixed objective/subjective test Exame da materia que combinará preguntas sobre a teoría con problemas a resolver.

Personalized attention
Methodologies
Supervised projects
Laboratory practice
Description
Nas prácticas de laboratorio e traballos tutelados, os estudantes poderán presentar cuestións, dúbidas, etc. O profesor, atendendo a estas solicitudes, repasará conceptos, resolverá novos problemas ou utilizará calquera actividade que considere axeitada para resolver as cuestións plantexadas.

Assessment
Methodologies Competencies Description Qualification
Supervised projects A53 B1 C6 C7 C8 Os alumnos resolverán un problema complexo integrando diferentes tecnoloxías. Aínda que se proporán traballos a realizar, incentivarase que os alumnos desenvolvan, deseñen e resolvan propostas propias.

É condición necesaria (pero non suficiente) para aprobar a asignatura entregar en prazo este traballo, que inclúe parte de prácticas de laboratoria e parte de traballos tutelados, así como obter como mínimo o 50% da puntuación máxima asignada ao mesmo. Este traballo realizarase preferentemente en grupos. A súa avaliación realizarase nunha defensa na que cada membro da parella será avaliado individualmente.
40
Laboratory practice B1 B3 C6 A avaliación das prácticas de laboratorio e dos traballos tutelados se realizará de forma conxunta nunha única defensa final. Ver o apartado sobre avaliación dos traballos tutelados. 20
Mixed objective/subjective test A53 B1 B3 C6 Proba sobre os contidos presentados na docencia expositiva e desenvolvidos nas sesións de laboratorio e nas titorías grupais.

É condición necesaria (pero non suficiente) para aprobar obter como mínimo o 40% da puntuación máxima da proba mixta.
40
 
Assessment comments

É condición necesaria (pero non suficiente) para aprobar obter unha cualificación global, aplicando as ponderacións da proba mixta, das prácticas de laboratorio e da proba mixta igual ou superior ao 50%. En caso de obter unha cualificación global igual ou superior ao 50% pero non cumplir con algunha das condicións necesarias a cualificación final será un Suspenso (4.9).

O mecanismo de recuperación que se habilitará na segunda oportunidade de xullo incluira un novo prazo de presentación de traballos tutelados, que será anunciado atendendo á data do exame fixada pola Facultade. As condicións de avaliación da segunda oportunidade serán as seguintes:

  • A cualificación do traballo tutelado obtida na convocatoria de xuño poderá ser conservada ou reavaliada, a elección do estudante, unicamente se a nota do traballo tutelado é inferior ao 50%. En todo caso, a presentación dun novo traballo suporá a renuncia á nota obtida anteriormente.
  • A puntuación da proba mixta obtida no convocatoria de xuño poderá ser conservada ou reavaliada, a elección do estudante, unicamente se a nota do traballo tutelado é inferior ao 50%. A presentación dunha nova proba mixta suporá a renuncia á nota obtida anteriormente.
  • Mantéñense as condicións globais necesarias para aprobar requeridas na primeira oportunidade de xuño.
En ningún caso se manterán as notas obtidas entre diferentes convocatorias (é dicir, a nota obtida en calquera das probas avaliadas no curso académico 2016/2017 non será tida en conta durante o curso 2017/2018)

Exemplos de avaliación:

  1. O estudante A acada a máxima puntuación no exame, e 2 puntos sobre 6 no traballo tutelado. A nota ponderada correspondente é un 6, mais ao non acadar o 50% da nota do traballo tutelado a súa nota en actas é un 4.9 (Suspenso). 
  2. O estudante B acada a máxima puntuación no traballo tutelado. Non obstante, obtén un 3.5 sobre 10 no exame. A nota ponderada correspondente é un 7.40, mais ao non acadar alomenos o 40% da puntuación máxima da proba mixta a súa nota en actas é un 4.9 (Suspenso).
  3. O estudante C acada un 3 sobre 6 no traballo tutelado e un 4 sobre 10 no exame. A súa nota ponderada correspondente é un 4.6 (Suspenso). Na segunda oportunidade de xuño, non poderá entregar un novo traballo tutelado, ao ter superada esta proba por alcanzar o 50% da nota do mesmo. Deberá acudir ao exame de xullo a subir nota, conservando a nota do traballo tutelado. A nota da segunda oportunidade obterase sumando a nova nota do exame (aínda que esta sexa menor ao 4 sobre 10 de xuño) ao 3 sobre 6 do traballo.

Os alumnos que non se presenten á proba mixta nin entreguen o traballo final obterán unha cualificación de "Non presentado". Presentarse e non superar calquera das dúas probas de avaliación suporá unha cualificación de "Suspenso".


Non se fará ningunha consideración especial cara aos alumnos con matrícula a tempo parcial.

Sources of information
Basic Arnold Robbins (2005). Classic Shell Scripting: Hidden Commands that Unlock the Power of Unix. O'Reilly
David Flanagan (2007). Javascript: la guía definitiva. O'Reilly
Mark Lutz (2011). Programming Python. O'Reilly
Wes McKinney (2012). Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython. O'Reilly

Complementary


Recommendations
Subjects that it is recommended to have taken before
Programming Paradigms/614G01014
Operating Systems/614G01016
Internet and Distributed Systems/614G01023

Subjects that are recommended to be taken simultaneously
Operating Systems Administration/614G01047
Network Administration/614G01048
Database Administration/614G01050

Subjects that continue the syllabus
Computer Systems Security/614G01079
Application Integration/614G01080

Other comments


(*)The teaching guide is the document in which the URV publishes the information about all its courses. It is a public document and cannot be modified. Only in exceptional cases can it be revised by the competent agent or duly revised so that it is in line with current legislation.