Completed

Programacion Phyton

Published on the June 20, 2017 in IT & Programming

About this project

Open

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

Category IT & Programming
Subcategory Other
Project size Small
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
Experience in this type of projects No (I haven’t managed this kind of project before)
API Integrations Other (Other APIs)

Delivery term: Not specified

Skills needed

Other projects posted by W. A.