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.
Para esta tarea de programación, las y los estudiantes deben completar todo el trabajo de manera independiente y no tienen permitido utilizar herramientas asistidas por IA, como GitHub Copilot, ChatGPT, Gemini, u otras plataformas similares, para generar código automáticamente. El uso de estas herramientas de IA socava el proceso de aprendizaje y viola las políticas de integridad académica. El propósito de esta tarea es evaluar tu comprensión y aplicación de los conceptos cubiertos en el curso. El incumplimiento de estas directrices puede resultar en sanciones académicas, que incluyen, entre otras, una calificación más baja.
Si tienes alguna pregunta sobre la actividad o necesitas aclarar algún concepto, no dudes en visitar a tu profesor durante el horario de asesoría. Confía en tu propio conocimiento, en los materiales del curso y en los recursos autorizados proporcionados por el profesor.
Esta práctica debe ser elaborada de manera individual.
Resuelve el siguiente problema usando la plataforma node y el lenguaje de programación JavaScript. Crea un directorio llamado practica2
y coloca ahí un archivo llamado movie_sort.mjs
en la que debe quedar todo el código con la solución del problema.
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.
Escribe un programa que lea el archivo mencionado anteriormente del sistema local de archivos y produzca un nuevo archivo 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.
NOTA: Es indispensable que la lectura y escritura de los archivos se lleve a cabo utilizando el API de callbacks de Node.js. Específicamente, se deben usar las siguientes dos funciones:
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 Nomadland,2020,Chloé Zhao CODA,2021,Sian Heder Everything Everywhere All at Once,2022,Daniel Kwan & Daniel Scheinert Oppenheimer,2023,Christopher Nolan
El archivo movie_sort.mjs
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 con callbacks * Fecha: 4 de marzo, 2025 * Autor: A01777771 Loki Laufeyson * *----------------------------------------------------------*/
Crea un archivo comprimido TAR GZ o ZIP con el contenido completo del directorio practica2
. El archivo resultante se debe llamar practica2.tar.gz
o practica2.zip
.
Para entregar el archivo practica2.tar.gz/practica2.zip
, ingresa los siguientes datos:
La fecha límite es el miércoles, 5 de marzo.