Your major means shit on the real world. Most people I meet don't have a job in their field of study including myself
[deleted] ยท 3 points ยท Posted at 00:30:59 on September 12, 2013 ยท (Permalink)
[deleted]
prolog ยท 6 points ยท Posted at 01:34:57 on September 12, 2013 ยท (Permalink)
If the test is hard enough you can get a 32 even if you understand the material perfectly.
thesprunk ยท 2 points ยท Posted at 02:04:17 on September 12, 2013 ยท (Permalink)
True.
But thats a different issue. That's a professor testing above par - be it to challenge the students or whatever - which is fine. But everyone should be aware that 100% in that instance is not a traditional 100%, but a demonstration of advanced understanding.
What I'm referring to mostly is maths and compsci tests. I've seen peers get 40% as a result of not understanding material (eg, lack of comprehension of what limits are, or continuity, or even simply struggling with concept of fraction:decimal conversion) and still manage to get a passing grade because of curves.
A large part of this is attributed to how the test is structured and graded. In an ideal world this wouldn't happen, and tests like you mentioned would be challenges that test "above" par to evaluate aptitude across a broad range (where 100% demonstrates an advanced understanding beyond the goal of the course), and then scored accordingly with that in mind. But this isn't an ideal world. Not all professors are "Good". Not all tests are fair. And more often than not your grade can be unduely influenced by just how hungover/stressed out/sleep deprived the GTA grading your paper is.
At risk of sounding dumb, but I'm almost completely unexposed to programming, is the answer to the question in the article a=20 b=20 since the last line says a=b, thus negating that the first line says a=10?
I don't understand the point of tests like this. Don't you end up NOT actually testing the relevant skills? Using vague terms: if the course is on level 5 material, but your tests have level 10 material which everyone fails, but you curve that, all those impossibly hard questions are missed opportunities to check if they learned anything. Instead, your test is essentially limited to the few reasonable questions that people could possibly get right. It skews the grades all over the place, too. Just dumb.
You see, what matters to some professors is not actually teaching people, but keeping their average final grades high enough that the students give good reviews so they can keep their jobs.
Agreed.. it was a second semester freshman class too. Granted, it weeded out a lot of kids that probably wouldn't have made it through another three years, but
My undergrad was filled with tests like that, another one that really sticks out is the very last senior exam I took. The class involved an insane amount of equations which were extremely case dependent, so the entire semester all of our quizzes and midterms were open book and open notes. Then for some reason we were only allowed 1 equation sheet for the final. I spent more time trying to cram equations and diagrams onto that one piece of paper than I spent actually studying. The test turned out to be completely ridiculous, and he ended up bumping everyone's grade up a full letter after there was a line curving throughout the engineering building, literally going down two halls and a flight of stairs, to get to his office.
Yeah, it was a pretty awful class. One of the problems my school had was as a big research university a lot of the professors were geniuses in their fields but horrible, horrible teachers. Result was a lot of ridiculous curves and stories.
I bet the few kids in the class that just know everything and get a 96% get just pretty angry stares in these kinds of classes, dragging up that curve.
[deleted] ยท 11 points ยท Posted at 00:05:54 on September 12, 2013 ยท (Permalink)
They probably hate the underachievers right back, because they don't try and still get a B.
Most of these tests are so hard that this isn't an issue usually. Someone will do better obviously but more in the range of getting a 75 on test where the average is 40. Most of the tests I took in EE no one got over 80%. I remember some where no one got over 40%. I got a 17% one time and got a B.
[deleted] ยท -4 points ยท Posted at 20:27:13 on September 11, 2013 ยท (Permalink)
[deleted]
[deleted] ยท 7 points ยท Posted at 20:40:23 on September 11, 2013 ยท (Permalink)
should have paid attention and studied instead of getting mad at those who worked harder than you
[deleted] ยท 2 points ยท Posted at 02:03:57 on September 12, 2013 ยท (Permalink)
Or, in the case of my university, cheated.
No joke, the corporation that employed a good number of freshly graduated engineers from our school actually required that the school teach an ethics course as part of the required classes, due in part to the great number of engineers from school that graduated with high marks and no idea what they were doing.
slomotion ยท 3 points ยท Posted at 21:29:05 on September 11, 2013 ยท (Permalink)
For my upper-level physics classes, I'm pretty sure this was the norm.
I absolutely hate people who write bad math exams. Every time I write an exam I spend at least 30 hours making sure that every question tests a relevant skill, and is not exceedingly difficult. Calculus is such a simple subject that anyone bragging about how difficult they make it is just a dick. I honestly think that people who write these super-difficult exams are either just trying to show off how "smart" they are, or incredibly lazy.
_shift ยท 1 points ยท Posted at 02:25:19 on September 12, 2013 ยท (Permalink)
I agree, calc is less math and more remembering games with letters and numbers. No reason to make it difficult, the only difficult thing is remembering all the various integrals in calc II
bradygilg ยท 1 points ยท Posted at 08:41:26 on September 12, 2013 ยท (Permalink)
remembering games with letters and numbers
That's what all of math is... lol.
xazarus ยท 2 points ยท Posted at 00:28:21 on September 12, 2013 ยท (Permalink)
I once got a 16% on a Real Analysis midterm. We didn't get curved on individual tests in this class, but this was a fairly typical exam for me and I ended up with a B- in the class. It was mostly memorable for the fact that I knew a guy, a year behind me, who got 5 times my score.
r42 ยท 0 points ยท Posted at 17:54:26 on September 11, 2013 ยท (Permalink)
I don't understand this "curved" terminology. "There's a curve". Why not just say "40% is a B"?
dyt ยท 10 points ยท Posted at 18:16:49 on September 11, 2013 ยท (Permalink)
The grade is skewed so X% of kids get an A, X% of kids get a B, etc. This is so, if for example, one year a class has particularly hard assignments/tests, vs another year a class is less hard, both classes have the same chance at performing well in a course. For example my class, we had to design a mission to Mars' moon Phobos and back, and also design a plane that could launch the parts that we were sending to Phobos into orbit, all in one semester. Every other year is something like designing a UAV, a mission to the moon, etc. If they were graded like we were graded, we would have all failed. Hence, grade is skewed. Everyone says curved, but they mean skewed.
Well, technically it is still a curve. Like you said it is designed so that a certain percentage of people get A,B,C etc... but usually only >10% of the class gets As and 40-60% of the class gets Bs or Cs and 20-30% of the class Ds. If you plot this on a graph (a curve shaped like a bell) you would get a good statistical average of the breakdown in grades for any given class.
Grading on a curve specifically means that the curve is translated along the x-axis on the graph. This basically allows the professor to shift the overall average of the class while still maintaining some integrity to the data.
ZanThrax ยท 1 points ยท Posted at 18:02:32 on September 11, 2013 ยท (Permalink)
Because next year, or even on the next assignment, 40% could be a D.
r42 ยท 3 points ยท Posted at 18:08:04 on September 11, 2013 ยท (Permalink)
How does that lead to the terminology "there's a curve". To me that does not mean the same as "the grade boundaries change each year".
ZanThrax ยท 7 points ยท Posted at 18:10:30 on September 11, 2013 ยท (Permalink)
The grade boundaries aren't pre-set. Every test or assignment is sorted by percentage, and then grades are handed out per a standard distribution bell curve. http://en.wikipedia.org/wiki/Grading_on_a_curve
r42 ยท 2 points ยท Posted at 18:19:56 on September 11, 2013 ยท (Permalink)
In that case my courses were also graded on a curve. I don't think I ever heard that expression though.
NotClever ยท 1 points ยท Posted at 20:48:57 on September 11, 2013 ยท (Permalink)
Where are you from? It could easily be a cultural thing.
r42 ยท 1 points ยท Posted at 21:03:51 on September 11, 2013 ยท (Permalink)
UK. I think it's an American expression?
NotClever ยท 1 points ยท Posted at 22:15:23 on September 11, 2013 ยท (Permalink)
It's possible. I'm in the US and it is definitely a common thing to talk about around here. My viewpoint is a bit skewed now though because I'm in a professional program which is "hard curved" (i.e. the administration sets the median grade for the class regardless of how people do objectively, so your grade relative to the rest of the class is all that matters) so it's like all anyone talks about with grades.
It's because they shift and adjust all the scores to fit on a 'bell curve' for each assignment/test/project/whatever.
Where the majority of the people get the middle grade(whatever that is...usually between a c and b) and a few people get higher than that, and a few people get lower than that.
I took a nearly impossible physics for scientists and engineers class where the curve was standardized from anywhere from 10%(literally 10% was a B- on the test) to about 30%(B- again). Depending on the distribution - anything from 1 or 2% to 5-10% could be the difference between a B and B+. That was not a fun class especially since they'd release the results before the curve distribution. So I'd sit on my 25% and not know if it was an F or an A.
r42 ยท 1 points ยท Posted at 20:45:22 on September 11, 2013 ยท (Permalink)
We didn't really think of our scores in terms of percentages because no one expected you to finish the exam - just do as many questions as you can. I think in my final year an A grade mapped to about 10% overall across all the exams.
Poobslag ยท 288 points ยท Posted at 14:56:24 on September 11, 2013 ยท (Permalink)
My first Object Oriented Programming class had, as its final programming assignment, an elevator simulation project. This was a freshman-level college course. As input, our program would accept a file with things like, "There are 8 elevators. At 7:40:01, a person wants to go from the 1st floor to the 5th floor... At 7:42:05, a person wants to go from the 4th floor from the 8th floor". As output, our program would return the time when each passenger reached their desired floor. Elevators had about about a dozen rules, things like:
Elevator doors stay open for 5 seconds.
If a person approaches an elevator which is already open, the elevator door will continue to stay open for another 5 seconds.
It takes 10 seconds for an elevator to travel between floors.
People will be picked up by the closest elevator traveling in the appropriate direction
The forums were filled with questions, edge cases, and ambiguities from day 1. "If two people approach an elevator 3 seconds apart, but they want to go in different directions... Do they both enter the same elevator?" "What if both people arrive at the exact same time?" "If a person presses the button on the 100th floor, which elevator would pick them up -- an elevator travelling up on the 2nd floor, or an elevator which is current stopped on the 99th floor, but will soon be travelling up?" "If one elevator departs the 2nd floor at 1:12:01, and another elevator departs at 1:12:02, is the first elevator considered 'closer'?"
The project made about 30% of our final grade. The class had a 70% fail rate that year, I'm fairly certain the only people who passed the course were those whose initial marks were high enough to survive tanking the project.
I had many projects like this in my Comp Eng courses. My final project for digital design was to recreate the processor from the original NES, by hand (albeit a simplified version). It had to read a program from a ROM, process input from a rudimentary joystick, and display to a VGA monitor. It was insane. We were given a month to do it, and many of us slept in the lab.
The project was also full of ambiguity and soft requirements. My greatest lesson from this project (and the reason I passed it), was this: You cannot become paralyzed by ambiguity; you must make a decision and carry on.
While most of the students ran out of time and ended up with nothing because they couldn't answer every question up front, I ended up with a mostly working thing because when faced with multiple choices, I just picked one and didn't think too much about it. I wasn't worried about getting it exactly right, I was just worried about having something to show for it at all.
In the end I don't know what my actual grade was, but I was at the top of the curve, so I ended up with an A. I took that lesson with me through my career and I think it's still a part of me.
Poobslag ยท 80 points ยท Posted at 16:12:37 on September 11, 2013 ยท (Permalink)
I took my fair share of higher level programming courses, creating like ray tracing programs and operating systems for programming assignments, so I'm not really complaining about this assignment being difficult... Just that it was unfairly difficult for a freshman-level class, the requirements were ambiguous, and there was one right answer, which was decided by the automated courier which graded your assignment.
It feeds your program some input, and reads your program's output. If it doesn't match the expected output, you get a zero, and four more attempts. If you "picked one and didn't think too much about it", you would have gotten a 0, so while that's an applicable strategy for some assignments, it doesn't work for an automated grading system.
And that's why I hated automated grading systems. The only good such system was designed by a mathematician and was used to teach prolog. There wasn't much ambiguity there.
It's more like "pick one and then realize later how badly it fucks everything up so re-do it all".
Poobslag ยท 18 points ยท Posted at 17:13:09 on September 11, 2013 ยท (Permalink)
If only the concept of Unit Testing was in widespread use back in 2000... So many hours spent running and rerunning different simulations, and checking the results manually!!
tnt8897 ยท 4 points ยท Posted at 00:45:28 on September 12, 2013 ยท (Permalink)
JUnit saved my ass so many times throughout college. It was never mentioned by the professors, but a friend of mine showed me it.
Zifnab25 ยท 8 points ยท Posted at 20:38:26 on September 11, 2013 ยท (Permalink)
Ah, see, I remember my tenure in undergrade comp sci. The strategy went more like "Pick one, then when it doesn't work go and beg the TA to make special exception."
I discovered, to my horror entirely too late, that your prospective grade rested more on the generosity of your TA than the actual quality of your programmed product. Long story short, I graduated with a bachelors in Mathematics several years later.
Poobslag ยท 1 points ยท Posted at 00:26:33 on September 12, 2013 ยท (Permalink)
oh WOW that's terrible!
djn808 ยท 1 points ยท Posted at 21:45:45 on September 12, 2013 ยท (Permalink)
I had to simulate an elevator in my second year, but the one outlined sounds slightly harder.
EatATaco ยท 42 points ยท Posted at 16:55:45 on September 11, 2013 ยท (Permalink)
I took a database programming class. The professor, on the first day of class, said that he expected the work for that class to take 40 hours, just like a real job would. We pointed out the absurdity of this due to the fact that we were all taking 4-6 more courses, and if they all had the same time requirement, there wouldn't be enough hours in a week to do all the work. He resisted, but relented, eventually saying he only expect 10 hours. Just demonstrating how clueless this professor was.
It turned out that that 10 hours was for a very experienced programmer, which almost none of us was. I did okay getting the work done, but I know most other people struggled. After the first exam, I was burned out. I got a b+ on the exam, but most other people flunked it. My grades on my homework were all about high Bs too. It was too much work on top of my already stressful class load and it wasn't a requirement for me, so I decided to drop it.
My friend who flunked pretty much every homework assignment and the test ended up getting a B+ in the class. There was a huge curve and I should have stuck it out and dropped another class. I was so pissed.
Dang, my database class took no more than 40 hours of work for the whole semester. Easiest class ever. Shows what a difference the prof makes.
Axytolc ยท 7 points ยท Posted at 21:15:36 on September 11, 2013 ยท (Permalink)
Or the type of database class it is. Database theory can get extremely intricate, to say nothing of the application.
Aleriya ยท 1 points ยท Posted at 00:43:18 on September 12, 2013 ยท (Permalink)
I'm debating going back to school for computer science, and this thread scares the crap outta me. At least there are a handful of stories of sane and reasonable professors . . .
nlke182 ยท 1 points ยท Posted at 03:20:38 on September 12, 2013 ยท (Permalink)
There are plenty of free courses online to see if you will enjoy it before you go back to school. Check out harvards CS50 class online.
needlzor ยท 2 points ยท Posted at 18:27:18 on September 11, 2013 ยท (Permalink)
If you don't mind me asking, what was it that you found difficult and/or fastidious in your DB class? I am about to TA two next year (intro to db and database programming) and I need to "balance" the existing content (created by my PhD supervisor) to add new things (mainly about query optimisation and DB internals) and my students don't give me any useful feedback.
EatATaco ยท 1 points ยท Posted at 18:48:15 on September 11, 2013 ยท (Permalink)
You are more than welcome to ask.
But it was so long ago for me (I graduated in 2000), it wasn't something particular interesting to me, a class I took for a short time and, quite frankly, most of my college days are a blur now so even if I had stuck it out, I probably would have forgotten it by now anyway. :)
Dunno about an entire course structure, but this is a very useful resource I think your students should be familiar with. Excellent basic tutorial.
NotClever ยท 1 points ยท Posted at 20:37:18 on September 11, 2013 ยท (Permalink)
Aw dang, man. Was that a freshman year thing? I learned very quickly to love the curve in engineering. Had a slightly above B+ GPA and I rarely saw anything better than a 70 in terms of numerical grades. One class the prof set the curve for an A at 50 (most of the class got Cs, for which the curve was set at 30).
NotClever ยท 14 points ยท Posted at 20:33:10 on September 11, 2013 ยท (Permalink)
Ah yes, the key lesson of engineering: "Just try something and if it mostly works that's pretty good."
Hahaha.. Well in software that's true. Of course you don't want to build a bridge that way, but I can't remember ever having solid requirements for a software project. You get the best requirements you can, build it, and periodically put it in front of your customer to see if you're on the right track. Hooray for Scrum.
Poobslag ยท 5 points ยท Posted at 00:34:47 on September 12, 2013 ยท (Permalink)
NotClever ยท 2 points ยท Posted at 20:53:30 on September 11, 2013 ยท (Permalink)
Civil engineering is a field where you can't fuck up, yeah. In EE I mostly turned in hacked together crap. If it worked I couldn't usually explain why. If it didn't work, just play with some variables or add some components until it did!
djn808 ยท 1 points ยท Posted at 21:47:34 on September 12, 2013 ยท (Permalink)
I like to think about it as a doctor can fail and kill one man; a civil engineer may fail and slaughter ten thousand.
_shift ยท 2 points ยท Posted at 02:28:39 on September 12, 2013 ยท (Permalink)
I believe the phrase that is passed around in the corporate engineering world is "better is the enemy of good"
"The project was also full of ambiguity and soft requirements. My greatest lesson from this project (and the reason I passed it), was this: You cannot become paralyzed by ambiguity; you must make a decision and carry on."
The second Comp-Sci course of every school should start with this as the cover sheet of the syllabus.
huxrules ยท 19 points ยท Posted at 17:41:57 on September 11, 2013 ยท (Permalink)
Sure this is also how people get fired.
MagnusT ยท 2 points ยท Posted at 20:00:11 on September 11, 2013 ยท (Permalink)
Do you know anyone has ever gotten fired for this?
huxrules ยท 3 points ยท Posted at 20:52:16 on September 11, 2013 ยท (Permalink)
Yes. Not in the software world but in the energy sector contractors sometimes have to make due with a very vague scope of work. If you make too much noise about it then you are a troublemaker. If you just forge ahead and do what you think is right - and this turns out not to be the way they wanted it - you get in trouble. There is also the opposite where the scope is so descriptive that it also presents a problem.
[deleted] ยท 3 points ยท Posted at 21:18:45 on September 11, 2013 ยท (Permalink)*
I think he means outside of academia. If you were working on a team and programming traffic lights, presuming that there would never be a case where two pedestrians want to cross in conflicting directions and press the button at the same time, your code would be useless in the real world. If you are working in a small team for college, they want something a little beefier than skeleton code, lets call it muscle code. The idea is to demonstrate competency and that when put up to the task in the real world you would be able to develop a system. Not actually to develop the system.
Think of it this way. A creative writing class wouldn't expect you to turn in a novel and film students are expected to create a short, not a feature length presentation. A programming class does not want you to develop a ready to market traffic light (or elevator) control system.
otakucode ยท 1 points ยท Posted at 15:55:09 on September 18, 2013 ยท (Permalink)
It wouldn't be useless in the real world. In the real world, it would cause a problem and you'd get a support call. Then you fix it. People no longer expect anything to work. They have embraced the idea that everything, everywhere, is going to fuck up frequently.
And hey, sometimes you end up getting a whole new contract to do maintenance!
Talk about preparation for the real world of software development..
Zifnab25 ยท 2 points ยท Posted at 20:42:02 on September 11, 2013 ยท (Permalink)
From my experience, clients that hand you a bunch of soft requirements and have no idea what they actually want can either (a) be assholes you just never want to deal with again or (b) serve as an endless font of future projects.
Once you get enough (b)s, you're basically set for your career. Unfortunately, I've meet very few comp sci professors that weren't in the (a) category.
My greatest lesson from this project (and the reason I passed it), was this: You cannot become paralyzed by ambiguity; you must make a decision and carry on.
Talk about great life skill. There's always a balance, but sometimes you just need to make a decision. With experience comes being able to make better decisions faster.
levirules ยท 4 points ยท Posted at 17:43:41 on September 11, 2013 ยท (Permalink)
With programming, I'd be terrified of doing this. I'd be worried that a binary decision made early on in the project, that the rest of the project ends up being based on, would be wrong. And then the whole program would be wrong. And then I'd need to start over with 1/10th of the time required to actually start over and finish it. And oh god why did I pick CompSci
otakucode ยท 1 points ยท Posted at 16:00:21 on September 18, 2013 ยท (Permalink)
I think it's best to pick Comp Sci as your major around 10 years old. Then make learning computers your primary activity with schoolwork a definite second. Then you will be properly prepared to sail through and your classes will be fun!
cantCme ยท 1 points ยท Posted at 17:19:18 on September 11, 2013 ยท (Permalink)
Exactly. As long as you can explain why you made each decision, you'll probably be fine.
[deleted] ยท 1 points ยท Posted at 21:50:04 on September 11, 2013 ยท (Permalink)
The thing about ambiguities is that when it's graded by a computer looking for super specific outputs, you have to know exactly what's required.
[deleted] ยท 1 points ยท Posted at 00:19:08 on September 12, 2013 ยท (Permalink)
That is a really good life lesson. Make the best decisions you can and don't let the ambiguities stop you from completing your project.
mill1000 ยท 1 points ยท Posted at 00:38:39 on September 12, 2013 ยท (Permalink)
Your digital design class >>>>>>> (way greater than) my digital design class.
jonr ยท 35 points ยท Posted at 15:40:14 on September 11, 2013 ยท (Permalink)
Ah yes... good old ambiguity, ambiguity everywhere...
[deleted] ยท 61 points ยท Posted at 16:02:49 on September 11, 2013 ยท (Permalink)
The ambiguity is supposed to make you either a) design so that what is ambiguous can be parameterized and pick some sensible default values or b) ask the professor to resolve the ambiguity so that the requirements are more complete, much like a real-world project would require.
jonr ยท 79 points ยท Posted at 16:14:59 on September 11, 2013 ยท (Permalink)
Probably to prepare you for years of "The customer has no idea what he wants" projects... :)
fiah84 ยท 27 points ยท Posted at 16:54:55 on September 11, 2013 ยท (Permalink)
in which case, the professor should give ambiguous or contradicting answers as well
We had a project just like that. One of our tutors was our "customer" and he gave us an initial spec with problems we had to work out and discuss with them. And like you said, for some groups (inc ours) they changed some of the requirements half way through. It was taken into consideration while marking and wasn't too unfair though. It was a pretty good intro to what working for a real client was like.
NotClever ยท 5 points ยท Posted at 20:38:21 on September 11, 2013 ยท (Permalink)
And then give you a shitty grade even though you did everything they asked. Which, now that I think about it, actually does happen.
I have never had a problem in a programming class all of college until I met a certain professor. He does not like me. I don't know why. He doesn't respond to my emails, only gives me vague condescending answers for help when I approach him in person, and marks points off my tests that he wouldn't on other students. I glimpsed at another student's test after he handed them back. Our answers were not entirely correct, but they were nearly identical. The guy next to me got 4/5 points for the question. I got 0/5.
Failed that professors class twice, took the same class with a new professor and passed with flying colors. Some professors are just dicks.
NotClever ยท 1 points ยท Posted at 22:19:22 on September 11, 2013 ยท (Permalink)
This is true. Professors are people too. And some of them are very bitter and angry people. I once had a friend tell me they were thinking of leaving the corporate workforce and going for a phd to become a prof to get away from politics. I couldn't believe my ears.
graycode ยท 1 points ยท Posted at 23:55:59 on September 11, 2013 ยท (Permalink)
My best undergrad CS class did exactly this.
It was a software design course, and we worked on one program over the entire semester. Features of the program were assigned over the course of the semester, in chunks, and each successive assignment changed things (sometimes subtly, sometimes greatly) about previous assignments.
The important lesson this taught was that your designs need to be flexible, to allow for future specification changes. Those of us who made flexible designs were able to easily adapt our program to the changing requirements, whereas those who didn't had to spend a lot of time rewriting parts of theirs.
I assert that there's no greater skill in a software developer than being able to make flexible designs like that.
Unsurprisingly, this class was taught by one of the few professors with many years of real-world (aka outside of academia) programming experience. He understood the need for this skill better than other professors.
Calabast ยท 8 points ยท Posted at 17:00:50 on September 11, 2013 ยท (Permalink)
I'll take a customer who only knows what they want to accomplish over a customer who knows what they want any day of the week.
You get to skip right past the whole "create and deliver what the customer asked for, the customer says they don't want it, you refer to their initial request, THEN they tell you what they're trying to do" stage.
fiah84 ยท 3 points ยท Posted at 17:17:21 on September 11, 2013 ยท (Permalink)
Well, only if they sign away their right of an opinion as to how they want to accomplish it, otherwise the result might be good but you still have a sour client.
Calabast ยท 3 points ยท Posted at 17:39:43 on September 11, 2013 ยท (Permalink)
True, true. And I'm being overly dramatic, some customers actually know what they want, and thank you when you deliver it. And they are the best kind of all.
But you make a good point, I think it's pretty common for a college to not quite prepare a programmer for how important conversational ability and social skills are when you hit the real world. Bit of a rude surprise for probably a number of students who wanted a job playing with computers and not dealing with people.
jonr ยท 1 points ยท Posted at 18:11:41 on September 11, 2013 ยท (Permalink)
I'm sorry, I thought this was programming 101, not customer relationships... :)
vivvav ยท 1 points ยท Posted at 00:15:36 on September 12, 2013 ยท (Permalink)
Where? I'm not sure I see it.
Sheepshow ยท 1 points ยท Posted at 20:45:34 on September 11, 2013 ยท (Permalink)
There either may be or may not be ambiguity depending onhowyoulookatit
dabombnl ยท 9 points ยท Posted at 16:30:03 on September 11, 2013 ยท (Permalink)
That sounds doable with a standard discrete event model.
Poobslag ยท 49 points ยท Posted at 16:36:49 on September 11, 2013 ยท (Permalink)
Don't get me wrong, it's not like anybody was stuck on this assignment. The ~120 students each produced ~120 different models, all of which fit the description, and all of which generated output which was arguably correct. But, none passed the automated courier, and everyone failed the assignment
0 of 78 lines matched expected output
Total grade: 0%
-------------------------------------------
4/5 submissions remaining
keithjr ยท 47 points ยท Posted at 17:11:14 on September 11, 2013 ยท (Permalink)
This honestly sounded like a good and interesting assignment up until I read "automated courier." Then I realized that nobody would actually look at the code holistically, and the grade would just be based on a single "ideal" implementation's response.
And now I remember why I don't want to go back to academia.
Same - I remember doing an early programming assignment which had a line like "this requires 8 objects to work successfully" which I took as a challenge, and managed to do it using 5. The TA marking the work refused to believe it was possible, and failed me despite fulfilling the requirements of the task.
If you deliver a program to someone that accomplishes its goals according to function but not according to the internal model of the person who assigned the project, you still get the money. And more likely than not, you get paid even more to make alterations that weren't in the initial contract (you made a contract, right?). Source: I've worked on more than a few projects like that.
[deleted] ยท 1 points ยท Posted at 08:14:22 on September 12, 2013 ยท (Permalink)*
Sure, you often get paid even if the project is a complete failure in the end. But generally, one shouldn't teach a sloppy attitude towards specs in the school. The situation in question was when the project did not pass the specified function, and the complaint was nobody cared about its internals.
If the acceptance criteria was specified in the initial assignment, the projects that didn't match them have failed, period. The elegance is subjective (especially if TA has no time or ability to fully appreciate it), but black box functional test minimizes human factor.
dabombnl ยท 14 points ยท Posted at 16:47:59 on September 11, 2013 ยท (Permalink)
The grading method should only test what behavior is defined in the rules (like unit tests).
Anything else is a problem in the grading mechanism, not in the assignment.
ghjm ยท 4 points ยท Posted at 17:41:27 on September 11, 2013 ยท (Permalink)
And knowing that, you still get a zero. Which is why you complain to reddit about it, because that is all you can do.
The problem with that kind of grading scheme with an assignment like that is that your grade depends on your ability to successfully parse instructions over your ability to program or design software. While the former is an important skill, it isn't a skill that these classes are attempting to teach and should not be a factor in grading.
This kind of fully automated, zero subjective interpretation setup is only acceptable if the instructions contain zero ambiguity. Every requirement should be utterly straightforward and have an illustrative example of a correct program input/output. It should be easy for a student to, after completing the project, accurately approximate what grade he will get, and know what improvements are necessary to get a higher grade. Anything less is a failure on the part of the teacher to accurately assess relevant skill and knowledge of the material.
dabombnl ยท 1 points ยท Posted at 00:22:22 on September 12, 2013 ยท (Permalink)
How is it "fully automated, zero subjective interpretation"? I am not saying all behavior must be defined. It won't be and it is not in this assignment. But the implementer (or grader in this example), should not count on undefined behavior to have a defined output. Any scenario that does not match any rules can have any outcome.
I'm saying that maybe the rules for what the program is supposed to do were defined, but defined in a way that is difficult to understand and easy to misinterpret. In that case the problem would be with the assignment.
djn808 ยท 1 points ยท Posted at 21:51:03 on September 12, 2013 ยท (Permalink)
Over several years I've noticed in my university courses in the comp sci field that the original grading schemes rely on output comparisons and barely look at the code. This inevitably leads to poor average marks and the scheme has to be modified throughout the term, resulting in a strange manual curve.
Vacster ยท 1 points ยท Posted at 22:40:41 on September 11, 2013 ยท (Permalink)
I don't get it, so does the code has to be exactly as the teacher was expecting it to be?
Poobslag ยท 3 points ยท Posted at 00:24:04 on September 12, 2013 ยท (Permalink)
No, but they compare your output to the expected output. Given the nature of the problem, if you make a mistake and simulate one elevator incorrectly, it trickles down to everything else making all of your output incorrect. You have total freedom with your code, as long as it produces the correct output.
In my undergrad C++ class, I had to write a program that would detect "blobs" in images based on color and brightness then separate them out into individual files that could be plotted on command. The assignment was graded automatically and every incorrect pixel resulted in -10% and this was just one of 8 assignments in the class.
It was actually titled "Computer Programming for Engineers - C++," which is a 200 level course (or 2000 at UF) but the "for Engineers" part should have been a warning sign. I was also taking 8 classes that semester so I had absolutely no life.
rafajafar ยท 2 points ยท Posted at 01:58:20 on September 12, 2013 ยท (Permalink)
Yeah that's B.S. Every CPE student I know had a problem with their SUPER HARD programming course that they wound up never using until post-masters.
I didn't think my class was hard in terms of the material it covered but rather in shear volume of code and merciless grading.
I wrote a program with 1000 lines of code that worked flawlessly in bug testing on my end but still resulted in a 0% because the test code found a flaw that I didn't catch. I wasted a whole week in the library writing that code and didn't get a single point of partial credit.
I should note that the teacher was fired after that semester. I'm not sure why but the students absolutely hated her. Half the class dropped out and half of those remaining still failed. She is my second least favorite prof I've ever had and I've taken a shit ton of classes.
EDIT: Just so I don't look like such a braggart, I should mention that I got a C+ in that class.
djn808 ยท 2 points ยท Posted at 21:51:33 on September 12, 2013 ยท (Permalink)
every incorrect PIXEL? That's some bull sheet
gwarsh41 ยท 18 points ยท Posted at 17:05:25 on September 11, 2013 ยท (Permalink)
I taught Comp Science for a while. It was pretty standard practice for ALL of the Comp Science departments to have a few make or break projects each semester. For my department there were usually 3 main projects, intro, midterm and final. It was very hard to pass the class if you tanked any of the projects. Usually impossible to pass if you tanked the final.
Our graduation rate was something like 10%, but our placement rate was 95%. We had a reputation as "a school that will get you a job" and the state funded us based on placement, not graduation.
It was a fun time, but shattering dreams and breaking hearts is only fun for so long. Then it is just depressing.
Poobslag ยท 3 points ยท Posted at 17:12:18 on September 11, 2013 ยท (Permalink)
I understand, and this was the same practice at our school as well. OO was expected to carry a high drop rate. Still, this was an especially bad year.
gwarsh41 ยท 7 points ยท Posted at 17:13:50 on September 11, 2013 ยท (Permalink)
Yeah, I know those years. The years when you think, "Why am I at graduation, none of my students made it!"
mikelj ยท 4 points ยท Posted at 16:42:43 on September 11, 2013 ยท (Permalink)
Let me guess, Deitel and Deitel?
Poobslag ยท 1 points ยท Posted at 17:56:38 on September 11, 2013 ยท (Permalink)
I don't think so! Which college are you referring to? I can't remember the professor's name at the moment, although I remember the building name.
mikelj ยท 3 points ยท Posted at 18:37:10 on September 11, 2013 ยท (Permalink)
I just remember that from my first C++ book written by Deitel and Deitel. This guy. How I hated that elevator problem.
NotClever ยท 4 points ยท Posted at 20:42:47 on September 11, 2013 ยท (Permalink)
Could be one of those deals where the prof takes assignments from another textbook. We figured out in one of my more advanced courses that the prof was taking all of his homework problems from a textbook he hadn't assigned, and they became infinitely easier if you read the associated material in that book. It was weird.
In real life for the small details it's probably better to do it wrong and wait for the client to come back and tell you instead of pestering him over every last small detail, especially if they are more business savvy and less design savvy like most clients out there. But they do usually know the business, and will give you a much better idea about the specifics once there's an actual product that he sees working.
You'll guess half of it right anyhow and probably fret over details that the client doesn't care about one way or the other while ignoring details the client does absolutely need right. That's why you're a programer and not a businessman, and why the businessman has a job too.
Unfortunately in school you only get turn in the project once and that's it.
Unfortunately in school you only get turn in the project once and that's it.
I've had professors that split the difference by letting us run our program against the automatic grader at any time, or by giving us long sample inputs to test against.
Airazz ยท 5 points ยท Posted at 20:42:02 on September 11, 2013 ยท (Permalink)
I had a very similar task on my first week of programming class, except that the building was 10 floors and with three elevators.
The task was to write a program in C++ where a user would enter the number of the floor he's on and the direction of travel and then the closest elevator would come.
The program would output floors where each elevator was.
I don't think anyone made anything at all, as our programming experience was just a bit above zero and our lecturer would just leave after giving the task.
After about three months I simply left the country.
Poobslag ยท 1 points ยท Posted at 00:25:55 on September 12, 2013 ยท (Permalink)
Oh that's terrible! I'm sorry. I just retook the class and it wasn't so bad the second time, I had a different professor with different assignments...
[deleted] ยท 5 points ยท Posted at 17:35:04 on September 11, 2013 ยท (Permalink)
I think it's irresponsible of teachers to make up projects like this. In the real world this project would go on for a few months and there would be regular meetings to assess and clarify any edge cases that were discovered. I would have flat out refused to do the project stating that there isn't enough time to complete it safely and to attempt it anyway would be unethical.
Besides, computer science courses aren't supposed to teach you how to tackle something this difficult. They're supposed to expose you to a wide range of basic topics and concepts which you should learn more about later at your own pace if they interest you.
Elevator algorithms have been the focus of a few masters thesis.
AgentME ยท 2 points ยท Posted at 00:30:06 on September 12, 2013 ยท (Permalink)
Were there exact answers expected for everyone to give for the set of inputs the grader was giving? If not, then that assignment doesn't seem very bad, just choose how you want to deal with the ambiguities. If there were exact answers expected, that's a terrible assignment.
Poobslag ยท 1 points ยท Posted at 00:33:05 on September 12, 2013 ยท (Permalink)
Yes, there was one correct output file which you were graded against. Your grade basically had two parts -- 80% of it was how well your program behaved, and 20% was how good your code was (following proper OO practices, etc). The professor and his TAs would examine your code by hand for the second part -- but the automated courier system which graded your output had no leniency, it just checked line by line if your output was correct and gave you a grade.
hmm... isn't the elevator problem kind of like the vending machine problem?
Morgneer ยท 1 points ยท Posted at 02:05:56 on October 16, 2013 ยท (Permalink)
I had this project at the beginning of the year, I had it working in under a week. Although I'm sure it helped that my school had intro to programming as a prerequisite for the AP class
Poobslag ยท 1 points ยท Posted at 12:22:25 on October 16, 2013 ยท (Permalink)
It was impossible to have this specific project "working" within a week, because the requirements changed after two weeks when some contradicting edge cases were pointed out on the listserv. Any project developed to spec before the second week would have been marked incorrect.
I uninstalled it and the only time i had to reinstall it was to watch MSL land on Mars. I don't know what it's used for anymore but I've never been prompted to install it since.
dimmidice ยท 8 points ยท Posted at 21:46:05 on September 11, 2013 ยท (Permalink)
It's still ridiculously popular for server-side software. Really big in financial / online gambling / web-services. The JVM is an astounding piece of software; as fast as C, supporting multiple languages that cover a vast array of different programming paradigms, stupidly easy to deploy applications on.
The vast majority of its negative perception comes from the fact that Sun's (and now Oracle's) approach for distributing the "casual" user version just sucks.
Not sure why your downvoted because in for core financial components, its largely java.
1RedOne ยท 1 points ยท Posted at 21:52:46 on September 11, 2013 ยท (Permalink)
Start packaging a deploying that stuff and not worry about daily updates?
Or you could use App-V to encapsulate Java in its own sandbox, and not worry about vulnerabilities.
ralarb ยท 7 points ยท Posted at 18:34:15 on September 11, 2013 ยท (Permalink)
For someone from a later era of CS, the hell did Stroustrup write that you were expected to read? I don't imagine you were expected to read the C++ standard.
My confusion exactly, since it was never a required text and it was never at the school bookstore.
I was way too afraid to ask the faculty, because it was revered as Holy Scripture. I'm sure I would have been branded a heretic and burned at the stake.
I never saw any other students with it, but I did see it enshrined in a faculty member's office. IIRC it was either
This was the same program that had a tenured professor that refused to buy things over the Internet, because "no way was will it ever be secure enough for my sensitive information". (I mean he did have a point)
Instead he preferred to call over the phone and give his credit card
details...yes..because nobody could ever be listening in on that, or the person on the other end be writing it down to save for later...or your delinquent grandkid is listening on the extension...
spif ยท 15 points ยท Posted at 20:17:45 on September 11, 2013 ยท (Permalink)
may the lord python one day shine his light upon you, my child.
[deleted] ยท 14 points ยท Posted at 18:23:45 on September 11, 2013 ยท (Permalink)
Python can go eat a dick.
Nah, I kid. I've used Python. It's nice, but I still prefer my C and Java.
[deleted] ยท 2 points ยท Posted at 18:39:11 on September 11, 2013 ยท (Permalink)
If you want to obfuscate your code, Python isn't exactly a good choice. There are ways, but all of them are much more easily subverted than compiled languages.
Even so, Python is my dear love.
gsfgf ยท 11 points ยท Posted at 19:01:03 on September 11, 2013 ยท (Permalink)
Haha. You clearly haven't seen my code. It's obfuscated without any need for a compiler.
xzxzzx ยท 3 points ยท Posted at 19:41:24 on September 11, 2013 ยท (Permalink)
I used to spend effort making my code obfuscated, but then I just switched to line noise Perl instead.
spif ยท 9 points ยท Posted at 20:21:55 on September 11, 2013 ยท (Permalink)
There is a study that shows Perl is harder for people to learn than a language called Randomo. Randomo is a language that was created especially for the study. Randomo is so named because its syntax was randomly generated.
gfixler ยท 1 points ยท Posted at 20:15:31 on September 11, 2013 ยท (Permalink)
perline noise?
ralarb ยท 3 points ยท Posted at 20:10:08 on September 11, 2013 ยท (Permalink)
Yeah, but in python you can't write shit like:
// pulled from a current project
if(!vecEquals((*(((FunctionMacro &)rhs).args))[i]->data
,(*args)[i]->data)){
return false;
}
Python does, however, have monkey patching and meta-classes which can be much more devious.
gfixler ยท 2 points ยท Posted at 20:16:35 on September 11, 2013 ยท (Permalink)
Not true. Here's one of my own:
cmds.curve(degree=1, point=[map(lambda k:float(k)-0.5, x) for x in zip(*[iter(''.join('%d' % (v % 2) * int(c) for v, c in enumerate('521261222116161122211')))] * 3)])
gsfgf ยท 2 points ยท Posted at 20:41:40 on September 11, 2013 ยท (Permalink)
Yea, it's really the javascript part of my current project that's essentially illegible to me, even while I'm in the process of writing it. But I am parsing web pages with BeautifulSoup, and there ain't nothing beautiful about that section. For example:
state = str.strip((allcols[0].contents[0].contents[3].contents[0].contents[1].contents[1].string)[str.find(allcols[0].contents[0].contents[3].contents[0].contents[1].contents[1].string,',')+2:str.rfind(allcols[0].contents[0].contents[3].contents[0].contents[1].contents[1].string,' ')])
ltethe ยท 1 points ยท Posted at 00:47:54 on September 12, 2013 ยท (Permalink)
I love Python, but I've only been in it for a bit, and I've run into the idea of obfuscation only tangentially. Is it only for copy protection we do these things? Or is there another reason?
[deleted] ยท 1 points ยท Posted at 02:10:45 on September 12, 2013 ยท (Permalink)
Yeah, copy protection. I was planning a game with online service, and didn't want people easily altering game clients, but there are other safeguards against that kind of thing.
Python simplifies a lot of stuff, though. I wish I could use it for all of my labs nowadays...
Phoxxent ยท 1 points ยท Posted at 02:02:15 on September 12, 2013 ยท (Permalink)
In my opinion, Python is now what BASIC was in the 70s. That is probably a horrible analogy though.
gfixler ยท 1 points ยท Posted at 23:43:58 on September 12, 2013 ยท (Permalink)
You guys are bringing back memories I thought I'd buried.
My very first computer science class, had no prerequisites ... no indication of any prior knowledge needed, started on day 1 with the assumption that you innately knew how to program in C and C++ and how to navigate in and operate their UNIX environment.
I grew up in a small town where I aced what few computer and programing related classes we had. The most advanced programing language I had ever used was PASCAL.
I had never even heard of UNIX or Object Oriented programing.
[deleted] ยท 12 points ยท Posted at 19:27:57 on September 11, 2013 ยท (Permalink)*
First day of programming class -
Prof: Put "#include <cstdio>" at the top.
Me: What does that do?
Prof: Erm, we'll get to that later, just put it at the beginning of everything for now.
Later Prof - upload your program to the Unix mainframe to turn it in.
My law dropped when I saw our university's intro to C course say:
"These will also work on MSVC, but you need to put #include <stdio.h> at the start".
djn808 ยท 1 points ยท Posted at 21:53:21 on September 12, 2013 ยท (Permalink)
"dont worry, just type public static void main and fohgetaboutit."
Icovada ยท 42 points ยท Posted at 17:10:17 on September 11, 2013 ยท (Permalink)
Mine was the opposite. The professor kept on rambling about bits and bytes and nibbles and kilobytes... even (gasp) terabytes.
The assignments she left were something like "A program in C that does something with and structs and pointers and did I mention you will have to build an array of structs and each struct will have in the last value the pointer to the next struct array"
yep those are lists. Spent like 2 years in highschool fucking around with lists.
abenton ยท 1 points ยท Posted at 18:32:15 on September 11, 2013 ยท (Permalink)
That will be easy then! Start>programs>ms word
djn808 ยท 1 points ยท Posted at 21:52:46 on September 12, 2013 ยท (Permalink)
Oh god in year 2 I had to use a weird triple referenced array of structs of array of structs because he made us use his skeleton code that no one could understand.
thaen ยท 7 points ยท Posted at 17:23:24 on September 11, 2013 ยท (Permalink)
The expectations that you understood the toolchain were insane. My first exposure to programming was all in sandboxes specifically designed to be self-contained -- BASIC, FutureBASIC, simple Java IDE that compiled and executed code for you. The whole idea of an IDE, what a "compiler" was actually doing, the idea that there were different operating systems in the first place, was totally foreign.
Same here, I came from FORTRAN background although I heard od Java , and C++ , etc but it was only it. I just heard of them.. However, my Comp Sci classes actually started with OO concepts (OO programming class), and also I had no issues with C (system programming class), and Opertign Systems?? (UNIX and shell). Basically, each class complemented the other so that you are not stuck in one class with some task without understanding the concpets.
In second year we started with what you are saying.
When I think of it my first year of comp sci was pretty fair in that respect. There were some hard assignments though.
Nebu ยท 2 points ยท Posted at 02:59:48 on September 12, 2013 ยท (Permalink)
In my second year of computer science (meaning this is a totally different situation from your anecdote where it was your first class), the teacher said the assignments have to be done in Python, and even if you don't know Python yet, you should be able to use google and teach yourself Python.
He wasn't wrong.
[deleted] ยท 0 points ยท Posted at 17:11:30 on September 11, 2013 ยท (Permalink)
CJSchmidt ยท 35 points ยท Posted at 16:51:21 on September 11, 2013 ยท (Permalink)*
It goes both ways too. First real project of my Programming 101 class and the prof gave us a simple assignment without any real direction or guidelines. I had a little experience with programming, so I used the book as a reference and wrote it using a clever little recursive function that got the job done in 12 lines of code instead of the 80+ he was expecting. Professor gave me a zero because "we aren't covering those until next week". Went straight from there to the registrar to drop the class.
Lessons learned: Learn about department professors beforehand and don't take CompSci classes at a college that can't even figure out how to set up student email accounts.
Woah, I think I could have not only dropped the class but let the department head know about the reason why.
CJSchmidt ยท 17 points ยท Posted at 17:57:51 on September 11, 2013 ยท (Permalink)
The professor was the department head. Taught 101 so he could weed out the students who couldn't cut it or that he didn't like. The tiny percent of people who made it through the program were about as bland and "inside the box" as you can imagine. One of my better snap emotional decisions.
I took calculus from the math department head. The guy was Indian and had never taught in the US, but was hired specifically to be the deparmtnet administrator, but then ended up an instructor short so he stepped up.
The guy spoke english very, very poorly, and used a very different scientific notation than the traditional Greek letters that I thought was universal. He pronounced "theta" as "data", and "derivative" like "dative", and a hundred other ways that made it impossible to learn from him.
After two weeks the class went from 300 persons full to maybe a couple dozen. The grading curve was so bad that I got a 15 out of 100 on one test and got a B grade.
there's no punchline to this story, the guy was just a shitty professor.
[deleted] ยท 4 points ยท Posted at 19:58:13 on September 11, 2013 ยท (Permalink)
[deleted]
CJSchmidt ยท 0 points ยท Posted at 22:17:13 on September 11, 2013 ยท (Permalink)
Had there been any parameters or guidance provided, I would have understood. If he'd said that and given me a chance to change it I would have. While I would never have succeeded in that particular program, it's still a shame because I fear I'll never be more than one of those sloppy PHP coders everyone always (rightfully) complains about. Good teachers make all the difference.
1RedOne ยท 3 points ยท Posted at 21:56:10 on September 11, 2013 ยท (Permalink)
Once you learn to think recursively, doing things manually with code is terrible.
That class sounds awful. I can't comprehend penalizing somebody for thinking creatively.
Hah, just typed the same thing above. Quit after first semester and never looked back - doing much better than my friends who completed university and things are just up and up from here.
[deleted] ยท 6 points ยท Posted at 16:20:22 on September 11, 2013 ยท (Permalink)
Mine just seemed to want you to review their book they were working on for them :(
[deleted] ยท 4 points ยท Posted at 16:15:42 on September 11, 2013 ยท (Permalink)
To be honest something like 80% of my peers already knew how to code on multiple languages etc. when they started studying comp. sci. I had no clue or hobby background, so especially the first year felt like "here's an assigment, complete it and after you turn it in we'll tell you how to do it."
To be fair my school does put a lot of effort into these voluntary "group learning" sessions where you can work on problems together and get help from some of the older students. But honestly how often are you gonna go when there's the possibility of just turning it in online?
My first computer science class, just a basic 120 intro to C, our first day we werent even given a syllabus because "she hadnt finished it" but we left with three assignments due for the next class day and no idea how to turn them in.
knudow ยท 3 points ยท Posted at 17:14:12 on September 11, 2013 ยท (Permalink)
My teachers were always like: "Oh, but you already know this from [insert name of another class]" and you wonder: "Wait, did we really learned that in said class and I'm just stupid and forgot all about it??"
"Wait, did we really learned that in said class and I'm just stupid and forgot all about it??"
That or:
"Wait, that class isn't marked as a prerequsite to this one!
My advisor and I had it planned fornextquarter!"
jlobes ยท 13 points ยท Posted at 21:50:03 on September 11, 2013 ยท (Permalink)
My favorite is "You should know X from YYY 101"
"Uhh, no one even mentioned X in YYY 101."
"Who taught your section?"
"Professor Z."
"Oh yes, Professor Z doesn't teach X in YYY 101."
CJSchmidt ยท 7 points ยท Posted at 22:19:50 on September 11, 2013 ยท (Permalink)
Then he continues on without missing a beat or explaining X. You're just out of luck.
jlobes ยท 2 points ยท Posted at 00:27:34 on September 12, 2013 ยท (Permalink)
Lol, actually, this is sort of a funny circumstance. My first run through college was as a CS major. I dropped out because of situations exactly like these. Five years later I've been working as a web developer and I've decided to go back to school to learn design.
This time, however, I actually know all the shit the professors are talking about. My Intro to Web Design teacher didn't teach PHP. My Advanced Web Design professor assumes the whole class can work in PHP. In reality, I'm not even sure the majority of these kids know what PHP is. On the other hand, I've been writing Joomla plugins at work for the last year.
Shells, emacs, and telnet. We were not told how to use these in class. We were simply expected to do it. I was in such a panic mode that I doubt I retained anything in that course. But at least I got a B+. w00t
gfixler ยท 1 points ยท Posted at 23:48:50 on September 12, 2013 ยท (Permalink)
Okay, I brought some seashells, some big macs, and a hair net, like you said. Now what do I do with them?
MrCheeze ยท 2 points ยท Posted at 19:09:08 on September 11, 2013 ยท (Permalink)
The problem seems to be overestimating how much was covered in the class before.
[deleted] ยท 1 points ยท Posted at 17:57:14 on September 11, 2013 ยท (Permalink)
I know right?
We've just come back for the sheer joy of it all
mtx ยท 1 points ยท Posted at 19:20:48 on September 11, 2013 ยท (Permalink)
My 2nd comp sci assignment was allowing the user to draw a set of points and then your program would generate a fractal from that. Seems trivial now but this was in the late '80s when, generally, people didn't know what fractals were. I couldn't even understand recursion at the time.
[deleted] ยท 141 points ยท Posted at 17:14:43 on September 11, 2013 ยท (Permalink)*
[removed]
[deleted] ยท 34 points ยท Posted at 19:00:50 on September 11, 2013 ยท (Permalink)
That's... pretty accurate, actually.
quatch ยท 2 points ยท Posted at 21:21:15 on September 11, 2013 ยท (Permalink)
possibly the most accurate I've ever heard.
rafajafar ยท 16 points ยท Posted at 23:01:10 on September 11, 2013 ยท (Permalink)
The problem is the disconnect between the practical (programming) and the theoretical (philosophy, mathematics, computer science).
They assume that the practical follows from the theory, but it's really the other way around.
The most successful computer science students already know how to program (well maybe not successful grade-wise, though definitely career-wise). Why is that REALLY? Is it because they understand the theory better and can translate it to the practical? NO! It's because they can immediately learn how to program BETTER by learning the theory.
You can't teach someone what an algorithm is unless you've taught them how to think algorithmically to accomplish a task. People run on autopilot most of their lives. Unless you can push them into being conscious about the details of an operation, you're going to have a bad time.
I'll never wind up teaching, probably, but if I did, my first assignment for a 101 programming course would be to program in real life before they touch a text editor. Something like, "Bake me cookies".
Requirements: Sugar Cookies or Chocolate Chip. No nuts. Must be delivered in a Tupperware (or other brand of similar construction) container. Included must be a copy of the instructions to produce the cookies beginning from "Begin process of making cookies," to, "Close Tupperware container." Only use the basic knowledge that a person can identify objects and knows how their body works.
Next, I'd read everyone's process instructions to the class as they eat freaking delicious cookies. Maybe I'll bring some milk. As they eat, I read and as I read, I write, in pseudo-code, the instructions on the white board. After each instruction, I will go through each step and quiz the person who made them whether or not this "process as you wrote it will finish."
For example, someone says, "Open fridge." How do you open a fridge? "Oh right, Extend arm, open hand, grasp handle, pull arm." ... "Isn't your hand still full with the handle?" ... "Ah and release hand."
It's tedious, so the cookies make it tolerable, but at the end, the students will know that programming is not magic. Programming is a meticulous, detail oriented task. And you know what, they'll know how to program, even if they don't know a language yet. And for the rest of the year, I'd have the concept of baking cookies to fall back on when they have a problem. "How do I print 1 to 10 and then print it again in reverse?" ... "Remember when I was writing how to bake cookies on the board, and I said ..."
I think my first CS assignment was to write a series of steps that would get you out the door of a room, while not knowing where you started, or where the door was.
The most successful computer science students already know how to program
I respectfully disagree with this SO HARD.
First, I did not learn how to program until my sophomore year in college. I have a pretty solid job as an application developer and, I believe that my development skills are at least up to par with my peers who learned the trade before I did. And I know many people in the same boat.
Second, "computer science" isn't just programming. Discrete mathematics, algorithms and computational theory are what make computer science a science. I know people who research Kolmogorov complexity and numerical analysis who can hardly program, they are quite successful computer scientists.
rafajafar ยท 1 points ยท Posted at 01:34:38 on September 12, 2013 ยท (Permalink)
I never argued computer science was programming.
And I'm going to call you the exception, not the rule. Source: My own experience versus yours.
I congratulate you on your obviously natural talent, but I'm sorry I just don't see your case being a trend. Maybe it was how you were taught versus how most schools (including my own Alma Mater) teach. Tell you what, if you haven't, get to the place where you have to vet and interview a list of candidates (I may be wrong [sorry], but it sounds like you aren't there yet). I'll take someone with experience over someone with education, and catching up with someone with experience is only offset by personal talent. So, again, congratulations.
Now, the goal what I wrote was to make a set of generalizations which protect the prodigious students, like yourself, and also helps raise the number of developers in the work force (the lack of which is a huge industry problem). It was also supposed to be fun. Maybe I made a generalization you disagree with, but may I ask you why the drop out rate is so high for CS in the first year? Is this something we can fix?
I don't think you actually disagree with me. At least, I like to think you don't at this point. I think you recognize the same connection between theory following better from practical than the other way around. Or... maybe you don't, but I'd love to hear your thoughts on that topic.
Ha! you sure know how to flatter someone. You were right, I get to interview candidates for the first time in two weeks :)
Let me share my insight (source: teaching assistant for data structures and intro to OOP for 3 years). I think the important distinction we want to make is the difference between programmers and computer science degrees.
A degree in cs isn't some holier than thou place of enlightenment. But it IS NOT a technical degree, it is an academic degree that allows you the flexibility to go into academia, IT, Software Engineering, etc. A programmer can have a degree in MIS, physics, math, philosophy or anything really.
Do we need more developers? absolutely. But, there are better ways of getting them there then forcing them through an entire CS or CprE curriculum. I've seen too many people drop out when they think this is the only technical path they have. There is an intense need for system admins, web designers and infrastructure.
So yes, sometimes there is that layer of theory you have to work through. But that's the nature of the degree, teaching you the skills to be a generalist rather than understand certain technologies.
That being said, YES let's teach more kids about programming and technology! I'd love to see it in HS and even elementary school curricula. An earlier exposure to programming will guide those who don't like it away from it, and turn a whole lot of people on to it.
quick aside: Teaching people about programming at younger ages is awesome. It teaches people that they aren't a slave to the computer. It teaches them that they are in control of the computer. In control of moving (~1/3) the speed of light. They can unravel and control the mysterious aluminum box that is becoming a force in their lives. And if they control that, they can control anything in their lives.
rafajafar ยท 1 points ยท Posted at 03:16:46 on September 12, 2013 ยท (Permalink)
Do we need more developers? absolutely. But, there are better ways of getting them there then forcing them through an entire CS or CprE curriculum.
This is something I think we both can agree on.
My question still isn't answered, though, because while a computer scientist != programmer, being a programmer is DEFINITELY a requirement for being a computer scientist. Seeing that this is the part that trips people up pretty hard, maybe we should look into that.
may I ask you why the drop out rate is so high for CS in the first year? Is this something we can fix?
48% of students dropped out of the introductory CS classes at my alma matter last year.
Is it for lack of resources? There was a veritable army of qualified TA's, office hours almost every hour, study groups, online resources and learning communities galore. So at least at my alma matter, no. Although, this could easily exacerbate the problem if it were lacking.
Lack of teaching ability? We had one of our best and most experienced lecturers teaching that course. Not saying the lecturer was perfect, but the teaching was definitely at least north of average.
To me, this seems like a systemic problem. By the end of the semester, class attendance vs class enrollment was approximately 1 to 3. Your guess is as good as mine, but from my experience, a lot of students just end up hating the content. This is the case in a lot of math and science majors where the dropout rate is high.
An interesting thought is that maybe we are failing the RIGHT percentage of students. What if we failed the same percentage of students, but we had the same amount of FEMALES enroll as their male counterparts? 96% of mobile developers are male. Double the volume and double the output. I am of the opinion that we as a society don't encourage women to pursue technology in the same way as males, either subconsciously through TV and ads or explicitly by pushing them towards STEM extra-curriculars. If there's any sure bet I'm willing to make on a way to get more programmers, it's this one: do your best to build a culture that actively attracts and encourages female and minority programmers.
rafajafar ยท 0 points ยท Posted at 04:11:31 on September 12, 2013 ยท (Permalink)
You should be in politics. :-)
You never straight answer the question I'm actually interested in but somehow tie your answers to some agenda of your own. Also, by calling you out on this I think I run the risk of you putting it back on me for daring to ask you multiple questions which tie into my original thesis.
You also brush a strange air of confidence around you... one that I think few people catch on to as being only half as deserved as you paint it. That's a very admirable quality, and I mean that.
You will work your way up no matter where you are, but seriously, consider politics. It pays better and impacts more.
ENTJ? INTJ? You sound like you are involved in the larger system instead of your own personal goals. I'd guess ENTJ, but I could be wrong.
Hey, fake it til' you make it :) Haven't Meyer's Brigged in a long while, but definitely E.
But I really want to answer straight up: I think the CS graduation drop out rate is high because it is hard. Is there anything we can do to fix it? Probably not, due to the nature of STEM. But, there is a hopeful fix.
A typical day in a computer science class is comparable to getting a lecture on forest ecology and an art-history overview of furniture traditions in the Western world, and then being asked to chop down a tree and build a table from scratch.
Master's level compsci is comparible to getting a lecture on arboreal microscale anatomy and then being told to design an oak out of rainbows and farts. PhD level is more of the same, except you have to design a new tree that no-one's ever thought up before.
Haha, I had a database class that relied heavily on MYSQL. Spent 6 weeks talking about Tables, keys, and relationships. She then gave us a project. Design a website to incorporate the MYSQL database. Only about 4 of the 40 students have ever made a website from scratch before. That was a fun project. At least I learned a lot.... Note, she never lectured on website development and very little on using MYSQL.
flammable ยท 2 points ยท Posted at 11:21:01 on September 12, 2013 ยท (Permalink)
We had a similar project in our database class the second year. Make a simple website in HTLM, make some POST/GET forms and then pass it by php/postgresql and perform some database magic on it. They had explained nothing about neither html nor php but it was still fun to read the tutorials and implement the basics
ssmy ยท 1 points ยท Posted at 00:17:16 on September 12, 2013 ยท (Permalink)
My DB class was similar, except with Oracle. Fortunately, we could use other DBs if we desired.
I would have taken way too much code from the WordPress project.
[deleted] ยท 2 points ยท Posted at 22:09:54 on September 11, 2013 ยท (Permalink)
unless you're developing better technologies for major technology companies, 90% of the code you will ever need has already been written and is somewhere on the web.
When coding, it's usually not so hard to see what you're doing, what's wrong, and how (generally) you need to work to get from here to there. It's the getting there that's hard, and that part's satisfying in the end, like building a chair.
newmansan ยท 42 points ยท Posted at 15:27:37 on September 11, 2013 ยท (Permalink)
As a comp sci major, this was pretty much every class for the first two years.
[deleted] ยท 6 points ยท Posted at 19:45:12 on September 11, 2013 ยท (Permalink)
Ha, I ended up with enough credits for a minor in CS and was like, "Fuck it, I'm outta here."
newmansan ยท 7 points ยท Posted at 18:32:53 on September 11, 2013 ยท (Permalink)
Yes. The first year+ is designed to weed out people. Once they know you're dedicated/smart/whatever enough they take a bit of mercy on you. So much so that my GPA has jumped up tremendously since then.
Well also...you start to get enough skill to use in 'real-world' situations, which directly improves motivation to study more.
When I got an assignment in abstract algebra like "Find the number of associative binary operations on a 3 element set", because I studied programming I was like that girl from Jurassic Park "This...this is a simple recursion program. I know this!"
When I started uni someone had written "caffeine is your god now" on one of the whiteboards in the computing lab.
[deleted] ยท 14 points ยท Posted at 17:00:53 on September 11, 2013 ยท (Permalink)
My school had our class set up a Ubuntu virtualization to code in (so they didn't have to deal with mac vs windows junk) and the image file was downloaded via torrent.
My class killed off every non tech savvy person in one day...
Why... is that supposed to be hard? That's like 1 page of instructions with 3 links. Perform in order.
If you can't do that, you're not ready. Sorry, but you're not.
[deleted] ยท 1 points ยท Posted at 00:13:57 on September 12, 2013 ยท (Permalink)
It's a lot of room to fuck up. The version they had linked was 64x so 34x people were breaking things, people's torrents were being wrecked by their anti virus stuff and a shit ton of people were freaking out about having to use linux.
Didn't bother me, hell I helped my TA fix people's problems, but you'd be surprised how badly people manage to fuck up basic steps when it comes to computers, I mean if everyone could do it, then IT and call centers would have much less business than they do now
gsfgf ยท 3 points ยท Posted at 19:14:08 on September 11, 2013 ยท (Permalink)
While that's one way to deal with it, isn't it pretty easy to get a real posix environment for Windows these days?
A VM is a good solution to a variety of problems. Nobody can say "wahhh but professor where do I get that editor, mine doesn't look like that" or "wahhh, why is this part of my build not working" or any such nonsense.
Boot up the VM. Everything's in the right spot. Everything works the same. Nobody gets to whine.
[deleted] ยท 2 points ยท Posted at 00:16:33 on September 12, 2013 ยท (Permalink)
Bingo, everyone uses the same compiler with the same image on the same virtualization program.
Honestly you can use any compiler you want since they only want the code files to grade, but by using what my school provides it makes headaches a shit ton easier to get rid of for everyone.
flammable ยท 1 points ยท Posted at 11:24:04 on September 12, 2013 ยท (Permalink)
I downloaded cygwin, installed it in 15 mins and haven't had a problem in my compsci programs since. Except for that the nerds give me shit for coding in windows ;P
One of my first classes in University (Scotland) was "Introduction to the Information Profession" It involved weeks and weeks of bullshit like team building excercises and nonsense like that. At one point they grouped us up and had us making fucking bridges with newspaper, tape and pencils.
Anyway, in the last 2 weeks of the course the tutor basicaly went "Oh, and by the way. This is shellscript, confusing huh? Now go away and write a working board game. Have fun!"
We spent about 12 hours a day from then on in the lab, with one of the tutors there THE WHOLE TIME working with groups. Managed to JUST get a pass with a 2 player version of connect four (we started to make an ai second player, but fuck that in my first semester). They still do that class. ><
ParkerM ยท 8 points ยท Posted at 00:34:34 on September 12, 2013 ยท (Permalink)
Am I the only person whose CS classes have been pretty simple?
And honestly, what are you doing in a computer science course if you expect to learn from a person anyways?
n1c0_ds ยท 15 points ยท Posted at 18:03:45 on September 11, 2013 ยท (Permalink)
We want a specific piece of paper.
NotClever ยท 3 points ยท Posted at 20:50:57 on September 11, 2013 ยท (Permalink)
This is actually a really interesting point w.r.t. the OP comic. In high school and in some majors assignments are a method of assessing what you've already learned. In college, at least in technical majors, they're usually used as teaching tools. Sometimes they will have nothing to do with what you learned in class. That's something that took me too long to figure out.
Google is the best teacher for a Computer Science major. Most of my programming assignments thus-far involve 80% searching how to do the assignment, 15% using copy/paste for similar-but-not-quite batches of code, and 5% writing new code.
Yep. I have years of computer repair under my belt for shops, customers, businesses, etc and programming is pretty much exactly the same thing.
-have problems
-google problems
-fix problems
-have other problems
-google problems
-solutions don't work
-replicate them in a new environment
-be frustrated for two hours
-have revelation and fix your problem very easily
-repeat forever
Yeah I used to get paid for this, and now I'm paying to learn it.
Edit: Not to gripe at all, though. Solving problems like that is immensely satisfying for me which is why I love repair work, and consequently programming.
levirules ยท 6 points ยท Posted at 17:55:51 on September 11, 2013 ยท (Permalink)
Wow, I must be a sucker for having written every C++ assignment from scratch
and as long as you include a note along the lines of "some code based on tutorial examples at (long list of sites/pages)" it's all above board and fine.
yeah, when I get an assignment that's clearly a problem someone else has already solved, I think about it for a bit first so I feel like I'm learning and then google it to find the answer on stackoverflow.
rierevin ยท 5 points ยท Posted at 19:56:48 on September 11, 2013 ยท (Permalink)
I remember in one of my compsci classes that was focused on discrete mathematics and automata, I got a 36/100 on the final.
I was crushed for about 30 seconds until our teacher pulled out the curve and it turned out I that I got an A. Who designs a test like that? I remember people giving up in the middle of it and leaving. It was that bad.
It's actually pretty sad. The remainder of the whole "education" is about regurgitating facts, not utilizing both sides of your brain to create new logical solutions.
I love computer science.
tomjen ยท 15 points ยท Posted at 18:23:01 on September 11, 2013 ยท (Permalink)
There are plenty of places where all you do is regurgitate facts.
But CS is far from the only place where you don't.
You're off in the woods from my comment's intention, so allow me to elaborate thusly.
The difficulty with CS expressed in the cartoon is because in other classes, you can simply read and regurgitate the information without really comprehending it and skate by. Or, perhaps in classes that don't require it, you can simply create something on a whim that makes no logical or functional sense.
CS on even the most basic level requires a full-fledged commitment with brain activity to wrap your head around an entirely distinct world populated with a variety of abstract concepts.
Example: Recursion. That's a tricky concept to understand... It's even tricker to create. But that's CHAPTER 2 in one of the most widely accepted fundamental Computer Science books.
http://infolab.stanford.edu/~ullman/focs.html
I love other subjects, too, though. Don't get me wrong. Playing around with philosophy is fun.. But it's just that, play.
CS isn't alone, either. Every engineering course that relies on Physics has that same balance of working left and right brain... There's just, maybe, less abstraction working physically ;)
Anything you truly engage will require the same commitment to brain activity, is my point. And throwing Aho & Ullman at me doesn't prove a point. There are lots of folks "skating by" in CS, especially at the most basic level, which, arguably, does not require a full-fledged commitment of brain activity (CS is not taught with a real theory of computation course as the introductory one... not anywhere that I'm aware of).
They are trying to prepare you for your future career! They can't teach you ever single problem you will face during your programming career but they can teach you how to use Google! For the most part once you have the basics of programming the rest is just figuring out how to use those skills to figure our bigger problems. It can be annoying but it will benefit you in the future!
Edit: By "use Google" I more meant figure it out yourself. I understand not everyone had access to Google when they went through their courses. I am just speaking from my own experience the one teacher I had that was like this was the best teacher I had. All the other teachers just gave us the answers. If I honestly tried and still couldn't figure it out I would talk to him and he would help me but in a very basic try this direction manor. It was frustrating as hell but it helped me a lot!
I shudder to think what programming was like before google. Or having an API you can search. And use Ctrl + F on.
gwarsh41 ยท 7 points ยท Posted at 17:07:15 on September 11, 2013 ยท (Permalink)
Library, find the book, hope it isnt 5 years old.
ghjm ยท 6 points ยท Posted at 17:49:53 on September 11, 2013 ยท (Permalink)
It was, quite frankly, wonderful. The OS/language vendor would give you a bookshelf of manuals, which completely and correctly documented every function of the system. In the wildly unlikely event that you found an error or omission, they would at a minimum send you a complete new documentation set for free.
Psht. Who needs manuals when we have some guy's blog who links to another guy's blog whose entries now all return 404, and plenty of Stack Overflow questions who answer a different problem than the one asked?
Icovada ยท 2 points ยท Posted at 17:11:16 on September 11, 2013 ยท (Permalink)
I guess nearly every programmer built a giant set of personal libraries. I've seen that with one of my professors at the uni a few years back. He had this massive 'utilities.php' file that gave him access to a billion little functions that allowed him to program the way he wanted.
You had to rely on other people in the class sharing their solutions so you could see examples so you could think about how to engineer a different/better solution.
When I took these classes you couldn't just Google up how to do anything ever.
I had professors that started from day one with the apparent assumption that you already knew half of what the course description said they would be teaching you.
Empha ยท 2 points ยท Posted at 16:33:43 on September 11, 2013 ยท (Permalink)
Honestly what is with all these people complaining that nobody taught them things? That's what the assignments are for. The classes are just to give you some idea where to look, and to pretend to be like all the other silly school degrees, because those are the people who assume you can only learn things in class.
If you think your CS teacher's Powerpoint slides are gonna save you, you're gonna fail.
For the money I was paying I sure as shit should have been taught something.
If they're not going to provide me any service beyond telling me what book to read then what are the even good for?
In the end I learned far more on my own, from much better books that I found by myself, than I ever did from those shifty classes. (and this was a supposedly prestigious state university)
sirry ยท 5 points ยท Posted at 17:47:56 on September 11, 2013 ยท (Permalink)
If they're not going to provide me any service beyond telling me what book to read then what are the even good for?
You're mostly not paying to be taught. You're paying primarily to get certified in the eyes of potential employers, secondarily to be forced to learn how to figure out how to do things on your own and actually being taught specific things is a distant and mostly irrelevant third. The things you learn in the classes are never going to be useful at all anyway and no quality of teaching would make it worth your tuition.
Paying for University to have a professor teach you things about CS is kind of like buying a 747 for the free peanuts in that there are way cheaper ways to get peanuts and it's completely missing the point of buying a 747 which is to fly places
Paying for University to have a professor teach you things about CS is kind of like buying a 747 for the free peanuts in that there are way cheaper ways to get peanuts and it's completely missing the point of buying a 747 which is to fly places
I don't necessarily agree with everything you have to say but I'll be damned if that isn't a fantastic analogy.
[deleted] ยท 1 points ยท Posted at 17:38:50 on September 11, 2013 ยท (Permalink)
Its the nature of computer science guys: after doing OOP and basically level stuff for years, we tend to forget how foreign the concepts are to someone who has never seen it. Even something as simple as a keyboard shortcut can be mind-blowing to someone who didn't know it, but you do this same shortcut so regularly that you don't know what keys to use...its just muscle memory.
This is true. I know since I had previous experience I thought my first semester of school was a breeze, but a lot of other people struggled. Later on people just complained a lot about our one teacher because he always marked really hard and didn't spoon feed us the answers like the other teachers, which is more how I was taking this post. That being said as long as you went to class and showed you were actually trying the teacher would still help you, anyone who made it through (which was very few about 20 out of the 250 people we had first semester) say he was the best teacher we had.
ltethe ยท 1 points ยท Posted at 00:05:54 on September 12, 2013 ยท (Permalink)
This. I have no idea how things were programmed before Google/Stack overflow.
I tried unsuccessfully to learn to code for the past 16 years. It is only the rise of Google and the popularization of Python that I've suddenly made dramatic progress.
ozzieg ยท 3 points ยท Posted at 17:13:30 on September 11, 2013 ยท (Permalink)
My intro to programming class went like "This is a loop. This is condition. now google the rest"
Skizm ยท 3 points ยท Posted at 17:32:02 on September 11, 2013 ยท (Permalink)
I think google has more than 3 letters and doesn't contain a "d". You should fix that typo.
I took a second year class, called Compilers. The entire class was basically making a compiler from scratch. The class was 4 assignments, and each assignment the professor gave us more and more goals, and said go. In class we covered basically theory such as compiler design, grammers, etc.
It was hell, we had to come up with our own syntax, and the sheer amount of edge cases, and stuff like Recursion, etc. But we were given absolutely free reign of what language to use, how to build it, etc (the professor marked each assignment himself, and there was about 15 of us). Just as long as you implemented key features, that he would try out.
The first assignment was to design your languages grammar, build a parser and basically support and evaluate primitive operations.
I watched poor students spend ungodly amount of hours in the labs, trying to write their own CFG parsers. It completely baffled me, while me and my friend just used existing things such as Bison and sped along. In the end only me and my friend actually finished the first assignment (even then it didn't work perfectly, recursion!).
The amount of times i have watched students desperately struggle because "they are making their own everything", baffles me.
How far through did you go on that compiler? What language were you compiling? I couldn't imagine having enough time to go all the way from scanning/parsing through to optimizations on any full-featured language. Our course (senior level for us) had us starting on semantic analysis, followed by code gen and finally optimizations. The scanner/parser was provided, and assignments covering scanning and parsing were done in the lab so we'd be familiar with how to do it... but the time it would take to make a grammar for C would have been nuts.
Not far at all, only our fourth assignment really touched optimization (and barely). We were more or less given a list of common compiler optimization techniques and told to implement any 3 of them (all 3 of the ones i picked were removing dead branches, unused assignments, and just dead code).
Basically in the end i had the following (it was done using C++):
Tokenizer : (Written in C++), some library (i cannot remeber what it was), i gave it a CFG i wrote, and it tokenizes everything.
Bison : Consumes the tokens to generate a AST
My project: Works with the AST's defined by Bison and spits out asm code to a file, that is manually compiled by i think was LLVM.
We didn't make a grammar for C (that would make me cry), we were more or less free to design our own CFG from scratch for our own language (part of the assignment was designing something with minimal ambiguity). My toy language was something that was a bastardization of Python with C++ curly braces to denote scope.
Aside from the absolutely most basic operations and flow controls, basic objects, and added both Lists and dictionaries. My language and my compiler were terrible, slow, and buggy. But it was the first time in university where we were given free reign for how to do things. Unfortunately so many students fell into the trap of building everything themselves.
This is exactly why I got the fuck out of the computer science major. I got as far as I possibly could by switching to theater studies. I can feel my hairline going back to normal
Lol I was really into theater in high school, I worked on the lighting crew for most of my time there so when it was obvious that I couldn't program I went with what felt natural
This is actually why more High Schools should have more Computer Science/Engineering classes they give the students the tools then ask them to think logically(crazy I know) about how they would achieve a certain task. Sends kids that never use their heads into panic mode hell I still remember my first CS class in High school soon as the teacher said "Go get started" you could see the clearly difference in the class between those that could think for themselves and those that never do.
I loved my high school computer science classes. None were that difficult, yet I feel like I have the ability to figure out projects on my own. Granted, not at the level of a college course, but still kind of close
The only computer based class I had in secondary school was pretty shit. We got about as far as using spreadsheets and setting up a website. It is pretty Non-existent (or at least it was).
See, the problem there is attempting to learn programming & its surrounding concepts through a human.
It's better to learn at your own pace & through example by using the internet as a resource. It holds a lot more knowledge than any one human could (go figure), you get to choose your own assignments (the fun factor to keep you trying), and then you have a portfolio of all the original work you've done (you become one of a kind, basically).
It wouldn't surprise me if many (if not most) successful programmers learned through the internet (aka "taught themselves"). It's how I found excitement in problem solving.
So this is totally accurate. Does anyone here know why this happens? Why is it that computer science academics seem very uninterested in students actually learning how to do things?
I think you might want to find different CS academics to try and learn from. It is definitely not always the case.
TankErdin ยท 2 points ยท Posted at 22:56:09 on September 11, 2013 ยท (Permalink)
Junior CS major here. It gets easier because you stop sleeping so that you can make deadlines, and that lack of sleep drives you to learn and work harder and faster and stop caring about the small details that end up being the important ones anyway because your professor is a sadistic asshole that was never loved as a child and enjoys torturing anyone dumb enough to help fuel their salaries.
I wish I was a business major.
[deleted] ยท 2 points ยท Posted at 23:39:19 on September 11, 2013 ยท (Permalink)
wheres the joke
wtfcblog ยท 2 points ยท Posted at 00:24:23 on September 12, 2013 ยท (Permalink)
My expereince with my current coding classes.
Chapter 1:
example: "Here's how to code 1 + 1"
exercise: "Write a program that finds the inverse of an isosceles triangle.
This is actually why I like being a Computer Science major.
UseThe4s ยท 2 points ยท Posted at 15:56:17 on September 11, 2013 ยท (Permalink)
I was Computer Science and a good friend was Computer Networking. He thought we were taking practically the same major. After like a week or two of classes, he asks, "So how's that project going?"
"Not bad, about 100 lines of code right now, think I've almost figured it out. What are you working on?"
"...Hello World."
jedrekk ยท 9 points ยท Posted at 16:19:20 on September 11, 2013 ยท (Permalink)
Yeah, but how's your BGP routing?
mikelj ยท 5 points ยท Posted at 16:47:46 on September 11, 2013 ยท (Permalink)
I don't know of any programs that separate networking from computer science. Maybe a community college?
ghjm ยท 2 points ยท Posted at 17:57:48 on September 11, 2013 ยท (Permalink)
NCSU has one of the top computer science programs in the world, and offers a separate graduate track for computer networking. I'm not sure about undergraduate.
mikelj ยท 1 points ยท Posted at 18:38:36 on September 11, 2013 ยท (Permalink)
Yeah, most CS colleges at the schools I know are just Computer Science majors with Networking concentrations. They still would have had to taken basic programming.
ghjm ยท 3 points ยท Posted at 19:48:34 on September 11, 2013 ยท (Permalink)*
There's a genre of reddit discussion where we all express our horror that CS graduates haven't been given adequate vocational training as programmers, and certainly, there ought to be a practical programming track for people who want this training - but I've never been quite sure why the practical programming track should be conducted by theoretical computer science faculty, rather than by specialists in vocational training (as are commonly found at a community college).
The NCSU Master of Computer Networking does not necessarily require much coding. For example, you can focus on hardware design. So while I agree everyone in the field should get some exposure to programming as part of their undergraduate work, I'm not sure why an undergraduate program focused on computer networking should require more than an introduction to programming.
mikelj ยท 1 points ยท Posted at 20:49:05 on September 11, 2013 ยท (Permalink)
but I've never been quite sure why the practical programming track should be conducted by theoretical computer science faculty, rather than by specialists in vocational training (as are commonly found at a community college).
We're not necessarily talking about deploying commercial systems, but I feel like if you have a job in computer science you should understand a language like C, an OO language, and some kind of scripting (Python, perl, (ugh) bash). If I were looking at a resume from a CS BS and they didn't know how to parse some data with a script, understand inheritance or pointers, I'd seriously question what they did with four years of undergraduates.
If you're focused on hardware design in a Master's program, IMO you should be able to use and modify simulation infrastructure (e.g. ns3), deal with drivers and firmware, and be able to parse data using scripting.
[deleted] ยท 1 points ยท Posted at 21:15:31 on September 11, 2013 ยท (Permalink)
[deleted]
mikelj ยท 1 points ยท Posted at 21:29:55 on September 11, 2013 ยท (Permalink)
Perhaps they studied at the knee of Donald Knuth and learned everything there is to know about algorithmic theory, but in order to avoid wasting time on implementation details, they chose to write only in pseudocode.
You're talking about graduating a Mathematics major and not a CS major. Are you seriously suggesting that you should be able to graduate with a BS in CS without being able to program in a single language?
Certainly as a recruiter of programmers, you might wish that these students spent more time learning where to fund useful Perl modules on CPAN.
Yes, because I'm saying that CS grads should be able to program in at least a single language, I'm saying they should be plug-and-play Perl programmers.
ut to take this preference and say that they wasted their time is the height of arrogance.
I'm seriously curious what you expect a computer science major should know at the end of dozens of CS classes.
advanced practical knowledge in a particular field
Understanding how to manipulate pointers or objects or data sets is advanced practical knowledge?
ghjm ยท 1 points ยท Posted at 21:54:32 on September 11, 2013 ยท (Permalink)
Sorry, I wound up with multiple versions of this because of reddit downtime. The version you are replying to was more intemperate than I intended. Please see the revised version.
Yes, I am indeed saying that there is room in a computer science program for tracks other than programming, and that valuable work in theoretical computer science does not require extensive practical knowledge of programming.
At the end of dozens of CS classes, a computer science undergraduate should have been exposed to a broad survey of topics, within and outside the field of computer science, including programming. And I'm not saying there shouldn't be a practical programming track within a CS program. But there is more breadth than this to the field of computer science. If our undergraduate chooses CS electives other than programming, they should still get their degree.
ghjm ยท 1 points ยท Posted at 21:44:27 on September 11, 2013 ยท (Permalink)
These are all things you should expect for someone who is applying for a job as a programmer, but there are many jobs in the field of computer science which are not programming jobs, and there is no reason to imagine that a theoretical computer scientist in academia ought to be a particularly good candidate for a job as a programmer.
There are many perfectly reputable activities that your undergraduate could have been engaged with for four years, even if they did not learn your preferred mix of programming languages. Perhaps they studied at the knee of Donald Knuth and learned everything there is to know about algorithmic theory, but in order to avoid wasting time on implementation details, they chose to write only in pseudocode. Would you call this a valueless activity? Yet they might well come out of it with little or no idea how to find useful CPAN modules for their Perl script.
Research universities exist to further their academic mission, and only secondarily to provide vocational training. If you wish to hire people with practical knowledge in a particular field, that's what community colleges are for. And if you wish to hire people with advanced practical knowledge in a particular field, you should be looking for experienced workers, not new grads from academia.
[deleted] ยท 1 points ยท Posted at 17:54:30 on September 11, 2013 ยท (Permalink)
CS departments (or whatever its called at each place) are beginning to fracture a lot more into specialties. Many have networking, infomatics, etc. as separate majors these days.
mikelj ยท 1 points ยท Posted at 18:41:50 on September 11, 2013 ยท (Permalink)
That's interesting. I'm not saying you're wrong, but I've only ever seen Computer Science majors with Networking or Software Engineering concentrations. They still would have taken significant core programming classes before they start hitting networking specific electives.
[deleted] ยท 1 points ยท Posted at 22:14:48 on September 11, 2013 ยท (Permalink)
It's just all semantics whether you call it a concentration or say it's a separate major, they can still have a largely common core.
mikelj ยท 1 points ยท Posted at 01:52:47 on September 12, 2013 ยท (Permalink)
That's like saying Physics and Electrical Engineering are the same because they all have to take Humanities, Chemistry I and Physics I-III. My point was it was incredibly likely that a Computer Science major and a Networking concentration in CS would be taking the same programming classes.
[deleted] ยท 1 points ยท Posted at 02:00:50 on September 12, 2013 ยท (Permalink)
That's not what I'm saying at all. I'm saying that if they take Programming I-IV together and then branch out into different disciplines, it's just a department's arbitrary decision whether that constitutes a different major or not.
Larger schools. Big schools will have different programs for CE, CS, networking, information security, and all of that stuff
mikelj ยท 1 points ยท Posted at 18:39:56 on September 11, 2013 ยท (Permalink)
Well, CS and CE are generally different programs, even different schools. The information security and networking, at least from what I've seen, are either graduate specialties or are concentrations in CS. They still would have had to take the core CS classes which would be more than "hello world".
I still have bookmarks from when I had to create system calls for linux. Since we were already constrained for time, our teacher decided we weren't going to actually learn about system calls, but since he already had the assignment lined up, might as well hand it out. This was right before finals.
Yeah we have this thing now in the Netherlands called problem based learning. I think it's pretty good in conjunction with some lectures so you at least have some tools to use. But now they are trying to let students find their basic knowledge themselves as well. I guess it is possible, but really hard to do, since only a portion of people does well in the system.
A combination of lectures and projects is the best imo.
guxbot ยท 1 points ยท Posted at 19:53:45 on September 11, 2013 ยท (Permalink)
I had a Compilers class where the final assignment was to use a custom pseudo-language file as input to create a fully compilable ANSI-C program file that could be compiled and process another pseudo-language file information and it's output.
That year nobody could even create the compilable program file. It was worth 50% of the final grade.
[deleted] ยท 1 points ยท Posted at 20:53:45 on September 11, 2013 ยท (Permalink)
Bahaha, thanks for the memories that was true in the '80s, too!
loungin ยท 1 points ยท Posted at 22:30:10 on September 11, 2013 ยท (Permalink)
One of my classes on computational theory did really bad with Pumping Lemma. So bad that our professor just forgave the entire test and I am pretty sure nobody received an A that semester.
Im starting a computer science class at university in october. Do I have to be afraid?
jay_gaz ยท 3 points ยท Posted at 23:21:27 on September 11, 2013 ยท (Permalink)
No, you shouldn't. Just pay attention and don't fuck around on your phone/laptop.
And don't depend on Google a lot. Its going to be very tempting, but it'll only screw you over in the long run. Get the basic logics down pat by yoursef.
rafajafar ยท 1 points ยท Posted at 22:38:31 on September 11, 2013 ยท (Permalink)
If you can't figure it out, you can't hack it.
krispwnsu ยท 1 points ยท Posted at 22:47:44 on September 11, 2013 ยท (Permalink)
Student: Teacher? On the assignment, what does it mean by create an array using floats?
When I was in school you passed the test if you completed the program, your grade was then determined by the quality.
400 applied, 22 graduated.
emlgsh ยท 1 points ยท Posted at 23:03:06 on September 11, 2013 ยท (Permalink)
"Here's how to declare a variable. Here are variable types. Here are arrays. Here are pointers. Write a compiler comparable to GCC."
sxysteve ยท 1 points ยท Posted at 23:30:07 on September 11, 2013 ยท (Permalink)
I had a computer class in college. In this class everything we did was right on the computer and the teacher had no way of monitoring us and never really walked around.
All class everybody just found different games and websites to play on. When it came time for the test which was also on the computer we could just Google the questions and look up the book which was right on the desktop.
I got an A on everything and I know shit about computers.
ltethe ยท 1 points ยท Posted at 23:42:54 on September 11, 2013 ยท (Permalink)
This is how I feel taking high level Statics courses in my third semester of University... Our TA begins every quiz and test with "May God have mercy on your soul". I feel like the teacher assumes I've already passed this course and were just doing him a disservice showing up to class!
eagle23 ยท 1 points ยท Posted at 23:45:21 on September 11, 2013 ยท (Permalink)
"Implement this and this in this language that I created that there hardly is any documentation for and which is impossible to google because nobody uses it."
You can't teach problem solving like teaching algebra.
Edit: I'm a graduate TA for a CS 1000-level intro class taught in Python.
I can teach you the tools, I can show you the techniques, but you have to develop the skill to mentally create a roadmap to the solution. I am convinced that this only comes from personal struggle by spending time tossing the puzzle around in your brain.
My final programming assignement was... visual recognition of medicament tablets.
Obviously, visual recognition was never studied in computer lessons, and when I bugged the math teacher with any of the formula/methods I found on the internet, he had never heard of those.
I was pretty much on my own <_<
[deleted] ยท 1 points ยท Posted at 16:31:59 on September 11, 2013 ยท (Permalink)
Easier to read lectures and information from the internet then the shitty professor written slides or lecture materials.
I never paid attention in class - and just learned everything on my own. Math included. I did worse when I tried actually paying attention to the professor. It worked for me and many of my classmates too. I think self learning and teaching is absolutely critical in becoming a good programmer.
Realworld ยท -4 points ยท Posted at 18:39:32 on September 11, 2013 ยท (Permalink)
Meh. Went back for a CS degree on a 45 credit hour course load. Earned a 4.0 GPA and valedictorian in the process. Programming is fun if it suits you. If you don't enjoy it, you shouldn't be doing it.
A slight curve means shallow, a shallow learning curve means something is hard to learn. A learning curve plots time against amount learned. Learning a lot in a short time, means its easy to learn, its a steep curve. The more you know...
[deleted] ยท 2 points ยท Posted at 18:44:10 on September 11, 2013 ยท (Permalink)
A steep learning curve means you have to learn a lot quickly...
No it does not. It is a measure of learning over time. How much was learned in X time? You have it backwards and anyone that has taken intro to psychology will tell you the same? Maybe a little more time in the classroom would be good for you?
EDIT: LEARNING CURVE FOR THE NITWIT...The familiar expression "a steep learning curve" is intended to mean that the activity is difficult to learn, although a learning curve with a steep start actually represents rapid progress.
ghjm ยท 1 points ยท Posted at 17:54:05 on September 11, 2013 ยท (Permalink)
The OP was referring to a grading curve, not a learning curve.
E_lucas ยท 1 points ยท Posted at 17:56:48 on September 11, 2013 ยท (Permalink)
He means a curve in the marking sense, where the grades get changed to reflect the relation between classmates.
Also the steep curve thing you're talking about is wrong, the curve reflects the amount/difficulty of things you need to learn. Steeper means more stuff, more quickly.
Eatfudd ยท 109 points ยท Posted at 16:14:50 on September 11, 2013 ยท (Permalink)
I got a 40% on one of my EE exams. It got curved to a B.
[deleted] ยท 38 points ยท Posted at 17:05:33 on September 11, 2013 ยท (Permalink)*
[deleted]
[deleted] ยท -11 points ยท Posted at 20:05:14 on September 11, 2013 ยท (Permalink)
Good to hear you knew what you were talking about. I hope you have the condescending attitude of most STEM majors on reddit?
epsiblivion ยท 5 points ยท Posted at 20:22:52 on September 11, 2013 ยท (Permalink)
Your major means shit on the real world. Most people I meet don't have a job in their field of study including myself
[deleted] ยท 3 points ยท Posted at 00:30:59 on September 12, 2013 ยท (Permalink)
[deleted]
prolog ยท 6 points ยท Posted at 01:34:57 on September 12, 2013 ยท (Permalink)
If the test is hard enough you can get a 32 even if you understand the material perfectly.
thesprunk ยท 2 points ยท Posted at 02:04:17 on September 12, 2013 ยท (Permalink)
True.
But thats a different issue. That's a professor testing above par - be it to challenge the students or whatever - which is fine. But everyone should be aware that 100% in that instance is not a traditional 100%, but a demonstration of advanced understanding.
What I'm referring to mostly is maths and compsci tests. I've seen peers get 40% as a result of not understanding material (eg, lack of comprehension of what limits are, or continuity, or even simply struggling with concept of fraction:decimal conversion) and still manage to get a passing grade because of curves.
A large part of this is attributed to how the test is structured and graded. In an ideal world this wouldn't happen, and tests like you mentioned would be challenges that test "above" par to evaluate aptitude across a broad range (where 100% demonstrates an advanced understanding beyond the goal of the course), and then scored accordingly with that in mind. But this isn't an ideal world. Not all professors are "Good". Not all tests are fair. And more often than not your grade can be unduely influenced by just how hungover/stressed out/sleep deprived the GTA grading your paper is.
epsiblivion ยท 1 points ยท Posted at 01:00:27 on September 12, 2013 ยท (Permalink)
Well in my example, it was an extreme exception. The professor was known for his harsh testing and grading. More typical curves were around 60-80.
doodep ยท 12 points ยท Posted at 22:43:50 on September 11, 2013 ยท (Permalink)
Always reminds me of
http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html
Apparently, you either get it or you don't. If it doesn't make sense to you in the outset, it probably never will.
._.
I will say this anecdotally. I didn't get it at all that first, but I caught on very fast.
SteveIsAMonster ยท 7 points ยท Posted at 00:22:27 on September 12, 2013 ยท (Permalink)
At risk of sounding dumb, but I'm almost completely unexposed to programming, is the answer to the question in the article a=20 b=20 since the last line says a=b, thus negating that the first line says a=10?
poopnstuff ยท 6 points ยท Posted at 00:30:15 on September 12, 2013 ยท (Permalink)
Yes
SteveIsAMonster ยท 3 points ยท Posted at 00:33:30 on September 12, 2013 ยท (Permalink)
Woo! Now to figure out how to use macros in Excel... Really wish I had taken some kind of programming class in college.
Phoxxent ยท 1 points ยท Posted at 01:47:41 on September 12, 2013 ยท (Permalink)
Correction: learn to program your kid's TI-89
SteveIsAMonster ยท 2 points ยท Posted at 03:24:10 on September 12, 2013 ยท (Permalink)
Man, I'm not that old, sheesh. But I could learn to program mine...
morgendonner ยท 13 points ยท Posted at 23:29:53 on September 11, 2013 ยท (Permalink)
one of my undergrad classes for mechanical engineering had a final exam. One kid got a 2 on it, out of 100. That was a C. I kid you not.
PaplooTheEwok ยท 11 points ยท Posted at 00:03:08 on September 12, 2013 ยท (Permalink)
I don't understand the point of tests like this. Don't you end up NOT actually testing the relevant skills? Using vague terms: if the course is on level 5 material, but your tests have level 10 material which everyone fails, but you curve that, all those impossibly hard questions are missed opportunities to check if they learned anything. Instead, your test is essentially limited to the few reasonable questions that people could possibly get right. It skews the grades all over the place, too. Just dumb.
Drakenking ยท 3 points ยท Posted at 01:08:31 on September 12, 2013 ยท (Permalink)
You see, what matters to some professors is not actually teaching people, but keeping their average final grades high enough that the students give good reviews so they can keep their jobs.
morgendonner ยท 1 points ยท Posted at 01:15:22 on September 12, 2013 ยท (Permalink)
Agreed.. it was a second semester freshman class too. Granted, it weeded out a lot of kids that probably wouldn't have made it through another three years, but
My undergrad was filled with tests like that, another one that really sticks out is the very last senior exam I took. The class involved an insane amount of equations which were extremely case dependent, so the entire semester all of our quizzes and midterms were open book and open notes. Then for some reason we were only allowed 1 equation sheet for the final. I spent more time trying to cram equations and diagrams onto that one piece of paper than I spent actually studying. The test turned out to be completely ridiculous, and he ended up bumping everyone's grade up a full letter after there was a line curving throughout the engineering building, literally going down two halls and a flight of stairs, to get to his office.
neon_overload ยท 1 points ยท Posted at 01:18:05 on September 12, 2013 ยท (Permalink)
That sounds like a teaching fail to me.
morgendonner ยท 1 points ยท Posted at 01:21:00 on September 12, 2013 ยท (Permalink)
Yeah, it was a pretty awful class. One of the problems my school had was as a big research university a lot of the professors were geniuses in their fields but horrible, horrible teachers. Result was a lot of ridiculous curves and stories.
madlukelcm ยท 15 points ยท Posted at 19:15:59 on September 11, 2013 ยท (Permalink)
I bet the few kids in the class that just know everything and get a 96% get just pretty angry stares in these kinds of classes, dragging up that curve.
[deleted] ยท 11 points ยท Posted at 00:05:54 on September 12, 2013 ยท (Permalink)
They probably hate the underachievers right back, because they don't try and still get a B.
Crustycrustacean ยท 1 points ยท Posted at 01:38:31 on September 12, 2013 ยท (Permalink)
Most of these tests are so hard that this isn't an issue usually. Someone will do better obviously but more in the range of getting a 75 on test where the average is 40. Most of the tests I took in EE no one got over 80%. I remember some where no one got over 40%. I got a 17% one time and got a B.
[deleted] ยท -4 points ยท Posted at 20:27:13 on September 11, 2013 ยท (Permalink)
[deleted]
[deleted] ยท 7 points ยท Posted at 20:40:23 on September 11, 2013 ยท (Permalink)
should have paid attention and studied instead of getting mad at those who worked harder than you
[deleted] ยท 2 points ยท Posted at 02:03:57 on September 12, 2013 ยท (Permalink)
Or, in the case of my university, cheated.
No joke, the corporation that employed a good number of freshly graduated engineers from our school actually required that the school teach an ethics course as part of the required classes, due in part to the great number of engineers from school that graduated with high marks and no idea what they were doing.
slomotion ยท 3 points ยท Posted at 21:29:05 on September 11, 2013 ยท (Permalink)
For my upper-level physics classes, I'm pretty sure this was the norm.
MiatasAreForGirls ยท 3 points ยท Posted at 22:04:02 on September 11, 2013 ยท (Permalink)
I had a calc teacher who was like "this will be the hardest math class you will ever take, but I will curve it." I got an A with a 53% once.
edcba54321 ยท 11 points ยท Posted at 22:51:23 on September 11, 2013 ยท (Permalink)
I absolutely hate people who write bad math exams. Every time I write an exam I spend at least 30 hours making sure that every question tests a relevant skill, and is not exceedingly difficult. Calculus is such a simple subject that anyone bragging about how difficult they make it is just a dick. I honestly think that people who write these super-difficult exams are either just trying to show off how "smart" they are, or incredibly lazy.
_shift ยท 1 points ยท Posted at 02:25:19 on September 12, 2013 ยท (Permalink)
I agree, calc is less math and more remembering games with letters and numbers. No reason to make it difficult, the only difficult thing is remembering all the various integrals in calc II
bradygilg ยท 1 points ยท Posted at 08:41:26 on September 12, 2013 ยท (Permalink)
That's what all of math is... lol.
xazarus ยท 2 points ยท Posted at 00:28:21 on September 12, 2013 ยท (Permalink)
I once got a 16% on a Real Analysis midterm. We didn't get curved on individual tests in this class, but this was a fairly typical exam for me and I ended up with a B- in the class. It was mostly memorable for the fact that I knew a guy, a year behind me, who got 5 times my score.
r42 ยท 0 points ยท Posted at 17:54:26 on September 11, 2013 ยท (Permalink)
I don't understand this "curved" terminology. "There's a curve". Why not just say "40% is a B"?
dyt ยท 10 points ยท Posted at 18:16:49 on September 11, 2013 ยท (Permalink)
The grade is skewed so X% of kids get an A, X% of kids get a B, etc. This is so, if for example, one year a class has particularly hard assignments/tests, vs another year a class is less hard, both classes have the same chance at performing well in a course. For example my class, we had to design a mission to Mars' moon Phobos and back, and also design a plane that could launch the parts that we were sending to Phobos into orbit, all in one semester. Every other year is something like designing a UAV, a mission to the moon, etc. If they were graded like we were graded, we would have all failed. Hence, grade is skewed. Everyone says curved, but they mean skewed.
LastImmortalMan ยท 1 points ยท Posted at 01:37:33 on September 12, 2013 ยท (Permalink)
Well, technically it is still a curve. Like you said it is designed so that a certain percentage of people get A,B,C etc... but usually only >10% of the class gets As and 40-60% of the class gets Bs or Cs and 20-30% of the class Ds. If you plot this on a graph (a curve shaped like a bell) you would get a good statistical average of the breakdown in grades for any given class.
Grading on a curve specifically means that the curve is translated along the x-axis on the graph. This basically allows the professor to shift the overall average of the class while still maintaining some integrity to the data.
ZanThrax ยท 1 points ยท Posted at 18:02:32 on September 11, 2013 ยท (Permalink)
Because next year, or even on the next assignment, 40% could be a D.
r42 ยท 3 points ยท Posted at 18:08:04 on September 11, 2013 ยท (Permalink)
How does that lead to the terminology "there's a curve". To me that does not mean the same as "the grade boundaries change each year".
ZanThrax ยท 7 points ยท Posted at 18:10:30 on September 11, 2013 ยท (Permalink)
The grade boundaries aren't pre-set. Every test or assignment is sorted by percentage, and then grades are handed out per a standard distribution bell curve. http://en.wikipedia.org/wiki/Grading_on_a_curve
r42 ยท 2 points ยท Posted at 18:19:56 on September 11, 2013 ยท (Permalink)
In that case my courses were also graded on a curve. I don't think I ever heard that expression though.
NotClever ยท 1 points ยท Posted at 20:48:57 on September 11, 2013 ยท (Permalink)
Where are you from? It could easily be a cultural thing.
r42 ยท 1 points ยท Posted at 21:03:51 on September 11, 2013 ยท (Permalink)
UK. I think it's an American expression?
NotClever ยท 1 points ยท Posted at 22:15:23 on September 11, 2013 ยท (Permalink)
It's possible. I'm in the US and it is definitely a common thing to talk about around here. My viewpoint is a bit skewed now though because I'm in a professional program which is "hard curved" (i.e. the administration sets the median grade for the class regardless of how people do objectively, so your grade relative to the rest of the class is all that matters) so it's like all anyone talks about with grades.
Sartan4455 ยท 3 points ยท Posted at 18:20:08 on September 11, 2013 ยท (Permalink)*
It's because they shift and adjust all the scores to fit on a 'bell curve' for each assignment/test/project/whatever.
Where the majority of the people get the middle grade(whatever that is...usually between a c and b) and a few people get higher than that, and a few people get lower than that.
I took a nearly impossible physics for scientists and engineers class where the curve was standardized from anywhere from 10%(literally 10% was a B- on the test) to about 30%(B- again). Depending on the distribution - anything from 1 or 2% to 5-10% could be the difference between a B and B+. That was not a fun class especially since they'd release the results before the curve distribution. So I'd sit on my 25% and not know if it was an F or an A.
edit: Grading on a curve
r42 ยท 1 points ยท Posted at 20:45:22 on September 11, 2013 ยท (Permalink)
We didn't really think of our scores in terms of percentages because no one expected you to finish the exam - just do as many questions as you can. I think in my final year an A grade mapped to about 10% overall across all the exams.
Poobslag ยท 288 points ยท Posted at 14:56:24 on September 11, 2013 ยท (Permalink)
My first Object Oriented Programming class had, as its final programming assignment, an elevator simulation project. This was a freshman-level college course. As input, our program would accept a file with things like, "There are 8 elevators. At 7:40:01, a person wants to go from the 1st floor to the 5th floor... At 7:42:05, a person wants to go from the 4th floor from the 8th floor". As output, our program would return the time when each passenger reached their desired floor. Elevators had about about a dozen rules, things like:
The forums were filled with questions, edge cases, and ambiguities from day 1. "If two people approach an elevator 3 seconds apart, but they want to go in different directions... Do they both enter the same elevator?" "What if both people arrive at the exact same time?" "If a person presses the button on the 100th floor, which elevator would pick them up -- an elevator travelling up on the 2nd floor, or an elevator which is current stopped on the 99th floor, but will soon be travelling up?" "If one elevator departs the 2nd floor at 1:12:01, and another elevator departs at 1:12:02, is the first elevator considered 'closer'?"
The project made about 30% of our final grade. The class had a 70% fail rate that year, I'm fairly certain the only people who passed the course were those whose initial marks were high enough to survive tanking the project.
mostlyemptyspace ยท 197 points ยท Posted at 16:05:02 on September 11, 2013 ยท (Permalink)
I had many projects like this in my Comp Eng courses. My final project for digital design was to recreate the processor from the original NES, by hand (albeit a simplified version). It had to read a program from a ROM, process input from a rudimentary joystick, and display to a VGA monitor. It was insane. We were given a month to do it, and many of us slept in the lab.
The project was also full of ambiguity and soft requirements. My greatest lesson from this project (and the reason I passed it), was this: You cannot become paralyzed by ambiguity; you must make a decision and carry on.
While most of the students ran out of time and ended up with nothing because they couldn't answer every question up front, I ended up with a mostly working thing because when faced with multiple choices, I just picked one and didn't think too much about it. I wasn't worried about getting it exactly right, I was just worried about having something to show for it at all.
In the end I don't know what my actual grade was, but I was at the top of the curve, so I ended up with an A. I took that lesson with me through my career and I think it's still a part of me.
Poobslag ยท 80 points ยท Posted at 16:12:37 on September 11, 2013 ยท (Permalink)
I took my fair share of higher level programming courses, creating like ray tracing programs and operating systems for programming assignments, so I'm not really complaining about this assignment being difficult... Just that it was unfairly difficult for a freshman-level class, the requirements were ambiguous, and there was one right answer, which was decided by the automated courier which graded your assignment.
It feeds your program some input, and reads your program's output. If it doesn't match the expected output, you get a zero, and four more attempts. If you "picked one and didn't think too much about it", you would have gotten a 0, so while that's an applicable strategy for some assignments, it doesn't work for an automated grading system.
oldsecondhand ยท 16 points ยท Posted at 17:01:16 on September 11, 2013 ยท (Permalink)
And that's why I hated automated grading systems. The only good such system was designed by a mathematician and was used to teach prolog. There wasn't much ambiguity there.
JeefyPants ยท 33 points ยท Posted at 16:52:42 on September 11, 2013 ยท (Permalink)
It's more like "pick one and then realize later how badly it fucks everything up so re-do it all".
Poobslag ยท 18 points ยท Posted at 17:13:09 on September 11, 2013 ยท (Permalink)
If only the concept of Unit Testing was in widespread use back in 2000... So many hours spent running and rerunning different simulations, and checking the results manually!!
tnt8897 ยท 4 points ยท Posted at 00:45:28 on September 12, 2013 ยท (Permalink)
JUnit saved my ass so many times throughout college. It was never mentioned by the professors, but a friend of mine showed me it.
Zifnab25 ยท 8 points ยท Posted at 20:38:26 on September 11, 2013 ยท (Permalink)
Ah, see, I remember my tenure in undergrade comp sci. The strategy went more like "Pick one, then when it doesn't work go and beg the TA to make special exception."
I discovered, to my horror entirely too late, that your prospective grade rested more on the generosity of your TA than the actual quality of your programmed product. Long story short, I graduated with a bachelors in Mathematics several years later.
Poobslag ยท 1 points ยท Posted at 00:26:33 on September 12, 2013 ยท (Permalink)
oh WOW that's terrible!
djn808 ยท 1 points ยท Posted at 21:45:45 on September 12, 2013 ยท (Permalink)
I had to simulate an elevator in my second year, but the one outlined sounds slightly harder.
EatATaco ยท 42 points ยท Posted at 16:55:45 on September 11, 2013 ยท (Permalink)
I took a database programming class. The professor, on the first day of class, said that he expected the work for that class to take 40 hours, just like a real job would. We pointed out the absurdity of this due to the fact that we were all taking 4-6 more courses, and if they all had the same time requirement, there wouldn't be enough hours in a week to do all the work. He resisted, but relented, eventually saying he only expect 10 hours. Just demonstrating how clueless this professor was.
It turned out that that 10 hours was for a very experienced programmer, which almost none of us was. I did okay getting the work done, but I know most other people struggled. After the first exam, I was burned out. I got a b+ on the exam, but most other people flunked it. My grades on my homework were all about high Bs too. It was too much work on top of my already stressful class load and it wasn't a requirement for me, so I decided to drop it.
My friend who flunked pretty much every homework assignment and the test ended up getting a B+ in the class. There was a huge curve and I should have stuck it out and dropped another class. I was so pissed.
mockablekaty ยท 11 points ยท Posted at 17:19:20 on September 11, 2013 ยท (Permalink)
Dang, my database class took no more than 40 hours of work for the whole semester. Easiest class ever. Shows what a difference the prof makes.
Axytolc ยท 7 points ยท Posted at 21:15:36 on September 11, 2013 ยท (Permalink)
Or the type of database class it is. Database theory can get extremely intricate, to say nothing of the application.
Aleriya ยท 1 points ยท Posted at 00:43:18 on September 12, 2013 ยท (Permalink)
I'm debating going back to school for computer science, and this thread scares the crap outta me. At least there are a handful of stories of sane and reasonable professors . . .
nlke182 ยท 1 points ยท Posted at 03:20:38 on September 12, 2013 ยท (Permalink)
There are plenty of free courses online to see if you will enjoy it before you go back to school. Check out harvards CS50 class online.
needlzor ยท 2 points ยท Posted at 18:27:18 on September 11, 2013 ยท (Permalink)
If you don't mind me asking, what was it that you found difficult and/or fastidious in your DB class? I am about to TA two next year (intro to db and database programming) and I need to "balance" the existing content (created by my PhD supervisor) to add new things (mainly about query optimisation and DB internals) and my students don't give me any useful feedback.
EatATaco ยท 1 points ยท Posted at 18:48:15 on September 11, 2013 ยท (Permalink)
You are more than welcome to ask.
But it was so long ago for me (I graduated in 2000), it wasn't something particular interesting to me, a class I took for a short time and, quite frankly, most of my college days are a blur now so even if I had stuck it out, I probably would have forgotten it by now anyway. :)
Sorry I can't actually be of any help to you.
Chemical_Scum ยท 1 points ยท Posted at 21:28:32 on September 14, 2013 ยท (Permalink)
Dunno about an entire course structure, but this is a very useful resource I think your students should be familiar with. Excellent basic tutorial.
NotClever ยท 1 points ยท Posted at 20:37:18 on September 11, 2013 ยท (Permalink)
Aw dang, man. Was that a freshman year thing? I learned very quickly to love the curve in engineering. Had a slightly above B+ GPA and I rarely saw anything better than a 70 in terms of numerical grades. One class the prof set the curve for an A at 50 (most of the class got Cs, for which the curve was set at 30).
NotClever ยท 14 points ยท Posted at 20:33:10 on September 11, 2013 ยท (Permalink)
Ah yes, the key lesson of engineering: "Just try something and if it mostly works that's pretty good."
mostlyemptyspace ยท 5 points ยท Posted at 20:42:30 on September 11, 2013 ยท (Permalink)
Hahaha.. Well in software that's true. Of course you don't want to build a bridge that way, but I can't remember ever having solid requirements for a software project. You get the best requirements you can, build it, and periodically put it in front of your customer to see if you're on the right track. Hooray for Scrum.
Poobslag ยท 5 points ยท Posted at 00:34:47 on September 12, 2013 ยท (Permalink)
Ready, Fire! Aim... Aim... Aim...
Chemical_Scum ยท 1 points ยท Posted at 21:30:50 on September 14, 2013 ยท (Permalink)
Aim... Aim... Aim...Deploy.. Deploy... Deploy...NotClever ยท 2 points ยท Posted at 20:53:30 on September 11, 2013 ยท (Permalink)
Civil engineering is a field where you can't fuck up, yeah. In EE I mostly turned in hacked together crap. If it worked I couldn't usually explain why. If it didn't work, just play with some variables or add some components until it did!
djn808 ยท 1 points ยท Posted at 21:47:34 on September 12, 2013 ยท (Permalink)
I like to think about it as a doctor can fail and kill one man; a civil engineer may fail and slaughter ten thousand.
_shift ยท 2 points ยท Posted at 02:28:39 on September 12, 2013 ยท (Permalink)
I believe the phrase that is passed around in the corporate engineering world is "better is the enemy of good"
DerWingspan ยท 17 points ยท Posted at 16:49:42 on September 11, 2013 ยท (Permalink)
"The project was also full of ambiguity and soft requirements. My greatest lesson from this project (and the reason I passed it), was this: You cannot become paralyzed by ambiguity; you must make a decision and carry on."
The second Comp-Sci course of every school should start with this as the cover sheet of the syllabus.
huxrules ยท 19 points ยท Posted at 17:41:57 on September 11, 2013 ยท (Permalink)
Sure this is also how people get fired.
MagnusT ยท 2 points ยท Posted at 20:00:11 on September 11, 2013 ยท (Permalink)
Do you know anyone has ever gotten fired for this?
huxrules ยท 3 points ยท Posted at 20:52:16 on September 11, 2013 ยท (Permalink)
Yes. Not in the software world but in the energy sector contractors sometimes have to make due with a very vague scope of work. If you make too much noise about it then you are a troublemaker. If you just forge ahead and do what you think is right - and this turns out not to be the way they wanted it - you get in trouble. There is also the opposite where the scope is so descriptive that it also presents a problem.
[deleted] ยท 3 points ยท Posted at 21:18:45 on September 11, 2013 ยท (Permalink)*
I think he means outside of academia. If you were working on a team and programming traffic lights, presuming that there would never be a case where two pedestrians want to cross in conflicting directions and press the button at the same time, your code would be useless in the real world. If you are working in a small team for college, they want something a little beefier than skeleton code, lets call it muscle code. The idea is to demonstrate competency and that when put up to the task in the real world you would be able to develop a system. Not actually to develop the system.
Think of it this way. A creative writing class wouldn't expect you to turn in a novel and film students are expected to create a short, not a feature length presentation. A programming class does not want you to develop a ready to market traffic light (or elevator) control system.
otakucode ยท 1 points ยท Posted at 15:55:09 on September 18, 2013 ยท (Permalink)
It wouldn't be useless in the real world. In the real world, it would cause a problem and you'd get a support call. Then you fix it. People no longer expect anything to work. They have embraced the idea that everything, everywhere, is going to fuck up frequently.
And hey, sometimes you end up getting a whole new contract to do maintenance!
mostlyemptyspace ยท 3 points ยท Posted at 20:31:51 on September 11, 2013 ยท (Permalink)
Talk about preparation for the real world of software development..
Zifnab25 ยท 2 points ยท Posted at 20:42:02 on September 11, 2013 ยท (Permalink)
From my experience, clients that hand you a bunch of soft requirements and have no idea what they actually want can either (a) be assholes you just never want to deal with again or (b) serve as an endless font of future projects.
Once you get enough (b)s, you're basically set for your career. Unfortunately, I've meet very few comp sci professors that weren't in the (a) category.
Sleepy_One ยท 6 points ยท Posted at 16:55:56 on September 11, 2013 ยท (Permalink)
Talk about great life skill. There's always a balance, but sometimes you just need to make a decision. With experience comes being able to make better decisions faster.
levirules ยท 4 points ยท Posted at 17:43:41 on September 11, 2013 ยท (Permalink)
With programming, I'd be terrified of doing this. I'd be worried that a binary decision made early on in the project, that the rest of the project ends up being based on, would be wrong. And then the whole program would be wrong. And then I'd need to start over with 1/10th of the time required to actually start over and finish it. And oh god why did I pick CompSci
otakucode ยท 1 points ยท Posted at 16:00:21 on September 18, 2013 ยท (Permalink)
I think it's best to pick Comp Sci as your major around 10 years old. Then make learning computers your primary activity with schoolwork a definite second. Then you will be properly prepared to sail through and your classes will be fun!
cantCme ยท 1 points ยท Posted at 17:19:18 on September 11, 2013 ยท (Permalink)
Exactly. As long as you can explain why you made each decision, you'll probably be fine.
[deleted] ยท 1 points ยท Posted at 21:50:04 on September 11, 2013 ยท (Permalink)
The thing about ambiguities is that when it's graded by a computer looking for super specific outputs, you have to know exactly what's required.
[deleted] ยท 1 points ยท Posted at 00:19:08 on September 12, 2013 ยท (Permalink)
That is a really good life lesson. Make the best decisions you can and don't let the ambiguities stop you from completing your project.
mill1000 ยท 1 points ยท Posted at 00:38:39 on September 12, 2013 ยท (Permalink)
Your digital design class >>>>>>> (way greater than) my digital design class.
jonr ยท 35 points ยท Posted at 15:40:14 on September 11, 2013 ยท (Permalink)
Ah yes... good old ambiguity, ambiguity everywhere...
[deleted] ยท 61 points ยท Posted at 16:02:49 on September 11, 2013 ยท (Permalink)
The ambiguity is supposed to make you either a) design so that what is ambiguous can be parameterized and pick some sensible default values or b) ask the professor to resolve the ambiguity so that the requirements are more complete, much like a real-world project would require.
jonr ยท 79 points ยท Posted at 16:14:59 on September 11, 2013 ยท (Permalink)
Probably to prepare you for years of "The customer has no idea what he wants" projects... :)
fiah84 ยท 27 points ยท Posted at 16:54:55 on September 11, 2013 ยท (Permalink)
in which case, the professor should give ambiguous or contradicting answers as well
zuperxtreme ยท 29 points ยท Posted at 16:59:30 on September 11, 2013 ยท (Permalink)
And change their mind a bit into the project.
Bunnyhat ยท 25 points ยท Posted at 17:23:33 on September 11, 2013 ยท (Permalink)
Professor - "No, no, it's good...but can you make the project pop a little more. You know, take it to the next level."
auxiliary-character ยท 4 points ยท Posted at 17:30:25 on September 11, 2013 ยท (Permalink)
"Also, it needs more Comic Sans. People like familiarity like that."
Claptrap750 ยท 9 points ยท Posted at 17:20:42 on September 11, 2013 ยท (Permalink)
We had a project just like that. One of our tutors was our "customer" and he gave us an initial spec with problems we had to work out and discuss with them. And like you said, for some groups (inc ours) they changed some of the requirements half way through. It was taken into consideration while marking and wasn't too unfair though. It was a pretty good intro to what working for a real client was like.
NotClever ยท 5 points ยท Posted at 20:38:21 on September 11, 2013 ยท (Permalink)
And then give you a shitty grade even though you did everything they asked. Which, now that I think about it, actually does happen.
No_ThisIs_Patrick ยท 1 points ยท Posted at 22:10:14 on September 11, 2013 ยท (Permalink)
I have never had a problem in a programming class all of college until I met a certain professor. He does not like me. I don't know why. He doesn't respond to my emails, only gives me vague condescending answers for help when I approach him in person, and marks points off my tests that he wouldn't on other students. I glimpsed at another student's test after he handed them back. Our answers were not entirely correct, but they were nearly identical. The guy next to me got 4/5 points for the question. I got 0/5.
Failed that professors class twice, took the same class with a new professor and passed with flying colors. Some professors are just dicks.
NotClever ยท 1 points ยท Posted at 22:19:22 on September 11, 2013 ยท (Permalink)
This is true. Professors are people too. And some of them are very bitter and angry people. I once had a friend tell me they were thinking of leaving the corporate workforce and going for a phd to become a prof to get away from politics. I couldn't believe my ears.
graycode ยท 1 points ยท Posted at 23:55:59 on September 11, 2013 ยท (Permalink)
My best undergrad CS class did exactly this.
It was a software design course, and we worked on one program over the entire semester. Features of the program were assigned over the course of the semester, in chunks, and each successive assignment changed things (sometimes subtly, sometimes greatly) about previous assignments.
The important lesson this taught was that your designs need to be flexible, to allow for future specification changes. Those of us who made flexible designs were able to easily adapt our program to the changing requirements, whereas those who didn't had to spend a lot of time rewriting parts of theirs.
I assert that there's no greater skill in a software developer than being able to make flexible designs like that.
Unsurprisingly, this class was taught by one of the few professors with many years of real-world (aka outside of academia) programming experience. He understood the need for this skill better than other professors.
Calabast ยท 8 points ยท Posted at 17:00:50 on September 11, 2013 ยท (Permalink)
I'll take a customer who only knows what they want to accomplish over a customer who knows what they want any day of the week.
You get to skip right past the whole "create and deliver what the customer asked for, the customer says they don't want it, you refer to their initial request, THEN they tell you what they're trying to do" stage.
fiah84 ยท 3 points ยท Posted at 17:17:21 on September 11, 2013 ยท (Permalink)
Well, only if they sign away their right of an opinion as to how they want to accomplish it, otherwise the result might be good but you still have a sour client.
Calabast ยท 3 points ยท Posted at 17:39:43 on September 11, 2013 ยท (Permalink)
True, true. And I'm being overly dramatic, some customers actually know what they want, and thank you when you deliver it. And they are the best kind of all.
But you make a good point, I think it's pretty common for a college to not quite prepare a programmer for how important conversational ability and social skills are when you hit the real world. Bit of a rude surprise for probably a number of students who wanted a job playing with computers and not dealing with people.
jonr ยท 1 points ยท Posted at 18:11:41 on September 11, 2013 ยท (Permalink)
I'm sorry, I thought this was programming 101, not customer relationships... :)
vivvav ยท 1 points ยท Posted at 00:15:36 on September 12, 2013 ยท (Permalink)
Where? I'm not sure I see it.
Sheepshow ยท 1 points ยท Posted at 20:45:34 on September 11, 2013 ยท (Permalink)
There either may be or may not be ambiguity depending onhowyoulookatit
dabombnl ยท 9 points ยท Posted at 16:30:03 on September 11, 2013 ยท (Permalink)
That sounds doable with a standard discrete event model.
Poobslag ยท 49 points ยท Posted at 16:36:49 on September 11, 2013 ยท (Permalink)
Don't get me wrong, it's not like anybody was stuck on this assignment. The ~120 students each produced ~120 different models, all of which fit the description, and all of which generated output which was arguably correct. But, none passed the automated courier, and everyone failed the assignment
keithjr ยท 47 points ยท Posted at 17:11:14 on September 11, 2013 ยท (Permalink)
This honestly sounded like a good and interesting assignment up until I read "automated courier." Then I realized that nobody would actually look at the code holistically, and the grade would just be based on a single "ideal" implementation's response.
And now I remember why I don't want to go back to academia.
anothergaijin ยท 28 points ยท Posted at 17:54:01 on September 11, 2013 ยท (Permalink)
Same - I remember doing an early programming assignment which had a line like "this requires 8 objects to work successfully" which I took as a challenge, and managed to do it using 5. The TA marking the work refused to believe it was possible, and failed me despite fulfilling the requirements of the task.
CptAhmadKnackwurst ยท 7 points ยท Posted at 19:00:13 on September 11, 2013 ยท (Permalink)
That no code motherfucker...
[deleted] ยท -3 points ยท Posted at 20:40:31 on September 11, 2013 ยท (Permalink)
Well, just like real life. Nobody cares how pretty your code is if it's incorrect.
alexanderwales ยท 4 points ยท Posted at 20:57:35 on September 11, 2013 ยท (Permalink)
If you deliver a program to someone that accomplishes its goals according to function but not according to the internal model of the person who assigned the project, you still get the money. And more likely than not, you get paid even more to make alterations that weren't in the initial contract (you made a contract, right?). Source: I've worked on more than a few projects like that.
[deleted] ยท 1 points ยท Posted at 08:14:22 on September 12, 2013 ยท (Permalink)*
Sure, you often get paid even if the project is a complete failure in the end. But generally, one shouldn't teach a sloppy attitude towards specs in the school. The situation in question was when the project did not pass the specified function, and the complaint was nobody cared about its internals.
If the acceptance criteria was specified in the initial assignment, the projects that didn't match them have failed, period. The elegance is subjective (especially if TA has no time or ability to fully appreciate it), but black box functional test minimizes human factor.
dabombnl ยท 14 points ยท Posted at 16:47:59 on September 11, 2013 ยท (Permalink)
The grading method should only test what behavior is defined in the rules (like unit tests).
Anything else is a problem in the grading mechanism, not in the assignment.
ghjm ยท 4 points ยท Posted at 17:41:27 on September 11, 2013 ยท (Permalink)
And knowing that, you still get a zero. Which is why you complain to reddit about it, because that is all you can do.
ChickenOfDoom ยท 3 points ยท Posted at 23:52:41 on September 11, 2013 ยท (Permalink)
The problem with that kind of grading scheme with an assignment like that is that your grade depends on your ability to successfully parse instructions over your ability to program or design software. While the former is an important skill, it isn't a skill that these classes are attempting to teach and should not be a factor in grading.
This kind of fully automated, zero subjective interpretation setup is only acceptable if the instructions contain zero ambiguity. Every requirement should be utterly straightforward and have an illustrative example of a correct program input/output. It should be easy for a student to, after completing the project, accurately approximate what grade he will get, and know what improvements are necessary to get a higher grade. Anything less is a failure on the part of the teacher to accurately assess relevant skill and knowledge of the material.
dabombnl ยท 1 points ยท Posted at 00:22:22 on September 12, 2013 ยท (Permalink)
How is it "fully automated, zero subjective interpretation"? I am not saying all behavior must be defined. It won't be and it is not in this assignment. But the implementer (or grader in this example), should not count on undefined behavior to have a defined output. Any scenario that does not match any rules can have any outcome.
ChickenOfDoom ยท 1 points ยท Posted at 00:44:46 on September 12, 2013 ยท (Permalink)
I'm saying that maybe the rules for what the program is supposed to do were defined, but defined in a way that is difficult to understand and easy to misinterpret. In that case the problem would be with the assignment.
djn808 ยท 1 points ยท Posted at 21:51:03 on September 12, 2013 ยท (Permalink)
Over several years I've noticed in my university courses in the comp sci field that the original grading schemes rely on output comparisons and barely look at the code. This inevitably leads to poor average marks and the scheme has to be modified throughout the term, resulting in a strange manual curve.
Vacster ยท 1 points ยท Posted at 22:40:41 on September 11, 2013 ยท (Permalink)
I don't get it, so does the code has to be exactly as the teacher was expecting it to be?
Poobslag ยท 3 points ยท Posted at 00:24:04 on September 12, 2013 ยท (Permalink)
No, but they compare your output to the expected output. Given the nature of the problem, if you make a mistake and simulate one elevator incorrectly, it trickles down to everything else making all of your output incorrect. You have total freedom with your code, as long as it produces the correct output.
RogerMexico ยท 11 points ยท Posted at 18:33:34 on September 11, 2013 ยท (Permalink)
In my undergrad C++ class, I had to write a program that would detect "blobs" in images based on color and brightness then separate them out into individual files that could be plotted on command. The assignment was graded automatically and every incorrect pixel resulted in -10% and this was just one of 8 assignments in the class.
the_mighty_skeetadon ยท 7 points ยท Posted at 20:25:14 on September 11, 2013 ยท (Permalink)
Wow. That sounds fucking hard for an intro class!
rafajafar ยท 3 points ยท Posted at 01:03:55 on September 12, 2013 ยท (Permalink)
He said "undergrad", not intro. In a 400 level course, this should be normal.
RogerMexico ยท 3 points ยท Posted at 01:53:32 on September 12, 2013 ยท (Permalink)
It was actually titled "Computer Programming for Engineers - C++," which is a 200 level course (or 2000 at UF) but the "for Engineers" part should have been a warning sign. I was also taking 8 classes that semester so I had absolutely no life.
rafajafar ยท 2 points ยท Posted at 01:58:20 on September 12, 2013 ยท (Permalink)
Yeah that's B.S. Every CPE student I know had a problem with their SUPER HARD programming course that they wound up never using until post-masters.
RogerMexico ยท 1 points ยท Posted at 02:13:19 on September 12, 2013 ยท (Permalink)*
I didn't think my class was hard in terms of the material it covered but rather in shear volume of code and merciless grading.
I wrote a program with 1000 lines of code that worked flawlessly in bug testing on my end but still resulted in a 0% because the test code found a flaw that I didn't catch. I wasted a whole week in the library writing that code and didn't get a single point of partial credit.
I should note that the teacher was fired after that semester. I'm not sure why but the students absolutely hated her. Half the class dropped out and half of those remaining still failed. She is my second least favorite prof I've ever had and I've taken a shit ton of classes.
EDIT: Just so I don't look like such a braggart, I should mention that I got a C+ in that class.
djn808 ยท 2 points ยท Posted at 21:51:33 on September 12, 2013 ยท (Permalink)
every incorrect PIXEL? That's some bull sheet
gwarsh41 ยท 18 points ยท Posted at 17:05:25 on September 11, 2013 ยท (Permalink)
I taught Comp Science for a while. It was pretty standard practice for ALL of the Comp Science departments to have a few make or break projects each semester. For my department there were usually 3 main projects, intro, midterm and final. It was very hard to pass the class if you tanked any of the projects. Usually impossible to pass if you tanked the final.
Our graduation rate was something like 10%, but our placement rate was 95%. We had a reputation as "a school that will get you a job" and the state funded us based on placement, not graduation.
It was a fun time, but shattering dreams and breaking hearts is only fun for so long. Then it is just depressing.
Poobslag ยท 3 points ยท Posted at 17:12:18 on September 11, 2013 ยท (Permalink)
I understand, and this was the same practice at our school as well. OO was expected to carry a high drop rate. Still, this was an especially bad year.
gwarsh41 ยท 7 points ยท Posted at 17:13:50 on September 11, 2013 ยท (Permalink)
Yeah, I know those years. The years when you think, "Why am I at graduation, none of my students made it!"
mikelj ยท 4 points ยท Posted at 16:42:43 on September 11, 2013 ยท (Permalink)
Let me guess, Deitel and Deitel?
Poobslag ยท 1 points ยท Posted at 17:56:38 on September 11, 2013 ยท (Permalink)
I don't think so! Which college are you referring to? I can't remember the professor's name at the moment, although I remember the building name.
mikelj ยท 3 points ยท Posted at 18:37:10 on September 11, 2013 ยท (Permalink)
I just remember that from my first C++ book written by Deitel and Deitel. This guy. How I hated that elevator problem.
NotClever ยท 4 points ยท Posted at 20:42:47 on September 11, 2013 ยท (Permalink)
Could be one of those deals where the prof takes assignments from another textbook. We figured out in one of my more advanced courses that the prof was taking all of his homework problems from a textbook he hadn't assigned, and they became infinitely easier if you read the associated material in that book. It was weird.
thepotatoman23 ยท 4 points ยท Posted at 20:05:40 on September 11, 2013 ยท (Permalink)*
In real life for the small details it's probably better to do it wrong and wait for the client to come back and tell you instead of pestering him over every last small detail, especially if they are more business savvy and less design savvy like most clients out there. But they do usually know the business, and will give you a much better idea about the specifics once there's an actual product that he sees working.
You'll guess half of it right anyhow and probably fret over details that the client doesn't care about one way or the other while ignoring details the client does absolutely need right. That's why you're a programer and not a businessman, and why the businessman has a job too.
Unfortunately in school you only get turn in the project once and that's it.
alexanderwales ยท 3 points ยท Posted at 21:00:51 on September 11, 2013 ยท (Permalink)
I've had professors that split the difference by letting us run our program against the automatic grader at any time, or by giving us long sample inputs to test against.
Airazz ยท 5 points ยท Posted at 20:42:02 on September 11, 2013 ยท (Permalink)
I had a very similar task on my first week of programming class, except that the building was 10 floors and with three elevators.
The task was to write a program in C++ where a user would enter the number of the floor he's on and the direction of travel and then the closest elevator would come.
The program would output floors where each elevator was.
I don't think anyone made anything at all, as our programming experience was just a bit above zero and our lecturer would just leave after giving the task.
After about three months I simply left the country.
Poobslag ยท 1 points ยท Posted at 00:25:55 on September 12, 2013 ยท (Permalink)
Oh that's terrible! I'm sorry. I just retook the class and it wasn't so bad the second time, I had a different professor with different assignments...
[deleted] ยท 5 points ยท Posted at 17:35:04 on September 11, 2013 ยท (Permalink)
I think it's irresponsible of teachers to make up projects like this. In the real world this project would go on for a few months and there would be regular meetings to assess and clarify any edge cases that were discovered. I would have flat out refused to do the project stating that there isn't enough time to complete it safely and to attempt it anyway would be unethical.
Besides, computer science courses aren't supposed to teach you how to tackle something this difficult. They're supposed to expose you to a wide range of basic topics and concepts which you should learn more about later at your own pace if they interest you.
bluemellophone ยท 2 points ยท Posted at 02:30:42 on September 12, 2013 ยท (Permalink)
Elevator algorithms have been the focus of a few masters thesis.
AgentME ยท 2 points ยท Posted at 00:30:06 on September 12, 2013 ยท (Permalink)
Were there exact answers expected for everyone to give for the set of inputs the grader was giving? If not, then that assignment doesn't seem very bad, just choose how you want to deal with the ambiguities. If there were exact answers expected, that's a terrible assignment.
Poobslag ยท 1 points ยท Posted at 00:33:05 on September 12, 2013 ยท (Permalink)
Yes, there was one correct output file which you were graded against. Your grade basically had two parts -- 80% of it was how well your program behaved, and 20% was how good your code was (following proper OO practices, etc). The professor and his TAs would examine your code by hand for the second part -- but the automated courier system which graded your output had no leniency, it just checked line by line if your output was correct and gave you a grade.
audacious1 ยท 1 points ยท Posted at 01:11:44 on September 12, 2013 ยท (Permalink)
hmm... isn't the elevator problem kind of like the vending machine problem?
Morgneer ยท 1 points ยท Posted at 02:05:56 on October 16, 2013 ยท (Permalink)
I had this project at the beginning of the year, I had it working in under a week. Although I'm sure it helped that my school had intro to programming as a prerequisite for the AP class
Poobslag ยท 1 points ยท Posted at 12:22:25 on October 16, 2013 ยท (Permalink)
It was impossible to have this specific project "working" within a week, because the requirements changed after two weeks when some contradicting edge cases were pointed out on the listserv. Any project developed to spec before the second week would have been marked incorrect.
old_to_me_downvoter ยท 97 points ยท Posted at 16:22:59 on September 11, 2013 ยท (Permalink)
When I was in school: Need help? The answer was always "Read Stroustrup"
"But this is a Database course?"
"Stroustrup"
"What about OOP Patterns?"
"Java is a passing fad. Read Stroustrup"
"But Stroustrup isn't on the book list for this course?"
"Pssh, Of course not. Are you trying to tell me you don't already have it memorized?"
abenton ยท 53 points ยท Posted at 18:33:12 on September 11, 2013 ยท (Permalink)
That you will have to update on every computer daily and decline ask.com malware at the same interval.
macdoogles ยท 9 points ยท Posted at 20:09:37 on September 11, 2013 ยท (Permalink)*
Never had any such problems with openjdk on linux. Just saying.
Megabobster ยท 1 points ยท Posted at 01:24:49 on September 12, 2013 ยท (Permalink)
It's awesome but a lot slower for games :(
ImBoredToo ยท 1 points ยท Posted at 21:16:53 on September 11, 2013 ยท (Permalink)
I uninstalled it and the only time i had to reinstall it was to watch MSL land on Mars. I don't know what it's used for anymore but I've never been prompted to install it since.
dimmidice ยท 8 points ยท Posted at 21:46:05 on September 11, 2013 ยท (Permalink)
minecraft.
windupharlequin ยท 4 points ยท Posted at 22:12:12 on September 11, 2013 ยท (Permalink)
It's still ridiculously popular for server-side software. Really big in financial / online gambling / web-services. The JVM is an astounding piece of software; as fast as C, supporting multiple languages that cover a vast array of different programming paradigms, stupidly easy to deploy applications on.
The vast majority of its negative perception comes from the fact that Sun's (and now Oracle's) approach for distributing the "casual" user version just sucks.
darkstar3333 ยท 2 points ยท Posted at 23:03:44 on September 11, 2013 ยท (Permalink)
Not sure why your downvoted because in for core financial components, its largely java.
1RedOne ยท 1 points ยท Posted at 21:52:46 on September 11, 2013 ยท (Permalink)
Start packaging a deploying that stuff and not worry about daily updates?
Or you could use App-V to encapsulate Java in its own sandbox, and not worry about vulnerabilities.
ralarb ยท 7 points ยท Posted at 18:34:15 on September 11, 2013 ยท (Permalink)
For someone from a later era of CS, the hell did Stroustrup write that you were expected to read? I don't imagine you were expected to read the C++ standard.
old_to_me_downvoter ยท 6 points ยท Posted at 19:49:42 on September 11, 2013 ยท (Permalink)*
My confusion exactly, since it was never a required text and it was never at the school bookstore.
I was way too afraid to ask the faculty, because it was revered as Holy Scripture. I'm sure I would have been branded a heretic and burned at the stake.
I never saw any other students with it, but I did see it enshrined in a faculty member's office. IIRC it was either
http://www.stroustrup.com/3rd.html or http://www.stroustrup.com/dne.html
CrayonOfDoom ยท 5 points ยท Posted at 19:00:14 on September 11, 2013 ยท (Permalink)
I'd sure hope that you'd want to eventually, though.
BHSPitMonkey ยท 3 points ยท Posted at 23:43:31 on September 11, 2013 ยท (Permalink)
Uh, why?
[deleted] ยท 7 points ยท Posted at 17:48:01 on September 11, 2013 ยท (Permalink)
"Java is a passing fad."
Dear god. I use Java almost exclusively, with a bit of C++ and C.
old_to_me_downvoter ยท 10 points ยท Posted at 19:53:46 on September 11, 2013 ยท (Permalink)
This was the same program that had a tenured professor that refused to buy things over the Internet, because "no way was will it ever be secure enough for my sensitive information". (I mean he did have a point)
Instead he preferred to call over the phone and give his credit card details...yes..because nobody could ever be listening in on that, or the person on the other end be writing it down to save for later...or your delinquent grandkid is listening on the extension...
spif ยท 15 points ยท Posted at 20:17:45 on September 11, 2013 ยท (Permalink)
I'm sorry... I'm so sorry
[deleted] ยท 20 points ยท Posted at 18:24:51 on September 11, 2013 ยท (Permalink)
Some smart person, I don't know which one, said java was the new COBOL: It's heavy, it's slow, but businesses think you get things done.
[deleted] ยท 10 points ยท Posted at 18:36:47 on September 11, 2013 ยท (Permalink)
It's also an excellent way to learn Object-Oriented Programming. In actual practice, I prefer C++, but a lot of companies where I am love Java.
Also, I'd like to know which smart person said that.
[deleted] ยท 3 points ยท Posted at 18:55:10 on September 11, 2013 ยท (Permalink)
It might have been the creator of pascal. It was on some youtube video with a white background, that's all I know, sorry.
rafajafar ยท 0 points ยท Posted at 22:40:34 on September 11, 2013 ยท (Permalink)*
I'm going to propose a radical idea: OOP is best learned without touching a single line of code.
EDIT: Why do I think this? The same concepts were taught BETTER in some of my philosophy courses. It was spread across a few, though.
I, personally (which means squat), believe that OOP is simply nothing more than a course in the Philosophy of Information and Taxonomy.
windupharlequin ยท 3 points ยท Posted at 22:13:09 on September 11, 2013 ยท (Permalink)
Slow? Then you're doing it wrong. JVM is blazingly quick if you know what you're doing with it.
[deleted] ยท 2 points ยท Posted at 03:33:36 on September 12, 2013 ยท (Permalink)
It's objectively slower than C++ and (especially) C.
spif ยท 1 points ยท Posted at 20:18:25 on September 11, 2013 ยท (Permalink)
I say this all the time and I'm pretty smart.
wampastompah ยท 1 points ยท Posted at 18:21:56 on September 11, 2013 ยท (Permalink)
you poor soul. i'm so sorry.
may the lord python one day shine his light upon you, my child.
[deleted] ยท 14 points ยท Posted at 18:23:45 on September 11, 2013 ยท (Permalink)
Python can go eat a dick.
Nah, I kid. I've used Python. It's nice, but I still prefer my C and Java.
[deleted] ยท 2 points ยท Posted at 18:39:11 on September 11, 2013 ยท (Permalink)
If you want to obfuscate your code, Python isn't exactly a good choice. There are ways, but all of them are much more easily subverted than compiled languages.
Even so, Python is my dear love.
gsfgf ยท 11 points ยท Posted at 19:01:03 on September 11, 2013 ยท (Permalink)
Haha. You clearly haven't seen my code. It's obfuscated without any need for a compiler.
xzxzzx ยท 3 points ยท Posted at 19:41:24 on September 11, 2013 ยท (Permalink)
I used to spend effort making my code obfuscated, but then I just switched to
line noisePerl instead.spif ยท 9 points ยท Posted at 20:21:55 on September 11, 2013 ยท (Permalink)
There is a study that shows Perl is harder for people to learn than a language called Randomo. Randomo is a language that was created especially for the study. Randomo is so named because its syntax was randomly generated.
gfixler ยท 1 points ยท Posted at 20:15:31 on September 11, 2013 ยท (Permalink)
perline noise?
ralarb ยท 3 points ยท Posted at 20:10:08 on September 11, 2013 ยท (Permalink)
Yeah, but in python you can't write shit like:
Python does, however, have monkey patching and meta-classes which can be much more devious.
gfixler ยท 2 points ยท Posted at 20:16:35 on September 11, 2013 ยท (Permalink)
Not true. Here's one of my own:
gsfgf ยท 2 points ยท Posted at 20:41:40 on September 11, 2013 ยท (Permalink)
Yea, it's really the javascript part of my current project that's essentially illegible to me, even while I'm in the process of writing it. But I am parsing web pages with BeautifulSoup, and there ain't nothing beautiful about that section. For example:
ltethe ยท 1 points ยท Posted at 00:47:54 on September 12, 2013 ยท (Permalink)
I love Python, but I've only been in it for a bit, and I've run into the idea of obfuscation only tangentially. Is it only for copy protection we do these things? Or is there another reason?
[deleted] ยท 1 points ยท Posted at 02:10:45 on September 12, 2013 ยท (Permalink)
Yeah, copy protection. I was planning a game with online service, and didn't want people easily altering game clients, but there are other safeguards against that kind of thing.
Python simplifies a lot of stuff, though. I wish I could use it for all of my labs nowadays...
Phoxxent ยท 1 points ยท Posted at 02:02:15 on September 12, 2013 ยท (Permalink)
In my opinion, Python is now what BASIC was in the 70s. That is probably a horrible analogy though.
gfixler ยท 1 points ยท Posted at 23:43:58 on September 12, 2013 ยท (Permalink)
You're not alone in that thought.
greyscalehat ยท 1 points ยท Posted at 18:43:39 on September 11, 2013 ยท (Permalink)
I perfer scala over java fo sho.
[deleted] ยท 1 points ยท Posted at 20:14:10 on September 11, 2013 ยท (Permalink)*
[deleted]
greyscalehat ยท 1 points ยท Posted at 20:20:57 on September 11, 2013 ยท (Permalink)
Naw I like scala and you can use it in most places you can use java, with some notable exceptions.
draco1889 ยท 1 points ยท Posted at 18:34:38 on September 11, 2013 ยท (Permalink)
C and C++ are very valuable languages to know.
spif ยท 1 points ยท Posted at 20:18:51 on September 11, 2013 ยท (Permalink)
You might be half right.
jaideng123 ยท 1 points ยท Posted at 19:53:11 on September 11, 2013 ยท (Permalink)
Taking a course taught by him at my college is this x100
old_to_me_downvoter ยท 2 points ยท Posted at 19:58:04 on September 11, 2013 ยท (Permalink)*
Wow, that's gotta be rough.
At least you are getting it straight from the source, instead of from a bunch of gray-beard fanboi's
e: Choking on the smug-cloud that guy must generate must have been an experience. I'd be smug too if I was him though.
chewbacca77 ยท 179 points ยท Posted at 15:06:29 on September 11, 2013 ยท (Permalink)
Ridiculously accurate. Some of my computer science professors seemed to assume you had already taken the class.
akai_ferret ยท 93 points ยท Posted at 16:05:55 on September 11, 2013 ยท (Permalink)
You guys are bringing back memories I thought I'd buried.
My very first computer science class, had no prerequisites ... no indication of any prior knowledge needed, started on day 1 with the assumption that you innately knew how to program in C and C++ and how to navigate in and operate their UNIX environment.
I grew up in a small town where I aced what few computer and programing related classes we had. The most advanced programing language I had ever used was PASCAL.
I had never even heard of UNIX or Object Oriented programing.
[deleted] ยท 12 points ยท Posted at 19:27:57 on September 11, 2013 ยท (Permalink)*
First day of programming class -
Prof: Put "#include <cstdio>" at the top.
Me: What does that do?
Prof: Erm, we'll get to that later, just put it at the beginning of everything for now.
Later Prof - upload your program to the Unix mainframe to turn it in.
Me: Unix?
slugonamission ยท 2 points ยท Posted at 21:08:52 on September 11, 2013 ยท (Permalink)
My law dropped when I saw our university's intro to C course say:
"These will also work on MSVC, but you need to put #include <stdio.h> at the start".
djn808 ยท 1 points ยท Posted at 21:53:21 on September 12, 2013 ยท (Permalink)
"dont worry, just type public static void main and fohgetaboutit."
Icovada ยท 42 points ยท Posted at 17:10:17 on September 11, 2013 ยท (Permalink)
Mine was the opposite. The professor kept on rambling about bits and bytes and nibbles and kilobytes... even (gasp) terabytes.
The assignments she left were something like "A program in C that does something with and structs and pointers and did I mention you will have to build an array of structs and each struct will have in the last value the pointer to the next struct array"
What.
WanderingSpaceHopper ยท 22 points ยท Posted at 17:53:47 on September 11, 2013 ยท (Permalink)
You mean lists?
Icovada ยท 18 points ยท Posted at 17:55:31 on September 11, 2013 ยท (Permalink)
I don't know. This shows how much I have learned from that class.
And of course I didn't pass it.
Now I just python away. Import antigravity!
[deleted] ยท 12 points ยท Posted at 18:57:22 on September 11, 2013 ยท (Permalink)*
RelevantReferenced xkcdTheJiminator ยท 6 points ยท Posted at 19:06:55 on September 11, 2013 ยท (Permalink)
Is it relevant if he directly referenced it? Shouldn't it be 'Referenced XKCD'?
Icovada ยท 5 points ยท Posted at 19:06:00 on September 11, 2013 ยท (Permalink)
Another relevant xkcd
cartersdroid ยท 1 points ยท Posted at 19:09:08 on September 11, 2013 ยท (Permalink)
He was referencing that comic. It's not relevant, its the topic.
haydugjr ยท 3 points ยท Posted at 21:55:00 on September 11, 2013 ยท (Permalink)
The topic isn't relevant?
o24 ยท 1 points ยท Posted at 00:35:11 on September 12, 2013 ยท (Permalink)
The cake is also a lie.
WanderingSpaceHopper ยท 1 points ยท Posted at 18:26:37 on September 11, 2013 ยท (Permalink)
yep those are lists. Spent like 2 years in highschool fucking around with lists.
abenton ยท 1 points ยท Posted at 18:32:15 on September 11, 2013 ยท (Permalink)
That will be easy then! Start>programs>ms word
djn808 ยท 1 points ยท Posted at 21:52:46 on September 12, 2013 ยท (Permalink)
Oh god in year 2 I had to use a weird triple referenced array of structs of array of structs because he made us use his skeleton code that no one could understand.
thaen ยท 7 points ยท Posted at 17:23:24 on September 11, 2013 ยท (Permalink)
The expectations that you understood the toolchain were insane. My first exposure to programming was all in sandboxes specifically designed to be self-contained -- BASIC, FutureBASIC, simple Java IDE that compiled and executed code for you. The whole idea of an IDE, what a "compiler" was actually doing, the idea that there were different operating systems in the first place, was totally foreign.
metamorphosis ยท 2 points ยท Posted at 00:57:52 on September 12, 2013 ยท (Permalink)
Same here, I came from FORTRAN background although I heard od Java , and C++ , etc but it was only it. I just heard of them.. However, my Comp Sci classes actually started with OO concepts (OO programming class), and also I had no issues with C (system programming class), and Opertign Systems?? (UNIX and shell). Basically, each class complemented the other so that you are not stuck in one class with some task without understanding the concpets.
In second year we started with what you are saying.
When I think of it my first year of comp sci was pretty fair in that respect. There were some hard assignments though.
Nebu ยท 2 points ยท Posted at 02:59:48 on September 12, 2013 ยท (Permalink)
In my second year of computer science (meaning this is a totally different situation from your anecdote where it was your first class), the teacher said the assignments have to be done in Python, and even if you don't know Python yet, you should be able to use google and teach yourself Python.
He wasn't wrong.
[deleted] ยท 0 points ยท Posted at 17:11:30 on September 11, 2013 ยท (Permalink)
Same here... This pretty much sums up my first go-around with Computer Science.
CJSchmidt ยท 35 points ยท Posted at 16:51:21 on September 11, 2013 ยท (Permalink)*
It goes both ways too. First real project of my Programming 101 class and the prof gave us a simple assignment without any real direction or guidelines. I had a little experience with programming, so I used the book as a reference and wrote it using a clever little recursive function that got the job done in 12 lines of code instead of the 80+ he was expecting. Professor gave me a zero because "we aren't covering those until next week". Went straight from there to the registrar to drop the class.
Lessons learned: Learn about department professors beforehand and don't take CompSci classes at a college that can't even figure out how to set up student email accounts.
ferrarisnowday ยท 17 points ยท Posted at 17:44:15 on September 11, 2013 ยท (Permalink)
Woah, I think I could have not only dropped the class but let the department head know about the reason why.
CJSchmidt ยท 17 points ยท Posted at 17:57:51 on September 11, 2013 ยท (Permalink)
The professor was the department head. Taught 101 so he could weed out the students who couldn't cut it or that he didn't like. The tiny percent of people who made it through the program were about as bland and "inside the box" as you can imagine. One of my better snap emotional decisions.
McFeely_Smackup ยท 18 points ยท Posted at 18:48:11 on September 11, 2013 ยท (Permalink)
I took calculus from the math department head. The guy was Indian and had never taught in the US, but was hired specifically to be the deparmtnet administrator, but then ended up an instructor short so he stepped up.
The guy spoke english very, very poorly, and used a very different scientific notation than the traditional Greek letters that I thought was universal. He pronounced "theta" as "data", and "derivative" like "dative", and a hundred other ways that made it impossible to learn from him.
After two weeks the class went from 300 persons full to maybe a couple dozen. The grading curve was so bad that I got a 15 out of 100 on one test and got a B grade.
there's no punchline to this story, the guy was just a shitty professor.
[deleted] ยท 4 points ยท Posted at 19:58:13 on September 11, 2013 ยท (Permalink)
[deleted]
CJSchmidt ยท 0 points ยท Posted at 22:17:13 on September 11, 2013 ยท (Permalink)
Had there been any parameters or guidance provided, I would have understood. If he'd said that and given me a chance to change it I would have. While I would never have succeeded in that particular program, it's still a shame because I fear I'll never be more than one of those sloppy PHP coders everyone always (rightfully) complains about. Good teachers make all the difference.
1RedOne ยท 3 points ยท Posted at 21:56:10 on September 11, 2013 ยท (Permalink)
Once you learn to think recursively, doing things manually with code is terrible.
That class sounds awful. I can't comprehend penalizing somebody for thinking creatively.
anothergaijin ยท 1 points ยท Posted at 17:55:19 on September 11, 2013 ยท (Permalink)
Hah, just typed the same thing above. Quit after first semester and never looked back - doing much better than my friends who completed university and things are just up and up from here.
[deleted] ยท 6 points ยท Posted at 16:20:22 on September 11, 2013 ยท (Permalink)
Mine just seemed to want you to review their book they were working on for them :(
[deleted] ยท 4 points ยท Posted at 16:15:42 on September 11, 2013 ยท (Permalink)
To be honest something like 80% of my peers already knew how to code on multiple languages etc. when they started studying comp. sci. I had no clue or hobby background, so especially the first year felt like "here's an assigment, complete it and after you turn it in we'll tell you how to do it."
To be fair my school does put a lot of effort into these voluntary "group learning" sessions where you can work on problems together and get help from some of the older students. But honestly how often are you gonna go when there's the possibility of just turning it in online?
The2ndPoptart ยท 4 points ยท Posted at 16:39:34 on September 11, 2013 ยท (Permalink)
My first computer science class, just a basic 120 intro to C, our first day we werent even given a syllabus because "she hadnt finished it" but we left with three assignments due for the next class day and no idea how to turn them in.
knudow ยท 3 points ยท Posted at 17:14:12 on September 11, 2013 ยท (Permalink)
My teachers were always like: "Oh, but you already know this from [insert name of another class]" and you wonder: "Wait, did we really learned that in said class and I'm just stupid and forgot all about it??"
akai_ferret ยท 10 points ยท Posted at 17:40:52 on September 11, 2013 ยท (Permalink)
That or:
"Wait, that class isn't marked as a prerequsite to this one!
My advisor and I had it planned for next quarter!"
jlobes ยท 13 points ยท Posted at 21:50:03 on September 11, 2013 ยท (Permalink)
My favorite is "You should know X from YYY 101"
"Uhh, no one even mentioned X in YYY 101."
"Who taught your section?"
"Professor Z."
"Oh yes, Professor Z doesn't teach X in YYY 101."
CJSchmidt ยท 7 points ยท Posted at 22:19:50 on September 11, 2013 ยท (Permalink)
Then he continues on without missing a beat or explaining X. You're just out of luck.
jlobes ยท 2 points ยท Posted at 00:27:34 on September 12, 2013 ยท (Permalink)
Lol, actually, this is sort of a funny circumstance. My first run through college was as a CS major. I dropped out because of situations exactly like these. Five years later I've been working as a web developer and I've decided to go back to school to learn design.
This time, however, I actually know all the shit the professors are talking about. My Intro to Web Design teacher didn't teach PHP. My Advanced Web Design professor assumes the whole class can work in PHP. In reality, I'm not even sure the majority of these kids know what PHP is. On the other hand, I've been writing Joomla plugins at work for the last year.
It's gonna be a fun semester.
DevestatingAttack ยท 1 points ยท Posted at 05:30:08 on September 12, 2013 ยท (Permalink)
Not even the developers of PHP know PHP. You have nothing to worry about.
gfixler ยท 1 points ยท Posted at 23:47:53 on September 12, 2013 ยท (Permalink)
Some of the herd gets tackled by lions. But... what can you do?
postExistence ยท 2 points ยท Posted at 18:28:07 on September 11, 2013 ยท (Permalink)
Shells, emacs, and telnet. We were not told how to use these in class. We were simply expected to do it. I was in such a panic mode that I doubt I retained anything in that course. But at least I got a B+. w00t
gfixler ยท 1 points ยท Posted at 23:48:50 on September 12, 2013 ยท (Permalink)
Okay, I brought some seashells, some big macs, and a hair net, like you said. Now what do I do with them?
MrCheeze ยท 2 points ยท Posted at 19:09:08 on September 11, 2013 ยท (Permalink)
The problem seems to be overestimating how much was covered in the class before.
[deleted] ยท 1 points ยท Posted at 17:57:14 on September 11, 2013 ยท (Permalink)
I know right?
We've just come back for the sheer joy of it all
mtx ยท 1 points ยท Posted at 19:20:48 on September 11, 2013 ยท (Permalink)
My 2nd comp sci assignment was allowing the user to draw a set of points and then your program would generate a fractal from that. Seems trivial now but this was in the late '80s when, generally, people didn't know what fractals were. I couldn't even understand recursion at the time.
[deleted] ยท 141 points ยท Posted at 17:14:43 on September 11, 2013 ยท (Permalink)*
[removed]
[deleted] ยท 34 points ยท Posted at 19:00:50 on September 11, 2013 ยท (Permalink)
That's... pretty accurate, actually.
quatch ยท 2 points ยท Posted at 21:21:15 on September 11, 2013 ยท (Permalink)
possibly the most accurate I've ever heard.
rafajafar ยท 16 points ยท Posted at 23:01:10 on September 11, 2013 ยท (Permalink)
The problem is the disconnect between the practical (programming) and the theoretical (philosophy, mathematics, computer science).
They assume that the practical follows from the theory, but it's really the other way around.
The most successful computer science students already know how to program (well maybe not successful grade-wise, though definitely career-wise). Why is that REALLY? Is it because they understand the theory better and can translate it to the practical? NO! It's because they can immediately learn how to program BETTER by learning the theory.
You can't teach someone what an algorithm is unless you've taught them how to think algorithmically to accomplish a task. People run on autopilot most of their lives. Unless you can push them into being conscious about the details of an operation, you're going to have a bad time.
I'll never wind up teaching, probably, but if I did, my first assignment for a 101 programming course would be to program in real life before they touch a text editor. Something like, "Bake me cookies".
Requirements: Sugar Cookies or Chocolate Chip. No nuts. Must be delivered in a Tupperware (or other brand of similar construction) container. Included must be a copy of the instructions to produce the cookies beginning from "Begin process of making cookies," to, "Close Tupperware container." Only use the basic knowledge that a person can identify objects and knows how their body works.
Next, I'd read everyone's process instructions to the class as they eat freaking delicious cookies. Maybe I'll bring some milk. As they eat, I read and as I read, I write, in pseudo-code, the instructions on the white board. After each instruction, I will go through each step and quiz the person who made them whether or not this "process as you wrote it will finish."
For example, someone says, "Open fridge." How do you open a fridge? "Oh right, Extend arm, open hand, grasp handle, pull arm." ... "Isn't your hand still full with the handle?" ... "Ah and release hand."
It's tedious, so the cookies make it tolerable, but at the end, the students will know that programming is not magic. Programming is a meticulous, detail oriented task. And you know what, they'll know how to program, even if they don't know a language yet. And for the rest of the year, I'd have the concept of baking cookies to fall back on when they have a problem. "How do I print 1 to 10 and then print it again in reverse?" ... "Remember when I was writing how to bake cookies on the board, and I said ..."
blargh2947 ยท 9 points ยท Posted at 00:18:51 on September 12, 2013 ยท (Permalink)
I think my first CS assignment was to write a series of steps that would get you out the door of a room, while not knowing where you started, or where the door was.
colonel_chapstick ยท 1 points ยท Posted at 04:55:26 on September 12, 2013 ยท (Permalink)
So how'd you do it?
[deleted] ยท 2 points ยท Posted at 15:23:01 on September 12, 2013 ยท (Permalink)*
[removed]
blargh2947 ยท 1 points ยท Posted at 21:10:10 on September 12, 2013 ยท (Permalink)
Yeah something like that, it was over 15 years ago lol
asiatownusa ยท 3 points ยท Posted at 01:15:03 on September 12, 2013 ยท (Permalink)
I respectfully disagree with this SO HARD.
First, I did not learn how to program until my sophomore year in college. I have a pretty solid job as an application developer and, I believe that my development skills are at least up to par with my peers who learned the trade before I did. And I know many people in the same boat.
Second, "computer science" isn't just programming. Discrete mathematics, algorithms and computational theory are what make computer science a science. I know people who research Kolmogorov complexity and numerical analysis who can hardly program, they are quite successful computer scientists.
rafajafar ยท 1 points ยท Posted at 01:34:38 on September 12, 2013 ยท (Permalink)
I never argued computer science was programming.
And I'm going to call you the exception, not the rule. Source: My own experience versus yours.
I congratulate you on your obviously natural talent, but I'm sorry I just don't see your case being a trend. Maybe it was how you were taught versus how most schools (including my own Alma Mater) teach. Tell you what, if you haven't, get to the place where you have to vet and interview a list of candidates (I may be wrong [sorry], but it sounds like you aren't there yet). I'll take someone with experience over someone with education, and catching up with someone with experience is only offset by personal talent. So, again, congratulations.
Now, the goal what I wrote was to make a set of generalizations which protect the prodigious students, like yourself, and also helps raise the number of developers in the work force (the lack of which is a huge industry problem). It was also supposed to be fun. Maybe I made a generalization you disagree with, but may I ask you why the drop out rate is so high for CS in the first year? Is this something we can fix?
I don't think you actually disagree with me. At least, I like to think you don't at this point. I think you recognize the same connection between theory following better from practical than the other way around. Or... maybe you don't, but I'd love to hear your thoughts on that topic.
asiatownusa ยท 2 points ยท Posted at 03:12:16 on September 12, 2013 ยท (Permalink)*
Ha! you sure know how to flatter someone. You were right, I get to interview candidates for the first time in two weeks :)
Let me share my insight (source: teaching assistant for data structures and intro to OOP for 3 years). I think the important distinction we want to make is the difference between programmers and computer science degrees.
A degree in cs isn't some holier than thou place of enlightenment. But it IS NOT a technical degree, it is an academic degree that allows you the flexibility to go into academia, IT, Software Engineering, etc. A programmer can have a degree in MIS, physics, math, philosophy or anything really.
Do we need more developers? absolutely. But, there are better ways of getting them there then forcing them through an entire CS or CprE curriculum. I've seen too many people drop out when they think this is the only technical path they have. There is an intense need for system admins, web designers and infrastructure.
So yes, sometimes there is that layer of theory you have to work through. But that's the nature of the degree, teaching you the skills to be a generalist rather than understand certain technologies.
That being said, YES let's teach more kids about programming and technology! I'd love to see it in HS and even elementary school curricula. An earlier exposure to programming will guide those who don't like it away from it, and turn a whole lot of people on to it.
quick aside: Teaching people about programming at younger ages is awesome. It teaches people that they aren't a slave to the computer. It teaches them that they are in control of the computer. In control of moving (~1/3) the speed of light. They can unravel and control the mysterious aluminum box that is becoming a force in their lives. And if they control that, they can control anything in their lives.
rafajafar ยท 1 points ยท Posted at 03:16:46 on September 12, 2013 ยท (Permalink)
This is something I think we both can agree on.
My question still isn't answered, though, because while a computer scientist != programmer, being a programmer is DEFINITELY a requirement for being a computer scientist. Seeing that this is the part that trips people up pretty hard, maybe we should look into that.
asiatownusa ยท 1 points ยท Posted at 03:49:41 on September 12, 2013 ยท (Permalink)*
48% of students dropped out of the introductory CS classes at my alma matter last year.
Is it for lack of resources? There was a veritable army of qualified TA's, office hours almost every hour, study groups, online resources and learning communities galore. So at least at my alma matter, no. Although, this could easily exacerbate the problem if it were lacking.
Lack of teaching ability? We had one of our best and most experienced lecturers teaching that course. Not saying the lecturer was perfect, but the teaching was definitely at least north of average.
To me, this seems like a systemic problem. By the end of the semester, class attendance vs class enrollment was approximately 1 to 3. Your guess is as good as mine, but from my experience, a lot of students just end up hating the content. This is the case in a lot of math and science majors where the dropout rate is high.
An interesting thought is that maybe we are failing the RIGHT percentage of students. What if we failed the same percentage of students, but we had the same amount of FEMALES enroll as their male counterparts? 96% of mobile developers are male. Double the volume and double the output. I am of the opinion that we as a society don't encourage women to pursue technology in the same way as males, either subconsciously through TV and ads or explicitly by pushing them towards STEM extra-curriculars. If there's any sure bet I'm willing to make on a way to get more programmers, it's this one: do your best to build a culture that actively attracts and encourages female and minority programmers.
rafajafar ยท 0 points ยท Posted at 04:11:31 on September 12, 2013 ยท (Permalink)
You should be in politics. :-)
You never straight answer the question I'm actually interested in but somehow tie your answers to some agenda of your own. Also, by calling you out on this I think I run the risk of you putting it back on me for daring to ask you multiple questions which tie into my original thesis.
You also brush a strange air of confidence around you... one that I think few people catch on to as being only half as deserved as you paint it. That's a very admirable quality, and I mean that.
You will work your way up no matter where you are, but seriously, consider politics. It pays better and impacts more.
ENTJ? INTJ? You sound like you are involved in the larger system instead of your own personal goals. I'd guess ENTJ, but I could be wrong.
asiatownusa ยท 1 points ยท Posted at 04:18:37 on September 12, 2013 ยท (Permalink)
Hey, fake it til' you make it :) Haven't Meyer's Brigged in a long while, but definitely E.
But I really want to answer straight up: I think the CS graduation drop out rate is high because it is hard. Is there anything we can do to fix it? Probably not, due to the nature of STEM. But, there is a hopeful fix.
nivvydaskrl ยท 1 points ยท Posted at 01:55:20 on September 12, 2013 ยท (Permalink)
Master's level compsci is comparible to getting a lecture on arboreal microscale anatomy and then being told to design an oak out of rainbows and farts. PhD level is more of the same, except you have to design a new tree that no-one's ever thought up before.
TL;DR fuck trees
BWO_Bookworm ยท 27 points ยท Posted at 16:12:22 on September 11, 2013 ยท (Permalink)
Haha, I had a database class that relied heavily on MYSQL. Spent 6 weeks talking about Tables, keys, and relationships. She then gave us a project. Design a website to incorporate the MYSQL database. Only about 4 of the 40 students have ever made a website from scratch before. That was a fun project. At least I learned a lot.... Note, she never lectured on website development and very little on using MYSQL.
flammable ยท 2 points ยท Posted at 11:21:01 on September 12, 2013 ยท (Permalink)
We had a similar project in our database class the second year. Make a simple website in HTLM, make some POST/GET forms and then pass it by php/postgresql and perform some database magic on it. They had explained nothing about neither html nor php but it was still fun to read the tutorials and implement the basics
ssmy ยท 1 points ยท Posted at 00:17:16 on September 12, 2013 ยท (Permalink)
My DB class was similar, except with Oracle. Fortunately, we could use other DBs if we desired.
bsmitty358 ยท 1 points ยท Posted at 20:23:59 on September 11, 2013 ยท (Permalink)
I would have taken way too much code from the WordPress project.
[deleted] ยท 2 points ยท Posted at 22:09:54 on September 11, 2013 ยท (Permalink)
unless you're developing better technologies for major technology companies, 90% of the code you will ever need has already been written and is somewhere on the web.
bsmitty358 ยท 1 points ยท Posted at 22:47:49 on September 11, 2013 ยท (Permalink)
I agree, but I still don't think my teacher would be too pleased.
windupharlequin ยท 1 points ยท Posted at 22:17:46 on September 11, 2013 ยท (Permalink)
oh god oh god oh god.
Nooooooooooooooooooooooooooooooooooooooooo
chneukirchen ยท 20 points ยท Posted at 16:40:25 on September 11, 2013 ยท (Permalink)
... reminds me more of my math assignments than the CS stuff.
MyNameIsDan_ ยท 12 points ยท Posted at 16:44:25 on September 11, 2013 ยท (Permalink)
ditto.
war stories from real analysis courses still giving me nightmares.
[deleted] ยท 4 points ยท Posted at 17:05:13 on September 11, 2013 ยท (Permalink)
I have nightmares about my Calc 2 midterm coming up but coding for my comp sci class is relaxing in a way.
the_mighty_skeetadon ยท 1 points ยท Posted at 20:48:20 on September 11, 2013 ยท (Permalink)
When coding, it's usually not so hard to see what you're doing, what's wrong, and how (generally) you need to work to get from here to there. It's the getting there that's hard, and that part's satisfying in the end, like building a chair.
newmansan ยท 42 points ยท Posted at 15:27:37 on September 11, 2013 ยท (Permalink)
As a comp sci major, this was pretty much every class for the first two years.
AstroPhysician ยท 8 points ยท Posted at 18:28:55 on September 11, 2013 ยท (Permalink)
Oh God, it gets better??
nicholasdelucca ยท 83 points ยท Posted at 18:35:24 on September 11, 2013 ยท (Permalink)
Yes you drop out
[deleted] ยท 6 points ยท Posted at 19:45:12 on September 11, 2013 ยท (Permalink)
Ha, I ended up with enough credits for a minor in CS and was like, "Fuck it, I'm outta here."
newmansan ยท 7 points ยท Posted at 18:32:53 on September 11, 2013 ยท (Permalink)
Yes. The first year+ is designed to weed out people. Once they know you're dedicated/smart/whatever enough they take a bit of mercy on you. So much so that my GPA has jumped up tremendously since then.
SentientTorus ยท 3 points ยท Posted at 19:42:42 on September 11, 2013 ยท (Permalink)*
Well also...you start to get enough skill to use in 'real-world' situations, which directly improves motivation to study more.
When I got an assignment in abstract algebra like "Find the number of associative binary operations on a 3 element set", because I studied programming I was like that girl from Jurassic Park "This...this is a simple recursion program. I know this!"
AstroPhysician ยท 2 points ยท Posted at 23:37:09 on September 11, 2013 ยท (Permalink)
I'm in my second year, Computer Systems is killing me, i thought first year was easy
ibbolia ยท 12 points ยท Posted at 16:51:45 on September 11, 2013 ยท (Permalink)
Computer Science major here. GOD CAN'T HELP YOU NOW! WAHAHAHAHAHAHAHAHAA
CookieFish ยท 3 points ยท Posted at 01:42:46 on September 12, 2013 ยท (Permalink)
When I started uni someone had written "caffeine is your god now" on one of the whiteboards in the computing lab.
[deleted] ยท 14 points ยท Posted at 17:00:53 on September 11, 2013 ยท (Permalink)
My school had our class set up a Ubuntu virtualization to code in (so they didn't have to deal with mac vs windows junk) and the image file was downloaded via torrent.
My class killed off every non tech savvy person in one day...
the_mighty_skeetadon ยท 3 points ยท Posted at 20:49:49 on September 11, 2013 ยท (Permalink)
Why... is that supposed to be hard? That's like 1 page of instructions with 3 links. Perform in order.
If you can't do that, you're not ready. Sorry, but you're not.
[deleted] ยท 1 points ยท Posted at 00:13:57 on September 12, 2013 ยท (Permalink)
It's a lot of room to fuck up. The version they had linked was 64x so 34x people were breaking things, people's torrents were being wrecked by their anti virus stuff and a shit ton of people were freaking out about having to use linux.
Didn't bother me, hell I helped my TA fix people's problems, but you'd be surprised how badly people manage to fuck up basic steps when it comes to computers, I mean if everyone could do it, then IT and call centers would have much less business than they do now
gsfgf ยท 3 points ยท Posted at 19:14:08 on September 11, 2013 ยท (Permalink)
While that's one way to deal with it, isn't it pretty easy to get a real posix environment for Windows these days?
the_mighty_skeetadon ยท 8 points ยท Posted at 20:51:10 on September 11, 2013 ยท (Permalink)
A VM is a good solution to a variety of problems. Nobody can say "wahhh but professor where do I get that editor, mine doesn't look like that" or "wahhh, why is this part of my build not working" or any such nonsense.
Boot up the VM. Everything's in the right spot. Everything works the same. Nobody gets to whine.
[deleted] ยท 2 points ยท Posted at 00:16:33 on September 12, 2013 ยท (Permalink)
Bingo, everyone uses the same compiler with the same image on the same virtualization program.
Honestly you can use any compiler you want since they only want the code files to grade, but by using what my school provides it makes headaches a shit ton easier to get rid of for everyone.
flammable ยท 1 points ยท Posted at 11:24:04 on September 12, 2013 ยท (Permalink)
I downloaded cygwin, installed it in 15 mins and haven't had a problem in my compsci programs since. Except for that the nerds give me shit for coding in windows ;P
pegasus_527 ยท 7 points ยท Posted at 17:33:29 on September 11, 2013 ยท (Permalink)
ftfy
[deleted] ยท 27 points ยท Posted at 18:03:05 on September 11, 2013 ยท (Permalink)
Both of those statements are logically equivalent.
[deleted] ยท 0 points ยท Posted at 22:40:58 on September 11, 2013 ยท (Permalink)
Or at the very least the first implies the second.
๐๏ธ shenanigansen ยท 62 points ยท Posted at 16:57:40 on September 11, 2013 ยท (Permalink)
Hey peeps, thanks for the readership! :D Just wanna drop a link to my other stuff to make sure y'all know:
http://owlturd.com/
https://www.facebook.com/owlturdcomix
https://twitter.com/shenanigansen
Thank you!
revchu ยท 1 points ยท Posted at 00:12:52 on September 12, 2013 ยท (Permalink)
I like your style. It stands out. A lot of comic series get posted constantly and when I click one of yours I know right away to keep reading.
ParanoidRocker ยท 1 points ยท Posted at 21:16:48 on September 11, 2013 ยท (Permalink)
I was about to ask what the name of the comics are.. Thank you! Their hilarious :3
Claptrap750 ยท 9 points ยท Posted at 17:28:36 on September 11, 2013 ยท (Permalink)
One of my first classes in University (Scotland) was "Introduction to the Information Profession" It involved weeks and weeks of bullshit like team building excercises and nonsense like that. At one point they grouped us up and had us making fucking bridges with newspaper, tape and pencils.
Anyway, in the last 2 weeks of the course the tutor basicaly went "Oh, and by the way. This is shellscript, confusing huh? Now go away and write a working board game. Have fun!"
We spent about 12 hours a day from then on in the lab, with one of the tutors there THE WHOLE TIME working with groups. Managed to JUST get a pass with a 2 player version of connect four (we started to make an ai second player, but fuck that in my first semester). They still do that class. ><
ParkerM ยท 8 points ยท Posted at 00:34:34 on September 12, 2013 ยท (Permalink)
Am I the only person whose CS classes have been pretty simple?
stereopump ยท 2 points ยท Posted at 05:01:23 on September 12, 2013 ยท (Permalink)
I was thinking the same thing. I must go to a school with either fantastic teachers or a terrible curriculum.
vancouver_throwaway1 ยท 2 points ยท Posted at 06:50:09 on September 12, 2013 ยท (Permalink)
Seriously, I would do computer science any day rather than put up with Chemistry or Biology.
noseonarug17 ยท 23 points ยท Posted at 13:39:20 on September 11, 2013 ยท (Permalink)
Did the first assignment of the year yesterday. Can confirm; had no idea what I was doing until I was almost done.
kerrz ยท 33 points ยท Posted at 16:22:18 on September 11, 2013 ยท (Permalink)
That's how you learn. If you already knew what you were doing when you started, you wouldn't be learning anything.
aarghIforget ยท 12 points ยท Posted at 16:38:46 on September 11, 2013 ยท (Permalink)
And honestly, what are you doing in a computer science course if you expect to learn from a person anyways?
n1c0_ds ยท 15 points ยท Posted at 18:03:45 on September 11, 2013 ยท (Permalink)
We want a specific piece of paper.
NotClever ยท 3 points ยท Posted at 20:50:57 on September 11, 2013 ยท (Permalink)
This is actually a really interesting point w.r.t. the OP comic. In high school and in some majors assignments are a method of assessing what you've already learned. In college, at least in technical majors, they're usually used as teaching tools. Sometimes they will have nothing to do with what you learned in class. That's something that took me too long to figure out.
SadDragon00 ยท 1 points ยท Posted at 13:53:07 on September 12, 2013 ยท (Permalink)
Welcome to the rest of your life.
noseonarug17 ยท 1 points ยท Posted at 14:28:28 on September 12, 2013 ยท (Permalink)
deep
Mr_Minionman ยท 35 points ยท Posted at 15:56:45 on September 11, 2013 ยท (Permalink)
Google is the best teacher for a Computer Science major. Most of my programming assignments thus-far involve 80% searching how to do the assignment, 15% using copy/paste for similar-but-not-quite batches of code, and 5% writing new code.
thelehmanlip ยท 68 points ยท Posted at 16:34:47 on September 11, 2013 ยท (Permalink)
You're all set for the real world
willnuckles ยท 12 points ยท Posted at 19:30:00 on September 11, 2013 ยท (Permalink)
listen to this guy. BS in comp sci == BS in googling
darkstar3333 ยท 7 points ยท Posted at 23:10:53 on September 11, 2013 ยท (Permalink)
After 7 years in the industry, this I can confirm.
Until you get to a point in your career where you start hitting edge cases and ungoogleable issues.
Then you need put down the mouse, pickup a glass and get drinking.
AmadeusOrSo ยท 1 points ยท Posted at 22:05:54 on September 11, 2013 ยท (Permalink)
Yep. I have years of computer repair under my belt for shops, customers, businesses, etc and programming is pretty much exactly the same thing.
Yeah I used to get paid for this, and now I'm paying to learn it.
Edit: Not to gripe at all, though. Solving problems like that is immensely satisfying for me which is why I love repair work, and consequently programming.
levirules ยท 6 points ยท Posted at 17:55:51 on September 11, 2013 ยท (Permalink)
Wow, I must be a sucker for having written every C++ assignment from scratch
mikesername ยท 21 points ยท Posted at 20:16:32 on September 11, 2013 ยท (Permalink)
if you want to write a c++ assignment from scratch, you must first invent the transistor
edcba54321 ยท 2 points ยท Posted at 22:54:15 on September 11, 2013 ยท (Permalink)
You misspelled electron.
WTFwhatthehell ยท 3 points ยท Posted at 20:29:38 on September 11, 2013 ยท (Permalink)
and as long as you include a note along the lines of "some code based on tutorial examples at (long list of sites/pages)" it's all above board and fine.
mikesername ยท 3 points ยท Posted at 20:16:39 on September 11, 2013 ยท (Permalink)
yeah, when I get an assignment that's clearly a problem someone else has already solved, I think about it for a bit first so I feel like I'm learning and then google it to find the answer on stackoverflow.
rierevin ยท 5 points ยท Posted at 19:56:48 on September 11, 2013 ยท (Permalink)
I remember in one of my compsci classes that was focused on discrete mathematics and automata, I got a 36/100 on the final.
I was crushed for about 30 seconds until our teacher pulled out the curve and it turned out I that I got an A. Who designs a test like that? I remember people giving up in the middle of it and leaving. It was that bad.
th3byrdm4n ยท 13 points ยท Posted at 16:45:55 on September 11, 2013 ยท (Permalink)
It's actually pretty sad. The remainder of the whole "education" is about regurgitating facts, not utilizing both sides of your brain to create new logical solutions.
I love computer science.
tomjen ยท 15 points ยท Posted at 18:23:01 on September 11, 2013 ยท (Permalink)
There are plenty of places where all you do is regurgitate facts.
But CS is far from the only place where you don't.
th3byrdm4n ยท 1 points ยท Posted at 19:02:23 on September 11, 2013 ยท (Permalink)
Quite. The comment is specific to the comic.
blindingspeed80 ยท 0 points ยท Posted at 20:54:59 on September 11, 2013 ยท (Permalink)
Seems like you missed out on some stuff in your "education".
th3byrdm4n ยท 1 points ยท Posted at 21:22:41 on September 11, 2013 ยท (Permalink)
Such as?
blindingspeed80 ยท 1 points ยท Posted at 23:50:03 on September 11, 2013 ยท (Permalink)
Where does one begin to explain that the whole of human experience does not start and end with computing?
th3byrdm4n ยท 1 points ยท Posted at 01:29:44 on September 12, 2013 ยท (Permalink)
You're off in the woods from my comment's intention, so allow me to elaborate thusly.
The difficulty with CS expressed in the cartoon is because in other classes, you can simply read and regurgitate the information without really comprehending it and skate by. Or, perhaps in classes that don't require it, you can simply create something on a whim that makes no logical or functional sense. CS on even the most basic level requires a full-fledged commitment with brain activity to wrap your head around an entirely distinct world populated with a variety of abstract concepts.
Example: Recursion. That's a tricky concept to understand... It's even tricker to create. But that's CHAPTER 2 in one of the most widely accepted fundamental Computer Science books. http://infolab.stanford.edu/~ullman/focs.html
I love other subjects, too, though. Don't get me wrong. Playing around with philosophy is fun.. But it's just that, play.
CS isn't alone, either. Every engineering course that relies on Physics has that same balance of working left and right brain... There's just, maybe, less abstraction working physically ;)
blindingspeed80 ยท 1 points ยท Posted at 02:43:41 on September 12, 2013 ยท (Permalink)
Anything you truly engage will require the same commitment to brain activity, is my point. And throwing Aho & Ullman at me doesn't prove a point. There are lots of folks "skating by" in CS, especially at the most basic level, which, arguably, does not require a full-fledged commitment of brain activity (CS is not taught with a real theory of computation course as the introductory one... not anywhere that I'm aware of).
th3byrdm4n ยท 1 points ยท Posted at 06:54:13 on September 12, 2013 ยท (Permalink)
Not according to the comic, thus the humor ;-)
brookesmash ยท 16 points ยท Posted at 15:39:51 on September 11, 2013 ยท (Permalink)*
They are trying to prepare you for your future career! They can't teach you ever single problem you will face during your programming career but they can teach you how to use Google! For the most part once you have the basics of programming the rest is just figuring out how to use those skills to figure our bigger problems. It can be annoying but it will benefit you in the future!
Edit: By "use Google" I more meant figure it out yourself. I understand not everyone had access to Google when they went through their courses. I am just speaking from my own experience the one teacher I had that was like this was the best teacher I had. All the other teachers just gave us the answers. If I honestly tried and still couldn't figure it out I would talk to him and he would help me but in a very basic try this direction manor. It was frustrating as hell but it helped me a lot!
chewbacca77 ยท 9 points ยท Posted at 15:59:40 on September 11, 2013 ยท (Permalink)
Back in my day, we couldn't rely on The Google. But that still didn't stop the professors from throwing overwhelming assignments at you.
Sleepy_One ยท 13 points ยท Posted at 16:57:14 on September 11, 2013 ยท (Permalink)
I shudder to think what programming was like before google. Or having an API you can search. And use Ctrl + F on.
gwarsh41 ยท 7 points ยท Posted at 17:07:15 on September 11, 2013 ยท (Permalink)
Library, find the book, hope it isnt 5 years old.
ghjm ยท 6 points ยท Posted at 17:49:53 on September 11, 2013 ยท (Permalink)
It was, quite frankly, wonderful. The OS/language vendor would give you a bookshelf of manuals, which completely and correctly documented every function of the system. In the wildly unlikely event that you found an error or omission, they would at a minimum send you a complete new documentation set for free.
BufferUnderpants ยท 11 points ยท Posted at 18:44:16 on September 11, 2013 ยท (Permalink)
Psht. Who needs manuals when we have some guy's blog who links to another guy's blog whose entries now all return 404, and plenty of Stack Overflow questions who answer a different problem than the one asked?
Icovada ยท 2 points ยท Posted at 17:11:16 on September 11, 2013 ยท (Permalink)
grep all the things
LordAlfredo ยท 1 points ยท Posted at 18:52:11 on September 11, 2013 ยท (Permalink)
Lots and lots of writing existing functions/structs/classes/etc because you didn't know it was part of native libraries/Java packages/etc.
Source: I've done this a few times. Even though with some recent instances I probably should've just Googled.
Sleepy_One ยท 2 points ยท Posted at 19:19:07 on September 11, 2013 ยท (Permalink)
I guess nearly every programmer built a giant set of personal libraries. I've seen that with one of my professors at the uni a few years back. He had this massive 'utilities.php' file that gave him access to a billion little functions that allowed him to program the way he wanted.
colordodge ยท 1 points ยท Posted at 21:32:16 on September 11, 2013 ยท (Permalink)
You had to rely on other people in the class sharing their solutions so you could see examples so you could think about how to engineer a different/better solution.
darkstar3333 ยท 1 points ยท Posted at 23:13:15 on September 11, 2013 ยท (Permalink)
Your best ally in those cases was making sure you had the SDKs documentation installed and bookmarked.
NateTheGreat26 ยท 3 points ยท Posted at 16:28:58 on September 11, 2013 ยท (Permalink)
That's what books are for
bad_llama ยท 4 points ยท Posted at 16:28:28 on September 11, 2013 ยท (Permalink)
Maybe they should replace the entire CS courseload with one class called How To Google.
slammaster ยท 10 points ยท Posted at 16:45:19 on September 11, 2013 ยท (Permalink)
As a consultant a course called "How to Google" would cost me around 60% of my business
gwarsh41 ยท 1 points ยท Posted at 17:07:52 on September 11, 2013 ยท (Permalink)
I would be out of a job!
People call me and say, "My program stopped working!" When their speakers are turned off"
darkstar3333 ยท 1 points ยท Posted at 23:15:37 on September 11, 2013 ยท (Permalink)
As a consultant my time is split between googling, sitting in meetings and staring at my inbox.
I spend more time getting people to agree on something then actually doing the thing we want to agree on.
akai_ferret ยท 2 points ยท Posted at 16:27:25 on September 11, 2013 ยท (Permalink)
Yeah ... No.
When I took these classes you couldn't just Google up how to do anything ever.
I had professors that started from day one with the apparent assumption that you already knew half of what the course description said they would be teaching you.
Empha ยท 2 points ยท Posted at 16:33:43 on September 11, 2013 ยท (Permalink)
Didn't you have a book or something?
aarghIforget ยท 2 points ยท Posted at 16:44:49 on September 11, 2013 ยท (Permalink)
Honestly what is with all these people complaining that nobody taught them things? That's what the assignments are for. The classes are just to give you some idea where to look, and to pretend to be like all the other silly school degrees, because those are the people who assume you can only learn things in class.
If you think your CS teacher's Powerpoint slides are gonna save you, you're gonna fail.
akai_ferret ยท 10 points ยท Posted at 17:15:46 on September 11, 2013 ยท (Permalink)
For the money I was paying I sure as shit should have been taught something.
If they're not going to provide me any service beyond telling me what book to read then what are the even good for?
In the end I learned far more on my own, from much better books that I found by myself, than I ever did from those shifty classes. (and this was a supposedly prestigious state university)
sirry ยท 5 points ยท Posted at 17:47:56 on September 11, 2013 ยท (Permalink)
You're mostly not paying to be taught. You're paying primarily to get certified in the eyes of potential employers, secondarily to be forced to learn how to figure out how to do things on your own and actually being taught specific things is a distant and mostly irrelevant third. The things you learn in the classes are never going to be useful at all anyway and no quality of teaching would make it worth your tuition.
Paying for University to have a professor teach you things about CS is kind of like buying a 747 for the free peanuts in that there are way cheaper ways to get peanuts and it's completely missing the point of buying a 747 which is to fly places
akai_ferret ยท 4 points ยท Posted at 17:52:14 on September 11, 2013 ยท (Permalink)
I don't necessarily agree with everything you have to say but I'll be damned if that isn't a fantastic analogy.
[deleted] ยท 1 points ยท Posted at 17:38:50 on September 11, 2013 ยท (Permalink)
Its the nature of computer science guys: after doing OOP and basically level stuff for years, we tend to forget how foreign the concepts are to someone who has never seen it. Even something as simple as a keyboard shortcut can be mind-blowing to someone who didn't know it, but you do this same shortcut so regularly that you don't know what keys to use...its just muscle memory.
brookesmash ยท 1 points ยท Posted at 18:10:42 on September 11, 2013 ยท (Permalink)
This is true. I know since I had previous experience I thought my first semester of school was a breeze, but a lot of other people struggled. Later on people just complained a lot about our one teacher because he always marked really hard and didn't spoon feed us the answers like the other teachers, which is more how I was taking this post. That being said as long as you went to class and showed you were actually trying the teacher would still help you, anyone who made it through (which was very few about 20 out of the 250 people we had first semester) say he was the best teacher we had.
the_mighty_skeetadon ยท 1 points ยท Posted at 20:46:49 on September 11, 2013 ยท (Permalink)
Ready to have your mind blown?
Ctrl+Shift+Esc
Task manager. Blew my mind.
ltethe ยท 1 points ยท Posted at 00:05:54 on September 12, 2013 ยท (Permalink)
This. I have no idea how things were programmed before Google/Stack overflow.
I tried unsuccessfully to learn to code for the past 16 years. It is only the rise of Google and the popularization of Python that I've suddenly made dramatic progress.
ozzieg ยท 3 points ยท Posted at 17:13:30 on September 11, 2013 ยท (Permalink)
My intro to programming class went like "This is a loop. This is condition. now google the rest"
Skizm ยท 3 points ยท Posted at 17:32:02 on September 11, 2013 ยท (Permalink)
I think google has more than 3 letters and doesn't contain a "d". You should fix that typo.
auxiliary-character ยท 3 points ยท Posted at 17:38:39 on September 11, 2013 ยท (Permalink)
As a future Computer Science major:
I accept your challenge.
SonOfSpades ยท 3 points ยท Posted at 18:12:59 on September 11, 2013 ยท (Permalink)
I took a second year class, called Compilers. The entire class was basically making a compiler from scratch. The class was 4 assignments, and each assignment the professor gave us more and more goals, and said go. In class we covered basically theory such as compiler design, grammers, etc.
It was hell, we had to come up with our own syntax, and the sheer amount of edge cases, and stuff like Recursion, etc. But we were given absolutely free reign of what language to use, how to build it, etc (the professor marked each assignment himself, and there was about 15 of us). Just as long as you implemented key features, that he would try out.
The first assignment was to design your languages grammar, build a parser and basically support and evaluate primitive operations.
I watched poor students spend ungodly amount of hours in the labs, trying to write their own CFG parsers. It completely baffled me, while me and my friend just used existing things such as Bison and sped along. In the end only me and my friend actually finished the first assignment (even then it didn't work perfectly, recursion!).
The amount of times i have watched students desperately struggle because "they are making their own everything", baffles me.
CrayonOfDoom ยท 3 points ยท Posted at 18:38:02 on September 11, 2013 ยท (Permalink)
How far through did you go on that compiler? What language were you compiling? I couldn't imagine having enough time to go all the way from scanning/parsing through to optimizations on any full-featured language. Our course (senior level for us) had us starting on semantic analysis, followed by code gen and finally optimizations. The scanner/parser was provided, and assignments covering scanning and parsing were done in the lab so we'd be familiar with how to do it... but the time it would take to make a grammar for C would have been nuts.
SonOfSpades ยท 3 points ยท Posted at 19:23:54 on September 11, 2013 ยท (Permalink)
Not far at all, only our fourth assignment really touched optimization (and barely). We were more or less given a list of common compiler optimization techniques and told to implement any 3 of them (all 3 of the ones i picked were removing dead branches, unused assignments, and just dead code).
Basically in the end i had the following (it was done using C++):
We didn't make a grammar for C (that would make me cry), we were more or less free to design our own CFG from scratch for our own language (part of the assignment was designing something with minimal ambiguity). My toy language was something that was a bastardization of Python with C++ curly braces to denote scope.
Aside from the absolutely most basic operations and flow controls, basic objects, and added both Lists and dictionaries. My language and my compiler were terrible, slow, and buggy. But it was the first time in university where we were given free reign for how to do things. Unfortunately so many students fell into the trap of building everything themselves.
DarkTemplar26 ยท 8 points ยท Posted at 16:10:56 on September 11, 2013 ยท (Permalink)
This is exactly why I got the fuck out of the computer science major. I got as far as I possibly could by switching to theater studies. I can feel my hairline going back to normal
bluemellophone ยท 1 points ยท Posted at 02:35:19 on September 12, 2013 ยท (Permalink)
That's one hell of a jump. I could see going from CS to mathematics or CS to physics, but jumping from CS to a humanities is a big jump.
Sounds like it was a good jump though...
DarkTemplar26 ยท 2 points ยท Posted at 03:22:09 on September 12, 2013 ยท (Permalink)
Lol I was really into theater in high school, I worked on the lighting crew for most of my time there so when it was obvious that I couldn't program I went with what felt natural
preorder_bonus ยท 7 points ยท Posted at 15:46:21 on September 11, 2013 ยท (Permalink)*
This is actually why more High Schools should have more Computer Science/Engineering classes they give the students the tools then ask them to think logically(crazy I know) about how they would achieve a certain task. Sends kids that never use their heads into panic mode hell I still remember my first CS class in High school soon as the teacher said "Go get started" you could see the clearly difference in the class between those that could think for themselves and those that never do.
inconspicuous_male ยท 1 points ยท Posted at 18:11:13 on September 11, 2013 ยท (Permalink)
I loved my high school computer science classes. None were that difficult, yet I feel like I have the ability to figure out projects on my own. Granted, not at the level of a college course, but still kind of close
madlukelcm ยท 1 points ยท Posted at 19:17:26 on September 11, 2013 ยท (Permalink)
The only computer based class I had in secondary school was pretty shit. We got about as far as using spreadsheets and setting up a website. It is pretty Non-existent (or at least it was).
Superseuss ยท 2 points ยท Posted at 17:49:43 on September 11, 2013 ยท (Permalink)
See, the problem there is attempting to learn programming & its surrounding concepts through a human.
It's better to learn at your own pace & through example by using the internet as a resource. It holds a lot more knowledge than any one human could (go figure), you get to choose your own assignments (the fun factor to keep you trying), and then you have a portfolio of all the original work you've done (you become one of a kind, basically).
It wouldn't surprise me if many (if not most) successful programmers learned through the internet (aka "taught themselves"). It's how I found excitement in problem solving.
colordodge ยท 2 points ยท Posted at 21:30:28 on September 11, 2013 ยท (Permalink)
So this is totally accurate. Does anyone here know why this happens? Why is it that computer science academics seem very uninterested in students actually learning how to do things?
acomfygeek ยท 2 points ยท Posted at 22:45:14 on September 11, 2013 ยท (Permalink)
I think you might want to find different CS academics to try and learn from. It is definitely not always the case.
TankErdin ยท 2 points ยท Posted at 22:56:09 on September 11, 2013 ยท (Permalink)
Junior CS major here. It gets easier because you stop sleeping so that you can make deadlines, and that lack of sleep drives you to learn and work harder and faster and stop caring about the small details that end up being the important ones anyway because your professor is a sadistic asshole that was never loved as a child and enjoys torturing anyone dumb enough to help fuel their salaries.
I wish I was a business major.
[deleted] ยท 2 points ยท Posted at 23:39:19 on September 11, 2013 ยท (Permalink)
wheres the joke
wtfcblog ยท 2 points ยท Posted at 00:24:23 on September 12, 2013 ยท (Permalink)
My expereince with my current coding classes.
>_<
Uberhipster ยท 2 points ยท Posted at 10:02:13 on September 13, 2013 ยท (Permalink)
CompSci 100, 1st semester; attendance: 325
CompSci 100, 2nd semester; attendance: 150
CompSci 200, 1st semester; attendance: 50
seniorsassycat ยท 3 points ยท Posted at 16:58:35 on September 11, 2013 ยท (Permalink)
This is actually why I like being a Computer Science major.
UseThe4s ยท 2 points ยท Posted at 15:56:17 on September 11, 2013 ยท (Permalink)
I was Computer Science and a good friend was Computer Networking. He thought we were taking practically the same major. After like a week or two of classes, he asks, "So how's that project going?"
"Not bad, about 100 lines of code right now, think I've almost figured it out. What are you working on?"
"...Hello World."
jedrekk ยท 9 points ยท Posted at 16:19:20 on September 11, 2013 ยท (Permalink)
Yeah, but how's your BGP routing?
mikelj ยท 5 points ยท Posted at 16:47:46 on September 11, 2013 ยท (Permalink)
I don't know of any programs that separate networking from computer science. Maybe a community college?
ghjm ยท 2 points ยท Posted at 17:57:48 on September 11, 2013 ยท (Permalink)
NCSU has one of the top computer science programs in the world, and offers a separate graduate track for computer networking. I'm not sure about undergraduate.
mikelj ยท 1 points ยท Posted at 18:38:36 on September 11, 2013 ยท (Permalink)
Yeah, most CS colleges at the schools I know are just Computer Science majors with Networking concentrations. They still would have had to taken basic programming.
ghjm ยท 3 points ยท Posted at 19:48:34 on September 11, 2013 ยท (Permalink)*
There's a genre of reddit discussion where we all express our horror that CS graduates haven't been given adequate vocational training as programmers, and certainly, there ought to be a practical programming track for people who want this training - but I've never been quite sure why the practical programming track should be conducted by theoretical computer science faculty, rather than by specialists in vocational training (as are commonly found at a community college).
The NCSU Master of Computer Networking does not necessarily require much coding. For example, you can focus on hardware design. So while I agree everyone in the field should get some exposure to programming as part of their undergraduate work, I'm not sure why an undergraduate program focused on computer networking should require more than an introduction to programming.
mikelj ยท 1 points ยท Posted at 20:49:05 on September 11, 2013 ยท (Permalink)
We're not necessarily talking about deploying commercial systems, but I feel like if you have a job in computer science you should understand a language like C, an OO language, and some kind of scripting (Python, perl, (ugh) bash). If I were looking at a resume from a CS BS and they didn't know how to parse some data with a script, understand inheritance or pointers, I'd seriously question what they did with four years of undergraduates.
If you're focused on hardware design in a Master's program, IMO you should be able to use and modify simulation infrastructure (e.g. ns3), deal with drivers and firmware, and be able to parse data using scripting.
[deleted] ยท 1 points ยท Posted at 21:15:31 on September 11, 2013 ยท (Permalink)
[deleted]
mikelj ยท 1 points ยท Posted at 21:29:55 on September 11, 2013 ยท (Permalink)
You're talking about graduating a Mathematics major and not a CS major. Are you seriously suggesting that you should be able to graduate with a BS in CS without being able to program in a single language?
Yes, because I'm saying that CS grads should be able to program in at least a single language, I'm saying they should be plug-and-play Perl programmers.
I'm seriously curious what you expect a computer science major should know at the end of dozens of CS classes.
Understanding how to manipulate pointers or objects or data sets is advanced practical knowledge?
ghjm ยท 1 points ยท Posted at 21:54:32 on September 11, 2013 ยท (Permalink)
Sorry, I wound up with multiple versions of this because of reddit downtime. The version you are replying to was more intemperate than I intended. Please see the revised version.
Yes, I am indeed saying that there is room in a computer science program for tracks other than programming, and that valuable work in theoretical computer science does not require extensive practical knowledge of programming.
At the end of dozens of CS classes, a computer science undergraduate should have been exposed to a broad survey of topics, within and outside the field of computer science, including programming. And I'm not saying there shouldn't be a practical programming track within a CS program. But there is more breadth than this to the field of computer science. If our undergraduate chooses CS electives other than programming, they should still get their degree.
ghjm ยท 1 points ยท Posted at 21:44:27 on September 11, 2013 ยท (Permalink)
These are all things you should expect for someone who is applying for a job as a programmer, but there are many jobs in the field of computer science which are not programming jobs, and there is no reason to imagine that a theoretical computer scientist in academia ought to be a particularly good candidate for a job as a programmer.
There are many perfectly reputable activities that your undergraduate could have been engaged with for four years, even if they did not learn your preferred mix of programming languages. Perhaps they studied at the knee of Donald Knuth and learned everything there is to know about algorithmic theory, but in order to avoid wasting time on implementation details, they chose to write only in pseudocode. Would you call this a valueless activity? Yet they might well come out of it with little or no idea how to find useful CPAN modules for their Perl script.
Research universities exist to further their academic mission, and only secondarily to provide vocational training. If you wish to hire people with practical knowledge in a particular field, that's what community colleges are for. And if you wish to hire people with advanced practical knowledge in a particular field, you should be looking for experienced workers, not new grads from academia.
[deleted] ยท 1 points ยท Posted at 17:54:30 on September 11, 2013 ยท (Permalink)
CS departments (or whatever its called at each place) are beginning to fracture a lot more into specialties. Many have networking, infomatics, etc. as separate majors these days.
mikelj ยท 1 points ยท Posted at 18:41:50 on September 11, 2013 ยท (Permalink)
That's interesting. I'm not saying you're wrong, but I've only ever seen Computer Science majors with Networking or Software Engineering concentrations. They still would have taken significant core programming classes before they start hitting networking specific electives.
[deleted] ยท 1 points ยท Posted at 22:14:48 on September 11, 2013 ยท (Permalink)
It's just all semantics whether you call it a concentration or say it's a separate major, they can still have a largely common core.
mikelj ยท 1 points ยท Posted at 01:52:47 on September 12, 2013 ยท (Permalink)
That's like saying Physics and Electrical Engineering are the same because they all have to take Humanities, Chemistry I and Physics I-III. My point was it was incredibly likely that a Computer Science major and a Networking concentration in CS would be taking the same programming classes.
[deleted] ยท 1 points ยท Posted at 02:00:50 on September 12, 2013 ยท (Permalink)
That's not what I'm saying at all. I'm saying that if they take Programming I-IV together and then branch out into different disciplines, it's just a department's arbitrary decision whether that constitutes a different major or not.
inconspicuous_male ยท 1 points ยท Posted at 18:12:26 on September 11, 2013 ยท (Permalink)
Larger schools. Big schools will have different programs for CE, CS, networking, information security, and all of that stuff
mikelj ยท 1 points ยท Posted at 18:39:56 on September 11, 2013 ยท (Permalink)
Well, CS and CE are generally different programs, even different schools. The information security and networking, at least from what I've seen, are either graduate specialties or are concentrations in CS. They still would have had to take the core CS classes which would be more than "hello world".
Swissgiant ยท 1 points ยท Posted at 18:17:06 on September 12, 2013 ยท (Permalink)
Im in Information Studies, basically networking mixed with our own choice of concentration (information security for me)
IHaveALargePenis ยท 1 points ยท Posted at 19:02:29 on September 11, 2013 ยท (Permalink)
I still have bookmarks from when I had to create system calls for linux. Since we were already constrained for time, our teacher decided we weren't going to actually learn about system calls, but since he already had the assignment lined up, might as well hand it out. This was right before finals.
ThislsWholAm ยท 1 points ยท Posted at 19:45:12 on September 11, 2013 ยท (Permalink)
Yeah we have this thing now in the Netherlands called problem based learning. I think it's pretty good in conjunction with some lectures so you at least have some tools to use. But now they are trying to let students find their basic knowledge themselves as well. I guess it is possible, but really hard to do, since only a portion of people does well in the system.
A combination of lectures and projects is the best imo.
guxbot ยท 1 points ยท Posted at 19:53:45 on September 11, 2013 ยท (Permalink)
I had a Compilers class where the final assignment was to use a custom pseudo-language file as input to create a fully compilable ANSI-C program file that could be compiled and process another pseudo-language file information and it's output. That year nobody could even create the compilable program file. It was worth 50% of the final grade.
[deleted] ยท 1 points ยท Posted at 20:53:45 on September 11, 2013 ยท (Permalink)
Bahaha, thanks for the memories that was true in the '80s, too!
loungin ยท 1 points ยท Posted at 22:30:10 on September 11, 2013 ยท (Permalink)
One of my classes on computational theory did really bad with Pumping Lemma. So bad that our professor just forgave the entire test and I am pretty sure nobody received an A that semester.
SERGEANTMCBUTTMONKEY ยท 1 points ยท Posted at 22:30:54 on September 11, 2013 ยท (Permalink)
Im starting a computer science class at university in october. Do I have to be afraid?
jay_gaz ยท 3 points ยท Posted at 23:21:27 on September 11, 2013 ยท (Permalink)
No, you shouldn't. Just pay attention and don't fuck around on your phone/laptop.
And don't depend on Google a lot. Its going to be very tempting, but it'll only screw you over in the long run. Get the basic logics down pat by yoursef.
rafajafar ยท 1 points ยท Posted at 22:38:31 on September 11, 2013 ยท (Permalink)
If you can't figure it out, you can't hack it.
krispwnsu ยท 1 points ยท Posted at 22:47:44 on September 11, 2013 ยท (Permalink)
Student: Teacher? On the assignment, what does it mean by create an array using floats?
Teacher: HehehehehahahaAHAHAHAHAHAHA! Get out!
darkstar3333 ยท 1 points ยท Posted at 22:52:22 on September 11, 2013 ยท (Permalink)
When I was in school you passed the test if you completed the program, your grade was then determined by the quality.
400 applied, 22 graduated.
emlgsh ยท 1 points ยท Posted at 23:03:06 on September 11, 2013 ยท (Permalink)
"Here's how to declare a variable. Here are variable types. Here are arrays. Here are pointers. Write a compiler comparable to GCC."
sxysteve ยท 1 points ยท Posted at 23:30:07 on September 11, 2013 ยท (Permalink)
I had a computer class in college. In this class everything we did was right on the computer and the teacher had no way of monitoring us and never really walked around.
All class everybody just found different games and websites to play on. When it came time for the test which was also on the computer we could just Google the questions and look up the book which was right on the desktop.
I got an A on everything and I know shit about computers.
ltethe ยท 1 points ยท Posted at 23:42:54 on September 11, 2013 ยท (Permalink)
So true. With one caveat.
"Google be with ye"
IrrelevantGeOff ยท 1 points ยท Posted at 23:44:04 on September 11, 2013 ยท (Permalink)
This is how I feel taking high level Statics courses in my third semester of University... Our TA begins every quiz and test with "May God have mercy on your soul". I feel like the teacher assumes I've already passed this course and were just doing him a disservice showing up to class!
eagle23 ยท 1 points ยท Posted at 23:45:21 on September 11, 2013 ยท (Permalink)
"Implement this and this in this language that I created that there hardly is any documentation for and which is impossible to google because nobody uses it."
A_British_Gentleman ยท 1 points ยท Posted at 23:45:57 on September 11, 2013 ยท (Permalink)
I just graduated with a BSc(Hons) in Comp Sci
Thank FUCK that's over!
diadem ยท 1 points ยท Posted at 00:12:09 on September 12, 2013 ยท (Permalink)
You kidding? Computer science was awesome because the right answers weren't arbitrary.
bluemellophone ยท 1 points ยท Posted at 02:22:07 on September 12, 2013 ยท (Permalink)*
You can't teach problem solving like teaching algebra.
Edit: I'm a graduate TA for a CS 1000-level intro class taught in Python.
I can teach you the tools, I can show you the techniques, but you have to develop the skill to mentally create a roadmap to the solution. I am convinced that this only comes from personal struggle by spending time tossing the puzzle around in your brain.
monkeyvselephant ยท 1 points ยท Posted at 06:10:35 on September 12, 2013 ยท (Permalink)
Most fun I ever had was in graphics.... first project... build a wire frame renderer from scratch. Go...
Darkoneko ยท 1 points ยท Posted at 21:41:25 on October 4, 2013 ยท (Permalink)
My final programming assignement was... visual recognition of medicament tablets. Obviously, visual recognition was never studied in computer lessons, and when I bugged the math teacher with any of the formula/methods I found on the internet, he had never heard of those. I was pretty much on my own <_<
TheNecromancer ยท 1 points ยท Posted at 20:48:02 on September 11, 2013 ยท (Permalink)
And a history essay is easy, I take it?
[deleted] ยท 1 points ยท Posted at 16:31:59 on September 11, 2013 ยท (Permalink)
Easier to read lectures and information from the internet then the shitty professor written slides or lecture materials.
I never paid attention in class - and just learned everything on my own. Math included. I did worse when I tried actually paying attention to the professor. It worked for me and many of my classmates too. I think self learning and teaching is absolutely critical in becoming a good programmer.
lesinge311 ยท 0 points ยท Posted at 17:01:47 on September 11, 2013 ยท (Permalink)
saw the title of this post and thought it was going to be about penis...
licopter ยท 0 points ยท Posted at 17:43:23 on September 11, 2013 ยท (Permalink)
As someone who hopes to do computer science next year this scares me....
soothaa ยท 0 points ยท Posted at 17:57:43 on September 11, 2013 ยท (Permalink)
Wow... I never once had a single hard class O_o
stcredzero ยท 0 points ยท Posted at 18:37:16 on September 11, 2013 ยท (Permalink)
In other words, you can bullshit other classes, but in classes with programming, your shit either works, or it doesn't.
[deleted] ยท -1 points ยท Posted at 20:08:41 on September 11, 2013 ยท (Permalink)
http://i.imgur.com/rcp61Vi.png
Realworld ยท -4 points ยท Posted at 18:39:32 on September 11, 2013 ยท (Permalink)
Meh. Went back for a CS degree on a 45 credit hour course load. Earned a 4.0 GPA and valedictorian in the process. Programming is fun if it suits you. If you don't enjoy it, you shouldn't be doing it.
homercles337 ยท -4 points ยท Posted at 17:13:02 on September 11, 2013 ยท (Permalink)
A slight curve means shallow, a shallow learning curve means something is hard to learn. A learning curve plots time against amount learned. Learning a lot in a short time, means its easy to learn, its a steep curve. The more you know...
[deleted] ยท 2 points ยท Posted at 18:44:10 on September 11, 2013 ยท (Permalink)
[deleted]
homercles337 ยท 0 points ยท Posted at 22:57:02 on September 11, 2013 ยท (Permalink)
No it does not. It is a measure of learning over time. How much was learned in X time? You have it backwards and anyone that has taken intro to psychology will tell you the same? Maybe a little more time in the classroom would be good for you?
EDIT: LEARNING CURVE FOR THE NITWIT...The familiar expression "a steep learning curve" is intended to mean that the activity is difficult to learn, although a learning curve with a steep start actually represents rapid progress.
ghjm ยท 1 points ยท Posted at 17:54:05 on September 11, 2013 ยท (Permalink)
The OP was referring to a grading curve, not a learning curve.
E_lucas ยท 1 points ยท Posted at 17:56:48 on September 11, 2013 ยท (Permalink)
He means a curve in the marking sense, where the grades get changed to reflect the relation between classmates.
Also the steep curve thing you're talking about is wrong, the curve reflects the amount/difficulty of things you need to learn. Steeper means more stuff, more quickly.