Teaching Guides Query



Academic Year: 2022/23

30322 - Network and Service Programming


Teaching Plan Information

Academic Year:
2022/23
Subject:
30322 - Network and Service Programming
Faculty / School:
110 - Escuela de Ingeniería y Arquitectura
Degree:
330 - Complementos de formación Máster/Doctorado
438 - Bachelor's Degree in Telecommunications Technology and Services Engineering
581 - Bachelor's Degree in Telecommunications Technology and Services Engineering
ECTS:
6.0
Year:
438 - Bachelor's Degree in Telecommunications Technology and Services Engineering: 3
656 - Degree in Telecommunications Technology Engineering: 2
330 - Complementos de formación Máster/Doctorado: XX
581 - Bachelor's Degree in Telecommunications Technology and Services Engineering: 2
Semester:
Second semester
Subject Type:
581 - Compulsory
438 - Compulsory
330 - ENG/Complementos de Formación
Module:
---

1. General information

2. Learning goals

3. Assessment (1st and 2nd call)

4. Methodology, learning tasks, syllabus and resources

4.1. Methodological overview

It should be highlighted that the course was designed with both theoretical and practical approaches. Hence, the learning process essentially requires the students to attend the lectures and the practical laboratory lessons, to develop and implement computer programs of growing complexity, and to study individually.

4.2. Learning tasks

The course includes the following learning tasks: 

  1. Instructors will introduce the contents of the course by means of lectures (26 teaching hours).
  2. The resolution of practical problems in the classroom (8 teaching hours)
  3. The development of practical exercises in the laboratory, with the guidance of instructors and implementing theoretical concepts studied in the lectures.  (22 hours: 11 sessions of 2 hours each).
  4. The design, elaboration, and implementation of practical assignments in groups, led by instructors.
  5. The personal work by students.
  6. The customized student support during office hours with the objective of revising and discussing materials and concepts introduced during the course.
  7. The elaboration of written exams, based on theoretical and practical concepts and the submission of theoretical and practical assignments and reports. All of them will be used for the assessment of the students' progress. More details can be found in the Evaluation section.

4.3. Syllabus

Concurrent Programming 

  • Introduction to Concurrency
  • Motivation
  • Mutual Exclusion and Synchronisation Concepts
  • Properties of Concurrent Programs: safety, liveness, and priority
  • Concepts of Process & Thread
  • Inter-process Synchronisation Mechanisms
  • Mutual Exclusion Algorithms
  • Semaphores
  • Monitors
  • Mutual and Partial Exclusion Problems

Distributed Systems

  • Introduction to Distributed Systems
  • Software Architectures
  • Communication Networks: TCP/IP Architecture
  • The process to Process Communication: Interface Socket TCP & UDP
  • Channels and Asynchronous and Synchronous Message-Passing
  • Client-Server Applications: Stateful and stateless server
  • Introduction to Middleware Technologies

4.4. Course planning and calendar

The scheduling of the course is defined by the School every academic year.

4.5. Bibliography and recommended resources

http://psfunizar10.unizar.es/br13/egAsignaturas.php?codigo=30322

Slides, practical problems descriptions, case studies and practical assignments.

They can all be found at http://add.unizar.es


Curso Académico: 2022/23

30322 - Programación de redes y servicios


Información del Plan Docente

Año académico:
2022/23
Asignatura:
30322 - Programación de redes y servicios
Centro académico:
110 - Escuela de Ingeniería y Arquitectura
Titulación:
330 - Complementos de formación Máster/Doctorado
438 - Graduado en Ingeniería de Tecnologías y Servicios de Telecomunicación
581 - Graduado en Ingeniería de Tecnologías y Servicios de Telecomunicación
Créditos:
6.0
Curso:
581 - Graduado en Ingeniería de Tecnologías y Servicios de Telecomunicación: 2
656 - Graduado en Ingeniería de Tecnologías de Telecomunicación: 2
330 - Complementos de formación Máster/Doctorado: XX
438 - Graduado en Ingeniería de Tecnologías y Servicios de Telecomunicación: 3
Periodo de impartición:
Segundo semestre
Clase de asignatura:
581 - Obligatoria
438 - Obligatoria
330 - Complementos de Formación
Materia:
---

1. Información Básica

1.1. Objetivos de la asignatura

La asignatura y sus resultados previstos responden a los siguientes planteamientos y objetivos:

En esta asignatura el alumno aprenderá a enfrentarse al diseño de programas en los que un conjunto de procesos deben ejecutarse concurrentemente y sincronizarse,  así como  los aspectos básicos para ejecutarlos en diferentes computadoras conectados en una red. Se presentarán los conceptos de forma abstracta, de forma que el alumno aprenda a reconocer los diseños, arquitecturas y patrones de comunicación independientemente de tecnologías, estándares o productos concretos.  

Estos planteamientos y objetivos están alineados con algunos de los Objetivos de Desarrollo Sostenible, ODS, de la Agenda 2030 (https://www.un.org/sustainabledevelopment/es/) y determinadas metas concretas, de tal manera que la adquisición de los resultados de aprendizaje de la asignatura proporciona capacitación y competencia al estudiante para contribuir en cierta medida a su logro:

• Objetivo 8: Promover el crecimiento económico sostenido, inclusivo y sostenible, el empleo pleno y productivo y el trabajo decente para todo.

  • Meta 8.2 Lograr niveles más elevados de productividad económica mediante la diversificación, la modernización tecnológica y la innovación, entre otras cosas centrándose en los sectores con gran valor añadido y un uso intensivo de la mano de obra.

• Objetivo 7: Garantizar el acceso a una energía asequible, segura, sostenible y moderna para todos

  • Meta 7.3 De aquí a 2030, duplicar la tasa mundial de mejora de la eficiencia energética
  • Meta 7.b De aquí a 2030, ampliar la infraestructura y mejorar la tecnología para prestar servicios energéticos modernos y sostenibles para todos en los países en desarrollo, en particular los países menos adelantados, los pequeños Estados insulares en desarrollo y los países en desarrollo sin litoral, en consonancia con sus respectivos programas de apoyo

• Objetivo 6: Garantizar la disponibilidad de agua y su gestión sostenible y el saneamiento para todos

  • Meta 6.4 De aquí a 2030, aumentar considerablemente el uso eficiente de los recursos hídricos en todos los sectores y asegurar la sostenibilidad de la extracción y el abastecimiento de agua dulce para hacer frente a la escasez de agua y reducir considerablemente el número de personas que sufren falta de agua
  • Meta 6.5 De aquí a 2030, implementar la gestión integrada de los recursos hídricos a todos los niveles, incluso mediante la cooperación transfronteriza, según proceda

• Objetivo 9: Industria, innovación e infraestructuras

  • Meta 9.5 Aumentar la investigación científica y mejorar la capacidad tecnológica de los sectores industriales de todos los países, en particular los países en desarrollo, entre otras cosas fomentando la innovación y aumentando considerablemente, de aquí a 2030, el número de personas que trabajan en investigación y desarrollo por millón de habitantes y los gastos de los sectores público y privado en investigación y desarrollo.
  • Meta 9.c Aumentar significativamente el acceso a la tecnología de la información y las comunicaciones y esforzarse por proporcionar acceso universal y asequible a Internet en los países menos adelantados de aquí a 2020.
  • Meta 9.1 Desarrollar infraestructuras fiables, sostenibles, resilientes y de calidad, incluidas infraestructuras regionales y transfronterizas, para apoyar el desarrollo económico y el bienestar humano, haciendo especial hincapié en el acceso asequible y equitativo para todos.

1.2. Contexto y sentido de la asignatura en la titulación

Actualmente es difícil encontrar una aplicación “software” que no incluya características propias de sistemas concurrentes y distribuidos. El alumno debe conocer todas las técnicas involucradas en el desarrollo de servicios en la red, desde las técnicas de bajo nivel que le permitan el desarrollo de aplicaciones más eficientes, hasta las técnicas de más alto nivel que le permitan abordar el desarrollo de aplicaciones distribuidas complejas.  El desarrollo del software como servicio precisa de la integración de los conocimientos de redes y de la programación de sistemas concurrentes y distribuidos.

1.3. Recomendaciones para cursar la asignatura

La asignatura es la continuación natural de la asignatura de Fundamentos de Informática presentada en el primer año de estudios, y de Fundamentos de Redes y Tecnologías e Interconexión de redes, ambas de segundo curso. Es necesario que el alumno haya adquirido soltura en el desarrollo de programas secuenciales correctos y conozca los fundamentos de redes y, en concreto, la arquitectura TCP/IP.

2. Competencias y resultados de aprendizaje

2.1. Competencias

Al superar la asignatura, el estudiante será más competente para...

Capacidad para resolver problemas y tomar decisiones con iniciativa, creatividad y razonamiento crítico

Capacidad para comunicar y transmitir conocimientos, habilidades y destrezas en castellano

Capacidad para usar las técnicas, habilidades y herramientas de la Ingeniería necesarias para la práctica de la misma.

Capacidad de gestión de la información, manejo y aplicación de las especificaciones técnicas y la legislación necesarias para la práctica de la Ingeniería.

Capacidad para aprender de forma continuada y desarrollar estrategias de aprendizaje autónomo

Capacidad para aplicar las tecnologías de la información y las comunicaciones en la Ingeniería

Capacidad para aprender de manera autónoma nuevos conocimientos y técnicas adecuados para la concepción, el desarrollo o la explotación de sistemas y servicios de telecomunicación

Capacidad de utilizar aplicaciones de comunicación e informáticas (ofimáticas, bases de datos, cálculo avanzado, gestión de proyectos, visualización, etc.) para apoyar el desarrollo y explotación de redes, servicios y aplicaciones de telecomunicación y electrónica

Capacidad para utilizar herramientas informáticas de búsqueda de recursos bibliográficos o de información relacionada con las telecomunicaciones y la electrónica

Capacidad de concebir, desplegar, organizar y gestionar redes, sistemas, servicios e infraestructuras de telecomunicación en contextos residenciales (hogar, ciudad y comunidades digitales), empresariales o institucionales responsabilizándose de su puesta en marcha y mejora continua, así como conocer su impacto económico y social

Conocimiento y utilización de los fundamentos de la programación en redes, sistemas y servicios de telecomunicación

Conocimiento y utilización de los conceptos de arquitectura de red, protocolos e interfaces de comunicaciones

Capacidad de diferenciar los conceptos de redes de acceso y transporte, redes de conmutación de circuitos y de paquetes, redes fijas y móviles, así como los sistemas y aplicaciones de red distribuidos, servicios de voz, datos, audio, vídeo y servicios interactivos y multimedia

2.2. Resultados de aprendizaje

El estudiante, para superar esta asignatura, deberá demostrar los siguientes resultados...

Conoce los problemas generados por el acceso concurrente a datos y recursos, así como los métodos clásicos de comunicación entre procesos

Conoce las características de los sistemas distribuidos, los retos que plantea y las soluciones que se han planteado para los mismos.

Conoce las capas más altas de la arquitectura de la computación basada en red, y más específicamente en los paradigmas y abstracciones que dan soporte a la computación a servicio.

Tiene capacidad de realizar programas con características concurrentes y/o distribuidas y basada en eventos.

Plantea correctamente el problema a partir del enunciado propuesto e identifica las opciones para su resolución. Aplica el método de resolución adecuado e identifica la corrección de la solución

Identifica, modela y plantea problemas a partir de situaciones abiertas. Explora y aplica las alternativas para su resolución. Maneja aproximaciones.

Conoce y utiliza de forma autónoma y correcta las herramientas, instrumentos y aplicativos software disponibles en los laboratorios y lleva a cabo correctamente el análisis de los datos recogidos.

Desarrolla la habilidad de trabajar en equipo para realizar los diseños y configuraciones consideradas, repartiendo la carga de trabajo para afrontar problemas complejos, intercambiando información entre distintos grupos, de manera coordinada y organizada.

2.3. Importancia de los resultados de aprendizaje

En la época en que nos encontramos existe una gran demanda en el desarrollo del software como servicio. Detrás de esta demanda nos encontramos con todos los problemas asociados al  diseño sistemas concurrentes y distribuidos, como son la escalabilidad, la tolerancia a fallo, la necesidad de herramientas que permitan abstraernos de la complejidad del sistema, los patrones de diseño, las arquitecturas software, etc.   Una base sólida en estos aspectos es imprescindible para poder desenvolverse en el mundo profesional, y poder entender las evoluciones tecnológicas que están teniendo lugar.

3. Evaluación

3.1. Tipo de pruebas y su valor sobre la nota final y criterios de evaluación para cada prueba

El estudiante deberá demostrar que ha alcanzado los resultados de aprendizaje previstos mediante las siguientes actividades de evaluación. El sistema de evaluación propuesto en esta asignatura consiste en 2 pruebas:

 1. Prueba práctica en el laboratorio (30%): El objetivo de esta prueba es evaluar los conocimientos y destrezas que han adquirido los alumnos en las sesiones prácticas de laboratorio. Estas sesiones consistirán en la realización utilizando el computador de una serie de ejercicios relacionados con los contenidos de la asignatura. El alumno deberá entregar durante el semestre, en las fechas indicadas por los profesores, las soluciones implementadas para cada uno de los ejercicios planteados para estas sesiones. La entrega en fecha de estas soluciones, le eximirá de realizar la prueba final práctica en el laboratorio. No obstante, de conformidad con la normativa vigente, los alumnos que hubieran superado la prueba práctica durante el curso también podrán presentarse a subir nota en las prueba de evaluación global de la práctica en laboratorio.

2. Prueba escrita (70%): En esta prueba se plantearán cuestiones y/o problemas relacionados con el programa impartido en la asignatura. Su tipología y complejidad será similar a los presentados en las sesiones de aula y laboratorio. En general, se valorará la calidad y claridad de las respuestas, así como las estrategias de solución planteadas por los alumnos.

Para la superación de la asignatura es condición imprescindible obtener una calificación mayor o igual que 4 puntos sobre 10 en cada una de las dos pruebas (prueba práctica en el laboratorio y prueba escrita). En otro caso, la calificación global será la mínima entre 4 y el resultado de ponderar con los porcentajes mostrados cada parte. La asignatura se supera con una calificación global de 5 puntos sobre 10. 

4. Metodología, actividades de aprendizaje, programa y recursos

4.1. Presentación metodológica general

El proceso de aprendizaje que se ha diseñado para esta asignatura se basa en lo siguiente:

Se debe tener en cuenta que la asignatura tiene una orientación tanto teórica como práctica. Por ello, el proceso de aprendizaje pone énfasis tanto en la asistencia del alumno a las clases magistrales, como en la realización de prácticas en laboratorio, en la realización de programas sencillos de dificultad creciente, y en el estudio individualizado.

4.2. Actividades de aprendizaje

El programa que se ofrece al estudiante para ayudarle a lograr los resultados previstos comprende las siguientes actividades...

1.   La presentación de los contenidos de la asignatura en clases magistrales por parte de los profesores (26 horas).

2.   La resolución de problemas planteados en clase (8 horas).

3.   El desarrollo de prácticas por parte de los alumnos, guiadas por los profesores, que desarrollan los conocimientos teóricos (22 horas, repartidas en 11 sesiones de 2 horas cada una).

4.   La realización y defensa de trabajos prácticos en grupo, tutorizados por los profesores.

5.   El estudio personal de la asignatura por parte de los alumnos.

6.   La atención personalizada al alumno a través de las tutorías con el objetivo de revisar y discutir los materiales y temas presentados en las clases tanto teóricas como prácticas.

7.   La realización de pruebas escritas teórico-prácticas y presentación de informes o trabajos utilizados en la evaluación del progreso del estudiante. El detalle se encuentra en la sección correspondiente a las actividades de evaluación

4.3. Programa

  • Programación Concurrente
    • Introducción a la Concurrencia
    • Motivación
    • Conceptos de exclusión mutua y sincronización
    • Propiedades de los programas concurrentes: seguridad, vivacidad, prioridad
    • Noción Proceso /Thread
    • Mecanismos de Sincronización entre procesos
    • Algoritmos de exclusión mutua
    • Semáforos
    • Monitores
    • Problemas de exclusión mutua y parcial
  • Sistemas Distribuidos
    • Introducción a los sistemas distribuidos
    • Arquitecturas Software
    • Redes de Comunicación: Arquitectura TCP/IP
    • Comunicaciones proceso a proceso: Interfaz Socket TCP y UDP
    • Canales y paso de mensajes síncrono y asíncrono
    • Aplicaciones Cliente/Servidor (Servidor con y sin estado)
    • Introducción a las tecnologías Middleware 

4.4. Planificación de las actividades de aprendizaje y calendario de fechas clave

Calendario de sesiones presenciales y presentación de trabajos

El calendario de la asignatura estará definido por el centro en el calendario académico del curso correspondiente.

El calendario detallado de las diversas actividades a desarrollar se establecerá una vez que la Universidad haya aprobado el calendario académico del curso correspondiente. En cualquier caso, las fechas importantes serán anunciadas con la suficiente antelación.

4.5. Bibliografía y recursos recomendados

http://psfunizar10.unizar.es/br13/egAsignaturas.php?codigo=30322

Transparencias, Enunciados de problemas, Casos de estudio y Guiones de prácticas.

Disponibles en http://add.unizar.es.