Open johngtimms opened 11 years ago
@jdg123, @ecoutre and to all @usc-csci201-fall2013/students,
In my discussion about grades and grading I expressed in a well mannered way what to expect from us as a teaching staff and the best way - based on experience - you, as students, should behave when it comes to grades. If you did not read that, please go back and give it a look in https://github.com/usc-csci201-fall2013/simcity201/issues/71#issuecomment-29273829.
Now, if you are not into stuff like that and you just really care about grades and how to get as many points as you can regardless of the process or the educational experience and irrespective of what we tell you, here is my comment to you:
YOU asked for a rubric and against the better judgment of most of the teaching staff, you got one.
After getting the rubric, you are complaining that it is not your rubric, it is not tailored to your case or your team will suffer if we followed this one. Well, this is what we have been telling you since you started asking for a rubric. You can't have it both ways.
You want us to trust that you did a 100% work and deserve a 100% credit or close to it. We - and by we I mean the teaching staff - also know how to grade and we asked you to trust us. The department trusted us to do this right, the school trusted us to do this right, the university trusts us to do this right. We believe we can a very good and more importantly fair job grading you because we have the track record to prove it. Years of teaching experience between the professors, TAs and CPs. Sorry, DECADES. We know the course material (we taught it before), we know large student projects (we did them before), we know how to grade (we do it all the time).
After all this, if you do not trust us with your grades, it is your prerogative and I respectfully tell you: You are wrong and show some respect. It may be years down the line, but you WILL look back at this stage of your college career and say "I wish I did this differently."
Professor @dwilczyn published the rubric and made it available for open comment. We got your comments and are incorporating them in the final version of the rubric. You are also welcome to commend and discuss the expectations and merits of each point.
In conclusion, I want to remind you that developers are people who are skilled with multiple aspects of the software development process. They are skilled (to different degrees of proficiency) at research, requirements collection, design and testing. A programmer who writes code to as a chore or a repetitive process without much problem solving is called something else and it is not developer and definitely not engineer.
If we want to run a scenario, it will be fine if it restarts the simulation and starts running that certain scenario right.
Also, if we actually do the Extra Credit portion, can we get extra credit?
Was the official rubric ever posted? If so, where was it posted? Or is it just what was posted earlier in this issue thread?
For point 75, does the ice need to melt based on a timer or can we assume that the ice remains indefinitely cold?
Honestly I have never complained once about any of these grading issues. I am not paying to attend this school to have my instructors accuse me of such things. I don't appreciate basically being yelled at and possibly punished grade wise for other students actions. I don't care only about grades, and I am here for the education. But I'm sorry, get a grip... this course clearly needs more organization or there wouldn't be such chaos. On Dec 2, 2013 5:36 PM, "Rami Al-Ghanmi" notifications@github.com wrote:
@jdg123 https://github.com/jdg123, @ecoutre https://github.com/ecoutreand to all @usc-csci201-fall2013/students,
In my discussion about grades and gradinghttps://github.com/usc-csci201-fall2013/simcity201/issues/71#issuecomment-29273829I expressed in a well mannered way what to expect from us as a teaching staff and the best way - based on experience - you, as students, should behave when it comes to grades. If you did not read that, please go back and give it a look in #71 (comment)https://github.com/usc-csci201-fall2013/simcity201/issues/71#issuecomment-29273829 .
Now, if you are not into stuff like that and you just really care about grades and how to get as many points as you can regardless of the process or the educational experience and irrespective of what we tell you, here is my comment to you:
YOU asked for a rubric and against the better judgment of most of the teaching staff, you got one.
After getting the rubric, you are complaining that it is not your rubric, it is not tailored to your case or your team will suffer if we followed this one. Well, this is what we have been telling you since you started asking for a rubric. You can't have it both ways.
You want us to trust that you did a 100% work and deserve a 100% credit or close to it. We - and by we I mean the teaching staff - also know how to grade and we asked you to trust us. The department trusted us to do this right, the school trusted us to do this right, the university trusts us to do this right. We believe we can a very good and more importantly fair job grading you because we have the track record to prove it. Years of teaching experience between the professors, TAs and CPs. Sorry, DECADES. We know the course material (we taught it before), we know large student projects (we did them before), we know how to grade (we do it all the time).
After all this, if you do not trust us with your grades, it is your prerogative and I respectfully tell you: You are wrong and show some respect. It may be years down the line, but you WILL look back at this stage of your college career and say "I wish I did this differently."
Professor @dwilczyn https://github.com/dwilczyn published the rubric and made it available for open comment. We got your comments and are incorporating them in the final version of the rubric. You are also welcome to commend and discuss the expectations and merits of each point.
In conclusion, I want to remind you that developers are people who are skilled with multiple aspects of the software development process. They are skilled (to different degrees of proficiency) at research, requirements collection, design and testing. A programmer who writes code to as a chore or a repetitive process without much problem solving is called something else http://en.wikipedia.org/wiki/Code_monkey and it is not developerhttps://www.youtube.com/watch?v=OcdjxpN3FTwand definitely not engineer.
— Reply to this email directly or view it on GitHubhttps://github.com/usc-csci201-fall2013/simcity201/issues/72#issuecomment-29676234 .
Luca, I also did not complain about the grading issues and I did not ask for a rubric either. Therefore, I don't appreciate getting accused. However, Rami's right about the fact that we need to show some respect. If we're struggling, then it's pretty much our fault due to poor time management and/or lack of communication between team members. Professors and TAs want you to succeed, and because we're all qualified by having made it this far in 201, there are no excuses as to missing deadlines and/or complaining about requirements. It's true that this project was much more time-consuming than Prof. Wilczynski had originally anticipated, but it was also a lot more interesting. He wouldn't have made such a large rubric set in stone had we shown some respect and complied instead of constantly complaining. Having said that, I do believe the deadline next week is a little early, considering it's only a week after an enjoyable thanksgiving. I'd be infinitely obliged to the TAs, CPs, Prof. Crowley and Prof. Wilczynski if we could push it a little further down during that week. A couple of days will make all the difference.
@johnsonh That made my day, thank you a ton.
@johnsonh definitely the best CSCI201 joke lmaoooo
Let's all get a grip here. This is in effect a new course. Never have csci201 students come in to this class with so little experience. The csci200 buffer class contributed a lot to the programming experience expected of csci201 students. I'm not going to make a big deal about this, but this issue is the "elephant in the room."
Let me try to answer each of the posts.
Ans: Many of you wrote code in the restaurant that made INCORRECT assumptions about having ONE instance of an agent, e.g., your v2.2 market assuming only 1 restaurant as a customer was an example. This requirement attempts to make sure this erroneous assumption is not part of your SimCity201.
(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.
Answer: If you have your own mechanism, just document that it is an alternative to that stated in the rubric. In general that is the case for every rubric statement. If you want clarification, just ask. Without the rubric all such alternatives would have been gladly accepted. But the rubric memo-izes everything and makes everyone crazy with fear (as well as making everything too uniform).
(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.
Answer: Don't have to use A*, but an animation where things are bumping into things is clearly inferior to one that doesn't. Don't worry about it if you don't want to. It's just a 2 1/2 point deduction. The question you should be asking is whether it is "A" work or "B" work or ... Rami has tried to instill in you a sense of YOU MAKING your own decision about what is A work, not complying with an obviously impossible-to-write rubric.
(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?
Answer: Of course it is trivial to use a boolean or enum to decide what waiter to use. That is NOT the point. I want all of you to flex your programming muscles and do the refactoring and build abstract base classes--that is the point.
As for point (75) ice melting obviously needs modeling for the scenario to work. You can only dither so long while the brain is on ice. A timer is fine.
As to another extension...it is too late for that, really.
I whole heartedly agree withthe concept of flexibility allowing for students to have fun with a project and for the exceptional teams to have room to shine, but unfortunately I doubt that any of the teams this year feel they have room to have fun. This is very disappointing, as there are definitely a lot of fun alternate scenarios we could have programmed into a simulation like this if we had the time and inclination. However, I think the operating procedure of virtually all of the current teams is slam out as much work as possible as fast and dirty as possibly to meet the most requirements they can manage. Fun happens when you have leaway, and right now I don't think that any team is sitting comfotable with the assumption that they can complete this project to the full requirement level and then have time left over to play with it. Which is honestly a true shame--this project could have really been fun under different circumstances
I agree with the above. We were going to add a lot of features, but with us lacking in CS200 Gui experience, we have to dedicate so much of our time to Gui that we can't make all parts of our project super fun and cool. Perhaps CS200 will be brought back in the future to help us?
On Mon, Dec 2, 2013 at 10:46 PM, Sarah (Cherys) Fair < notifications@github.com> wrote:
I whole heartedly agree withthe concept of flexibility allowing for students to have fun with a project and for the exceptional teams to have room to shine, but unfortunately I doubt that any of the teams this year feel they have room to have fun. This is very disappointing, as there are definitely a lot of fun alternate scenarios we could have programmed into a simulation like this if we had the time and inclination. However, I think the operating procedure of virtually all of the current teams is slam out as much work as possible as fast and dirty as possibly to meet the most requirements they can manage. Fun happens when you have leaway, and right now I don't think that any team is sitting comfotable with the assumption that they can complete this project to the full requirement level and then have time left over to play with it. Which is honestly a true shame--this project could have really been fun under different circumstances
— Reply to this email directly or view it on GitHubhttps://github.com/usc-csci201-fall2013/simcity201/issues/72#issuecomment-29687114 .
With all due respect, Professor @dwilczyn, I have read and understood your points. However, I do not think it is fair to make personal generalizations about students.
1) I am a junior and there are other students in the class who are upperclassmen. 2) I have worked extensively on group projects of different types both in school and in the workplace. 3) Everyone's financial situations are different and are personal matters.
Obviously everyone is upset and I feel like there is a lot of finger pointing. At this point I think that there should be a compromise:
Yes, this course needs more organization Yes, students need to stop posting immature/sarcastic comments; how does this progress the situation?
Please understand that although students may not express themselves in the best of light, there is a lot of frustration with this project. I agree, this project has multiple benefits and a lot of lessons to be taken away from it. I appreciate the effort in trying to make this the best experience for us. As someone who is recruiting for internships, this is an amazing experience to talk about. However, seeing as we are less prepared than previous students taking this class, the scope of this project is a lot to handle and detracts from the experience than what was hoped for.
Although we are asked to place experience over grades, it is difficult to do so when even our work in other courses suffer because of the vast amount of work in this class. I also understand this is trying to simulate the workplace; however, with a full engineering course load, this is overwhelming. It saddens me to hear that a professor does not care about respect from students. Regardless of any job and differences people may have with each other, people should have mutual respect for each other. It is my hope that from now until the end of the semester we all act with this in mind.
I feel like I have never agreed this much with anything before.
I really don't understand why they took csci200 out of the curriculum.
I imagine it's somewhat similar to the idea that if you can't swim and are thrown into the deep end of a pool, you'll probably learn to swim.
Well, it's just my opinion, but I feel like there's more useful things to do than learn Swing to perfection.
I agree with @khupka. While this class might be intended for sophomores, the redesigning of the curriculum has led to several seniors like me being in this class.
I'm concerned with some of the items in the proposed rubric that are of this nature:
Our Person class randomly decides what mode of transportation to take with higher probabilities given to driving if they have a car and walking if the location is considered close.
Moreover, our base Person class does not visit a restaurant if not hungry and only visits the bank/market if there is a need (similar to only visiting a restaurant if hungry or going to work).
For such scenarios as the one listed above, it would require redesigning our entire Person class with the Person having less 'freedom' which seems to defeat the entire purpose of a simulation -- And doesn't make sense (If Person is not working and if Person has not visited every public location in the city today, then Person can go walk to every place in city, check out respective role, stand inside for [How long?], return the role, walk to next public location, repeat). Depending on a city's time scale, this could take a Person all day and if such a rule is added to the scheduler can really slow down the program and create a Person mob (depending on the number of Person's added to the city).
The only other option I see is to have a second Person class designed just to ensure such scenarios occur (which defeats the entire purpose of verifying the actual Person class behavior) or having a flag of some sort in Person that prevents the Person making their own decisions and forces such scenarios to occur (which will litter our Person class and make the code less readable).
Neither option I'm much of a fan of as it creates a secondary project that doesn't serve any purpose in regards to the actual simulation, and given the time constraints I feel our time can be best spent else where to deliver a polished(!), fully simulated city that we can be proud to add to our portfolio and reflect back on.
Realistically, I imagine such a scenario being carried out over time by a single Person (Maybe they visit restaurant A, then go get loan, then return home... Later that Person cooks at home but first goes to the market... Later that Person goes to a different restaurant when hungry again, etc..) or all such events occurring simultaneously by multiple Persons (PersonA goes to the market while PersonB gets a loan at the bank while PersonC goes to RestaurantD for lunch, and so forth).
I certainly don't want you to redesign your person agent for this one scenario. During normal running of a simulation it would never carry out such a scenario. This scenario is more like a unit test, pushing the PersonAgent to visit ALL the sites. It's not a test of the person agent, per se, but a test of all the sites (and perhaps) all the transportation methods.
Can't you carry it out from your gui? Or perhaps a hack forcing it through the scenario. That would be ok.
@kkthxby3 Maybe make another constructor that sets the values you need to force them to eat, go to bank, etc. and override the 'random' functions that set these values? Then you can just call this specific constructor with different values for your scenarios, so it would be reusable and clean.
@kkthxby3 Perhaps you could build into your PersonAgent a list of commands (could be just a list of String) and you could add to the top of the role-choosing section of the PersonAgent scheduler a section like this:
if(current role finished and commands is not empty) {
set current role to the role indicated by commands.get(0);
commands.remove(0);
set current role to active; //however your code sets roles to active/current
return true; //also depends on the rest of your scheduler, of course
}
Then, to run the PersonAgent without changing its normal behavior, you would just refrain from adding any commands to the list of commands at the beginning.
Hi, my question was overlooked in the mass amount of replies, so here it is again.
Are we allowed to restart the simulation for the scenarios? It would be very strange to have to do the scenarios while your normal city is running.
Yes. But, use your judgment. Most scenarios should NOT need a restart of the system.
I have a question about Scenario S. It say a change can be a result of quitting/hiring/firing. Do we have to get all three to work or just choose one of the three? Does it mean that there has to be a scene where one person steps in and one person steps out, in addition to what we did in restaurant like adding waiters?
I'm looking for one case where one person agent takes over the role of a different person agent while the simulation is running, One firing/hiring or shift-change should do it. Just hiring, like adding waiters isn't enough. It's the takeover of an existing role that I want to see.
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