• The Computing and IT Curriculum, Why it's failed me and many others
    129 replies, posted
I want to learn programming but just can't do it without some external help and motivation. Next year my IT teacher has decided to just say "fuck you" to the curriculum he's been given and teach us programming with Java as our main. (Originally it was gonna be SQL using Access) He's a pretty competent guy and there's only four people in the class so it should be a pretty involved education. [editline]25th October 2013[/editline] He's got this beard that makes him look like a tall, young, skinny George Lucas. It's glorious and will help my grades probably.
Found this very nice thread that may be of use to some: [url]https://news.ycombinator.com/item?id=6616581[/url] And the article mentioned: [url]http://zacharyernst.blogspot.com.br/2013/06/why-your-professors-suck_23.html[/url]
My experience in the education system is largely the same. I got into programming on a whim and learned some really basic stuff. Made really awful websites and everything else. I didn't really get into teaching myself because I assumed I could take classes and benefit more from it. Wrong. My high school didn't have anything more than a basic computing class, where we learned to type, and where we learned to use word, excel, access, and powerpoint. Well, suffice it to say, I could type faster than the teacher on the first typing test we ever took, and was sufficient at all of these things as a result of not being a rock. Anyhow, I had already chosen to go to college at this point so I decided to wait until then while I continued wasting my time in high school. So college rolls around, and I sign up for a ton of computer science classes. Java, C++, html, php. I mostly wanted to learn C++, so I put more of a focus on that. A couple days before the class started, I got the notion that the people who would be going to college would be these semi average coders already. I assumed they will have already dabbled in the language for awhile and simply wanted formal education. As a result, I decided to spend a bit of those 2 days learning some basic C++ programming. I learned how to create classes, how inheritance worked, how structs worked, prototyping functions, and all the generally really simple stuff (loops, control statements, blah blah). The only stuff I didn't delve into were like pointers and overloading operators. I dabbled with it, but I didn't really understand it really well. I figured we'd get to that in class, so I just let it go. Then I get in class. We spend the entire first week learning how to install visual studio, and how to open a file to edit. I was like "okay, maybe it's just a blowoff week." We spend the entire next week talking about the std::cout function, and making a "hello world" program. I'm a bit frustrated at this point, and am simply waiting for the pace to speed up. The we spend the rest of the class covering all of the basic basics. The stuff I learned in all of about 2 hours. If statements, loops, switch statements. The final project included structs, but we didn't make them. Nope. They were made completely for us. As was 90% of the code for every other project. The projects usually consisted of us adding about 10-15 lines of code in order to make things work. This usually mean calling a function that was already set up for us, filling in random variables, assigning information to variables, and doing other stuff that should have been completely common sense. Suffice it to say, it's been about 2 years now, and I haven't actually 'learned' anything from my teachers regarding C++. None of my other programming classes were any different. In my html class we learned to set up websites by making tables. And completely avoiding CSS. Because who uses that stuff, right? Cough*. I think the curriculum is slow, outdated, and simply mindbogglingly useless. I was able to personally teach my friend how to code basic programs in C++ in less than 2 weeks of just basic instruction. To the point that he was able to create his own working string class for fun, using pointers and everything. I don't understand how difficult it could possibly be to teach people these things. It's not difficult to learn, and there are resources EVERYWHERE that teach you this stuff. The only class where I did actually learn something was my assembly language class, and that's just because there are practically no resources outside of class. What's worse than all of this is that there are students that complain about the difficulty of it all, who drop out, and students who complain that the teacher explains things too quickly. The same teacher who spends 4-5 weeks explaining what a loop is. And the same teacher who spends 3-4 weeks explaining if statements. It's all just a mess. I don't understand why people place a degree on such a pedestal when it's just a snail's paced version of the way that most programmers learn the same thing. Not to mention the fact that half of the things they teach are either inefficient, ineffective, or generally outdated.
[QUOTE=tidus1112;42667071]My experience in the education system is largely the same. I got into programming on a whim and learned some really basic stuff. Made really awful websites and everything else. I didn't really get into teaching myself because I assumed I could take classes and benefit more from it. Wrong. My high school didn't have anything more than a basic computing class, where we learned to type, and where we learned to use word, excel, access, and powerpoint. Well, suffice it to say, I could type faster than the teacher on the first typing test we ever took, and was sufficient at all of these things as a result of not being a rock. Anyhow, I had already chosen to go to college at this point so I decided to wait until then while I continued wasting my time in high school. So college rolls around, and I sign up for a ton of computer science classes. Java, C++, html, php. I mostly wanted to learn C++, so I put more of a focus on that. A couple days before the class started, I got the notion that the people who would be going to college would be these semi average coders already. I assumed they will have already dabbled in the language for awhile and simply wanted formal education. As a result, I decided to spend a bit of those 2 days learning some basic C++ programming. I learned how to create classes, how inheritance worked, how structs worked, prototyping functions, and all the generally really simple stuff (loops, control statements, blah blah). The only stuff I didn't delve into were like pointers and overloading operators. I dabbled with it, but I didn't really understand it really well. I figured we'd get to that in class, so I just let it go. Then I get in class. We spend the entire first week learning how to install visual studio, and how to open a file to edit. I was like "okay, maybe it's just a blowoff week." We spend the entire next week talking about the std::cout function, and making a "hello world" program. I'm a bit frustrated at this point, and am simply waiting for the pace to speed up. The we spend the rest of the class covering all of the basic basics. The stuff I learned in all of about 2 hours. If statements, loops, switch statements. The final project included structs, but we didn't make them. Nope. They were made completely for us. As was 90% of the code for every other project. The projects usually consisted of us adding about 10-15 lines of code in order to make things work. This usually mean calling a function that was already set up for us, filling in random variables, assigning information to variables, and doing other stuff that should have been completely common sense. Suffice it to say, it's been about 2 years now, and I haven't actually 'learned' anything from my teachers regarding C++. None of my other programming classes were any different. In my html class we learned to set up websites by making tables. And completely avoiding CSS. Because who uses that stuff, right? Cough*. I think the curriculum is slow, outdated, and simply mindbogglingly useless. I was able to personally teach my friend how to code basic programs in C++ in less than 2 weeks of just basic instruction. To the point that he was able to create his own working string class for fun, using pointers and everything. I don't understand how difficult it could possibly be to teach people these things. It's not difficult to learn, and there are resources EVERYWHERE that teach you this stuff. The only class where I did actually learn something was my assembly language class, and that's just because there are practically no resources outside of class. What's worse than all of this is that there are students that complain about the difficulty of it all, who drop out, and students who complain that the teacher explains things too quickly. The same teacher who spends 4-5 weeks explaining what a loop is. And the same teacher who spends 3-4 weeks explaining if statements. It's all just a mess. I don't understand why people place a degree on such a pedestal when it's just a snail's paced version of the way that most programmers learn the same thing. Not to mention the fact that half of the things they teach are either inefficient, ineffective, or generally outdated.[/QUOTE] The second week of my intro-level programming class had us building a fully-functional binary<->decimal converter in Ada, with absolutely zero code provided to us. Entirely from scratch. In fact, now that I think on it, we were never given any code-base at all up until 300-level CS courses, and those bases were just interfaces / headers / prototypes of how functions we are required to have and the required syntax for them. And every class had weekly programming projects. I think the issue has less to do with the degree, and more to do with your university's curriculum. :v:
[QUOTE=hexpunK;41735911]Honestly, it works well for teaching you the structure of a program and flow of a program. The main issues I have with it are how everything is a word, where I'm now so used to C style languages it's hard to get along with. But it works well if you can use it, my college course used it in a module for teaching event driven programming (VBA in Excel to be specific).[/QUOTE] I hate VB because it just goes against every other language I've used. C#/Ruby/Javascript/PHP. Things like using just a single equals sign for comparisons and settings. Using array(0) rather than array[0] for selecting items in an array.
Honestly, the concept of being given no code whatsoever, and being expected to make something out of it is fun. That's why I got into coding. Being given every scrap of code imaginable to help you do a project that could be done by five year olds is not only meaningless, but extremely demoralizing. When you get out of the element of creation, and into the element of tedious repetition for the sake of tedious repetition, you lose the same kind of drive that made you choose computer science in the first place. At least that's what it did to me. Given, I had no intention of using college as a medium for my success in the first place, so that wasn't a huge issue, it was just extremely frustrating to have to waste so much time in class, only to complete my project in 10 minutes of being able to work on it. I mean, we did projects every week, but they were just mind numbingly easy. Our tenth project was to use a bubble sort. I was almost interested when it was given to us, because a bubble sort was actually...interesting, I suppose. Come to find out, though, the bubble sort was made for us. We had to create the array and implement it. That was all. The only time I had to make a bubble sort was for my assembly language class, and that was a pain in the ass. But for my C++ class, after more than 10 weeks of instruction, we were instructed on how to implement an already functional bubble sort in the code. That's my college's curriculum in a nutshell. I think the vast majority of colleges and universities fail to instruct on more than a very basic theoretical level. In all subjects. Not just computer science. The problem, though, is that all of the actual difficulty in computer science comes when you need to create code in a practical situation, to deal with real life problems. theoretically, all of the code is relatively simple and easy, and should work. In reality, some stuff works, some stuff simply doesn't. Why doesn't it work? Well, maybe it's just a bug in the compiler. Maybe it's not optimized well. Maybe your boss just doesn't like it. The real challenge of programming is making stuff work in a practical scenario, and college simply doesn't seem to teach that. The same thing could easily be said for mathematics, science, and any other subject you could think of.
One of the problems at my uni is that for CS majors, they say that you don't have to have any prior experience but they go so fast through the basics that if you don't have experience you get left behind. Makes the program have an obscene drop rate for the first year. I'm not in that position; I took it for granted that my high school did a great job of teaching basic CS to people who were interested (and it helped that I actually did quite a bit on my own), but I've been hearing how lots of people are struggling horribly in my uni's CS program for a while now. Admittedly, I don't really know how bad it is, as I'm in the game dev program and not the CS program, and I'm in an advanced class with only people who have prior experience. I also don't think all programs are segregated as such and I just got lucky.
I think I got lucky for my college CS courses. I live in a mostly-rural area, and go to a community college. Without any prior programming experience, the teacher (who is quite old) teaches us what and how everything does, helping us along the way if we need it, and even advises that we trash older techniques and systems. She doesn't require comments on any of our lines, but advises that we at least describe what each function or whatever does. Granted, I'm still learning and I'm still awful at code, but I feel like I'm having a better learning experience at a small 2-year college than some of you are at a full University.
[QUOTE=supersocko;42719350]I think I got lucky for my college CS courses. I live in a mostly-rural area, and go to a community college. Without any prior programming experience, the teacher (who is quite old) teaches us what and how everything does, helping us along the way if we need it, and even advises that we trash older techniques and systems. She doesn't require comments on any of our lines, but advises that we at least describe what each function or whatever does. Granted, I'm still learning and I'm still awful at code, but I feel like I'm having a better learning experience at a small 2-year college than some of you are at a full University.[/QUOTE] The less students are in a class, the more time professor can spend on each of them individually.
Started Uni as a CompSci/Informatics student in September We started with VB.NET so I'm sailing pretty smooth right now due to my past experience in C++, and due to the fact that my 'major' has pretty much become the top priority of the University, I'll supposedly be a god-tier programmer in 2.5 years. So far I'm pretty satisfied though, the teachers know what they're doing.
Sorry, you need to Log In to post a reply to this thread.