Terminado

Programacion Phyton

Publicado el 20 Junio, 2017 en Programación y Tecnología

Sobre este proyecto

Abierto

Instrucciones

En 1980, los computadores tenían 1KB de RAM. 1024 8-bit bytes. Es decir, un programa podía tener sólo 1024*8 = 8192 unos y ceros en la memoria.
Y así y todo se las arreglaban para hacer código interesante.

Estos códigos se guardaban en cassettes, y tardaban una eternidad en cargar. Estaban codificados en cuatro pulsos (representando un bit en 0), y 9 pulsos (representando un bit en 1). Cada pulso estaba separado por 150us, y cada conjunto de pulsos por 1300us.


El proyecto consiste en lo siguiente: Dado un archivo wav (sonido), encontrar los bits y bytes de ese programa.

El objetivo de este proyecto es encontrar una función que tome un archivo wav, identifique los bytes, guardandolos como números de 0 a 255 en una lista llamada ram (por Random Access Memory)

Entregables

Un script en Python para correr en consola (no notebook) al que se le pase un archivo wav y devuelva los bytes en stdout, separados por comas. Por ejemplo:
$ python zx80wav2bytes.py file.wav
0, 0, 124, 255, 8, 22, ...
El script se llamará zx80wav2bytes.py y tomará una opción -s que no imprime los bytes sino una serie de estadísticas sobre el archivo, con al menos: duración en segundos, número de bytes, número total de bits en 1, de bits en 0 y total de bytes. Piense en alguna otra métrica.

Explicación del código y cómo utilizarlo en un notebook. Mientras mejor explicado, más puntaje.

Algunas notas

Code golf! Si el código está bien y funciona, el código más corto (en número de caracteres del fichero original) y limpio (no hay "pauta", más subjetivo) es el que gana el 7.
El proyecto es en parejas. Si hay alguien que quiera hacerlo solo, por favor nos lo dice. Si no, un grupo tendrá 3 integrantes.

Recursos

el archivo wav
Pauta de evaluación

El script vale 70 puntos
Si functiona el identificar bytes, 40 puntos
Si funciona el flag -s, 10 puntos
Creatividad de la "estadística", 10 puntos
Code golf, 10 puntos
El documento vale 30 puntos
Orden, 10 puntos
Relevancia del contenido, 10 puntos
Uso de notebooks?
NOTA: No existe una solución en la web para este ejercicio

Categoría Programación y Tecnología
Subcategoría Otros
Tamaño del proyecto Pequeño
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo Tengo las especificaciones
Disponibilidad requerida Según se necesite
Experiencia en este tipo de proyectos No (No he administrado este tipo de proyectos anteriormente)
Integraciones de API Otros (Otras APIs)

Plazo de Entrega: No definido

Habilidades necesarias

Otros proyectos publicados por W. A.