usc-csci201-fall2013 / simcity201

SimCity 201 Public Repository
1 stars 7 forks source link

Grading/Requirements for v2 #72

Open johngtimms opened 10 years ago

johngtimms commented 10 years ago

Quite a few people have been (and still are) confused about the requirements and grading for v1. Since the grading has yet to begin, I think now would be a good time to discuss the exact requirements for v2.

The professors do not desire to provide a rubric to give students experience working with nebulous requirements. However, I think it would be helpful to provide a list (if not exhaustive, then partial) of individualized team-specific requirements for v2 along with the grade reports for v1.

Because very few v1 projects will look the same (due to the flexible requirements) any general requirements published for v2 may not be relevant to all teams. I simply want to have a fair opportunity to do as well as possible. Just like in industry where programmers either get an "A" or an "F" for complete or incomplete work, I know from experience as an intern that companies also hire writers and analysts to ensure that requirements are properly specified and understood by programmers.

@crowley1958 @dwilczyn

gabelew commented 10 years ago

He has already mentioned in class that there will be a rubric for v2.

dwilczyn commented 10 years ago

I am working on a full and complete rubric for v2. It will be coming out soon.

diegovb commented 10 years ago

:D

lshiffer commented 10 years ago

^_^

u2606 commented 10 years ago

:っ)

AnthonyCCH commented 10 years ago

:DDD

zachvp commented 10 years ago

= ]

ztanner commented 10 years ago

Smiling at 4:40AM is difficult

diegovb commented 10 years ago

:c

u2606 commented 10 years ago

@ztanner :っ(

zachvp commented 10 years ago

=/

AnthonyCCH commented 10 years ago

:|

mgoulis commented 10 years ago

D=

ztanner commented 10 years ago

:baby: :baby_bottle: :cry:

kushaank commented 10 years ago

:'(

yixincai commented 10 years ago

T_T

jeffersonluu commented 10 years ago

ಠ_ಠ

AnthonyCCH commented 10 years ago

つ ◕◕ ༽つ Give Rubric つ ◕◕ ༽つ

johngtimms commented 10 years ago

Overjoyed

AnthonyCCH commented 10 years ago

░░░░░░░░░░░████ ░░░░░░░░░░░█░░█ ░░░░░░░░░░█░░░█ ░░░░░░░░░█░░░░█ ██████▄▄█░░░░░███▄ ▓▓▓▓▓█░░░░░░░░░░░░█ ▓▓▓▓▓█░░░░░░░░░░░░░█ ▓▓▓▓▓█(づ。◕_◕。)づ ░░░░░█ ▓▓▓▓▓█Give Rubric ░░░░░░█ ▓▓▓▓▓█░░░░░░░░░░░░░█ ▓▓▓▓▓█░░░░░░░░░░░░█ ▓▓▓▓▓█░░░░░░░░░░░█ ▓▓▓▓▓████████████

u2606 commented 10 years ago

░░░░░░░░░▄░░░░░░░░░░░░░░▄░░░░ wow so happy ░░░░░░░░▌▒█░░░░░░░░░░░▄▀▒▌░░░ ░░░░░░░░▌▒▒█░░░░░░░░▄▀▒▒▒▐░░░ much rubric ░░░░░░░▐▄▀▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐░░░ ░░░░░▄▄▀▒░▒▒▒▒▒▒▒▒▒█▒▒▄█▒▐░░░ ░░░▄▀▒▒▒░░░▒▒▒░░░▒▒▒▀██▀▒▌░░░ ░░▐▒▒▒▄▄▒▒▒▒░░░▒▒▒▒▒▒▒▀▄▒▒▌░░ ░░▌░░▌█▀▒▒▒▒▒▄▀█▄▒▒▒▒▒▒▒█▒▐░░ ░▐░░░▒▒▒▒▒▒▒▒▌██▀▒▒░░░▒▒▒▀▄▌░ ░▌░▒▄██▄▒▒▒▒▒▒▒▒▒░░░░░░▒▒▒▒▌░ ▀▒▀▐▄█▄█▌▄░▀▒▒░░░░░░░░░░▒▒▒▐░ very 5 am ▐▒▒▐▀▐▀▒░▄▄▒▄▒▒▒▒▒▒░▒░▒░▒▒▒▒▌ ▐▒▒▒▀▀▄▄▒▒▒▄▒▒▒▒▒▒▒▒░▒░▒░▒▒▐░ ░▌▒▒▒▒▒▒▀▀▀▒▒▒▒▒▒░▒░▒░▒░▒▒▒▌░ ░▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▒▄▒▒▐░░ ░░▀▄▒▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▄▒▒▒▒▌░░ ░░░░▀▄▒▒▒▒▒▒▒▒▒▒▄▄▄▀▒▒▒▒▄▀░░░ ░░░░░░▀▄▄▄▄▄▄▀▀▀▒▒▒▒▒▄▄▀░░░░░ ░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▀▀░░░░░░░░

Rancho06 commented 10 years ago

O_OO_OO_O

Yunying commented 10 years ago

^^_

dablosmo commented 10 years ago

(╯°□°)╯︵ ┻━┻

xulander commented 10 years ago

(ーー)!! (-.-) (--) ( 一一) (;一_一)

dhata commented 10 years ago

;A;

paigekehoe commented 10 years ago

woohoo

¨ ¨ ¨ ¨ ¨ ¨ ¨▲.︵.▲ ¨ ¨ ¨ ¨ ¨ ¨ ¨◄ƒ░░ 0 }…..︵. ¨ ¨ ¨ ¨ ¨ ¨◄ƒ░░░░░░ o”) ¨ ¨ ¨ ¨ ¨ ◄ƒ░░░(────.·^”’ ¨ ¨ ¨ ¨ ¨ ◄ƒ░░░§ ´ )¨ ¨ ¨ ¨ ◄ƒ░░░░§ ¨ ¨ ¨✺✺✺ ) ¨ ¨ ¨◄ƒ░░░░░§¨ ¨ ¨|//✺ );; ¨ ¨ ◄ƒ░.︵.░░░§((( );;;¨ ¨◄ƒ░(░░)____// );;;;¨◄ƒ░░░░░░__// );;;;;◄ƒ░░░░░░░░§ );;;;;;;░░░░░░░░░(((

dwilczyn commented 10 years ago

Thank you for the enthusiasm. Here is the rubric. I will leave it open for comment for a few days after which it will be put on the website. [Sorry for the way the formatting came out below. It's Git's fault.]

Team Rubric for SimCity201 v2 Each NUMBERED item below represents 2½ points of grade; partial credit is available. Your team starts out with 100 points and you lose 2½ points for each item which doesn’t comply. The idea is that: • You can still get an A- team grade with four flaws. • You can still get a B- team grade with eight flaws. • etc. Normative Scenarios – Baseline, i.e., little or no interleaving
Scenario: [Tests all the behaviors.]

  1. All workplaces (markets, all restaurants, banks) fully employed.
  2. Day starts and all workers go to work.
  3. One not-working person eats at home, then visits all the workplaces by walking.
  4. Roads should have appropriate complexity [e.g. intersections with stop signs and/or signals] Scenario: [Tests all the behaviors.]
  5. All workplaces fully employed.
  6. Day starts and all workers go to work.
  7. Three not-working persons eat at home, then visit all the workplaces in different orders. [one should walk, one should take a car, one a bus.] Scenario: [Tests cook, cashier, market interaction.]
  8. Each restaurant gets low on food and orders from market(s).
  9. Market delivers food to the open restaurant.
  10. Market sends invoice to cashier, who verifies and pays it. Scenario: For large teams [Tests party behavior.]
  11. Show a party being planned.
  12. All invitees RSVP before RSVP-date.
  13. At least 2 friends should RSVP “yes.”
  14. Throw the party. Scenario: [Shows bus-stop behavior]
  15. Person visits a bus stop. [as part of 7]
  16. Bus arrives.
  17. Person gets on.
  18. Person gets off at destination.   Non-Normative Scenarios – Baseline, i.e., minimum interleaving
    Scenario: [Shows that people know they can’t visit certain workplaces.]
  19. Bring each workplace down, one by one.
  20. Show how one not-working person still visits all the workplaces but not the ones that are down. Say you only have one bank and it is down, the person should avoid all banking behavior. Scenario: [Tests market behavior]
  21. Market delivery fails because restaurant is closed.
  22. Market redelivers when restaurant is open.
  23. Market sends invoice to cashier, who verifies and pays it. Scenario: For large teams [Tests party behavior.]
  24. Show a party being planned.
  25. Some invitees do not RSVP before RSVP-date.
  26. These flakes should be reminded.
  27. At least 2 friends should RSVP “yes.”
  28. Throw the party. Scenario: For large teams [Tests party behavior.]
  29. Show a party being planned.
  30. Party is canceled because no one is coming. Normative Scenarios – Normal operation, i.e., normal interleaving Scenario:
  31. Fully employed workplaces [enough people to fill all the workplace roles].
  32. Fully populated city [enough people to be wandering around doing interesting things]. At least 50 people.
  33. All restaurants integrated.
  34. At least 2 instances of other workspaces (your decision as to how many more you want).
  35. People make decisions to eat at home.
  36. People make decisions to eat at particular restaurants.
  37. Enough vehicle traffic to show stopping/starting at intersections.
  38. Vehicles stop for pedestrians with right of way. Animation Details
  39. Icons/images have identity information to help track behavior during grading.
  40. Icons/images are beautiful for non-grading view, but you do not have to do the artwork. Gui Controls
  41. Screen to run full scenarios, i.e., pick a scenario to run.
  42. Screens to add people to the simulation and give them properties.
  43. Screens to add properties to workplaces, i.e., set inventories, etc.
  44. Incorporation of log filter mechanism described by CP Keith DeRuiter. Runtime Behavior
  45. Animation should not freeze.
  46. No error exceptions. [If in a restaurant, then it is an individual deduction.]
  47. Routing behavior must show that agents don’t bump into buildings, tables, etc.
  48. All moving objects must move on appropriate venues (vehicles parked in garages/roads, move on roads, people on sidewalks and crosswalks).
  49. Vehicles should behave appropriately at intersections. Design Docs
  50. Quality of normative interaction diagrams.
  51. Quality of non-normative interaction diagrams. Non-Normative Scenarios – 3 points a scenario; you design them Scenario: Bank Robbery
  52. An evil person decides to rob a bank.
  53. On entrance he … (you design it) Scenario: Vehicle accident
  54. Two vehicles collide.
  55. Then… (you design it). Scenario: Vehicle hits pedestrian
  56. A vehicle hits a pedestrian.
  57. Then… (you design it). Scenario: Weekend behavior is different
  58. Some workplaces are closed on the weekend.
  59. Show that people naturally avoid them and seek alternatives. Scenario: Job Changing/Firing/Shifts
  60. Each workplace shows how its employees can change during working hours.
  61. The change can be the result of a shift change, a firing, or quitting/hiring. Scenario: Extra Credit
  62. A person gets very, very hungry.
  63. Unfortunately, there is no food in his house and he has no money.
  64. He goes to each market, looking for food in the dumpster. He finds none.
  65. He goes to each restaurant, knowing they will feed him and he can flake out on the bill.
  66. Unfortunately, each host remembers him and refuses him entry.
  67. Weak from hunger, he collapses on the sidewalk.
  68. A small group of people gather trying to help him.
  69. Unfortunately, he dies anyway.
  70. The group is angry that such a thing could happen in their city and form a protest.
  71. The police come to break up the protest while an ambulance arrives to remove the body.
  72. The body is taken to the morgue where the coroner decides the brain is still in good enough condition for a transplant.
  73. A professor named Wilczynski was told by his colleagues that he needed to have his head examined for giving team projects to sophomores.
  74. At that examination the doctor said nothing could be done for his condition, so Wilczynski applied for a brain transplant.
  75. When the coroner called to tell him a brain is available, Wilczynski rethinks the problem and decides that writing a rubric for v2 is easier than having the surgery. However, he tells the coroner to keep the brain on ice if he changes his mind in case the rubric is received badly by his students.
  76. The students read the rubric and ... [you finish the scenario]. Rubric for Individual Grades Here EACH of your components is subject to the following:
  77. Quality of your pseudo-code for the design of your component.
  78. Quality of agent/role code [Does your code conform to agent methodology? Does it work? Can graders understand it?]
  79. Quality of gui code (assuming you did some).
  80. Quality of Unit Testing [tests obviously depend on complexity of the component]. And finally:
  81. Division of work. Did you do your fair share of work? This last point is a tough one. Obviously, the PersonAgent represents the biggest piece of work at the agent level. All parts of the gui are critical and difficult. If all you did, for example, is write the Bank roles, your overall grade will substantially lower than those on your team who did more. I suspect there will be more to say about this topic.
dwilczyn commented 10 years ago

I forgot the rubric for the producer-consumer waiter. Here it is:

Proper integration of producer-consumer code

  1. Having WaiterAgent base class extended by two subclasses for normal waiter and producer-consumer waiter.
  2. Having a non-random way to create waiters of each class, e.g. from gui, from configuration file.
  3. Have a scenario to show normal waiter operates successfully, e.g. unit test, or ...
  4. Have a scenario to show producer-consumer waiter operates successfully, e.g. unit test, or ...
u2606 commented 10 years ago

Question about producer-consumer waiters: are all restaurants expected to implement this new design, or is it acceptable for some restaurants to do so while some retain the normal waiter functionality? It doesn't seem to reflect reality that within a single restaurant, some waiters talk directly to the cook while some clip their orders to a rotating shared data location.

dwilczyn commented 10 years ago

This is an individual assignment and has nothing to do with reality. I want each student to do the refactoring required to make this behavior happen.

johngtimms commented 10 years ago

Is it intentional that numbered items * 2.5 does not equal 100?

"Market delivery fails because restaurant is closed." We designed our city to be open 24 hours and nothing is ever closed. Do we need to redesign to have regular open/closed cycles daily (i.e. beyond some buildings being closed on weekends) or (since this is a non-norm) can we simply set the restaurant closed at some point in the scenario?

"People make decisions to eat at particular restaurants." Does this mean that the choice of restaurant should not be random? Is "I'm closest to Restaurant X so I'll eat there." sufficiently non-random?

"Icons/images are beautiful for non-grading view." I don't want our team to be distracted from coding by finding or developing graphics for this requirement. We're learning to be programmers, not graphic designers. The intent here is obviously to show that teams have the ability to work with GUI elements beyond colored squares. Can this requirement be changed or can the professors provide a set of images suitable for use to the whole class?

dwilczyn commented 10 years ago

1) Yes. 2) Yes, there should be opening and closing hours. But, I doubt you have to redesign anything. 3) Random is ok for v1, not v2. Closest is one of many possible decisions, but will produce only very predictable behavior. 4) Maybe "beautiful" was too strong a word. Maybe post this as a separate issue and see what the class comes up with.

Valakor commented 10 years ago

@johngtimms You don't need to work too hard to find suitable art, I don't think. A quick search of Google images for "sprite sheet" will get you tons of 2D artwork that you can use. Take 10 minutes to crop out pictures using Paint or something and you should be fine. I don't think the professors wanted us to produce our own artwork for this project?

johngtimms commented 10 years ago

@Valakor I already saw some people doing that for v1. Hopefully it can be made clear in the rubric that producing your own artwork isn't necessary.

dwilczyn commented 10 years ago

You do not have to produce your own artwork. I'll add that to the rubric.

Cherys commented 10 years ago

Would a smaller team also need at least 50 people in their city? By "At least 2 instances of other workspaces", do you mean that instead of having one market, we could have 3 and that would satisfy this requirement? Does all functionality from previous restaurant projects need to still be in place, or can we edit it to make it work better with our cities? For example, certain things like setting a customer to "hungry" are no longer possible (right?) Will we get penalized for missing requirements from previous restaurant versions even if the restaurant fills its function adequately?

Cherys commented 10 years ago

*When I asked about smaller groups perhaps not needing to implement quite so many people, that came from the fact that we will have significantly fewer jobs for them. A group of four versus a group of seven means that the former group will have three fewer restaurants than the latter, which makes up a large percentage of overall jobs

shanemileham commented 10 years ago

@dwilczyn - Regarding rubric point number 4 (Roads should have appropriate complexity [e.g. intersections with stop signs and/or signals]), this seems to contradictory to our entire GUI that our team designed. As John said in the first post about the flexibility of V1 requirements leading to different products, we designed our city in a different way which allowed us a more efficient movement algorithm and city layout. Having to incorporate intersections would be fine if it were a requirement from the beginning, but having to redesign our entire city, building layout, transportation mechanism, and movement algorithm at this late stage seems more difficult than intended for the assignment.

Would there be a way to substitute a more personalized road requirement (for example, we could include sidewalks, alleys, and bus lanes) which could teach us more than redoing all of our existing GUI work?

Thanks for your understanding.

dwilczyn commented 10 years ago
dwilczyn commented 10 years ago

The rubric will be published on the website at the end of the day today. Last chance for comments.

alryco commented 10 years ago

Will the performance/framerate of our city be taken into account in grading? Our team has not been too concerned with optimization for v1. Right now with 10-15 people and only 1 restaurant, our city has a relatively low framerate and I am concerned with how well our city will be able to run with 50+ people running simultaneously. Is this something that will have an affect on grading?

richy0101 commented 10 years ago

@dwilczyn I still don't understand why there are 85 requirements for v2 that are worth 2.5 points each but total points is 100? 212.5 != 100?

ztanner commented 10 years ago

I haven't done the math but there are extra credit scenarios in that list of 85.

alghanmi commented 10 years ago

@richy0101, please read what @dwilczyn wrote a bit more carefully:

Each NUMBERED item below represents 2½ points of grade; partial credit is available. Your team starts out with 100 points and you lose 2½ points for each item which doesn’t comply.

In other words, we will not grade by adding-up the score, but with deducting points when things go wrong.

dwilczyn commented 10 years ago

The extra-credit scenario was, obviously, a joke. It won't be in the version soon to be posted.

jdgreenberger commented 10 years ago

The problem with this grading scheme is that you could hypothetically get less than 0 points, and have to do more than 100 points worth of work in order to get 100. Why don't you just weight the requirements to add up to 100, or start with a higher score?

ecoutre commented 10 years ago

I agree that it doesn’t make sense that you can lose more points than you can earn.

On Dec 2, 2013, at 4:22 PM, jdg123 notifications@github.com wrote:

The problem with this grading scheme is that you could hypothetically get less than 0 points, and have to do more than 100 points worth of work in order to get 100. Why don't you just weight the requirements to add up to 100, or start with a higher score?

— Reply to this email directly or view it on GitHub.

crowley1958 commented 10 years ago

Frame rate will not be taken, as long as the grader can tell that things are happening properly.

pbradshawusc commented 10 years ago

(34) For the bank, should we implement 2 or more instances? When discussing the design prior to v1 and during v1, my team was under the impression that having only one bank was sufficient for v2 requirements. (I can't think of the issue or comment in class specifically at the moment as to why we were under this impression, but I believe there is an issue of it on GitHub and can search for it if required). Due to this, we built our design around only having one bank (as a part of the person/bank interaction and deciding what bank to go to). Is this still the case or should we redesign our banks/people to implement multiple banks as well as multiple bank accounts?

(44) For implementing the log filter mechanism, we already have separate consoles for each building, visible when the building is open. This allows a feed much like for the restaurant. Is this acceptable instead of the log filter? It seems to accomplish the same purpose of cleaning up the log and it would seem redundant to add the log filter inside of every building as there are few messages to filter through.

(47) For agents bumping into tables, it was never posted as a requirement or guideline to have A* or any sort of collision avoidance algorithm within our personal restaurants. Does this requirement apply to our individual restaurants as well? I fear this addition to the individual portion of the grade will take team members further out of the team portion of the project (as A* would have to be tuned for each member's GUI) and would hurt the team as a whole.

(82) Also, as a personal question for my waiters, my producer-consumer waiter and regular waiter are very similar and I was able to accomplish the two with a single class and an enum for the type rather than creating two new classes. In addition, my toggle method meets requirements 83-85. I can see how larger variations between the waiters would require the extra classes, but with just a few lines of code difference as the end product, would this solution also be acceptable/efficient?