= Hello Neo Welcome to the helloneo.ca website. This is a wiki in which I record the way in which I taught programming to my son, Neo, since he was eight years old. He's much older now, and I have updated these lessons as I continue to teach programming to other kids. == Season 1: PHP * [[Season 1 PHP]] == Python Season 1 Python Season 1 introduces all the basic data types and concepts such as classes. * [[Roger]] * [[Basics]] * [[Basics II]] Random Numbers * [[Basics III]] List Structure -- Advanced * [[Functions]] The fourth lesson in this series. * [[Lists]] The fifth lesson in this series * [[Lists II]] Lesson six, about data structures. * [[PyHang Game]] -- Hangman -- a simple game which illustrates the use of lists and string indexing. * [[Dice Class]] -- Classes and String Operations * [[PyBog]] -- Word search game, operating on a 2d array(list). * [[Recursion in Python]] -- recursion examples == Python Season 2 When teaching people with more experience and with longer classes (ex. 2h). * [[PySPS]] -- Scissor Paper Stone in Python. Usually taught over 2 classes (see notes). * [[PyHang]] -- Usually the second lesson. === To Be Done * [[PyType]] -- A typing game to reinforce lessons and introduce time.time_ns() etc. * [[PyQuest I]] -- A simple A/B/C adventure game. Can introduce classes here. * [[PyRobots]] -- robots in pure text in python (At this point we can probably introduce pygame). == PyGame Framework Sometime during season 2 or 3 we may develop this. * [[PyGame Framework]] === Fonts and other things used in these projects * Press Start 2P (an arcade font) {{:pressstart2p.ttf.zip|}} * CLACON2 (Classic Console 2) {{:clacon2.ttf.zip |}} * IBM VGA 8x16 (based on 8x14 EGA) {{:pxplus_ibm_vga8.ttf.zip |}} * IBM VGA 9x16 The most well-known VGA text font. {{:p5bg:pxplus_ibm_vga_9x16.ttf.zip |}} * Example 'Logo' file {{:logo32x32.png?linkonly|}} === Sprites * [[PyGame Sprites I]] -- Introducing Pygame Sprites == Python Season 3 Python season 2 demonsrates how the basic concepts can be used by making games out of them! Since it is a more advanced class, we will structure most of the games around the [[PyGame Terminal]], however, we will not always use it. * [[Pygame Terminal]] * [[PyMaze]] -- a simple maze game in python, illustrating classes and maze algorithms * [[Robots]] -- in PyGame Terminal * [[Turtle]] Suite * Adventure Game == Python Season 4 * [[tkinter pack]] The pack tutorial, featuring codemaster 1.0. * [[tkinter calc]] The basic calculator, teaching .grid() and exploring classes for windows. * [[tkinter calc ii]] Teaching binding, to increase User Experience. * [[tkinter menus]] * [[tkinter quiz show]] The Quiz Show! A quiz game, featuring radio buttons and more! == Python Season 5 * [[Bullet Game]] ** uses {{:pressstart2p.ttf.zip|}} * [[2048 game]] == Python Season 6 (3d) unfinished * [[2.5d example]] * [[3d Box v1]] * [[3d Box v2]] == JavaScript Season 1 * [[Shooty Ships]] == JavaScript Season 2 * [[JavaScript Terminal]] * [[JavaScript Terminal v2]] == JavaScript Season 3 * [[JavaScript NetWhack]] * [[JavaScript Terminal v3]] == JavaScript Season 4 * [[JavaScript Terminal v4]] == APCS * [[https://apcs.csie.ntnu.edu.tw/index.php/apcs-introduction/|APCS Taiwan Site]] * [[APCS Study Guide]] * APSC Phase 1 program collection [[APCS Phase 1]] * [[Roger's APSC-1]]