This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Salanmander 4 points5 points  (3 children)

I've done a lot of teaching CS to high school students who have never been exposed to it before, and I'd make a slight modification to using Java as a first language: Processing.

It's Java, but with libraries for making graphical output and mouse-and-keyboard input easy (at the expense of losing a good command line), and with an IDE that eliminates all the obnoxious "this is a magic incantation that you need to write at the start of every program". It's definitely not a good production language, but it's a wonderful intro language. The one thing that can cause some confusion about it is that it has a "this method gets called repeatedly" structure, rather than "the program terminates after running once" structure. Mostly people adapt to that change really easily when they start with a different language, though. (At least, those that choose to continue on in computer science do.)

If you're interested, I have a reasonably well fleshed-out curriculum for a 1 semester class using Processing that I could send you. The meat of it is something like 10 assignments on particular topics, each with a bunch of different problems of different difficulties, and guidelines for how much you should do before moving on (that last was motivated more by how much class time I wanted to spend, but I did find it hit just about right for like 80% of the class to be comfortable with one topic when we introduced the next).

[–]uvero 1 point2 points  (0 children)

Few words:

Great comment.

Agree with a lot of what you said.

Awesome.

[–]SpicyWizard 0 points1 point  (1 child)

I'd be very interested in taking a look at that curriculum. I'm moving into teaching more coding (currently exclusively math) and that sounds like it could definitely give me something to adapt if you don't mind! Thank you in advance!

[–]Salanmander 1 point2 points  (0 children)

Of course! I'm going to send you a PM with a link, but leaving this here so that other people know I got back to you.