• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Michael Tanczos

Negative programmer reaction of the Code.org Video

76 posts in this topic

I strongly believe you should teach it in a class using GCC on a Linux-based computer with X Window System disabled (no GUI whatsoever for anything, for all of you non-NIX-ers).

X disabled? Think of the children!

0

Share this post


Link to post
Share on other sites

But, if you are to teach programming, I strongly believe you should teach it in a class using GCC on a Linux-based computer with X Window System disabled (no GUI whatsoever for anything, for all of you non-NIX-ers).

Are you for real? How relevant a skill is it in this day and age, to be able to operate bash and emacs on a 80-character display?

 

There is no harm in teaching friendly languages (say, python, or ruby), in a friendly environment (such as a slick IDE and/or text editor). There's no reason why you should make a student wade through an arcane an unfamiliar shell, just to edit or run their program.

 

Don't get me wrong, I am of the opinion that any engineer worth his salt can excel at working in such a limited environment - but it has nothing to do with computer science, or learning to program, and you are liable to scare off an entire generation of otherwise suitable candidates.

Edited by swiftcoder
0

Share this post


Link to post
Share on other sites

Are you for real? How relevant a skill is it in this day and age, to be able to operate bash and emacs on a 80-character display?
 
There is no harm in teaching friendly languages (say, python, or ruby), in a friendly environment (such as a slick IDE and/or text editor). There's no reason why you should make a student wade through an arcane an unfamiliar shell, just to edit or run their program.
 
Don't get me wrong, I am of the opinion that any engineer worth his salt can excel at working in such a limited environment - but it has nothing to do with computer science, or learning to program, and you are liable to scare off an entire generation of otherwise suitable candidates.

It's not about scare tactics, its about the modern kid being extremely impatient with technology and used to the instant gratification that comes with computing products like touch screens, ultra-user-friendly GUI's, mobile phones, digital media, and the overall misconception about what programming is, and the nature of computing machinery. Yes, we have popular culture to thank for that, but still, I am of the opinion that giving the student the limited tools is what increases attention span and patience, increases understanding, and breeds good engineers for when they get in the real world where everything isn't in ANSI C anymore and you end up using a plethora of tools and languages. That way, they aren't dependent on anything whatsoever and while you may use more convenient tools, you can master them and have a much more complete knowledge of things than someone who starts out on ruby and stays there, maybe dabbling a bit in C and/or Java.

Edited by MrJoshL
0

Share this post


Link to post
Share on other sites

People ... people ....

 

Let me add my 2 cent.

 

First, watch this Nova Science epsido

 

http://www.youtube.com/watch?v=XBw8azOR8pk

 

a) That will answer someone question on why learning a musical tool is important. Yes, it is.

b) That is also the reason why learning programming is logic. It's not about the syntax or Asm push and pop. It's about understanding a problem, use logical problem solving, solve it in the right manner to get the right result. And this will help you think, solve problem, and shape you brain to best use it.

 

Thanks.

 

EDIT:

 

I just notice that the video clip was a 30 second intro for the episode. i don't have the time now, but just search around for the complete episode. Sorry. I know it existed on youtube...

 

Here, straight from the source

 

http://www.pbs.org/wgbh/nova/body/how-smart-can-we-get.html

Edited by FableFox
0

Share this post


Link to post
Share on other sites

It's not about scare tactics, its about the modern kid being extremely impatient with technology and used to the instant gratification that comes with computing products like touch screens, ultra-user-friendly GUI's, mobile phones, digital media, and the overall misconception about what programming is, and the nature of computing machinery. Yes, we have popular culture to thank for that, but still, I am of the opinion that giving the student the limited tools is what increases attention span and patience, increases understanding, and breeds good engineers for when they get in the real world where everything isn't in ANSI C anymore and you end up using a plethora of tools and languages. That way, they aren't dependent on anything whatsoever and while you may use more convenient tools, you can master them and have a much more complete knowledge of things than someone who starts out on ruby and stays there, maybe dabbling a bit in C and/or Java.

And all I read here is 'blah blah blah instant this blah blah satisfaction that'.

I, like many others on this board, started out with BASIC (In 1991, I was 11) - the instant feedback and gratification of seeing something I wrote was what kept me going, interested and pushing forward with my knowledge. I tried a couple of times to learn C but it was just boring cruft, I had no interest in it and I was getting good results with BASIC and 68K Assembly so didn't bother to learn it.

If, when I was 11, someone had sat me down in front of the system you were describing... well, frankly chances are this board would be missing one of the best program solvers/coders on here (yes, egotistical but frankly its true smile.png) because when you are young you want that feedback.

Now, not everyone is going to go on in their own time and learn the guts of a computer, how things work from the ground up and pick up other languages - maybe they play around in their Python box for a bit while it interests them and you know what that is just fine.

Not everyone needs to know the ins and outs of a system, just being able to solve a problem using something like Python, or indeed access to the skill set that using it would develop, would be useful. But for some people exposure to this might well flip on a switch which causes them to go out and learn more, push the boundaries and generally experience a subject they would have otherwise missed out on because no one said 'hey, want to try this?'.

(Which is something I only had because we had a BBC Micro at home, my dad could code a little BASIC as he was interested in technology and I happened to have a friend who could code in BASIC.)

The idea isn't to turn out fully qualified C engineers who could write you the next doom; the idea is to expand the skill set of people in general and given those interested exposure to something else.

To draw upon the exposure to music example people have thrown around; going your route would be like asking people to start off with a stave of music and a harp to see if they liked music. Where as the better choice would be to start them with something simple like a Xylophone or keyboard and let them play around a bit, teach them some music theory and see how they like the subject... kinda like how I was introduced to it.

(Amusingly I have a GCSE in Music but no qualification in anything directly computer programming related until I got my degree in Software Engineering. There was an A-Level in computing but as I was already taking Electronics, Maths and Biology they wouldn't let me do that too, which is a shame on reflection as I recall writing someone's assignment for it in about 5 minutes during a maths lesson once... oh well)
0

Share this post


Link to post
Share on other sites

The idea isn't to turn out fully qualified C engineers

I do see the great flaws in my logic, and I greatly admire and respect your skills and opinions, but don't you think that the purpose is defeated if you aren't training potential engineers to be the best there is, the "cream of the crop"?

 

I sometimes might say stupid, belligerent, and heedless things here, but if there are three points of what I'm trying to express in this thread:

1. To train tomorrow's absolute best engineers, you have to start from the core, just like we do in mathematics, among other subjects.

2. I admit that there has to be some kind of quick return on the initial time investment, but starting out with Scratch, Alice, Ruby, or other things is a mistake. Those things are definitely useful and wonderful later, but shouldn't be the base.

3. These classes should NEVER be mandatory, lest the purpose be utterly defeated.

0

Share this post


Link to post
Share on other sites

The idea isn't to turn out fully qualified C engineers

I do see the great flaws in my logic, and I greatly admire and respect your skills and opinions, but don't you think that the purpose is defeated if you aren't training potential engineers to be the best there is, the "cream of the crop"?

 

I sometimes might say stupid, belligerent, and heedless things here, but if there are three points of what I'm trying to express in this thread:

1. To train tomorrow's absolute best engineers, you have to start from the core, just like we do in mathematics, among other subjects.

2. I admit that there has to be some kind of quick return on the initial time investment, but starting out with Scratch, Alice, Ruby, or other things is a mistake. Those things are definitely useful and wonderful later, but shouldn't be the base.

3. These classes should NEVER be mandatory, lest the purpose be utterly defeated.

 

The reason I think these classes should be mandatory and simple is to get people who otherwise would not have tried it engaged. How many people out there have the potential to be excellent engineers but never get into it because they are not exposed to it? That's why I think it doesn't matter how much the students actually learn about programming in these basic classes. It's just a teaser to get those who normally would not have signed up for a programming course a chance to try it out to see if it's actually a good fit for them. In addition, I do not think it's possible to turn out great programmers from an academic institution. The best that I have worked with have a passion for it and would have been great regardless of their education. However they all have to have been exposed to it at some point for it to click for them and for that interest to turn into a passion. That is the opportunity we should be giving to everyone.

0

Share this post


Link to post
Share on other sites

don't you think that the purpose is defeated if you aren't training potential engineers to be the best there is, the "cream of the crop"?

You are assuming that the purpose here is to train engineers, but I'd say that is missing the point.

 

The purpose is to give kids the tools they need to make an educated decision about whether they want to pursue training as an engineer. You can turn pretty much anyone into a competent engineer, given enough determination and time - but you can't do that unless they want to be an engineer.

0

Share this post


Link to post
Share on other sites

And all I read here is 'blah blah blah instant this blah blah satisfaction that'.

I, like many others on this board, started out with BASIC (In 1991, I was 11) - the instant feedback and gratification of seeing something I wrote was what kept me going, interested and pushing forward with my knowledge. I tried a couple of times to learn C but it was just boring cruft, I had no interest in it and I was getting good results with BASIC and 68K Assembly so didn't bother to learn it.

If, when I was 11, someone had sat me down in front of the system you were describing... well, frankly chances are this board would be missing one of the best program solvers/coders on here (yes, egotistical but frankly its true smile.png) because when you are young you want that feedback.

Now, not everyone is going to go on in their own time and learn the guts of a computer, how things work from the ground up and pick up other languages - maybe they play around in their Python box for a bit while it interests them and you know what that is just fine.

Not everyone needs to know the ins and outs of a system, just being able to solve a problem using something like Python, or indeed access to the skill set that using it would develop, would be useful. But for some people exposure to this might well flip on a switch which causes them to go out and learn more, push the boundaries and generally experience a subject they would have otherwise missed out on because no one said 'hey, want to try this?'.

(Which is something I only had because we had a BBC Micro at home, my dad could code a little BASIC as he was interested in technology and I happened to have a friend who could code in BASIC.)

The idea isn't to turn out fully qualified C engineers who could write you the next doom; the idea is to expand the skill set of people in general and given those interested exposure to something else.

To draw upon the exposure to music example people have thrown around; going your route would be like asking people to start off with a stave of music and a harp to see if they liked music. Where as the better choice would be to start them with something simple like a Xylophone or keyboard and let them play around a bit, teach them some music theory and see how they like the subject... kinda like how I was introduced to it.

(Amusingly I have a GCSE in Music but no qualification in anything directly computer programming related until I got my degree in Software Engineering. There was an A-Level in computing but as I was already taking Electronics, Maths and Biology they wouldn't let me do that too, which is a shame on reflection as I recall writing someone's assignment for it in about 5 minutes during a maths lesson once... oh well)

yeah, I started off also with BASIC, generally with QBASIC.
the quick feedback was generally an advantage, as one could edit some stuff, and hit a key, and run it.

VS + C# sort of offers a similar experience (though IntelliSense is sort of a love/hate thing, like autocomplete is nice but I also like the ability to just type some crap without autocomplete expanding things to random crap and/or grabbing the cursor, so more generally prefer editors that use something like TAB-complete instead).

things like ability to edit code during debugging, ... can also be nice.


for C and C++, the need to go through an often long/slow rebuild process is kind of a drawback, but its advantages lie in other areas. for people new to programming, this itself is likely to be a bit of a disadvantage (though partly offset by the advantage that if using an IDE, at least probably their apps will be small enough that they wont be subjected to a several-minute rebuild cycle...).

how I originally moved over to C was mostly by messing with the Wolf3D and Doom source, and by the time I started getting a little better there was the Quake and later Quake 2 source to mess with (then I started messing a lot more with 3D via OpenGL, ...), ... (but, GPL meant I would later have to drop most of this code).

still mostly using C though, mostly at this point due to most of my tools being mostly C specific (the code is somewhat "tooled up", for better or for worse, sort of like Obj-C but without so much nasty-looking syntax). the second-place language is my script-language.

technically my engine also includes its own built-in code editor and can do "F5 to execute", but this is rarely used as the UI kind of sucks (it is sort-of part-way between something like QBasic and something like ViM), and it executes inside the console as well (FWIW, the console buffer is loosely comparable to text-mode graphics hardware, and it is possible for "programs" running in the console to hook into various events, ...). (I actually debated between this and using ANSI / VT100 control codes, which my console code also uses to some extent). its UI badness though still leaves it generally preferable to use a "real" text-editor, and then just do a ';load("whatever");' command from the console to reload it, or just use ";whatever" commands (";" prefix is magic), which immediately evaluate code fragments (not good for non-trivial code though, given nearly everything has to be typed into a single console command, *1).

ironically though, most of the script-code still ends up merged into the various engine DLLs at build-time though (generally post-link, a tool goes and shoves all the script-code/... into the DLL). (note: it is not compiled to native code at this stage, this part typically happens incrementally at run-time).

*1: note: turns out to be fairly useless for (standard) C, given how the language works. C turns out to make a pretty poor script language and is not well suited to interactive entry, and otherwise extensions and variations from the standard would be needed to increase suitability (though most code could probably still work, people can get into fights over the edge-cases, and strictly speaking, things like Ch and CINT aren't C).


but, yeah, in any case, immediate feedback is probably more useful in keeping peoples' interest...
the more painful or awkward it is made, the more likely they are to be scared off or loose interest and do something else... Edited by cr88192
0

Share this post


Link to post
Share on other sites

The reason I think these classes should be mandatory and simple is to get people who otherwise would not have tried it engaged. How many people out there have the potential to be excellent engineers but never get into it because they are not exposed to it? That's why I think it doesn't matter how much the students actually learn about programming in these basic classes. It's just a teaser to get those who normally would not have signed up for a programming course a chance to try it out to see if it's actually a good fit for them. In addition, I do not think it's possible to turn out great programmers from an academic institution. The best that I have worked with have a passion for it and would have been great regardless of their education. However they all have to have been exposed to it at some point for it to click for them and for that interest to turn into a passion. That is the opportunity we should be giving to everyone.

But then again, lets say there is a mandatory "Intro to JavaScript Programming" course at an average American high school. You take it after Algebra, and you have to get at least a C average in the course to graduate. Lets say the class consists of 35 kids. That's a lot of kids, but computers are expensive, and everyone at school has to take this class one year or another before graduation. How many do you think are going to have the "click" with programming that would make them want to pursue it? Not all of them, and by that I mean only a few. Nothing at all is wrong with not liking programming, but do you think if Jonathan P. Doe is in a class with a buddy or two who aren't good students and are only taking the class to graduate that they will behave? They will probably not. And when you have a classroom like that nothing gets done, distractions are made, and the class lags behind severely. The teacher might have to teach Randall P. Roe and 7 other kids a different way than Amy P. Soe and 11 other kids. What happens if Jonathan P. Doe is non-stop screaming with so many people that the teacher loses control? What do you do if Sarah P. Boe finishes all of her assignments early and spends the time undermining the teachers efforts? What do you do if all but a few kids are ruining the class for everybody? I'm sorry, but I don't see how that could work. I know a high school computer teacher, and my examples come straight from things they have said go on in their classes. Because they are mandatory and not leveled like the rest of classes, they become classes where no concentration or study is done whatsoever. That's why, IMO, if programming has to be taught, it should be an adjunct to math courses like Advanced Algebra, Calculus, but mostly Discrete/Analytical Mathematics. Even then, I don't believe enough people would even truly like it at all for such a program to be effective.

0

Share this post


Link to post
Share on other sites

The reason I think these classes should be mandatory and simple is to get people who otherwise would not have tried it engaged. How many people out there have the potential to be excellent engineers but never get into it because they are not exposed to it? That's why I think it doesn't matter how much the students actually learn about programming in these basic classes. It's just a teaser to get those who normally would not have signed up for a programming course a chance to try it out to see if it's actually a good fit for them. In addition, I do not think it's possible to turn out great programmers from an academic institution. The best that I have worked with have a passion for it and would have been great regardless of their education. However they all have to have been exposed to it at some point for it to click for them and for that interest to turn into a passion. That is the opportunity we should be giving to everyone.

But then again, lets say there is a mandatory "Intro to JavaScript Programming" course at an average American high school. You take it after Algebra, and you have to get at least a C average in the course to graduate. Lets say the class consists of 35 kids. That's a lot of kids, but computers are expensive, and everyone at school has to take this class one year or another before graduation. How many do you think are going to have the "click" with programming that would make them want to pursue it? Not all of them, and by that I mean only a few. Nothing at all is wrong with not liking programming, but do you think if Jonathan P. Doe is in a class with a buddy or two who aren't good students and are only taking the class to graduate that they will behave? They will probably not. And when you have a classroom like that nothing gets done, distractions are made, and the class lags behind severely. The teacher might have to teach Randall P. Roe and 7 other kids a different way than Amy P. Soe and 11 other kids. What happens if Jonathan P. Doe is non-stop screaming with so many people that the teacher loses control? What do you do if Sarah P. Boe finishes all of her assignments early and spends the time undermining the teachers efforts? What do you do if all but a few kids are ruining the class for everybody? I'm sorry, but I don't see how that could work. I know a high school computer teacher, and my examples come straight from things they have said go on in their classes. Because they are mandatory and not leveled like the rest of classes, they become classes where no concentration or study is done whatsoever. That's why, IMO, if programming has to be taught, it should be an adjunct to math courses like Advanced Algebra, Calculus, but mostly Discrete/Analytical Mathematics. Even then, I don't believe enough people would even truly like it at all for such a program to be effective.

 

These are problems in every class and is in no way unique to programming. An introductory programming class should't be any different from a typing class which is also required in most schools now and requires computers. As I said, the primary reason I want it required is to give every student the opportunity to experience it and decide if it's a course they would like to pursue. It very well could be the opportunity they need to turn their lives around.

0

Share this post


Link to post
Share on other sites

But then again, lets say there is a mandatory "Intro to JavaScript Programming" course at an average American high school. You take it after Algebra, and you have to get at least a C average in the course to graduate. Lets say the class consists of 35 kids. That's a lot of kids, but computers are expensive, and everyone at school has to take this class one year or another before graduation. How many do you think are going to have the "click" with programming that would make them want to pursue it? Not all of them, and by that I mean only a few. Nothing at all is wrong with not liking programming, but do you think if Jonathan P. Doe is in a class with a buddy or two who aren't good students and are only taking the class to graduate that they will behave? They will probably not. And when you have a classroom like that nothing gets done, distractions are made, and the class lags behind severely. The teacher might have to teach Randall P. Roe and 7 other kids a different way than Amy P. Soe and 11 other kids. What happens if Jonathan P. Doe is non-stop screaming with so many people that the teacher loses control? What do you do if Sarah P. Boe finishes all of her assignments early and spends the time undermining the teachers efforts? What do you do if all but a few kids are ruining the class for everybody? I'm sorry, but I don't see how that could work.

So you are basically asking what a teacher should do in a typical day at work?

I am sorry but I fail to see how any of these problems are related to teaching programming. These are daily problems every teacher has to face in every single classroom in the world.

The answer to your proposed situation is simple: Learn to teach or get out of the classroom.


L. Spiro
0

Share this post


Link to post
Share on other sites

I am sorry but I fail to see how any of these problems are related to teaching programming.

Its not just programming, its every mandatory, non-leveled class. That is my point, and if programming is required, it will become yet another mandatory, non-leveled class, and will end up with all of the aforementioned issues, just like typing and MS Office classes already have.

0

Share this post


Link to post
Share on other sites

Okay?

So?

 

Gosh you are totally right.  What were we thinking?  The possibility of a programming class becoming like every other class on the planet totally outweighs the potential for some to have their lives turned around, getting turned on to something they didn’t even know was possible, and overall giving the masses a better skillset required to take back jobs that should never have been given to India in the first place.

 

 

Sorry to put it so bluntly but you don’t seem to be getting the rebuttal.

It doesn’t matter.

There is a downside to every good side.  It’s a classroom.  Teachers do their jobs and deal with it.

The students take from it what they will, true in all classes.  I had to sew in school.  I took nothing away from it.  But some students did.

Meanwhile we had a very loud and disruptive class in which we were to make things with LEGO® Technic™.

I completely blocked out the noise and distractions and blew through the pages of instructions on things to make in days.  I found my thing, and it didn’t matter how loud the classroom was.  It was literally the loudest classroom I have ever attended.  I now have over $1,400 worth of LEGO® Technic™ on my desk at work.

 

 

L. Spiro

0

Share this post


Link to post
Share on other sites

Maybe it is a wonderful thing that I am not involved with any type of school board or department of education. We all have opinions, and I respect yours and will further consider mine.

0

Share this post


Link to post
Share on other sites
There's a few different ways that this "mandatory coding" is being taken by people in this thread. Personally, I think it would make more sense for:
*) a late primary school class, not many a hours a week, on scratch/etc (in my day: BASIC/LOGO/Hypercard/etc) -- those kinds of simple programming environments that can just scratch the surface.
*) High school electives that broadly cover programming theory - logic, bits, bytes, gates, operators, functional decomposition, OO, touching on a few languages (simple asm emulator, python, C, C#, javascript, whatever), what is an IDE/compiler/interpreter/etc. Laying the foundations for university study, which will start with the actual programming 101 subjects.

Rather than:
*) Javascript 101 is a mandatory high school subject.

*Disclaimer: this former idea is the education that I basically did have... except the primary school bits were more like an hour per month, and I had to go out of my way finish the lesson plan quickly to get time to play with these technologies... any class involving computers was very unstructured.



I agree that JoshL's "what ifs" are basically just "what if a teacher has to do their job?". Guess what? Teaching is a damn hard job these days. Those complications exist in every single class and it's the teacher's job to deal with them.
I have a lot of teachers in the family, and disruptive students exist in every class, even the core ones, and even their elective ones...
 
Half a century ago, the teacher would simply beat them with a stick (or threaten to), but that's not palatable any more... These days, you simply kick them out of the class room to ensure the rest of the class can continue learning while they fail. Again, this occurs in every single class - curriculum is not the problem/solution to poor discipline.

Lets say the class consists of 35 kids. That's a lot of kids, but computers are expensive, and everyone at school has to take this class one year or another before graduation.

Every school in a first world country should already be equipped to teach a computer-centric class to every student.
When I was in school in the 90's, every class room had 1 PC, the library had a dozen, and there were 3 full classrooms with 30+ PCs.
Today, on top of that, every child is given their own personal laptop.
N.B. this is for public schools -- paid private schools have it even better and/or can demand students to bring their own iPad.
PC's are cheap compared to other expenses... If your schools aren't equipped to teach computing subjects, you've got bigger problems...

What happens if Jonathan P. Doe is non-stop screaming with so many people that the teacher loses control?

He gets kicked out of the classroom and his parents warned (who hopefully discipline him). Repeat until the little shit fails or behaves.

What do you do if Sarah P. Boe finishes all of her assignments early and spends the time undermining the teachers efforts?

As above, kick her out. This actually happened to me in my high-school IT class. Straight A's led to too much time to play with Photoshop and trojan horses, and to create IP address maps of the school to harass the teacher... I got kicked out until I behaved. Fair enough. Edited by Hodgman
0

Share this post


Link to post
Share on other sites

 The teacher might have to teach Randall P. Roe and 7 other kids a different way than Amy P. Soe and 11 other kids. What happens if Jonathan P. Doe is non-stop screaming with so many people that the teacher loses control? What do you do if Sarah P. Boe finishes all of her assignments early and spends the time undermining the teachers efforts? What do you do if all but a few kids are ruining the class for everybody? I'm sorry, but I don't see how that could work. I know a high school computer teacher, and my examples come straight from things they have said go on in their classes. Because they are mandatory and not leveled like the rest of classes, they become classes where no concentration or study is done whatsoever. That's why, IMO, if programming has to be taught, it should be an adjunct to math courses like Advanced Algebra, Calculus, but mostly Discrete/Analytical Mathematics. Even then, I don't believe enough people would even truly like it at all for such a program to be effective.

 

I'll chime in again, since I am a high school programming teacher.   Teachers deal with different level students alll the time.. so it's not completely unusual to see what you are describing.   In my case I differentiate my instruction by creating different levels to assignments by having a core set of requirements geared towards the beginner, but additional challenges that are meant for intermediate and advanced students.   My goal is to have all students being challenged all the time.   I want as little to no downtime as possible for students so they can stretch their abilities as much as possible.   For the beginner students I know exactly who they are.. and while I always want to see them stepping up, sometimes it takes a lot of encouragement and celebration of the small victories to build up their confidence.

 

And for students who act like dicks when they finish early, that's usually because they aren't being challenged enough.   As long as you can put them in their place by showing them just how much they don't know yet you'll be fine.   Otherwise, pull them aside after class ends and find a way to improve their classroom experience.. sometimes complementing their abilities and come up with a great side project they can work on can go a long way.   "Hey Jim, your programming skills are pretty impressive so far and I know you get your assignments done quicker than anybody else.   I have a pretty big programming problem that I'm working on and I think you can help..."

 

Project Euler is my "warmup" heaven since it is filled with little coding challenges to get their brains going. 

 

That being said, I'm going to have to side with the idea that programming should not be mandatory as a graduation requirement, but should nonetheless be introduced at an early age.   I think that states should have better information technology and computer science certifications (that is to say, they should actually exist) so that those with relevant skills don't need to take countless accounting, business administration, and other non-relevant courses in order to teach programming.   Even for me with four levels of calculus in my CS degree I had to go the math certification route and take an additional five math classes.

 

A more substantial effort should be made to promote the importance of this particular area of education.   It's being neglected largely because the teachers aren't available to teach it.   And those who can teach it end up being largely unqualified to teach programming.   Really, for a lot of programming teachers it's going to be a love of teaching and a passion for picking up as much as you can about the subject that is going to make a programming teacher great.   A lot of the concepts teachers employ these days in any other subject still apply.

 

A basic teacher lesson will include some type of warmup activity, a short lesson, a period of time where you are asked to solve problems in a guided manner, a period of time where you are left to your own devices as an individual to perform the lesson objectives, and a mandatory review period at the end of the lesson in which students are compelled to produce some type of evidence of their learning for the day (think of it as answering the question "what did you learn?").

 

For programming I might ask students to write a small chunk of code that produces the sum of every 4th prime number below 1 million, give a lesson that introduces methods, have students work on creating a few method specifications based off of what I ask, then having them complete a project given some spec.. at the end of the class I'll pull them back together and have them all write down on paper a solution to some problem I give that will show they understand methods.

Edited by Michael Tanczos
0

Share this post


Link to post
Share on other sites

Let me give my own perspective.

 

When I was 12 years old (first year at a boarding school) we was thought programming via GWBasic. It wasn't one of the core school subject (there was eight of them) and there is no final year exam either.

 

It was one hour per week kind of class that we must take in the evening, just like sport and boy scout. It was my first time and I was hooked (first time with a computer too). Before that I've only seen computers on the TV (I live in a village, after all).

 

The rest was history but a lot of things happened along the way. As you can see I still hang here over the years but I never worked on a programming job.

 

So uh, thing can be done. I don't remember any problem in the class. But then again, it was a boarding school where the best of the previous year big exam were taken in. So we are talking about disciplined kids (at least when it come to studying, bullying is another matter - even if you are straight A student) that good at learning and adapting to things.

0

Share this post


Link to post
Share on other sites

Gosh you are totally right.  What were we thinking?  The possibility of a programming class becoming like every other class on the planet totally outweighs the potential for some to have their lives turned around, getting turned on to something they didn’t even know was possible, and overall giving the masses a better skillset required to take back jobs that should never have been given to India in the first place.

 

Sad to say that is capitalism in real life. Currently vfx people are having the same problem too. But businesses will always find way to cut cost. And what happened to car manufacturing or cloth or toys will happen to programmers and 3d animators.

0

Share this post


Link to post
Share on other sites


But (at least in the UK), we do still teach children creative writing, to give them the chance to write stories

Is that mandatory? I know at least in some schools in the US they have such optional classes, and some things like creative writing are touched upon in general English classes. But yeah, I agree with you, I'm all for exposing more children to programming - I just don't think its a good idea to expect to have all of them become good at it, or take a liking to it.


I don't know what exactly is mandatory - as I understand it, the Government decides things that must be learned as part of the "National Curriculum", which covers all sorts of things that should be taught, but I don't know the details, or what it says on Creative Writing in general. "Information and communication technologies in education" is part of the National Curriculum, but I don't know how much is taught on programming.

When people say "optional" regarding the US, what does this mean - do high school students have a lot of choice about what subjects to do?

In the UK, choices are made for 14-16 (GCSEs), though this comes with constraints (mainly for the logistics of teaching), so you end up having to pick say, one language, one art, etc (with perhaps a bit of leeway). Some subjects are optional in the sense that schools don't have to teach them (e.g., Latin), or Religious Education is a special case where parents can have their children excluded.

Today, on top of that, every child is given their own personal laptop.
N.B. this is for public schools -- paid private schools have it even better and/or can demand students to bring their own iPad.

Which depresses me even more - even better? They can neither program, type, nor do handwriting with it. The poor kids can't even use a decent touch keyboard like Swype! (Plus the way it's anticompetitive, catering to just one company - rather than "must have a laptop" it's every school saying "must have a Samsung laptop".)

Whilst I wouldn't go as far as saying people should learn in a GUI-less Linux, it does depress me to think we'll have a generation of students well educated at posting to Facebook and playing Angry Birds, with children's education fees going to Apple.

I do agree though that computers are plentiful. And if schools have got money to throw on non-computers from Apple, they're not short of money. Edited by mdwh
0

Share this post


Link to post
Share on other sites
I will admit I have not read the entire thread. Though just about my whole family is or has been a teacher. I have talked to most of them yesterday and tonight getting their opinion. I found that EVERY single one of them said they would be ALL FOR a Computer Science or programming course being required. They each said they believed it would help with problem solving and more. I'm the only one in my family who is even into programming and Computer Science. So they don't know a lot about it. They just understand it does require problem solvin and they felt that requiring students would only help. My mom, who is recognized by the state of Texas as being a very good educator for her grade level, said she can't believe it is not required yet and says it makes her mad that classes like that aren't required!

I just wanted to put that in...
0

Share this post


Link to post
Share on other sites

Today, on top of that, every child is given their own personal laptop.
N.B. this is for public schools -- paid private schools have it even better and/or can demand students to bring their own iPad.

Which depresses me even more - even better? They can neither program, type, nor do handwriting with it.

You can do all of the above with an ipad. Admittedly the typing won't be great (true for any tablet) but add a bluetooth keyboard and you're sweet.
 
I use my ipad for taking handwritten notes at work every day. 
 

The poor kids can't even use a decent touch keyboard like Swype! (Plus the way it's anticompetitive, catering to just one company - rather than "must have a laptop" it's every school saying "must have a Samsung laptop".)

Whilst I wouldn't go as far as saying people should learn in a GUI-less Linux, it does depress me to think we'll have a generation of students well educated at posting to Facebook and playing Angry Birds, with children's education fees going to Apple.

I do agree though that computers are plentiful. And if schools have got money to throw on non-computers from Apple, they're not short of money.

I don't think Hodgman meant iPad (as in the Apple product) specifically and more tablet in general (could be wrong there, but that's what some schools are opting for in NZ).

 

And being realistic here, we're not expecting kids in these classes to produce a AAA game or an enterprise app. We're talking about teaching them an understanding of how computers obey one command after another. 

0

Share this post


Link to post
Share on other sites

And being realistic here, we're not expecting kids in these classes to produce a AAA game or an enterprise app. We're talking about teaching them an understanding of how computers obey one command after another.

QFE.

 

It's exposing everyone to the basics.

0

Share this post


Link to post
Share on other sites

This thread is kind long and I am getting into it kind late, but I want to add something that I did not yet identified in my overview of the thread.

 

Currently we are experiencing a big rush of computers and embedded systems in our lives. The right word I am aiming here is ubiquitous computing.

I think most of you agree that the future we are looking for is something where the systems are so natural in our lives we won't event notice it.

 

Okay there is maybe a SciFi utopic model for this kind of thing, but analysing our current life model I would like to point out the following:

- A regular person (in the sense of someone without much computer skills/knowledge) often is overwhelmed by the amount of information computers and systems present

- If the regular person understood the basics of how a computer work, maybe it would not scare him/her so much. A little bit of the "magic" would go away and leave space to reasoning and logic (which is good)

- A kid has a great potential for learning and less problems handling with computers

- So a kid is totally capable of learning the basic backend of computers and systems, and capable of achieving incredible things with it (I already pointed out in an older thread the potential of 9-13 yo kids hacking and programming incredible stuff)

 

Therefore, if we start implementing a course on computer systems / programming of some sort for our kids, this transition to ubiquituous programming will be a little easier and maybe we can find out some hidden geniuses out there too.

 

I think that the good things achieved by more people familiar with programming/systems organization overcomes the bad stuff.

Edited by kuramayoko10
0

Share this post


Link to post
Share on other sites

I don't think Hodgman meant iPad (as in the Apple product) specifically and more tablet in general (could be wrong there, but that's what some schools are opting for in NZ).

In the public school system, every student is given an identical/standard laptop for free, which is pre-loaded with a bunch of educational software that the teachers can rely on every student being able to access.

In the private school system though, they do what they want. Yes, I have heard of parents being told that little Johnny has to bring an Apple iPad to school.
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0