Really, 10 hours of week in a presumably upper divison CS course is bliss. I once spent 60 straight hours. No sleep. Ordering food. Had to skip classes. Because of a compilers project. And that was one I didn’t procrastinate on.
Though “crash course in a new language” isn’t uncommon. Like that one class where I had to somehow learn pathfinding, heuristics, spanning trees, and python at the same time (with a buggy framework from Berkeley our professor didn’t write and thus had no idea how to fix!). Or that time I had to learn Ocaml. Or that time my discrete math class threw Prolog at us and said “have fun”! Or… well, CS courses like to do that. (The worst wasn’t a language but a pseudo-language framework for AI called SOAR. I hate that thing more than Prolog, and I really hate Prolog)
Edit: Oh, and my graphics course spent literally half a day on Open GL. The rest was pure maths.
Jesus, I probably do more than ten hours of coding a week just for the sheer hell of it at home. If that sounds bad to you then you are definitely heading down the wrong career path.
I think you miss that I have a full time job (as a programmer). Yet I do it in my spare time too. Partly for the love of it, partly to keep my skills up and learn new technologies that may or may not become useful.
The only thing I find objectionable is the “optional” bit being in the exam, but that isn’t what I was commenting on. I was commenting on how these masses of hours were so unreasonable. I’ve worked sixteen years in programming (I currently work in the fringes of the games world, doing some rather niché things) and I spent five years at university. I find nothing that was written about the hours unusual, especially for a student, and seriously, if you find it objectionable get out now because you are on the wrong career path.
I see no problem with content on optional homework being on the exam. I had a math class where all homework was optional – we still had to know the material. The homework was just there if we wanted to have exercises to drill it into us.
Maybe the instructor didn’t clarify this well, but I generally expect that any content presented in official coursework, optional or not, is required to be known unless stated otherwise – whether you use the homework or flashcards to memorize is another issue entirely.
My college classes didn’t have any homework. Nothing to hand in except for lab reports. But anybody who didn’t burn his eyebrows doing exercises didn’t bother come back after the first round of exams.
Heck, I stopped having graded homework in middle school - but certainly did not stop doing exercises as the biggest part of studying!
I have been formally trained in three languages, C++, Objective-C and Java. Only one of those was taught in a classroom, C++ over a space of ten lectures of one hour each (once a week for a single term). The other two were via distance courses that I did in my spare time once I was full-time employed as I thought they would be useful. The Objective-C one was done using materials (videos and slideshows) that referred to an outdated version of Xcode and the iOS SDK, just about all the learning was via searching for things on the web.
I have varying abilities in several others (PHP, Perl, C, C#, 4GL, …) all of which I taught myself.
Oh, did I mention that all the online materials for the Objective-C and Java courses - as well as the textbook for my basic training in Java - were in a foreign language?
So, to be honest, five days is quite a lot. Quite a lot more than I had.
ETA:
You have now changed what I replied to. My point still stands. He actually had quite a lot of training and the hours he is doing are not unreasonable, especially for a student.
Yeah. Not to play the “had to walk 20 miles to school uphill both ways and in the rain card”, but when I learned to program, it was still (barely) punched cards and batch processing. So even beginning programming courses required allnighters.
It would have been an inconceivable luxury to be able to sit around the dorm room with a laptop and a beer poking around the C++ documentation in Visual Studio with tens of thousands of example programs available on the Net, actually learning the programming language rather than struggling with the sheer mechanics of submitting the program to the computer.
So not only am I not shocked by the requirement to do 10 hours of programming per week in a programming course; it sounds pretty reasonable to me. And the "optional" part also sounds good, because all you have to do is implement the important stuff until you get it, rather than have to waste time making stuff pretty.
I have to agree with the others. What you have there isn’t a bad teacher. He’s a hard teacher. Hard teachers should be cherished. You learn the most from the hard teachers, provided you can keep up.
Bad teachers on the other hand… let me tell you about a bad teacher. I graduated last December from a technical college with a degree in game design. It was a really good program. Except for Tim. Tim was the single most incompetent teacher I’ve ever had. You could consistently count on an hour of every class being spent dicking around on the internet while Tim tried to figure out why his code example wasn’t working. If you asked him a question about the assignment, more than half the time he’d tell you to look it up on line, because “that’s the best way to learn.” Translation: “I have no idea what the answer is, and only vaguely understand the question.” He taught a class called “Working with Motion Capture Data.” At no point in the class did we see any motion capture data. Instead, it was a quarter long tutorial on how to use MotionBuilder. The lecture format consisted of Tim putting the .pdf that comes with MotionBuilder on the overhead, and reading it to us. In another class, he use a similar technique, trying to explain a networking concept by opening up the Wikipedia page on the subject and reading it to us. Best part was that he hadn’t read the page ahead of time: we spent fifteen minutes on one example, before he scrolled down to the part that said, “Nobody does it this way anymore, because of X, Y, and Z.” That same class, the final assignment was to write a networked tic-tac-toe game. We were allowed to work in groups. My group had a finished project about two weeks before the end of class. We were able to get ahead through the simple expedient of ignoring everything he said, and researching the subject ourselves. When we showed it to him, third to last class of the quarter, he got angry because we didn’t use the method he was teaching us - mind, he never said that we were required to use his method. The only requirement he’d given us was, “Write a networked tic-tac-toe game.” (And our method actually worked, which is something he was never able to get his own code to do.) We had to start from scratch, because he was “worried that we were just copying stuff from the internet, and not really learning it.” Scroll back up through this post, and you might see why I ended up walking out in the middle of that particular class. Oh, and we weren’t allowed to work together on it, either. Note, that applied only to our group. The other group in the class (there were only about ten students altogether) were under no such restriction.
Yeah. Tim was a shitty teacher. The teacher who failed me in 3D Character Modelling, two quarters in a row? Sure, I was pissed, but the guy knew his stuff, wanted us to be good, not just mildly competent, and at the very least, wasn’t demanding anything from his students that he couldn’t do himself.
I can see why this is confusing and frustrating, but as you’ve learned, “optional” homework doesn’t mean “here’s some stuff that might be interesting if you feel like it”, it means “here’s some practice problems for what we’re learning. If you understand it without doing them, great. If you want to do them to learn the material better, go for it, but I’m not going to check it.”
Getting thrown into the deep end of a language is tough, but, just like in the swimming world, you’ll learn quickly (or drown). There’s often a difficult class fairly early on in a major to weed out people who can be easily discouraged.
And getting thrown a language you don’t know is good practice for the real world, where you’ll often be exposed to a code base you don’t know in a language you don’t know. Or, even if it’s in a language you know, it will be used in such a stupid and broken way that it might as well be another language.
True, but teaching also isn’t meant for everyone, either. If a few students fail a course, they might be bad students. If many students fail a course, you, the instructor, fucked up somehow. Maybe you weren’t testing the same material you were teaching. Maybe the course needed more or different prerequisites. Maybe the course was simply too ambitious, and people can’t learn that much in that time period. Maybe you’re just a shitty teacher. In any case, you’re not producing the desired outcome of teaching, which is that the students, for the most part, come out of the course understanding the content thereof.
Agree with this. Unless he specifically said that the material in the homework wasn’t going to be on the exam, I would take it to mean that doing the homework is a good way to make sure you know the stuff that is going to be on the exam. It’s just that the professor doesn’t want to be bothered grading it, so it’s optional to hand in.
Maybe the program is designed to weed out people who thought it would be awesome to design video games but don’t understand what the job actually requires.
This is all terrible, TERRIBLE advice. So WHAT if the OP has little talent or desire in the area of coding? There are dozens of careers paths where even half-assed coding ability makes you FAR more marketable. Granted, you’re even MORE marketable if you’re a hell of a coder. However…
Granted, it’s possible that the OP should choose a career path that involves more general knowledge of coding and less actual coding ability. However, let’s not tell him to drop all his CS classes tomorrow, and give up on learning anything else in the field, hmm?