{"id":18130245,"url":"https://github.com/samoggino/university-exam-grade-analyzer","last_synced_at":"2026-02-16T12:31:35.698Z","repository":{"id":256442247,"uuid":"855313481","full_name":"Samoggino/university-exam-grade-analyzer","owner":"Samoggino","description":"This Python script calculates weighted averages of university exam grades from a CSV file, providing both category-specific and overall averages. It processes exam data including grades, credits, and categories to analyze academic performance.","archived":false,"fork":false,"pushed_at":"2024-09-10T17:17:17.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-07T14:41:17.382Z","etag":null,"topics":["grade-calculator","pytohn3","university"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Samoggino.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-10T17:03:30.000Z","updated_at":"2024-09-10T17:21:44.000Z","dependencies_parsed_at":"2024-09-10T19:29:42.294Z","dependency_job_id":"95a1a18e-1cee-4855-8993-be56b0eed632","html_url":"https://github.com/Samoggino/university-exam-grade-analyzer","commit_stats":null,"previous_names":["samoggino/calcolatore-medie-uni"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Samoggino/university-exam-grade-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samoggino%2Funiversity-exam-grade-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samoggino%2Funiversity-exam-grade-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samoggino%2Funiversity-exam-grade-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samoggino%2Funiversity-exam-grade-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Samoggino","download_url":"https://codeload.github.com/Samoggino/university-exam-grade-analyzer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samoggino%2Funiversity-exam-grade-analyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29507902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grade-calculator","pytohn3","university"],"created_at":"2024-11-01T11:06:41.711Z","updated_at":"2026-02-16T12:31:35.680Z","avatar_url":"https://github.com/Samoggino.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# README\n\n## Description\n\nThis Python script reads data from a CSV file containing university exams, grades obtained, credits for each exam, and the category to which the exam belongs (e.g., \"Informatics\", \"Mathematics\", \"Economics\", etc.). The script calculates the weighted average of grades for each category and the overall weighted average for all exams. Finally, it prints the obtained averages.\n\n## Features\n\n- **`read_grades_csv(file_path)`**: Reads a CSV file containing exams and returns a list of dictionaries with data for subject, grade, credits, and category.\n- **`calculate_averages_by_category(exams)`**: Calculates the average grade for each category and the overall weighted average based on credits.\n- **`print_results(averages_by_subject, overall_average)`**: Prints the grade averages for each category and the overall average.\n\n## Requirements\n\n- Python 3.x\n- `csv` module\n- `collections` module (included in Python)\n\n## Usage\n\n1. Prepare a CSV file containing your exams with the following columns: `Exam`, `Grade`, `Credits`, and `Category`. Use `;` as the delimiter.\n2. Modify the `file_csv` variable in the script to point to your CSV file.\n3. Run the script to obtain the grade averages by category and the overall average.\n\n### Example Usage:\n\n#### Input (CSV file)\n\nThe CSV file should be formatted as follows:\n\n```\nExam;Grade;Credits;Category\n\"Calculus\";28;9;\"Mathematics\"\n\"Architecture\";27;10;\"Informatics\"\n\"Internet Law\";30;8;\"Law\"\n\"Business Administration\";24;7;\"Economics\"\n\"Organization\";28;7;\"Economics\"\n\"Programming\";26;20;\"Informatics\"\n\"Algorithms\";30;14;\"Informatics\"\n\"Finance\";27;8;\"Economics\"\n\"Numerical Methods\";29;10;\"Mathematics\"\n\"Microeconomics\";29;7;\"Economics\"\n\"Operating Systems\";30;18;\"Informatics\"\n\"Statistics\";30;7;\"Mathematics\"\n\"Strategy\";30;8;\"Economics\"\n\"Databases\";29;10;\"Informatics\"\n\"Cybersecurity\";30;8;\"Informatics\"\n\"Engineering\";26;8;\"Informatics\"\n\"Digital Humanities\";30;8;\"Informatics\"\n\"SOM\";30;9;\"Economics\"\n\"TechWeb\";29;8;\"Informatics\"\n\"Business Theory\";30;8;\"Economics\"\n```\n\n#### Output\n\nExample output from the script:\n\n```\nAverages by category:\nMathematics: 28.92\nInformatics: 28.46\nLaw: 30.00\nEconomics: 28.39\n\nOverall average: 28.57\n```\n\n## CSV File Modification\n\nYou can update the CSV file by adding new exams or modifying existing values. Make sure to maintain the correct format and use `;` as the delimiter.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamoggino%2Funiversity-exam-grade-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamoggino%2Funiversity-exam-grade-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamoggino%2Funiversity-exam-grade-analyzer/lists"}