Desarrollo web

Práctica 2: Programación con callbacks

Objetivos

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.

IMPORTANTE

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.

Descripción de la actividad

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

¿Qué se debe entregar?

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.

Instrucciones para subir archivo

Para entregar el archivo practica2.tar.gz/practica2.zip, ingresa los siguientes datos:

Solicitar NIP

La fecha límite es el miércoles, 5 de marzo.