6 projecten om je kinderen te leren omgaan met Linux deze zomer
Het is officieel. In de woorden van glam rocklegende Alice Cooper, de school is uit voor de zomer.
Er is geen les meer. Geen schoolloop meer. Geen huiswerk meer. Gewoon lange, eindeloze zomerdagen die schijnbaar voor eeuwig slepen. Maar hoe houd je je kind bezig tijdens die lange zomermaanden? Misschien nog belangrijker: hoe houd je je kind bezig en vermaakt terwijl je hen een belangrijke carrière-vaardigheid bijbrengt, zoals computergebruik?
Als je op zoek bent naar inspiratie, maak je geen zorgen. Ik heb je gedekt. Bekijk deze zes projecten die jouw kind de basis van computers zullen leren, met Linux als middelpunt.
Bouw een game- of telefoon-app met Kivy
De programmeertaal Python is een favoriete inleidende programmeertaal die wordt onderwezen in computerwetenschapslessen in de VS en het VK, dankzij de ongecompliceerde syntaxis en het gemak waarmee deze kan worden geleerd. Een van de voordelen van Python boven andere talen - zoals Scratch van MIT (we komen daar later op terug) - is het brede aanbod van plug-ins en bibliotheken.
Bibliotheken worden gebruikt om de functionaliteit van een programma uit te breiden. Er zijn honderdduizenden voor Python. Een populaire bibliotheek is Kivy, die het mogelijk maakt om games en apps voor de desktop en voor mobiele apparaten te ontwikkelen.
Met Kivy kun je een geavanceerd mobiel spel bouwen voor iOS en Android - zoals Pong - met slechts een paar honderd regels code. U kunt zelfs bureaubladspellen en -toepassingen bouwen voor Windows, OS X en Linux.
En omdat het Python is, gebruik je nog steeds dezelfde zachte syntax die je kind waarschijnlijk op school heeft geleerd.
Een goed startpunt voor het leren van Kivy is in de officiële Kivy-documentatie, waar ze een eenvoudig Pong-spel hebben gebouwd. Hier kun je leren hoe je met een paar regels code objecten op het scherm kunt plaatsen, de fysica van de game kunt besturen en zelfs scores kunt bijhouden.
Deze demospel is gelicenseerd onder de MIT-licentie - een gratis, toegestane softwarelicentie die het mogelijk maakt om wijzigingen en kopieën aan te brengen - zodat je het in je eigen spel kunt veranderen en online kunt delen zonder eerst toestemming te hoeven vragen. Je kunt zelfs Android APK's bouwen en je Kivy-game verspreiden in de Apple App Store. Maar voor een meer begeleide tutorial voor Kivy, bekijk de pycon Montreal talk van Richard Jones.
Kivy installeren op Linux is eenvoudig. Als je een op Debian gebaseerde distro gebruikt, doe dit dan.
sudo add-apt-repository ppa: kivy-team / kivy
sudo apt-get install python-kivy
Instructies over het installeren van Ubuntu voor OpenSUSE, Gentoo en Fedora zijn hier te vinden.
Leer de grondbeginselen van code met Scratch
Als je een jonger kind hebt dat nog geen formele informatica-les heeft gevolgd, en je wilt ze voorstellen voor programmeren, dan kun je overwegen om Scratch te installeren - beschikbaar voor OS X, Windows en Linux.
Kras leren hoe kinderen programmeren vanuit scratch! How To Kids Programming from Scratch leren! Meer lezen is geen programmeertaal die u een lucratieve programmacarrière zal geven Hoe u een programmeertaal kiest om vandaag te leren en een fantastische baan te krijgen binnen 2 jaar Hoe u een programmeertaal kiest om vandaag te leren en een geweldige baan te vinden in 2 Jaren Het kan jaren van toegewijd werk vergen om een echt goede programmeur te worden; Dus is er een manier om de juiste taal te kiezen om vanaf vandaag te beginnen, om morgen aangenomen te worden? Lees verder . Maar dat is prima. Het is daar niet voor bedoeld. Het wordt eerder gebruikt om de basisbegrippen achter de informatica te onderwijzen.
Scratch is een visuele programmeertaal, dus in plaats van code in te typen, kunt u bouwstenen slepen en neerzetten om eenvoudige programma's te maken. Dit biedt een eenvoudige, toegankelijke manier om uw kind te leren hoe software wordt gebouwd en programmaconcepten zoals conditionals, iteratie en recursie..
Maar laat je niet misleiden door de vereenvoudigde aard van Scratch. Het is eenvoudig omdat het niet betekent dat je bent beperkt in wat je maakt. Mensen hebben alles gebouwd, van games - zoals een multiplayer pong-spel - tot animaties - zoals een grappige wenskaart - tot interactieve kunst.
En als je eenmaal je meesterwerk hebt voltooid, kun je het online delen met de gastvrije Scratch-community, die feedback en aanmoediging kan geven via 'vind-ik-leuks' en reacties.
En als je je daar verveelt, kun je Scratch gebruiken om Afraid of Programming in Code op te bouwen? Probeer Scratch For Arduino Bang voor programmeren in code? Probeer Scratch For Arduino Scratch 4 Met Arduino kunnen beginners zoals ik spannende Arduino-projecten bouwen met een visuele interface. Het is eenvoudig, het is leuk en het leert je de fundamentele bouwstenen van programmeren. Lees meer Arduino-gebaseerde Internet of Things-projecten. Nette, goed?
Bedien je huis met de Raspberry Pi
De Raspberry Pi is een kleine, betaalbare computer met een creditcard die geschikt is voor Linux. Overigens is het ook in staat om een uitgeklede versie van Windows 10 Windows 10 uit te voeren - Komt u naar een Arduino bij u in de buurt? Windows 10 - Komt u bij een Arduino bij u in de buurt? Lees meer, ontworpen om te bouwen internet van dingen projecten.
De Pi is een veelzijdig beest, omdat hij herhaaldelijk heeft laten zien dat hij in staat is alles te doen, van kunstinstallaties tot webservers, tot zelfs Minecraft-servers.
Een van de toepassingen voor de Raspberry Pi die me opviel, was het huisautomatiseringsproject van James Bruce. Home Automation Guide With Raspberry Pi en Arduino Home Automation Guide Met Raspberry Pi en Arduino De domotica-markt wordt overspoeld met dure consumentensystemen, die incompatibel zijn met elkaar en kostbaar zijn voor installeren. Als je een Raspberry Pi en een Arduino hebt, kun je eigenlijk hetzelfde bereiken op ... Lees meer, dat een breed scala aan technologieën gebruikt om de verlichting van zijn huis te regelen.
Bruce gebruikt alles van MongoDB (wat hier door Taylor Bolduc deskundig werd uitgelegd. Hoe een MongoDB-database uw gegevens beter kan organiseren Hoe een MongoDB-database uw gegevens beter kan ordenen MongoDB (van "gigantische") is een platformonafhankelijke, documentgerichte database die wordt gebruikt als een alternatief voor MySQL, maar wat betekent dat? Lees meer), naar het JavaScript-webontwikkelingskader NodeJS Wat is Node.JS en waarom zou ik erom geven? [Webontwikkeling] Wat is Node.JS en waarom zou ik erom geven? [Web Development] JavaScript is slechts een client-side programmeertaal die in de browser draait, toch? Niet meer. Node.js is een manier om JavaScript op de server uit te voeren; maar het is zoveel meer ook. Als ... Lees meer, naar Arduino. Maar in het centrum van alles is Linux en de Raspberry Pi.
De multidisciplinaire aard van dit project betekent dat het uw kind zal introduceren in een aantal facetten van de informatica, zoals JavaScript, systeembeheer en elektronica.
Als je nog niet eerder met de Raspberry Pi hebt gespeeld en je op zoek bent naar een eenvoudiger project om je melktanden in te doen, overweeg dan de Raspberry Pi Draadloze Printer van Christian Crawley Maak Je Eigen Draadloze Printer Met Een Raspberry Pi Maak Je Eigen Draadloos Printer met een Raspberry Pi Minder kabels, flexibiliteit over waar u uw printer kunt neerzetten - draadloos printen is een win-win. Tenzij u een oudere printer hebt. Raspberry Pi tot de redding! Lees verder .
Bouw een Twitter-bot
Het is geen geheim dat ik een enorme fan ben van de programmeertaal Python.
Het is zo krachtig en veelzijdig en dankzij het brede aanbod aan plug-ins en bibliotheken kunt u bijna alles doen.
Python laat je je voelen als een superheld. Denk aan iets, en de kans is groot dat je het met Python kunt bouwen. Maar ik praat niet alleen spellen, of Raspberry Pi-domoticasystemen. U kunt zelfs applicaties bouwen die voortbouwen op bestaande sociale netwerksites.
Facebook. LinkedIn. Twitter. Ze hebben allemaal API's (Application Programming Interfaces). Wat zijn API's en hoe veranderen open API's het internet Wat zijn API's en hoe veranderen Open API's het internet Heb je je ooit afgevraagd hoe programma's op je computer en de websites die je bezoekt "praten"? naar elkaar? Meer lezen waarmee u de gegevens en functionaliteit van deze sites kunt gebruiken in het kader van uw eigen programma's. Ze kunnen aanvankelijk nogal intimiderend zijn. Maar dat zijn ze niet.
Het beheersen van deze taken kan een paar uur werk vergen, maar als je eenmaal hebt geleerd hoe je een bepaalde API moet gebruiken, kun je ongelooflijke dingen doen.
Neem bijvoorbeeld Twitter, waarmee ontwikkelaars toegang tot hun gegevens kunnen krijgen via drie afzonderlijke API's. Er is de Firehose API, die onbeperkte, real-time toegang tot elke tweet biedt, maar wordt geleverd met een steile prijskaart die duizenden dollars bereikt.
Er zijn ook twee API's die gratis te gebruiken zijn. Twitter heeft de de Streaming API, waarmee je tweets in realtime kunt volgen, maar zonder de garantie dat je elke tweet krijgt. Er is ook de Search API, waarmee je in de Twitter-database kunt zoeken, maar het aantal zoekopdrachten dat je kunt doen is erg beperkt.
De Streaming API is vooral interessant omdat je applicaties kunt bouwen die in realtime op tweets kunnen reageren. Er zijn oneindig veel projecten die je zou kunnen bouwen.
Je zou bijvoorbeeld de Arduino-LED-kubus van James Bruce kunnen nemen. Hoe maak je een pulserende Arduino LED-kubus die eruit ziet alsof hij uit de toekomst is gekomen Hoe maak je een pulserende Arduino LED-kubus die eruit ziet alsof hij uit de toekomst is gekomen Als je met enkele Arduino Arduino-projecten, maar op zoek zijn naar iets een beetje permanent en op een heel ander niveau van geweldig, dan is de nederige 4 x 4 x 4 LED-kubus ... Lees meer en verlicht het wanneer iemand een tweet plaatst met een bepaalde woord. Of u kunt een Twitter-bot maken die spoilers tweets wanneer iemand berichten plaatst “Ik begon net te kijken Game of Thrones“. Of u kunt een bot maken die ook de Wolfram Alpha API gebruikt om te reageren op eenvoudige vragen, zoals “wat is de hoofdstad van Burkina Faso”.
Onder Linux kunt u profiteren van de Twitter-API's met de populaire programmeertaal Python en de Tweepy-bibliotheek, die u kunt downloaden via de PIP-pakketbeheerder. Om het te krijgen, opent u eenvoudig uw opdrachtregel en typt u:
pip installeer tweepy
Als u de PIP-pakketbeheerder niet hebt geïnstalleerd, hoeft u zich geen zorgen te maken. Je kunt Tweepy ook handmatig installeren. Om dit te doen, heb je Git geïnstalleerd.
git clone https://github.com/tweepy/tweepy.git
cd tweepy
python setup.py installeren
Er is geen tekort aan online tutorials die u zullen leren hoe u Tweepy kunt gebruiken. Een van de beste die ik heb gevonden was op PythonProgramming.net, die wordt geleverd met een bijbehorende video-tutorial.
De mogelijkheden zijn eindeloos en omdat de Twitter API zo eenvoudig te gebruiken is met Tweepy, heb je geen diploma computerwetenschappen nodig. Je moet alleen Python kennen en een geweldig idee hebben.
Bouw een website
Als u uw kind leert te coderen en vraagt wat hij wil doen, zullen ze waarschijnlijk een mobiele app zeggen Een iPhone-game maken met Scratch Hoe u een iPhone-game maakt Van Scratch Op een gegeven moment heeft u waarschijnlijk wel gewenst zou je eigen iPhone-spellen kunnen maken. Het is tijd om te stoppen met wensen en te doen. Lees verder . Want - laten we wel wezen - welk kind wil geen volgende Flappy Bird maken Het korte verhaal van Flappy Bird [Weird & Wonderful Web] Het korte verhaal van Flappy Bird [Weird & Wonderful Web] Weinig mobiele games gaan het collectieve bewustzijn binnen van de mainstream in de manier waarop Flappy Bird heeft gedaan. Het gaat over in internet folklore, maar deze video's zullen helpen om de viraliteit te behouden. Lees verder ? Maar daarna zullen ze waarschijnlijk zeggen dat ze een website willen bouwen.
Het probleem is dat wanneer je voor het eerst leert om te bouwen voor het web, je wordt geconfronteerd met een duizelingwekkende reeks technologieën. Moet u de beproefde LAMP-stack Signed Up gebruiken voor webhosting met alleen SSH? Do not Worry - Eenvoudig elke websoftware installeren die is aangemeld voor alleen SSH-webhosting? Maak je geen zorgen - Eenvoudig elke websoftware installeren Weet je niet het eerste over het bedienen van Linux via zijn krachtige opdrachtregel? Maak je geen zorgen meer. Read More, welke Linux, Apache, MySQL en PHP gebruikt? Of misschien iets moderner (en, ik durf te zeggen trendy) zoals Ruby on Rails, Flask of Node.js?
Erger nog, dit brede buffet van technologieën kan ongelooflijk afleidend werken als je een gezel codeerder bent, terwijl je tussen kaders en taal flitst met de focus van een Labrador Retriever.
Het is veel om op te nemen.
Maar ik denk dat het belangrijk is om te onthouden dat het leren van websites bouwen fundamenteel is multidisciplinaire.
De basis van elke website is HTML. Dan zorg je ervoor dat het er goed uitziet met een liberale hoeveelheid CSS. Als je de basisbouwstenen eenmaal hebt gevonden, begin je interactiviteit en dynamiek toe te voegen. Je begint te leren hoe je je HTML en CSS kunt animeren met JavaScript en JQuery.
Vervolgens leer je over persistentie en de noodzaak om dingen in een database op te slaan om ze later op te halen. Dus, je leert over MySQL, en misschien MongoDB. Je leert over schema's, verneveling en relaties.
Vervolgens leer je om alles samen te binden met een programmeertaal aan de serverzijde zoals PHP, Python, JavaScript (met Node.js) of Ruby en het te hosten op een server (vaak Linux), die vakkundig moet worden geconfigureerd om zorg ervoor dat het veilig en betrouwbaar blijft.
Het punt dat ik probeer te maken is dat het leren om websites te bouwen een multidisciplinair proces is, dat afhankelijk is van de persoon die een 'stapel' van enorm verschillende technologieën leert en deze vervolgens mentaal aan elkaar koppelt, en begrijpt hoe ze werken in relatie tot elkaar.
Om uw kind HTML, CSS en JavaScript te leren, zorg ervoor dat ze zijn aangemeld bij CodeAcademy Codecademy - Hands Down De eenvoudigste manier om codecademy te coderen - Hands Down De gemakkelijkste manier om te coderen Codecademy is een nieuwe interactieve handleiding voor website-slash die u door de basisbeginselen van JavaScript. Hoewel het nog niet zo lang geleden is, genereert de site al veel geruchten over ... Read More, waarin elk van deze technologieën wordt uitgelegd via interactieve uitdagingen. Dit is, vind ik, geweldig voor het ondersteunen van motivatie, omdat je onmiddellijke resultaten en feedback krijgt.
Natuurlijk kan CodeAcademy niet zoiets leren als groot en ingewikkeld als CSS of JavaScript. Daarvoor moet u uw kind kennis laten maken met een goed referentiemateriaal. Ik zou W3Schools vermijden, waarvan bekend is dat het foutieve - of ronduit valse - informatie bevat. Het Mozilla Developer Network is een grondige, accurate en toegankelijke handleiding voor alle dingen HTML, CSS en JavaScript, en wordt sterk aanbevolen.
Als het erom gaat een back-endtechnologie te kiezen, zou ik uw kind willen aanmoedigen om PHP te leren, dat een zachte leercurve heeft. Er is veel documentatie voor beschikbaar. En bovendien is het installeren van een LAMP-server op Ubuntu slechts een kwestie van het typen van 'sudo apt-get install lamp-server ^'.
CodeAcademy heeft een PHP-cursus. Dat geldt ook voor Tuts + en Lynda. Alles is geweldig. Hoewel, ik zou Larry Ullman's persoonlijk aanbevelen PHP en MySQL voor dynamische websites, die op het moment van schrijven beschikbaar is voor $ 28,90 op Amazon. Ik bezit zelf een kopie en heb deze gevonden als een toegankelijke, toegankelijke handleiding voor webontwikkeling met de PHP-programmeertaal.
Ik twijfel er niet aan dat de gemiddelde tiener in staat zou zijn om de inhoud van dit boek te begrijpen.
Als dat niet lukt, heeft MakeUseOf een handleiding voor PHP gepubliceerd (geschreven door ondergetekende), die gratis te lezen is. Learn To Build With PHP: A Crash Course Leren bouwen met PHP: een spoedcursus PHP is de taal die door Facebook en Wikipedia wordt gebruikt om miljarden verzoeken dagelijks te dienen; de de-facto taal die wordt gebruikt voor het leren van mensen web-programmering. Het is prachtig eenvoudig, maar briljant krachtig. Lees verder .
Maar bovenal, zorg dat uw kind leert dat het leren bouwen voor het web een is leerproces, en een die tijd en toewijding kost. Om je kind gemotiveerd te houden, wil je misschien een project instellen waaraan ze kunnen werken.
Er zijn veel eenvoudige websites die kunnen worden gebouwd door een leerling-ontwikkelaar. Misschien een gastenboek of een microblogsite zoals Twitter.
Een van de meest over het hoofd geziene aspecten van leren coderen is feedback. Zodra ze iets hebben gebouwd, kun je ze ervan overtuigen om het op Github te delen, zodat meer ervaren ontwikkelaars kritiek kunnen leveren en begeleiding kunnen bieden. De subreddit Leren programmeren is daar ook redelijk goed in.
En leer je kind dan hoe hij zijn eigen Linux-webservers moet hosten en beheren door ze een Digital Ocean-druppel te kopen. DigitalOcean: de beste onbeheerde VPS-host voor nieuwkomers DigitalOcean: de beste onbeheerde VPS-host voor nieuwkomers Als je VPS-hosting nodig hebt en je wilt om alle serveradministratie zelf te regelen, dan is dit de reden waarom DigitalOcean uw beste optie is. Read More, dat slechts $ 5 per maand kost.
Woon een Code Club bij
Oké, ik val hier vals spelen.
Dit is geen project, per se. Maar als je je kind de basis van computergebruik wilt leren, en je wilt het op een meer gestructureerde, sociale manier doen, dan moet je het meenemen naar een codeclub.
De beschikbaarheid van deze zal natuurlijk variëren, afhankelijk van waar je woont. In het VK is dat zo Code Club, een not-for-profit die tot doel heeft om kinderen tussen de leeftijden van 9 en 11 te leren coderen. Codeclubs zijn te vinden in de meeste grote steden, met het collegegeld georganiseerd in 'termen'. Elke term leert een ander facet van programmeren, zoals Scratch, HTML en CSS, en Python, waarbij de inhoud van de cursus steeds complexer wordt naarmate elke term vordert.
Codeclubs maken vaak gebruik van Raspberry Pis en Linux, vanwege het feit dat ze extreem goedkoop zijn in vergelijking met traditionele computers.
Maar hoe zit het in de vijver?
Amerika heeft veel, veel te veel Code Club-achtig organisaties om in één artikel te vermelden. Maar er zijn er die opvallen.
De met Gates en Zuckerberg gefinancierde Code.org is het meest bekend om zijn Uur van code project, dat probeert volwassenen en kinderen één uur per jaar te laten leren coderen. Maar wist je dat het een bijna uitgebreide lijst bevat van computerwetenschapslessen die beschikbaar zijn in de VS, waarvan er vele beschikbaar zijn in bibliotheken, gemeenschapscentra en scholen?
Maar ik zou nalatig zijn als ik niet de briljante Black Girls-code noemde, die echt heel belangrijk werk doet. Ze proberen de beschamende etnische en genderkloof op het gebied van STEM (wetenschap, technologie, engineering en wiskunde) aan te pakken door gratis computerwetenscholing te bieden aan zwarte meisjes in de VS. Klassen zijn beschikbaar in een aantal grote steden, afhankelijk van beschikbaarheid. Raadpleeg de Black Girls Code-website voor meer informatie.
Tijd om te coderen
Ok mensen. De zomer is hier officieel. De scholen zijn gesloten of sluiten. Wat ga je doen? Ga je ze meenemen naar een codeclub, of geef je ze een Raspberry Pi en zie je waar hun verbeelding hen brengt?
Hoe dan ook, ik wil erover horen. Stuur me een reactie hieronder en laat het me weten.
Foto's: HTML-code (Marjan Krebeji), PHP-code (Bull3t Hughes), leren om laptop te gebruiken via Shutterstock
Ontdek meer over: Linux, Python, Scratch.