
-----------------------------------
mirhagk
Wed Nov 28, 2012 10:47 am

The sad state of computer science education
-----------------------------------
For far too long teachers have been unwilling to fail students for nearly any reason. Delta high school (in Hamilton) had almost 50% of their student fail the literacy test last year. The literacy test tests what is essentially grade 5 English. There is no reason any of those 50% of students should have been in grade 10, as they clearly can not pass grade 5 level English.

I had heard great things of huge failure rates in universities, and I was very excited to get to a school that finally understood that not every student can pass every course the first time. Unfortunately it appears like computer science is not like the rest of the sciences in this regard, as the TA's will all but write your program for your assignments, and the exams are the exact same as the assignments, except easier so you can finish sooner.

As an example of what I mean, the class average for assignments is very high (I think high 80s or 90s), and these assignments are very non-trivial. On the test there are usually 5 questions, 2 of which are basically if you write anything you're right, 1 more is a question about problem solving (ie no code, eg what is the worst case for binary search), 1 question is circling the dividing part of a divide and conquer function (the part of the function that calls itself) and only 1 question actually has makes the people write code. The last midterm the average for the midterm was 75%, but the majority of student could not do the question where you had to write code. The answers weren't even kind of close, or difficult. Where the question would be:

Given the following state data, write a function called up that makes an elevator go up (if it's at the 3rd floor it'll just stay there)
[code]
data Floor = One
               | Two
               | Three
[/code]
The answer is something like:
[code]
up (One) = Two
up (Two) = Three
up (Three) = Three
[/code] (there are more ways to do it)

Answers that people would write would be along the lines of:
[code]
up = Floor + 1
[/code]
or even:
[code]
data Floor :: One | up = Two
[/code]
Basically they didn't even know what they were doing, let alone how to do it. Yet all of these students who can't write a simple haskell function are going to pass the course with 70s. Following this route most of these students will pass university not even knowing how to write a simple program (give fizzbuzz to university grads, and a high number actually can't do it). I think the problem is the huge desire that profs have to get students interested in computer science. They don't want to see students fail out, or get upset and quit, because they want as many students as possible in the program. This ends with students passing the course who can't do anything (my other programming course is very similar, with students not knowing how to write code, but knowing how to copy code, and then ask for help to make it work).

Does anyone else see this in their schools, and does anybody else get annoyed at the students who manage to pass when they really shouldn't have.

-----------------------------------
Panphobia
Wed Nov 28, 2012 2:40 pm

RE:The sad state of computer science education
-----------------------------------
Well in my class, the class average is 91, my mark is a 99, the thing is that, my teacher focuses on definitions on practise tests, but when it comes to unit tests or the exam is full on 100% code basically, and that is why many people almost fail the exam, for our unit projects I had to help most of my friends because they did not know how to do a simple bubble sort, but could surely explain what it was. Better at theory and less at application. Since it is based on most recent and most consistent, he usually uses the practise tests to pull unit test and project marks up.

-----------------------------------
Tony
Wed Nov 28, 2012 3:37 pm

Re: The sad state of computer science education
-----------------------------------
Does anyone else see this in their schools, and does anybody else get annoyed at the students who manage to pass when they really shouldn't have.
No, because Computer Science courses are typically not Programming courses. Take something more abstract, like Theory of Computation (Turing Machines, etc.). There will be no programming assignments.

I suppose first year classes are a bit different, as everyone is ramping up (some not having taken any programming in high school). Later though, the drop off is pretty big. ~40% of students that start out in UW CS don't continue with that program past the 2nd year.

-----------------------------------
mirhagk
Wed Nov 28, 2012 6:57 pm

RE:The sad state of computer science education
-----------------------------------
See Panphobia I don't have a problem with people who understand the concepts just can't apply it. I have a problem with people who can't figure out anything on their own, that need to memorize and regurgitate everything.

Even in the abstract courses it's very possible for people to just memorize definitions and copy assignment answers. It's hard to find people (even in higher years) that can truly think on their own.

-----------------------------------
Insectoid
Wed Nov 28, 2012 7:14 pm

RE:The sad state of computer science education
-----------------------------------
The school makes more money if more students get into second year.

-----------------------------------
Panphobia
Wed Nov 28, 2012 7:25 pm

RE:The sad state of computer science education
-----------------------------------
Mir thats exactly what I am talking about, memorization

-----------------------------------
mirhagk
Wed Nov 28, 2012 9:50 pm

RE:The sad state of computer science education
-----------------------------------
@Insectoid well that's a pretty terrible argument. If that was true then why are there restrictions on entrance? Why not just let everyone who wants into the university get in?

-----------------------------------
Aange10
Thu Nov 29, 2012 9:13 am

RE:The sad state of computer science education
-----------------------------------
@Insectoid Golden. It's glorious laugh-out-loud moments like these that you learn to love in life.

-----------------------------------
Insectoid
Thu Nov 29, 2012 9:34 am

RE:The sad state of computer science education
-----------------------------------
Prestige, mirhagk. Prestige. If they let just anybody in, nobody would respect the school. They've got a high entrance requirement so they look like a difficult school. They let the crap students stick around for a couple of years to bleed them of tuition, then kick them out so they don't graduate. If they graduated, the school would lose prestige, because everyone would realize the students from school XXX don't know anything.

-----------------------------------
evildaddy911
Thu Nov 29, 2012 4:14 pm

Re: RE:The sad state of computer science education
-----------------------------------
See Panphobia I don't have a problem with people who understand the concepts just can't apply it. I have a problem with people who can't figure out anything on their own, that need to memorize and regurgitate everything.

Even in the abstract courses it's very possible for people to just memorize definitions and copy assignment answers. It's hard to find people (even in higher years) that can truly think on their own.

Thats the problem though: the high school curriculum rewards blind memorization without thinking!
for example, my math teacher last year (gr11 functions U) would literally give us handouts with lists of which situations they could use that day's concept in, and then specific steps on how to get the answer. They don't teach us HOW things work, they teach us WHAT steps to take and exactly WHEN to regurgitate those steps. my classmates think im God because i show up every other day, don't take notes and get over 90 on every test. I tell them that instead of memorizing lists of steps and situations, i memorize the HOW, then figure out the WHEN and WHAT during the tests

-----------------------------------
Panphobia
Thu Nov 29, 2012 6:37 pm

Re: RE:The sad state of computer science education
-----------------------------------
See Panphobia I don't have a problem with people who understand the concepts just can't apply it. I have a problem with people who can't figure out anything on their own, that need to memorize and regurgitate everything.

Even in the abstract courses it's very possible for people to just memorize definitions and copy assignment answers. It's hard to find people (even in higher years) that can truly think on their own.

Thats the problem though: the high school curriculum rewards blind memorization without thinking!
for example, my math teacher last year (gr11 functions U) would literally give us handouts with lists of which situations they could use that day's concept in, and then specific steps on how to get the answer. They don't teach us HOW things work, they teach us WHAT steps to take and exactly WHEN to regurgitate those steps. my classmates think im God because i show up every other day, don't take notes and get over 90 on every test. I tell them that instead of memorizing lists of steps and situations, i memorize the HOW, then figure out the WHEN and WHAT during the tests If you understand the basic concept, you do not need to memorize/study, this is why the asians (sorry for the stereotype), and me are getting similar marks, they can only keep memorizing textbooks so long, when they get to University it is impossible to memorize everything.

-----------------------------------
joshm
Thu Nov 29, 2012 8:07 pm

RE:The sad state of computer science education
-----------------------------------
Maybe your school is just too easy. It also depends what year you are, my first year courses were extremely simple, as they were to just teach the basics and prepare you with the skills needed for higher level courses. Second year was more of a challenge, and focused on more concepts rather than how to write a program.

-----------------------------------
Panphobia
Thu Nov 29, 2012 8:16 pm

RE:The sad state of computer science education
-----------------------------------
There is a highschool curriculum in ontario....all of them, are more or less the same.

-----------------------------------
mirhagk
Thu Nov 29, 2012 11:42 pm

RE:The sad state of computer science education
-----------------------------------
The high school curriculum for computer science is a complete joke. It covers only the most rudimentary things, and allows schools to do anything they want (basically).

I agree with panphobia. I am getting 100s in my computer science courses without even showing up to most of the lectures. I simply fool around and code for fun, and experiment and try to understand rather than use.

I'm stoked about math this year, it's had questions that actually required figuring things out on your own. Integrals are the first time where you don't have a very easy formula to use, you actually need to think, and some are just impossible. I love it.

-----------------------------------
Panphobia
Fri Nov 30, 2012 12:48 am

Re: The sad state of computer science education
-----------------------------------
These are my marks at the moment [code]27-11-2012 	27-11-2012 	Arrays and Recursion Assn	12.00	 12.00	 100.00%	
27-11-2012 	27-11-2012 	Arrays and Recursion Assn	12.00	 12.00	 100.00%	
27-11-2012 	27-11-2012 	Arrays and Recursion Assn	9.00	 9.00	 100.00%	
27-11-2012 	27-11-2012 	Recursion Projects	5.00	 5.00	 100.00%	
18-10-2012 	18-10-2012 	Classes Part 1	1.00	 1.00	 100.00%	
18-10-2012 	18-10-2012 	Library Simulation	4.00	 4.00	 100.00%	
18-10-2012 	18-10-2012 	Library Simulation	21.00	 21.00	 100.00%	
18-10-2012 	18-10-2012 	Library Simulation	5.00	 5.00	 100.00%		
18-10-2012 	18-10-2012 	Project 5-5	5.00	 5.00	 100.00%	
18-10-2012 	18-10-2012 	Smiling Face Project	1.00	 1.00	 100.00%	
18-10-2012 	18-10-2012 	Student Project	1.00	 1.00	 100.00%	
25-09-2012 	25-09-2012 	Diagnostic Quiz	8.00	 8.00	 100.00%	
25-09-2012 	25-09-2012 	Review Problems 1	1.00	 1.00	 100.00%	
25-09-2012 	25-09-2012 	Review Problems 2	5.00	 5.00	 100.00%	
25-09-2012 	25-09-2012 	Review Problems 3	6.00	 6.00	 100.00%	
25-09-2012 	25-09-2012 	Unit 1 Test	6.00	 6.00	 100.00%	
25-09-2012 	25-09-2012 	Unit 1 Test	12.00	 12.00	 100.00%	
25-09-2012 	25-09-2012 	Unit 1 Test	15.00	 15.00	 100.00%	
25-09-2012 	25-09-2012 	Unit 1 Test	10.00	 10.00	 100.00%
19-09-2012 	19-09-2012 	Triangle Class	5.00	 5.00	 100.00%	
19-09-2012 	19-09-2012 	Unit 3 Project	10.00	 10.00	 100.00%		
19-09-2012 	19-09-2012 	Unit 3 Project	9.00	 9.00	 100.00%	
19-09-2012 	19-09-2012 	Unit 3 Project	14.00	 14.00	 100.00%[/code]

-----------------------------------
Panphobia
Fri Nov 30, 2012 12:50 am

RE:The sad state of computer science education
-----------------------------------
Basically all the assignments are either, brief 10-15 line programs, or simple concepts, I thought we were going to go more in depth with OOP, but it seems that, in order to pass the test you needed to have more understanding than what was taught, I already knew OOP, so I had no problem, but the class average for that test was 65.

-----------------------------------
wtd
Fri Nov 30, 2012 12:01 pm

RE:The sad state of computer science education
-----------------------------------
As in most areas of learning, if you allow your learning to be constrained by the curriculum of whatever class you're taking, then you're failing as a student.  

Yes, there are some fascinating classes you can take, but the whole point of school is to teach you how to learn, so you can go out and take initiative to further your own education.

When it comes to computer science, maybe you aced your Java class, and did well with C++, but always felt like Haskell was just incomprehensible.  You probably felt that way because it's very different on a conceptual level.  So dive in and figure it out.  Or maybe you won't be able to.  Only one way to find out!

-----------------------------------
TerranceN
Fri Nov 30, 2012 12:32 pm

RE:The sad state of computer science education
-----------------------------------
"As in most areas of learning, if you allow your learning to be constrained by the curriculum of whatever class you're taking, then you're failing as a student."

That's signature worthy. Unfortunately there's a 150 character limit, so I had to make it an image.

I wish more UWaterloo students realized this. There simply isn't enough time for the classes to teach everyone everything.

-----------------------------------
mirhagk
Fri Nov 30, 2012 2:41 pm

RE:The sad state of computer science education
-----------------------------------
@wtd Ideally the point of school is to teach you how to learn, but almost every teacher I've seen (minus a few great ones) cares only about learning the material, not learning how to learn.

People SHOULD self-teach themselves nearly everything. I think schools should be minimal in teaching material, rather teaching how to teach, providing some guidelines for finding materials on a subject, and then evaluating how much you can figure out about that subject. Sadly only a handful of students even know how to find further materials on their-self, and complain when the teacher doesn't teach well. With the internet nowadays nothing the teacher teaches, you can't figure out on your own.

-----------------------------------
SmokeMonster
Sat Dec 01, 2012 12:07 pm

Re: The sad state of computer science education
-----------------------------------
Basically they didn't even know what they were doing, let alone how to do it. Yet all of these students who can't write a simple haskell function are going to pass the course with 70s. 

Did you consider that perhaps writing a haskell function is not the ultimate goal of the course? Every course has a set of teaching goals and most of the time good profs distribute grades across all teaching goals. For example in an OS final a student may royally bomb the questions that require you to write multithreaded C code and yet pass the course if they ace the questions on more theoretical stuff such as scheduling algorithms, virtual memory management, filesystems etc. Such a student is not going to be submitting pull requests to the Linux kernel anytime soon but at the same time I wouldn't say that there is anything outrageous about them getting a pass on their transcript for the course.

Does anyone else see this in their schools, and does anybody else get annoyed at the students who manage to pass when they really shouldn't have.

Not at all. First of all it's not my place to judge who should be passing and who shouldn't. And while I don't think everyone of my fellow students in my year is a genius, I certainly think they are smart enough and intelligent enough to deserve a 60 or a 65 in courses which is what is required to pass.

 Even in the abstract courses it's very possible for people to just memorize definitions and copy assignment answers. It's hard to find people (even in higher years) that can truly think on their own.

This is a myth. Just like in any major including medicine and engineering there are going to courses which are memorization heavy and there others that are not. As someone who has finished three years of university I've only had two maybe three CS courses which were big on memorization. Most courses test your actual understanding of the material than your ability to memorize stuff and vomit it out at the exam. It's not possible for people to memorize and get good grades in abstract courses such as Automata, Algorithms, Databases. I don't know any classes where averages are in the high 80s or low 90s as you guys are claiming. At my school the averages are

1st year: high 50s low 60s
2nd year: mostly mid-high 60s
3rd year: around 70ish
4th year: ??

Perhaps those  high grades you are talking about are in HS in which case it really doesn't matter and is not really out of the norm since grades in HS are high across the board in all subjects not just CS.
