Identifying Data 2019/20
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 Optional 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
Horro Varela, Marcos
Rodríguez Álvarez, Gabriel
E-mail
diego.andrade@udc.es
marcos.horro@udc.es
gabriel.rodriguez@udc.es
Web
General description Unha organización empresga un gran número de diversas tecnoloxías para a realización de diferentes tarefas. Estas tecnoloxías deben ser capaces de comunicarse e cooperar unhas con outras. Así, un compoñente clave para a disciplina das TI é a integración de aplicacións e sistemas. Esta asignatura explorará os diferentes tipos de linguaxes de programación e o seu uso apropiado, así como o uso de linguaxes de scripting, arquitecturas, interfaces de aplicación e prácticas de programación que facilitan a xestión, integración e seguridade dos sistemas que dan soporte a unha 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
Coñecer os modelos e funcionamento dos programas compilados vs. programas interpretados. A53
B1
B3
Poder elixir entre unha linguaxe de aplicación vs. unha linguaxe de scripting para resolver un problema determinado, dando razóns lóxicas que avalen a elección. A53
B1
B3
C6
C7
C8
Identificar as linguaxes de scripting máis comúnmente usadas nas diferentes contornas: web, server-side, sistema operativo. A53
B1
B3
Coñecer e saber utilizar ferramentas para a obtención, manipulación, visualización e análise de grandes volumes de datos procedentes de diferentes fontes, posiblemente heteroxéneas. A53
B1
B3
C6
C7
C8
Escribir, depurar e probar un script que inclúa selección, repetición e paso de parámetros. A53
B1
C7
Escribir, depurar e probar unha páxina web que use scripting para validar os 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 e probar un script para facilitar a xestión dun 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, pero cada membro do mesmo 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 dos traballos tutelados 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 da proba mixta 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 da proba mixta é 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 2018/2019 non será tida en conta durante o curso 2019/2020)

Exemplos de avaliación:

  1. O estudante A acada a máxima puntuación na proba mixta, 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 na proba mixta. 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 na proba mixta. 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 á proba mixta de xullo, conservando a nota do traballo tutelado. A nota da segunda oportunidade obterase ponderando a nova nota da proba mixta (aínda que esta sexa menor ao 4 sobre 10 de xuño) co 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 a calquera das probas de avaliación e non acadar a nota mínima esixida para a superación da asignatura 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.