.This is an artifact of the voting system we use in Canada and is not uncommon

computer science

Description

Voting Systems We had a federal election earlier this month! You may have noticed that the party which won (the Liberal Party) was not the same as the party which won the popular vote (the Conservative Party). This is an artifact of the voting system we use in Canada and is not uncommon. It is one of many reasons many Canadians want electoral reform. A voting system is an algorithm to pick a winner from a set of votes. Different voting systems can produce different results. The study of voting systems is called voting theory, and is important not just for politics — in Artificial Intelligence, computational agents need to be able to make decisions between multiple options. A lot of voting theory research is done by computer scientists. In this assignment, we implement six voting systems, and compare how the results of the recent election could be different depending on the system. Instructions It is very important that you follow the directions as closely as possible. The directions, while perhaps tedious, are designed to make it as easy as possible for the TAs to mark the assignments by letting them run your assignment, in some cases through automated tests. While these tests will never be used to determine your entire grade, they speed up the process significantly, which allows the TAs to provide better feedback and not waste time on administrative details. Plus, if the TA is in a good mood while he or she is grading, then that increases the chance of them giving out partial marks. :) Up to 30% can be removed for bad indentation of your code as well as omitting comments, or poor coding structure. To get full marks, you must: • Follow all directions below – In particular, make sure that all function and variable names are spelled exactly as described in this document. Else a 50% penalty will be applied. • Make sure that your code runs. – Code with errors will receive a very low mark. • Write your name and student ID as a comment in all .py files you hand in • Name your variables and helper functions appropriately – The purpose of each variable should be obvious from the name • Comment your work – A comment every line is not needed, but there should be enough comments to fully understand your program 1 Errata and Frequently Asked Questions On MyCourses we have a discussion forum titled Assignment 3. A thread will be pinned in the forum with any errata and frequently asked questions. If you are stuck on the assignment, start by checking that thread. We strongly encourage starting the assignment early. What To Submit Please put all your files in a folder called Assignment3. Zip the folder (DO NOT RAR it) and submit it in MyCourses. If you do not know how to zip files, please ask any search engine or friends. Google will be your best friend with this, and a lot of different little problems as well. Inside your zipped folder, there must be the following files. Do not submit any other files. Any deviation from these requirements may lead to lost marks. 1. a3 helpers.py 2. single winner.py 3. instant run off.py 4. proportional representation.py 5. HOC.png 6. README.txt In this file, you can tell the TA about any issues you ran into doing this assignment. If you point out an error that you know occurs in your program, it may lead the TA to give you more partial credit. This file is also where you should make note of anybody you talked to about the assignment. Remember this is an individual assignment, but you can talk to other students using the Gilligan’s Island Rule: you can’t take any notes/writing/code out of the discussion, and afterwards you must do something inane like watch television for at least 30 minutes. If you didn’t talk to anybody nor have anything you want to tell the TA, just say “nothing to report” in the file.


Related Questions in computer science category