3Eva_IT2017_T1 Archivos de notas por semestre

3ra Evaluación I Término 2017-2018. Septiembre 16, 2017 /CCPG001 – FIEC
(Editado para tarea, se mantiene el objetivo de aprendizaje)

TEMA 1 (45 puntos). Considere que tiene varios archivos cuyos nombres tienen el formato
notas-año-término.csv
y su contenido en cada linea es:

matrícula,materia,nota_parcial,nota_final,nota_mejoramiento,AP/RP

Ejemplos de los archivos:

notas-2015-I.csv

201521342,Fundamentos de Programación,80,95,99,AP
201321454,Economía,12,21,33,RP
201321454,Fundamentos de Programación,45,76,89,AP
…

notas-2013-II.csv

200901456,Física I,80,91,73,AP
201321454,Química,45,57,73,AP
201121372,Economía,73,82,83,AP
201321454,Fundamentos de Programación,11,9,9,RP
 …

Desarrolle los siguientes literales:

a) Elabore la función academico(narchivos) recibe los nombres de los archivos de notas (tupla) para cada semestre y retorna un diccionario de notas con la estructura mostrada.

narchivos = (notas-2013-II.csv, notas-2015-I.csv)

notas =
{201321454: {'2013-II': [('Química', 45, 57, 73, 'AP'),
                         ('Fundamentos de Programación', 
                            11,9,9, 'RP')],
             '2015-I': [('Economía', 12, 21, 33, 'RP'),
                        ('Fundamentos de Programación', 
                            45,76,89, 'AP')],
             ...},
 200901456: {'2013-II': [('Física I', 80, 91, 73, 'AP'),
                         ...],
             ...},
 ...}

b) Implemente la función semestres(notas, matricula) que recibe las notas (diccionario) y un número de matrícula  de un estudiante para entregar todos los semestres en que ha tomado materias (tupla) .

c) Realice la función nota_academico(notas, matricula, materia) que recibe las notas (en diccionario), una matrícula y el nombre de una materia y determina la nota total para esa materia.

La nota total se calcula como el promedio de las dos notas más altas entre parcial, final y mejoramiento. Si el estudiante aún no ha tomado la materia, se presenta como nota cero (0). Si el estudiante en más de una ocasión ha tomado la materia se obtiene la nota con el promedio más alto.

d)  Elabore la función mas_aprobados(notas, semestre) que devuelve el nombre de la materia con mayor cantidad de estudiantes aprobados (estado AP) en el semestre indicado.

Rúbrica: Literal a (10 puntos + 5 puntos de bono) b (5 puntos), c y d (15 puntos)


Ejemplo:

narchivos=('notas-2015-I.csv',
           'notas-2013-II.csv')
matricula = 201321454
materia = 'Fundamentos de Programación'
semestre = '2015-I'
Se obtiene:
--- para 201321454: 
semestres que estudió: ('2015-I', '2013-II')
notas final para Fundamentos de Programación: 82.5
--- En el semestre 2015-I: 
la materia con alto indice de aprobación es: Fundamentos de Programación

Referencia: Archivo original 3Eva_IT2017.pdf