6 Projekt för att lära din barns dator med Linux i sommar
Det är officiellt. I ord av glamrocklegenden Alice Cooper, skolan är ute för sommaren.
Det finns ingen mer klass. Ingen mer skolgång. Inga fler läxor. Bara långa, oändliga sommardagar som till synes dra på för alltid. Men hur håller du ditt barn upptagen under de långa sommarmånaderna? Kanske viktigare, hur håller du ditt barn upptagen och underhöll medan de lär dem en viktig karriärkunskap, som dator?
Om du letar efter inspiration, oroa dig inte. Jag har täckt dig. Kolla in de sex projekten som lär ditt barn grundläggande grunderna i databehandling, med Linux i mitten av dem alla.
Bygg ett spel eller telefonapp med Kivy
Pythons programmeringsspråk är ett favoriterat introducerande programmeringsspråk som lärs i datavetenskapskurser i USA och Storbritannien, tack vare sin okomplicerade syntax och den lätthet där den kan läras. En av fördelarna med Python över andra språk - som MIT's Scratch (vi får det senare) - är det breda utbudet av plugins och bibliotek.
Bibliotek används för att förlänga programmets funktionalitet. Det finns hundratusentals av dem för Python. Ett populärt bibliotek är Kivy, vilket gör det möjligt att utveckla spel och appar för skrivbordet och för mobila enheter.
Med Kivy kan du bygga ett sofistikerat mobilspel för iOS och Android - som Pong - med bara några hundra linjer kod. Du kan även bygga skrivbordsspel och applikationer för Windows, OS X och Linux.
Och för att det är Python använder du fortfarande samma, skonsamma syntax som ditt barn har lärt sig i skolan.
En bra utgångspunkt för att lära sig Kivy finns på den officiella Kivy-dokumentationen, där de har byggt ett enkelt Pong-spel. Här kan du lära dig hur med några rader av kod, du kan placera objekt på skärmen, styra spelets fysik och till och med hålla koll på poäng.
Detta demo spel är licensierat enligt MIT-licensen - en fri, tillåten programlicens som tillåter att göra ändringar och kopior - så att du kan göra det till ditt eget spel och dela det online utan att behöva fråga tillstånd först. Du kan till och med bygga Android APKs och distribuera ditt Kivy-spel på Apples appbutik. Men för en mer guidad handledning för Kivy, kolla in Richard Jones PyCon Montreal-talk.
Installera Kivy på Linux är enkelt. Om du använder en Debian-baserad distro gör du det här.
sudo add-apt-repository ppa: kivy-team / kivy
sudo apt-get install python-kivy
Anvisningar om hur man installerar Ubuntu för OpenSUSE, Gentoo och Fedora finns här.
Lär dig grunden till kod med scratch
Om du har ett yngre barn som ännu inte har en formell datorvetenskaplig lektion, och du vill presentera dem för programmering, kanske du vill överväga att installera Scratch - tillgänglig för OS X, Windows och Linux..
Skrapa hur man lär ungdomar programmering från scratch! Hur lär man barnprogrammering från början! Läs mer är inte ett programmeringsspråk som ger dig en lukrativ programmeringskarriär Hur man väljer ett programmeringsspråk för att lära sig idag och få ett bra jobb på 2 år Hur man väljer ett programmeringsspråk för att lära sig idag och få ett bra jobb i 2 År Det kan ta år av engagerat arbete att bli en riktigt bra programmerare; så finns det ett sätt att välja rätt språk att börja från idag, för att bli anställd imorgon? Läs mer . Men det är bra. Det är inte avsett för det. Det brukar användas för att undervisa de grundläggande begreppen bakom datavetenskap.
Scratch är ett visuellt programmeringsspråk, snarare än att skriva kod, dra och släpp byggstenar för att skapa enkla program. Det här är ett enkelt och lättillgängligt sätt att lära ditt barn om hur programvara är byggt och programmeringskoncept som villkor, iteration och rekursion.
Men låt inte den enkla naturen Skrapa lura dig. Bara för att det är enkelt betyder det inte att du är begränsad i det du skapar. Människor har byggt allt från spel - som ett multiplayer-pongspel - till animationer - som ett nyckfullt gratulationskort - till interaktiv konst.
Och när du har avslutat ditt mästerverk kan du dela det med den välkomna Scratch community online, som kan ge feedback och uppmuntran genom "gillar" och kommentarer.
Och om du blir uttråkad där kan du använda Scratch för att bygga rädda för att programmera i kod? Prova Scratch For Arduino Rädd för programmering i kod? Prova Scratch For Arduino Scratch 4 Arduino låter nybörjare som jag bygga spännande Arduino-projekt med ett visuellt gränssnitt. Det är enkelt, det är roligt, och det lär dig de grundläggande byggstenarna i programmeringen. Läs mer Arduino-baserade Internet of Things-projekt. Snyggt, rätt?
Styr ditt hem med Raspberry Pi
Raspberry Pi är en liten, prisvärd, kreditkortskortad dator som kan köra Linux. För övrigt är det också möjligt att köra en avvecklad version av Windows 10 Windows 10 - Kommer till en Arduino nära dig? Windows 10 - Kommer till en Arduino nära dig? Läs mer, konstruerad för byggnad Internet av saker projekt.
Pi är ett mångsidigt odjur, som upprepade gånger har visat sig kunna köra allt från konstinstallationer, webbservrar, till även Minecraft-servrar.
En ansökan om Raspberry Pi som kom i mitt öga var James Bruces hemautomatiseringsprojekt Hemautomatiseringsguide Med Raspberry Pi och Arduino Hemautomationsguide Med Raspberry Pi och Arduino Hemautomationsmarknaden översvämmas med dyra konsumentsystem, inkompatibla med varandra och kostsamt att Installera. Om du har en Raspberry Pi och en Arduino, kan du i princip uppnå samma sak på ... Läs mer, som använder ett brett smorgasbord av teknik för att styra sitt hus belysning.
Bruce använder allt från MongoDB (vilket förklarades expertiskt av Taylor Bolduc här Hur en MongoDB-databas kan bättre organisera dina data Hur en MongoDB-databas kan bättre organisera dina data MongoDB (från "humongous") är en plattforms-dokumentorienterad databas som används som ett alternativ till MySQL. Men vad betyder det? Läs mer), till JavaScript webbutvecklingsramen NodeJS Vad är Node.JS och varför ska jag bry sig? [Webbutveckling] Vad är Node.JS och varför ska jag bry sig? [Webbutveckling] JavaScript är ett helt enkelt programmeringsspråk för klientsidor som körs i webbläsaren, eller hur? Inte längre. Node.js är ett sätt att köra JavaScript på servern; men det är så mycket mer också. Om ... Läs mer, till Arduino. Men i mitten av allt är Linux och Raspberry Pi.
Projektets tvärvetenskapliga karaktär innebär att det ska introducera ditt barn till ett antal datavetenskapliga aspekter, som JavaScript, systemadministration och elektronik.
Om du inte har spelat med Raspberry Pi tidigare och letar efter ett enklare projekt för att sjunka dina mjölktänder in, överväga Christian Crawleys Raspberry Pi Wireless Printer Gör din egen trådlösa skrivare med en hallon Pi Gör din egen trådlösa Skrivare med en hallon Pi Färre kablar, flexibilitet om var du kan sätta din skrivare - trådlös utskrift är en vinn-win. Om du inte har en äldre skrivare. Raspberry Pi till undsättning! Läs mer .
Bygg en Twitter-bot
Det är ingen hemlighet Jag är en massiv fan av Pythons programmeringsspråk.
Det är bara så kraftfullt och mångsidigt, och det breda utbudet av plugins och bibliotek betyder att du kan göra nästan vad som helst.
Python får dig att känna dig som en superhjälte. Tänk bara på något, och chansen är hög att du kan bygga den med Python. Men jag pratar inte bara spel, eller Raspberry Pi hemautomatiseringssystem. Du kan till och med bygga applikationer som bygger på befintliga sociala nätverk.
Facebook. Linkedin. Twitter. De har alla API: er (Application Programming Interfaces) Vad är API: er och hur är öppna API: er som ändrar Internet Vad är API: er och hur är öppna API: er som ändrar Internet Har du någonsin undrat hur program på datorn och de webbplatser du besöker "pratar" till varandra? Läs mer som låter dig använda data och funktionalitet hos dessa webbplatser inom ramen för dina egna program. De kan i början vara ganska skrämmande. Men det är de inte.
Mastering av dem kan ta några timmars arbete, men när du har lärt dig hur du använder ett visst API kan du göra några otroliga saker.
Ta till exempel Twitter, vilket gör det möjligt för utvecklare att få tillgång till sina data genom tre separata API: er. Det finns Firehose API, som erbjuder obegränsad realtid tillgång till varje tweet, men levereras med en brant prislapp som når upp i tusentals dollar.
Det finns också två API-apparater som är fria att använda. Twitter har Streaming API, som låter dig spåra tweets i realtid, men utan garanti för att du får varje tweet. Det finns också sök API, som låter dig söka i Twitter-databasen, men antalet frågor du kan göra är allvarligt begränsade.
Streaming API är speciellt intressant, eftersom du kan bygga program som kan svara på tweets i realtid. Det finns en oändlig mängd projekt du kan bygga.
Du kan till exempel ta James Bruces Arduino-drivna LED-kub. Hur man gör en pulserande Arduino LED-kub som ser ut som om den kom från framtiden. Hur man gör en pulserande Arduino LED-kub som ser ut som den kom från framtiden. Om du har dabbled med några nybörjare Arduino-projekt, men letar efter något lite permanent och på en helt annan nivå av häftigt, då är den ödmjuka 4 x 4 x 4 LED-kuben ... Läs mer och lys upp det när någon postar en tweet som innehåller en viss ord. Eller du kan bygga en Twitter bot som tweets spoilers när någon postar “Började bara titta på Game of Thrones“. Eller du kan bygga en bot som också använder Wolfram Alpha API för att svara på enkla frågor, som “vad är huvudstaden i Burkina Faso”.
På Linux kan du utnyttja Twitter API: er med det populära Python programmeringsspråket, och Tweepy-biblioteket, tillgängligt för nedladdning via PIP-pakethanteraren. För att få det, öppna helt enkelt din kommandorad och skriv:
pip installera tvåpy
Om du inte har PIP-pakethanteraren installerad, oroa dig inte. Du kan också installera Tweepy manuellt. För att göra detta måste du installera Git.
git klon https://github.com/tweepy/tweepy.git
cd tweepy
python setup.py installera
Det finns ingen brist på handledning online som lär dig hur du använder Tweepy. Ett av de bästa jag har hittat var på PythonProgramming.net, som följer med en medföljande videohandledning.
Möjligheterna är oändliga, och eftersom Twitter API är så lätt att använda med Tweepy behöver du inte en datavetenskap grad. Du behöver bara veta Python och ha en fantastisk idé.
Bygg en webbplats
Om du lär ditt barn att koda och fråga dem vad de vill göra, kommer de förmodligen att säga en mobilapp. Hur man skapar ett iPhone-spel från grunden. Hur man skapar ett iPhone-spel från början. På något ställe har du säkert önskat dig kan skapa egna iPhone-spel. Det är dags att sluta önska och börja göra. Läs mer . Eftersom - låt oss möta det - vilket barn vill inte göra nästa Flappy Bird Den korta berättelsen om Flappy Bird [Kuslig och underbar webb] Flappy Birds korta historia [Konstigt och underbart web] Få mobilspel går in i det kollektiva medvetandet av det vanliga som Flappy Bird har gjort. Den övergår till Internet folklore, men dessa videoklipp kommer att bidra till att bevara dess viralitet. Läs mer ? Men efter det kommer de förmodligen att säga att de vill bygga en webbplats.
Problemet är att när du först lär dig att bygga för webben konfronteras du med en svimlande mängd tekniker. Ska du använda den beprövade LAMP-stacken Signed Up för SSH-only Web Hosting? Oroa dig inte - Installera enkelt vilken webbprogramvara som registrerats för SSH-bara webbhotell? Oroa dig inte - enkelt installera någon webbprogramvara Vet inte det första med operativsystemet Linux genom sin kraftfulla kommandorad? Oroa dig inte mer. Läs mer, som använder Linux, Apache, MySQL och PHP? Eller kanske något lite mer modern (och vågar jag säga trendig) som Ruby on Rails, Flask eller Node.js?
Vad som är värre kan denna breda buffert av tekniker vara oerhört distraherande när du är en journeyman-kodare, eftersom du flitar mellan ramar och språk med all fokus på en Labrador Retriever.
Det är mycket att ta in.
Men jag tycker att det är viktigt att komma ihåg att lära sig att bygga webbplatser är något som är grundläggande tvärvetenskaplig.
Grunden för vilken webbplats som helst är HTML. Därefter gör du det bra med ett liberalt stänk av CSS. När du först har de grundläggande byggstenarna, börjar du lägga till interaktivitet och dynamik. Du börjar lära dig att animera din HTML och CSS med JavaScript och JQuery.
Då lär du dig mer om uthållighet och behovet av att lagra saker i en databas för att hämta dem senare. Så, du lär dig om MySQL, och kanske MongoDB. Du lär dig om scheman, atomisering och relationer.
Då lär du dig att knyta allt tillsammans med ett programmeringsspråk som serverprogram, som PHP, Python, JavaScript (med Node.js) eller Ruby, och värd det på en server (ofta Linux) som måste konfigureras expert för att se till att den är säker och pålitlig.
Poängen jag försöker göra är att lära sig att bygga webbplatser är en tvärvetenskaplig process, som beror på den person som lär sig en "stack" av väldigt olika teknologier och då stämmer de ihop med varandra och förstår hur de fungerar i förhållande till varandra.
För att lära ditt barn HTML, CSS och JavaScript, få dem anmält sig till CodeAcademy Codecademy - Hands Down Det enklaste sättet att koda Codecademy - Hands Down Det enklaste sättet att koda Codecademy är en ny webbplats snedstreck interaktiv programmering handledning som går igenom grundläggande grunderna JavaScript. Medan det inte har funnits mycket länge har webbplatsen redan genererat mycket buzz på ... Läs mer, vilket förklarar var och en av dessa tekniker genom interaktiva utmaningar. Detta, jag har funnit, är utmärkt för att upprätthålla motivation, eftersom du får omedelbara resultat och feedback.
Naturligtvis kan CodeAcademy inte fullständigt lära ut något så stort och komplext som CSS eller JavaScript. För det måste du presentera ditt barn till ett bra referensmaterial. Jag skulle undvika W3Schools, som har varit känt att innehålla felaktig - eller direkt felaktig information. Mozilla Developer Network är en grundlig, exakt och tillförlitlig guide till alla saker HTML, CSS och JavaScript, och det rekommenderas starkt.
När det gäller att välja en back-end-teknik, skulle jag uppmuntra ditt barn att lära sig PHP, som har en mild inlärningskurva. Det finns mycket dokumentation tillgänglig för den. Dessutom installeras en LAMP-server på Ubuntu bara en fråga eller skriver "sudo apt-get install lamp-server ^".
CodeAcademy har en PHP-kurs. Så gör Tuts + och Lynda. Alla är fantastiska. Även om jag personligen skulle rekommendera Larry Ullman PHP och MySQL för dynamiska webbplatser, som vid skrivetid är tillgänglig för $ 28,90 på Amazon. Jag äger en kopia själv och har funnit att det är en tillförlitlig, tillgänglig, guide till webbutveckling med PHP-programmeringsspråket.
Jag tvivlar inte på att den genomsnittliga tonåren skulle kunna förstå innehållet i den här boken.
Underlåtenhet att göra, MakeUseOf har publicerat en guide till PHP (skrivet av din egentligen), tillgänglig för att läsa gratis här Lär dig att bygga med PHP: En Crash Course Lär dig att bygga med PHP: En Crash Course PHP är det språk som Facebook och Wikipedia använder att tjäna miljarder ansökningar dagligen de facto-språket som används för att lära ut webbläsning. Det är vackert enkelt, men briljant kraftfullt. Läs mer .
Men framförallt, instill i ditt barn att lära sig att bygga för webben är a lärningsprocess, och en som tar tid och engagemang. För att hålla ditt barn motiverat kanske du vill ställa dem ett projekt som de kan arbeta för.
Det finns många enkla webbplatser som kan byggas av en elevutvecklare. Kanske en gästbok, eller en microblogging webbplats som Twitter.
En av de mest förbisedda aspekterna av att lära sig att koda är återkoppling. När de har byggt upp något, överväga att övertyga dem om att dela det på Github, så att mer erfarna utvecklare kan kritisera och erbjuda vägledning. Learn Programming subreddit är också ganska bra för det.
Och sedan lära ditt barn hur du värd och hantera sina egna Linux-webbservrar genom att köpa dem en Digital Ocean-druppel DigitalOcean: Den bästa omanagda VPS-värdnätet för nybörjare DigitalOcean: Den bästa omanagda VPS-värdnätet för nybörjare Om du behöver VPS-värd och du vill ha att hantera all serveradministration själv, så här är varför DigitalOcean är ditt bästa alternativ. Läs mer, vilket kostar så lite som $ 5 per månad.
Delta i en kodklubb
Okej, jag lurar här.
Detta är inte ett projekt, i sig. Men om du vill lära dig ditt barn grundläggande grunderna i databehandling och du vill göra det på ett mer strukturerat och socialt sätt, bör du ta dem till en kodklubb.
Tillgängligheten av dessa kommer givetvis att variera beroende på var du bor. I Storbritannien finns det Kodklubb, en ideell vinst som syftar till att undervisa barn mellan åldern 9 och 11 för att koda. Kodklubbar finns i de flesta större städer, med undervisningen organiserad i "termer". Varje termin lär en annan fasad av programmering, såsom Scratch, HTML och CSS, och Python, med att kursinnehållet blir mer och mer komplext när varje termin går vidare.
Kodklubbar utnyttjar ofta Raspberry Pis och Linux, eftersom de är extremt billiga att förvärva jämfört med traditionella datorer.
Men vad sägs om över dammen?
Amerika har långt, alldeles för många Kod Club-like organisationer att nämna i en artikel. Men det finns några som sticker ut.
Gates och Zuckerberg finansierade Code.org är mest kända för sin Klocktid projekt som försöker få både vuxna och barn att spendera en timme om året att lära sig att koda. Men visste du att det är värd för en nästan omfattande lista över datavetenskapskurser tillgängliga i USA, med många tillgängliga i bibliotek, samhällscentra och skolor?
Men jag skulle vara remiss om jag inte nämnde den lysande Black Girls Code, som gör något riktigt viktigt arbete. De försöker ta itu med det skamliga etniska och könsspalten inom STEM (vetenskap, teknologi, teknik och matematik) genom att tillhandahålla gratis datavetenskapskurser till svarta tjejer i hela USA. Klasser finns i ett antal större städer, beroende på tillgänglighet. Kolla webbplatsen Black Girls Code för mer information.
Tid till kod
Okej folk. Sommaren är officiellt här. Skolorna har antingen stängt eller stängs. Vad ska du göra? Ska du ta dem till en kodklubb, eller ska du ge dem en Raspberry Pi och se var deras fantasi tar dem?
Hur som helst vill jag höra om det. Släpp mig en kommentar nedan, och låt mig veta.
Fotokrediter: HTML-kod (Marjan Krebeji), PHP-kod (Bull3t Hughes), lär dig att använda bärbar dator via Shutterstock
Utforska mer om: Linux, Python, Scratch.