Durante esta práctica, los alumnos serán capaces de:
Esta actividad promueve las siguientes habilidades, valores y actitudes: análisis y síntesis, capacidad de resolver problemas, creatividad, y uso eficiente de la informática y las telecomunicaciones.
Esta práctica debe ser elaborada de manera individual.
Resuelve el siguiente problema usando Node.js y el lenguaje de programación JavaScript. Crea un directorio llamado practica2
y coloca ahí tu archivo fuente con la solución del problema.
Tu archivo fuente debe comenzar con un comentario que contenga el título de la práctica, la fecha y los datos personales del autor (nombre y matrícula). Por ejemplo:
/*---------------------------------------------------------- * Práctica 2: Programación asíncrona * Fecha: 27-Feb-2020 * Autora: A01166611 Pepper Pots *----------------------------------------------------------*/
Así mismo, es indispensable que cada función, clase o método que definas en tu programa contenga un comentario JSDoc en inglés que describa su correspondiente API (interfaz de programación de aplicaciones). Por ejemplo:
/** * Computes the largest of the two numbers. * * @param {number} x The first number. * @param {number} y The second number. * @return {number} The largest value. */ function maximum(x, y) { if (x > y) { return x; } else { return y; } }
El archivo movies.csv es un archivo con formato CSV (comma-separated values) que contiene información sobre varias películas. Cada película se encuentra en su propio renglón dentro del archivo. Los datos de cada película son: nombre, año de estreno y director. Dentro de un mismo renglón, los datos están separados entre sí a través de comas.
Usando Node.js, escribe un programa que lea de manera asíncrona el archivo movies.csv del sistema local de archivos y produzca un nuevo archivo de manera asíncrona llamado sorted.csv
con el mismo formato que el archivo de entrada pero con los renglones ordenados de manera ascendente por el año de estreno de las películas.
Para leer y escribir los archivos debes utilizar las siguientes funciones asíncronas:
Otras funciones que pueden ser de utilidad para resolver el problema son las siguientes:
Al final, el archivo sorted.csv
debe quedar con el siguiente contenido:
name,year,director In the Heat of the Night,1967,Norman Jewison Oliver!,1968,Carol Reed Midnight Cowboy,1969,John Schlesinger Patton,1970,Franklin J. Schaffner The French Connection,1971,William Friedkin The Godfather,1972,Francis Ford Coppola The Sting,1973,George Roy Hill The Godfather Part II,1974,Francis Ford Coppola One Flew Over the Cuckoo's Nest,1975,Miloš Forman Rocky,1976,John G. Avildsen Annie Hall,1977,Woody Allen The Deer Hunter,1978,Michael Cimino Kramer vs. Kramer,1979,Robert Benton Ordinary People,1980,Robert Redford Chariots of Fire,1981,Hugh Hudson Gandhi,1982,Richard Attenborough Terms of Endearment,1983,James L. Brooks Amadeus,1984,Miloš Forman Out of Africa,1985,Sydney Pollack Platoon,1986,Oliver Stone The Last Emperor,1987,Bernardo Bertolucci Rain Man,1988,Barry Levinson Driving Miss Daisy,1989,Bruce Beresford Dances with Wolves,1990,Kevin Costner The Silence of the Lambs,1991,Jonathan Demme Unforgiven,1992,Clint Eastwood Schindler's List,1993,Steven Spielberg Forrest Gump,1994,Robert Zemeckis Braveheart,1995,Mel Gibson The English Patient,1996,Anthony Minghella Titanic,1997,James Cameron Shakespeare in Love,1998,John Madden American Beauty,1999,Sam Mendes Gladiator,2000,Ridley Scott A Beautiful Mind,2001,Ron Howard Chicago,2002,Rob Marshall The Lord of the Rings: The Return of the King,2003,Peter Jackson Million Dollar Baby,2004,Clint Eastwood Crash,2005,Paul Haggis The Departed,2006,Martin Scorsese No Country for Old Men,2007,Joel Coen Slumdog Millionaire,2008,Danny Boyle The Hurt Locker,2009,Kathryn Bigelow The King's Speech,2010,Tom Hooper The Artist,2011,Michel Hazanavicius Argo,2012,Ben Affleck 12 Years a Slave,2013,Steve McQueen Birdman,2014,Alejandro González Iñárritu Spotlight,2015,Tom McCarthy Moonlight,2016,Barry Jenkins The Shape of Water,2017,Guillermo del Toro Green Book,2018,Peter Farrelly Parasite,2019,Bong Joon Ho
Crea un archivo tarball con todo el contenido del directorio practica2
. Nombra a este archivo practica2.tgz
. Este archivo se puede crear desde la terminal tecleando lo siguiente (asegúrate de que te encuentres en el mismo nivel que el directorio practica2
):
tar czf practica2.tgz practica2
Para entregar el archivo practica2.tgz
, ingresa los siguientes datos:
La fecha límite es el jueves 27 de febrero.