Earlier quoted context omitted.
time-travel ftw!
In 2005 Ruby 1.8 was already out, I don't get your comment...
Khan Academy: Computer Science
141–150 of 188 posts
Re: Khan Academy: Computer Science
#142Earlier quoted context omitted.
If you have to, pick C. Never ever touch C++, especially its standard IO library. Classes are of very little interest anyway (C easily emulates modules), they can learn it later. There is a crucial point that should not be ignored. The first two languages someone learns should be easy . Monstrosities like C++ give the poor beginner the impression that learning any language is hard to learn, and that would discourage…
I agree with you 100%, if you're learning to program on your own. I disagree 100%, if you're talking about a college curriculum. The intro class at my university [1] used C, and I'm incredibly grateful. If I hadn't been forced to grok pointers and malloc, I'm not sure I ever would have (I haven't done any C programming since then). But even though I'm not writing C directly, knowing how things work at a lower level h…
I don't loathe C nearly as much as C++. I understand that learning about low level is useful. Pointers are indeed a very important concept (though not so difficult once you understand that variables themselves are already a form of indirection). So is Manual memory management.
But if you are tempted to put C++ in the same basket, don't. C++ is a very very different language from C. Sure, it looks like it just has some additional features here and there, but those features make C++ practices very different from C ones.
Re: Khan Academy: Computer Science
#143High school CS teacher here. I really hate taking shots at Khan Academy, because I love what they do and his other videos have really helped a lot of my students in chemistry, economics, etc. However, he's moving through the material MUCH more quickly than I've ever been able to do as a teacher. And I get nearly 5 hours a week of face time with my students. For example, his third lecture is on for loops. My students,…
It seems that you would at least mention loops early on, to tell them that repetition is something a computer is very good at.
Re: Khan Academy: Computer Science
#144Earlier quoted context omitted.
In my head, I reserve the word "let" for immutable bindings. Or at least local bindings that people probably aren't going to mutate. I read it as "x equals five". So, between three of us, we saw that simple line of code in three different ways. I wonder what other people see in more complicated code.
The point is that if you pronounce if(x=5) and if(x==5) both as "if x equals 5", then you are making things confusing for students. You as the teacher are saying the exact same words, but mean two completely different things. Kahn made this mistake and there are student comments showing the confusion. Not correctly understanding assignment is one of the biggest failure points for beginners learning programming. The '…
x
It would be more clear that "the shit on the right" goes to that garbage on the left. But no, they had to use the `=` sign, as if saving one character where more important than not changing the meaning of one of the most used sign of all mathematics. And now nearly all popular language is making the same damn mistake.Re: Khan Academy: Computer Science
#145High school CS teacher here. I really hate taking shots at Khan Academy, because I love what they do and his other videos have really helped a lot of my students in chemistry, economics, etc. However, he's moving through the material MUCH more quickly than I've ever been able to do as a teacher. And I get nearly 5 hours a week of face time with my students. For example, his third lecture is on for loops. My students,…
What if the Kahn Academy is teaching the concept in a more clear, concise way than you are? Maybe Java isn't the best language to teach these concepts? Maybe your lessons could be more effective? I don't know what your particular situation is, but I encourage you to play around with your lessons to see if you can teach it as fast as the Kahn Academy. Then again, they could have it totally wrong.
Re: Khan Academy: Computer Science
#146Earlier quoted context omitted.
How to use a compiler. Basic shell of a Java program. That statements occur in a sequence. Practice with getting details right. Mathematical expressions. What variables are, and how assignments to expressions differ from formulas (in Excel, say). If statements and conditions. The concept of "incrementing" a variable or accumulators in general. Loops in general. See for yourself: http://cs.leanderisd.org/current/cs1/a…
Self-taught-programmer here. I've done a lot of pondering about how to teach programming because I tried to learn several times myself, both on my own and in classes. I bounced off each time, until finally sticking. I always wonder what made it different that last time, and if it applies to others. === Have you considered starting with something with less conceptual overhead than java-in-a-shell? There's so much you…
Re: Khan Academy: Computer Science
#147High school CS teacher here. I really hate taking shots at Khan Academy, because I love what they do and his other videos have really helped a lot of my students in chemistry, economics, etc. However, he's moving through the material MUCH more quickly than I've ever been able to do as a teacher. And I get nearly 5 hours a week of face time with my students. For example, his third lecture is on for loops. My students,…
Re: Khan Academy: Computer Science
#148High school CS teacher here. I really hate taking shots at Khan Academy, because I love what they do and his other videos have really helped a lot of my students in chemistry, economics, etc. However, he's moving through the material MUCH more quickly than I've ever been able to do as a teacher. And I get nearly 5 hours a week of face time with my students. For example, his third lecture is on for loops. My students,…
My students, on the other hand, complete literally 80 assignments before beginning for loops. 80 assignments? What are these assignments? Are you teaching them how to use recursion before looping in Java? I get that Java has some ceremony, but not 70 assignments worth. The first day I learned to program (with BASIC) I learned looping. I didn't know the details of it (like there was an index variable I could access),…
I was initially far more interested in how I could change the colours of things on screen and get the speaker to make funny noises. Most of what I wrote were text based adventure games so I didn't really need to loop very often.
When I did need to loop I just implemented this using a conditional IF with a GOTO that jumped back to the start of the "block" (I kept paper notes as to which line numbers each subroutine started on) if required or continued to the next line of code.
Later when I started using MS Visual Basic and figured out how to use GOSUB I would do loops essentially with recursion that would call the same subroutine again if required.
It wasn't until I decided to learn C and php that I learnt about real loop structures. At this point I assumed that everything I had done before was stupid and wrong, it was not until I took formal CS classes where I was introduced to recursion and assemly language (JMP and JE) that I realised that pherhaps I hadn't been quite so naieve before.
Re: Khan Academy: Computer Science
#149High school CS teacher here. I really hate taking shots at Khan Academy, because I love what they do and his other videos have really helped a lot of my students in chemistry, economics, etc. However, he's moving through the material MUCH more quickly than I've ever been able to do as a teacher. And I get nearly 5 hours a week of face time with my students. For example, his third lecture is on for loops. My students,…
You seem to imply the speed at which the Kahn Academy teaches loops is a bad thing? I'm catching that vibe from your post. What if the Kahn Academy is teaching the concept in a more clear, concise way than you are? Maybe Java isn't the best language to teach these concepts? Maybe your lessons could be more effective? I don't know what your particular situation is, but I encourage you to play around with your lessons…
Re: Khan Academy: Computer Science
#150Earlier quoted context omitted.
How to use a compiler. Basic shell of a Java program. That statements occur in a sequence. Practice with getting details right. Mathematical expressions. What variables are, and how assignments to expressions differ from formulas (in Excel, say). If statements and conditions. The concept of "incrementing" a variable or accumulators in general. Loops in general. See for yourself: http://cs.leanderisd.org/current/cs1/a…
We learn to read before we learn to write well. Why do we start out writing programs? I've always thought programming classes should start with reading and understanding a program that has some loops, assignments, etc. Maybe a program that draws some shapes or parses/prints some strings. Then have students modify it some. Then afterward, start writing your own stuff from scratch.
Perhaps you don't write well until you've read a lot - but nobody expects you to write well as a novice.