So I somehow got this gig teaching middle schoolers to program, what the fuck should I do...

So I somehow got this gig teaching middle schoolers to program, what the fuck should I do? Scratch looks like a good example but is it enough?

Other urls found in this thread:

dropbox.com/s/p1365pq4jgev3mf/scratch gamemakers.rar?dl=0
en.wikipedia.org/wiki/List_of_educational_programming_languages
scratch.mit.edu/projects/144068760/
scratch.mit.edu/projects/143674375/
alvand.basu.ac.ir/~dezfoulian/files/Programming/Prentice Hall - The C Programming Language- Brian W. Kernighan, Dennis M. Ritchie, 2nd ed., ISBN .pdf
turtleacademy.com/
twitter.com/SFWRedditVideos

dropbox.com/s/p1365pq4jgev3mf/scratch gamemakers.rar?dl=0

Thank you kindly for this.

I'm still confused whether I should dive right into Scratch or spend a couple classes on basic stuff like logic and algorithms.

you can do that all in scratch

en.wikipedia.org/wiki/List_of_educational_programming_languages

> Scratch looks like a good example
Well, somewhat. Then again not really because it's Smalltalk.

It can teach something, but do kids want to program Smalltalk when most adults don't? Nah.

IMO it's much better to teach them Python, Scala or something that actually will do whatever the kids want to do - and be it program their smartphones or use a computer algebra notebook like Jupyter...

Do you not have a syllabus or curriculum you're supposed to be following?

The Scala options look abandoned. Python for Kids or dive straight into the deep end? My cousin used Greenfoot in this one camp he went to, years ago, but it seems boring.

Nope. This is a class for them to take outside of school. Even the course targets are undefined.

>
> The Scala options look abandoned. Python for Kids or dive straight into the deep end?
The logo turtle toy is good for 2 or 3 lessons and doesn't need to be new. After that you better show them how to play with graphics, maybe write a basic calculator and deploy it in an Android simulator / real phone or something else that is more real life, or most will loose motivation.

Hi op, I just finished up a quarter teaching 6th graders scratch. It is surprising how smart these kiddos are, and if you keep them interested they will be able to learn any concept you throw at them.

I was teaching a class of 15 kids with a few other students and we rotated doing lesson plans each week. The stereotypical CSS students didn't understand how to teach a class and would either create a lesson plan which was way too difficult, or one which had no explanation on what to do.

If you've never taught kids, id advise you to look up some tutorials. In short,y advice is to forget their age and teach them as you would teach one of your peers. Kids hate it when you treat them like kids, and will rebel against your efforts to teach if you do so. If you treat them like adults, they focus and can lock in for as long as they're not distracted.

There are a lot of lesson plans which you can find online that much help you. I can send you an example of my class outline if you like.

Additionally, make sure you teach them how to make an account, login, and explore the front page of the scratch website. I was suprised to find a huge community of kids where everyone was sharing code, commenting, trying each other's games out, and "remixing" others code to make their own game. The number of people actually active on the website is crazy, and a lot of the smarter kids in my class LOVE this social aspect of scratch. They actually 'code' at home and share their creations online, it blows my mind how successful the website is.

teach them C.

Teach them C. C is a newbie friendly language

I work at public schools and kids seem to dig Scratch. I also see teachers using code.org. Good luck OP

scratch.mit.edu/projects/144068760/
scratch.mit.edu/projects/143674375/

For my class, I took one of the scratchteam games and basically deleted the code and made them put it back. I use comments as instructions so the kids had something to work off of. I was trying to teach them loops as well as how to use costumes. The character on the left was the easy challenge, and on the right the hardest challenge. I was worries the kids would think the challenges were too easy which is why I added the levels, and I was right, some of the kids finished in 20 minutes, but others didn't get past the second one. Make sure you remember that some kids have more experience with coding and computers than others, and leaving a kid who's struggling behind because you think they "just don't get it" is the worst thing you can do!

Hopefully this helps you op,

I'm off to bed

OP here, was also thinking of integrating Smullyan or Gardner logical puzzles into the course somehow.

Thanks for the help. If you can, please post the outline here or email it to dr_mindbender at outlook dot com (throwaway).

I want something that'll teach them algorithmic thinking before diving into syntax.

Cheers, will keep these in mind.

Some of the international students who are Uber into CSS tried doing fractal snowflakes and it failed miserably. Try to keep it simple. I'd advise looking at the most popular games on the scratch website to see what the kids think is cool before you design your class.

Teach them SICP

Teach them Lisp.
()()()()()()()()()()()

Teach them C.
/thread

assembly > java > C

alvand.basu.ac.ir/~dezfoulian/files/Programming/Prentice Hall - The C Programming Language- Brian W. Kernighan, Dennis M. Ritchie, 2nd ed., ISBN .pdf

Don't sell them short. this is your chance to raise up manly programmers in an age of pajeets.

>Since C is relatively small, it can be described in
small space, and learned quickly. A programmer can reasonably expect to know and
understand and indeed regularly use the entire language.

C will let your kids learn programming without getting in their way.

Teach them SICP, they shall be as gods.

Teach them c.

turtleacademy.com/

Try to find the Java karel courses. Those teach logic at first, and slowly start implementing Java functions like if statements, methods, abstract methods and for loops over time.