CS50, Harvards överprenumererade och inflytelserika kodningskurs för världens mest elitiska sinnen är, förvånansvärt, otroligt svårt att komma igång. Det är därför Harvard ger dig tillgång till de överflödiga CS50-resurserna online gratis eller som en betald kurs om du vill få ett formellt intyg om dina färdigheter i slutet.
Om du undrar hur du kommer åt CS50-innehåll online finns det fyra sätt:
Ta CS50 online: Harvard Extension School
Harvards egen distansutbildningsfilial, Harvard Extension School, erbjuder olika smaker av CS50. Den terminlånga CSCI E-50 Intensiv introduktion till datavetenskapskursen erbjuder fyra poäng mot en examen och kostar $ 2400. Utrymmet är begränsat till 200 studenter och kurser är dock kraftigt överprenumererade. Hålla ett öga på extension.harvard.edu för när anmälan öppnas för nästa års höst- och vårkurser.
Ta CS50 online: edX
Alternativt erbjuds kursen genom onlineutbildningswebbplats edX , där du kan hantera det i din egen takt. Enligt edX-sidan för CS50 får studenter som får en tillfredsställande poäng på nio problemuppsättningar (dvs. programmeringsuppgifter) och ett slutprojekt ett certifikat från HarvardX. Studenter kan ta kursen gratis, men måste betala $ 90 om de vill få ett instruktörssignerat certifikat med institutionens logotyp för att verifiera din prestation och öka dina jobbutsikter.
Ta CS50 online: iTunes U
Kursen och allt dess material finns - som många andra Harvard-kurser - också tillgänglig på Apples iTunes U. Du kan ladda ner appen gratis från App Store (antingen på iPhone, iPad eller Mac) och söka efter CS50 i katalogen. Alla videoföreläsningar, problemuppsättningar, frågesporter och annat material finns i förpackningen, även om en relativt ny redesign av iTunes U har gjort den här massan av material mycket svårare att navigera än den en gång var.
Ta CS50 online: YouTube
Det sista sättet är att helt enkelt titta på alla föreläsningar - som i sig är en givande strävan - på YouTube. Alla föreläsningar från kursen Datavetenskap 50 2015 finns på Harvard-kanal . Det finns mer än 20 timmars film att arbeta igenom, även om varje enskild föreläsning inte är längre än en timme eller så.
LÄS NÄSTA: Lär dig att koda gratis i Storbritannien
hur man skickar ett självförstörande textmeddelande
Kan du klara CS50?
Orolig att du inte har det mentala bruset att gå på Harvards elitkurs? Här är några exempel på frågor direkt från Harvards kurs. Oroa dig inte, de är inte heller vettiga för mig.
1: Vigenère-chifferet
Din sista utmaning den här veckan är att skriva, i vigenere.c, ett program som krypterar meddelanden med hjälp av Vigeneres chiffer. Detta program måste acceptera ett enda kommandoradsargument: ett nyckelord, k, som helt består av alfabetiska tecken.
Om ditt program körs utan några kommandoradsargument, med mer än ett kommandoradsargument eller med ett kommandoradsargument som innehåller något icke-alfabetiskt tecken, bör ditt program klaga och avsluta omedelbart, med huvudåtergivande 1 (därmed vilket innebär ett fel som våra egna tester kan upptäcka).
Annars måste ditt program fortsätta för att be användaren om en sträng av klartext,
p, som den sedan måste kryptera enligt Vigenères chiffer med k, i slutändan skriva ut resultatet och avsluta, med huvudretur 0.
När det gäller karaktärerna i k måste du behandla A och a som 0, B och b som 1, ... och Z och z som 25. Dessutom måste ditt program bara tillämpa Vigenères chiffer på en karaktär i p om den karaktären är ett brev. Alla andra tecken (siffror, symboler, mellanslag, skiljetecken osv.) Måste matas ut oförändrade.
Dessutom, om din kod är på väg att tillämpa j-tecknet på k på det ith-tecknet på p, men det senare visar sig vara ett icke-alfabetiskt tecken, måste du vänta med att tillämpa det j-tecknet på k på nästa alfabetiska tecken i p ; du får ännu inte gå vidare till nästa karaktär i k. Slutligen måste ditt program bevara fallet för varje bokstav på sid.
2. Fifteen Game
The Game of Fifteen är ett pussel som spelas på ett fyrkantigt bräde med numrerade brickor som glider. Målet med detta pussel är att ordna brädans brickor från minsta till största, vänster till höger, uppifrån och ned, med ett tomt utrymme i brädans nedre högra hörn.
Implementera Gud Mode för detta spel.
Först implementera init på ett sådant sätt att kortet initieras till en pseudorandom men lösbar konfiguration. Slutför sedan genomförandet av dragning, flytt och vann så att en människa faktiskt kan spela spelet.
Se relaterad CS50: Inuti världens mest elitdatorkurs Lär dig att koda gratis: De bästa kurserna i Storbritannien för kodning och apputveckling under den nationella kodningsveckan Ett år som kodande nomad
Men bädda in ett spel i spelet, där, i stället för att skriva ett heltal mellan 1 och d2 - 1, där d är brädans höjd och bredd, kan människan också skriva GUD för att tvinga 'datorn' att ta kontroll över spelet och lösa det (med vilken strategi som helst, optimal eller icke-optimal), gör, säg, bara fyra drag per sekund så att människan kan titta.
Förmodligen måste du byta ut GetInt mot något mer mångsidigt. Det är bra om din implementering av God Mode bara fungerar (otroligt snabbt) för d ≤ 4; du behöver inte oroa dig för att testa God Mode för d> 4. Åh, och du kan inte implementera God Mode genom att komma ihåg hur initierat styrelsen (som genom att komma ihåg sekvensen av drag som fick ditt program till ett pseudorandom men lösligt tillstånd). Bra försök.
Alla problem upphovsrätt till Harvard University. Fullständiga problemuppsättningar publiceras på: cs50.harvard.edu