Professor evaluation
Made by Fred Qiao
Made by Fred Qiao
In this project, I want to make a chart showing different professors' different course evaluations.
Created: November 2nd, 2015
import eventBasedAnimation
from math import *
from structClass import *
from Tkinter import *
class Person(object):
def __init__(self, name, matrix, concepts, calc1, calc2, calc3, diffeq, x, y):
self.name = name
self.matrix = matrix
self.concepts = concepts
self.calc1 = calc1
self.calc2 = calc2
self.calc3 = calc3
self.diffeq = diffeq
self.x = x
self.y = y
self.r = 60
def draw(self, canvas, time):
extend = 25
r = extend*max(0, (self.matrix-1.9))
canvas.create_arc(self.x-r, self.y-r, self.x+r, self.y+r, fill="red", start=0+time, extent=60, outline="black")
r = extend*max(0, (self.concepts-1.9))
canvas.create_arc(self.x-r, self.y-r, self.x+r, self.y+r, fill="purple", start=60+time, extent=60, outline="black")
r = extend*max(0, (self.calc1-1.9))
canvas.create_arc(self.x-r, self.y-r, self.x+r, self.y+r, fill="green", start=120+time, extent=60, outline="black")
r = extend*max(0, (self.calc2-1.9))
canvas.create_arc(self.x-r, self.y-r, self.x+r, self.y+r, fill="yellow", start=180+time, extent=60, outline="black")
r = extend*max(0, (self.calc3-1.9))
canvas.create_arc(self.x-r, self.y-r, self.x+r, self.y+r, fill="blue", start=240+time, extent=60, outline="black")
r = extend*max(0, (self.diffeq-1.9))
canvas.create_arc(self.x-r, self.y-r, self.x+r, self.y+r, fill="pink", start=300+time, extent=60, outline="black")
canvas.create_text(self.x, self.y+self.r, text=self.name)
class movingLineAnimation(eventBasedAnimation.Animation):
def onInit(self):
self.col = 3
self.row = 3
self.angle = 0
xdis = 450/(self.col)
ydis = 450/(self.row)
self.people = [Person("Irina", 4.21, 4.38, 3.73, 0, 4.08, 4.27, xdis*1, ydis*1),
Person("Mariaon", 0, 0, 2.89, 2.94, 0, 0, xdis*2, ydis*1),
Person("Handron", 3.72, 0, 3.73, 0, 0, 4.45, xdis*3, ydis*1),
Person("Flaherty", 4.32, 3.75, 5, 0, 3.71, 0, xdis*1, ydis*2),
Person("Mackey",0, 4.76, 4.64, 4.81, 0, 0, xdis*2, ydis*2),
Person("Mihai", 3.76, 0, 0, 0, 3.37, 4.05, xdis*3, ydis*2),
Person("Greggo", 0, 4.31, 0, 3.66, 3.33, 4.03, xdis*1, ydis*3),
Person("Gutman", 0, 4, 0, 0, 0, 0, xdis*2, ydis*3),
Person("Pkolli",0 ,0, 2, 0, 0, 0, xdis*3, ydis*3)
]
self.time = 0
def onStep(self):
self.time += 1
if self.time%70 >= 10:
self.angle += 1
def onDraw(self, canvas):
for person in self.people:
person.draw(canvas, self.angle)
if self.angle%60 == 0:
if (self.angle/60)%6 == 1:
canvas.create_text(275, 50, text="Matrices and Linear Algebra", fill="black", font="Helvetica 26 bold underline")
if (self.angle/60)%6 == 2:
canvas.create_text(275, 50, text="Concepts of Mathmatics", fill="black", font="Helvetica 26 bold underline")
if (self.angle/60)%6 == 3:
canvas.create_text(275, 50, text="Calculation 1", fill="black", font="Helvetica 26 bold underline")
if (self.angle/60)%6 == 4:
canvas.create_text(275, 50, text="Calculation 2", fill="black", font="Helvetica 26 bold underline")
if (self.angle/60)%6 == 5:
canvas.create_text(275, 50, text="Calculation 3D", fill="black", font="Helvetica 26 bold underline")
if (self.angle/60)%6 == 0:
canvas.create_text(275, 50, text="Diffential Equition", fill="black", font="Helvetica 26 bold underline")
canvas.create_text(275, 80, text="(top sectionof the pie)", fill="black", font="Helvetica 20 bold underline")
movingLineAnimation(width=550, height=550).run()
Click to Expand
First, I went over several data websites and tried to find some valuable and meaningful data to make my chart. However, it turned out that all those websites do not provide data for free. Then I just chose CMU website and used those free data about courses and professors. I downloaded those data and had my idea.
By intuition, the bigger the area is, the better the professor should be. However, I use following tricks to cheat viewers:
I found each of 6 courses' professor and intentionally chose 9 of them. Some of the professors almost have taught all those courses and some of them just taught one or two of those courses. By intentionally choosing professors, I dramatize the different professors' difference in course evaluations. The chart is biased because some of the professors have not taught most of the courses. They taught more other high level courses so even though in the chart they might appear only have small circle areas, they might be great professors because there are still a lot of courses they teach but I don't mention in the chart.
In addition, the cut-off of the course evaluation grade is 2, which means that even the professor has similar grades on the course evaluation, their pie areas might appear very differently because all grades less than 2 are cut off. Also, since the chart is pie, as the grades become higher and higher, the difference in areas will be more and more dramatic because of the nature of circle. If two professor's grades are different by 1, 3 and 4 will cause more difference in areas than 2 and 3. Actually, most professors' grades on courses are above 4, which means the difference is dramatized a lot.
The other thing I do is that I don't mention that the black area of circle might be because the professor has never taught the course. Therefore, viewers might just think the professor teaches so bad that they do not have any grades.
First, I did some coding in Python. Then, I took screen video by using quick view and then uploaded it to the youtube.
In this project, I want to make a chart showing different professors' different course evaluations.