Live data from Hacker News

Khan Academy: Computer Science

khanacademy.org

151–160 of 188 posts

Re: Khan Academy: Computer Science

#151
post #116
post #83

Earlier 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.

Your point seems detached from reality. You don't learn any language (native or foreign) just by reading it for months. You are instructed to use it yourself and create sentences, paragraphs, essays, and speeches. You build up your writing skills in tandem with your reading.

Perhaps you don't write well until you've read a lot - but nobody expects you to write well as a novice.

Re: Khan Academy: Computer Science

#152
post #120

Earlier quoted context omitted.

Kahn makes a big mistake in pronouncing the assignment operator as "equals" in the first video. The assignment operator should be pronounced as "gets".

'x equals 5'. or something like 'the value inside x is now 5', an important view for me, when was learning c++'s pointers.

(idk how to edit) im just fine with 'x = 5'. lets see 'x = 1+1'. then the 1+1 will be 2, and then that value will be in 'x'. so, after that, 'x equals 2', right? or 'x equals 1+1'.

Re: Khan Academy: Computer Science

#153

Earlier quoted context omitted.

Kahn makes a big mistake in pronouncing the assignment operator as "equals" in the first video. The assignment operator should be pronounced as "gets".

I think I'm going to steal this for my Python classes. I usually say "is" or "is now", but "gets" I think is a more adroit phrasing. Cheers.

gets is, unfortunately, a common function name for string input, so I avoid it.

The first language I was taught was Object Pascal, and the assignment operator ":=" was pronounced "becomes equal to".

Re: Khan Academy: Computer Science

#154
post #109

Earlier quoted context omitted.

I’ve been programming professionally for over ten years, and when I have to look at Java code that other professionals have written, I am constantly irritated by how the actual point of the code is buried in… mquader’s “OO ceremony” label elsethread is an apt phrase, although “Java ceremony” might be more fair. It wouldn’t surprise me at all if high-school students learning Java as their first language got confused m…

I think that just starting out with the assumption that OOP is the "one true way"--AP CS really comes across that way--is flawed. A languages like Scheme would be a much better choice for an intro CS class.

Worse than “OOP is the one true way” is “OOP is the one true way and Java’s style of OOP is the one true OOP”.

I’ve heard of a CS curriculum that starts by teaching Scheme and ends with a segment on “OK, now you know how to program in Scheme, here is how to do it in Java”. I don’t know if that can fit in one high-school class, though.

Re: Khan Academy: Computer Science

#155
post #129

Earlier quoted context omitted.

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…

I agree. I don't get to choose whether or not I teach Java; that's determined by the state. However, in my class, we write our first working program on the first day of coding. We install the JDK, do a basic DOS primer, type in our first program (in Notepad), and compile and run it on the command line in a single 90-minute period, like the 3rd day of class. Getting to the "bang" as quickly as possible is HUGELY impor…

Do the students move on to using an IDE? I realize that Eclipse or Visual Studio comes with a lot of overhead and you can easily spend a whole semester getting bogged down in all the options, but I would think that an editor with syntax highlighting and parenthesis matching would make a big difference.

Re: Khan Academy: Computer Science

#157
post #83

Earlier quoted context omitted.

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),…

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…

Heh. From the way I've heard some parents talk about Leander ISD, I would have figured the kids would have for loops down by 4th grade. :)

Re: Khan Academy: Computer Science

#158
post #83

Earlier quoted context omitted.

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),…

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…

Thanks for posting that. I love how thorough and paced it is. I'm definitely bookmarking that link, as well as /cs2/assignments.html

Re: Khan Academy: Computer Science

#159
post #116
post #83

Earlier 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.

According to my parents, at the public elementary school I went to for first grade in Toronto, Canada they taught writing before (or at least concurrently with) reading. Each kid had a diary in which we would at first draw and eventually write about something that happened each day. Kids would start with just pictures and gradually add more and more text. I don't remember any of this, but I can still read and write English even though we moved back to Mexico the following year, so I guess it worked.

Re: Khan Academy: Computer Science

#160
post #106
post #86

Earlier quoted context omitted.

SICP doesn't introduce assignment until two hundred pages in.

Assignment isn't idiomatic in functional programming.

The functional programming is a side effect of the desire to teach computer science in a low-friction way. It's nice to not have to also teach Java along with your CS concepts.

I know that when I teach myself anything it's best to focus on one new concept at a time. Scheme's light weight allows all but the CS concepts to fall away from the new coder's consideration.

Post reply on HN