I Need Help With A Coding Homework Assignment.

Need help with similar Computer Science questions?

Ask A Question

Question: I Need Help With A Coding Homework Assignment.

Viewed 40


In this assignment you will create a program that will calculate grades by reading individual scores from a csv file, and read the students names from a text file.

NOTE: Due to Python rounding discrepancies, on Sunday, Apr 5 we changed the problem requirements to require printing 3 decimal places rather than 2 in order to ensure that all student submissions are graded correctly.


Building on everything you have learned so far in this class, the objectives of this project are to demonstrate understanding of the following:

  • Reading a CSV file
  • User defined functions
  • Incrementally developing a complex program from parts


Create a program that will calculate grades of students. The overall operation of the program from the user’s point of view is as follows:

Prompt the user for the text file containing the students names. Prompt the user for the csv file containing the students grades.

The prompts may be any appropriate prompt you wish.

You will then print out the student name, along with their summary of each grade component, as well as the final grade. For example, if there were two students represented in the two files:

Daniel Waterhouse
    Exam Average: 65.633
    Lab Average: 76.917
    Project Average: 69.367
    Attendance Average: 61.538

    Final grade: 67.868

Jack Shaftoe
    Exam Average: 70.333
    Lab Average: 73.350
    Project Average: 62.633
    Attendance Average: 53.846

    Final grade: 68.421

The students' names are in a text file, one name per line.

The individual grades are in a csv file with all grades for each student on one line in the following order, separated by commas:

  • 3 exam grades
  • 13 lab grades
  • 3 project grades
  • 15 attendance grades

Exam scores, Lab scores, and Project scores are all real numbers representing a score out of 100, ie, 95, 88.6, etc. Attendance scores are either 1 for present, or 0 for not present.

For this project, you must do the following:

  • Use a function named Overall_Lab_Score which will take as a parameter a list of all the lab scores which are floats and return the overall lab score. The overall lab score is computed by taking the average of all the lab scores, after the lowest score has been dropped.
  • Use a function named Overall_Attendance which will take a list of all the attendance scores which are floats and return the overall attendance score as a number between 0 and 100, consistent with the other category averages. The overall attendance is computed by taking the average of all the attendance scores, after the lowest two scores have been dropped. Note that attendance values are 0 and 1 so you will have to adjust for that in order to return a value between 0 and 100.
  • You may define and use other functions as you think you need them.
  • Your first function must take a list of floats as a parameter, and your second function must take a list of floats as a parameter. Both functions must return the score (as a float). If your functions are not defined properly, you will not pass the unit tests.
  • The Exam score is computed by finding the average of the 3 exams. You may define a function to compute this if you wish.
  • Find the overall Project score. The Project score is computed by finding the average of the 3 projects. You may define a function to compute this if you wish.
  • Compute the final grade according to the following weights:
  • Exams are 60% of the final grade
  • Attendance is 5% of the final grade
  • Labs are 15% of the final grade
  • Projects are 20% of the final grade

You may define a function to compute the final grade if you wish.

Hints and Suggestions

  • Make sure you are reading in the file and storing the grades correctly before trying to write the functions and/or display everything else
  • Write the program incrementally, and test small pieces of your program individually before trying to write the whole thing, and only add in the pieces you know are working. This will help enormously when you try to pinpoint bugs.
  • Try using your own file that only contains a single student as you work through developing and testing your program, then use the larger file once you have it working for one student.

More Instructions
62.1,75.3,59.5,56.7,76,85,79.4,56.8,71.3,52.9,94.3,67.1,84,94.6,97.5,60.3,91.6,61,55.5,1,1,1,1,0,1,0,1,1,0,1,0,0,0,0 79.6,63,68.4,51.1,91.6,62.7,65.2,52.9,89.1,56.4,99,61.3,76.9,64.9,76.2,84,50.1,76.9,60.9,1,0,1,1,0,0,1,0,1,0,0,1,0,1,0 53.8,68,99.1,58.5,75.5,73.7,99.3,51.8,71.9,76,89.3,87.1,58.9,54.7,94.4,91.6,81.7,73.6,59.3,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1 84.5,59.2,68,67.5,93.9,66.4,99.3,89.2,70,74.8,77.5,63.2,77.3,88.8,71.2,95,71.3,97.4,97.6,1,1,1,0,1,1,1,1,1,0,0,1,0,1,0 62.3,61.7,59.7,51.8,53.4,56.9,92,57.6,75.6,68.3,94.4,63.8,72.5,53.2,98.4,88,84,74.3,52.5,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0 63,98.2,65.6,91.5,96.3,85.7,53.4,97.9,92.5,85.9,95.6,77.4,62.4,87.8,77.9,85.9,94.6,75.1,74.2,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1 Daniel Waterhouse Jack Shaftoe Eliza Arcachon Sophie Hanover Edward Gex Roger Comstock
Answers 0

No answers posted

Post your Answer - free or at a fee

Login to your tutor account to post an answer

Posting a free answer earns you +20 points.


Ask a question for free and get answers to get Computer Science assignment help with a similar task to this question.