CS50: Hur man tar Harvards kodningskurs online

CS50, Harvards övertecknade och inflytelserika kodningskurs för världens mest elithjärnor är, föga förvånande, otroligt svår att komma på. Det är därför Harvard ger dig tillgång till de rikliga CS50-resurserna online gratis eller som en betalkurs om du vill få ett formellt certifikat på dina färdigheter i slutet.

CS50: Hur man tar Harvards kodningskurs online

Om du undrar hur du kommer åt CS50-innehåll online finns det fyra sätt:

Ta CS50 online: Harvard Extension School

Harvards egen distansutbildningsgren, Harvard Extension School, erbjuder olika smaker av CS50. Den terminslånga CSCI E-50 Intensive Introduction to Computer Science-kursen erbjuder fyra poäng mot en examen och kostar $2 400. Utrymmet är begränsat till 200 studenter och kurser är dock kraftigt övertecknade. Hålla ett öga på extension.harvard.edu för när anmälan öppnar till nästa års höst- och vårkurser.

Ta CS50 online: edX

Alternativt erbjuds kursen genom utbildningswebbplats edX, där du kan ta itu med det i din egen takt. Enligt edX-sidan för CS50 kommer ”studenter som får ett tillfredsställande betyg på nio problemuppsättningar (dvs. programmeringsuppgifter) och ett slutprojekt att få ett certifikat från HarvardX”. Studenter kan ta kursen gratis, men måste betala $90 om de vill få ”ett instruktörsundertecknat 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 – liksom många andra Harvard-kurser – även 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 packningen, även om en relativt ny omdesign av iTunes U har gjort denna massa material mycket svårare att navigera än det en gång var.

Ta CS50 online: YouTube

Det sista sättet är att helt enkelt titta på alla föreläsningar – vilket är en givande sysselsättning i sig – på YouTube. Alla föreläsningar från 2015 års kurs Datavetenskap 50 finns på Harvard kanal. Det finns mer än 20 timmars film att arbeta igenom, även om varje enskild föreläsning inte är mer än en timme eller så lång.

LÄS NÄSTA: Lär dig att koda i Storbritannien gratis

Kan du klara CS50?

Orolig för att du inte har den mentala nusen att ta dig an Harvards elitkurs? Här är några exempel på frågor direkt från Harvards kurs. Oroa dig inte, de är inte vettiga för mig heller.

1: Vigenère-chifferet

”Din sista utmaning denna vecka är att skriva, i vigenere.c, ett program som krypterar meddelanden med Vigenères 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-alfabetisk tecken, bör ditt program klaga och avsluta omedelbart, med main returnerar 1 ( vilket innebär ett fel som våra egna tester kan upptäcka).

”Annars måste ditt program fortsätta för att fråga användaren om en sträng med klartext,
p, som den sedan måste kryptera enligt Vigenères chiffer med k, för att slutligen skriva ut resultatet och avsluta, med huvudretur 0.

”När det gäller tecknen i k måste du behandla A och a som 0, B och b som 1, … och Z och z som 25. Dessutom får ditt program bara tillämpa Vigenères chiffer på ett tecken i p om det tecknet är ett brev. Alla andra tecken (siffror, symboler, mellanslag, skiljetecken, etc.) måste matas ut oförändrade.

”Dessutom, om din kod är på väg att tillämpa det j:te tecknet i k på det i:te tecknet i p, men det senare visar sig vara ett icke-alfabetiskt tecken, måste du vänta med att tillämpa det j:te tecknet i k på nästa alfabetiska tecken i p; du får ännu inte gå vidare till nästa tecken i k. Slutligen måste ditt program bevara skiftläge för varje bokstav i p.”

2. The Game of Femton

”The Game of Fifteen är ett pussel som spelas på en fyrkantig bräda med numrerade brickor som glider. Målet med detta pussel är att arrangera brädans brickor från minsta till största, från vänster till höger, uppifrån och ned, med ett tomt utrymme i brädets nedre högra hörn.

”Implementera God Mode för det här spelet.

”Implementera först init på ett sådant sätt att kortet initieras till en pseudoslumpmässig men lösbar konfiguration. Slutför sedan implementeringen av dra, flytta och vann så att en människa faktiskt kan spela spelet.

”Men bädda in ett fusk i spelet, där människan, snarare än att skriva ett heltal mellan 1 och d2 – 1, där d är brädets höjd och bredd, kan skriva GUD för att tvinga ’datorn’ att ta kontroll över spelet och lös det (med valfri strategi, 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 (uthärdligt 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 init initierade brädan (som genom att komma ihåg sekvensen av drag som fick ditt program till ett pseudoslumpmässigt men lösbart tillstånd). Bra försök.”

Alla problem upphovsrätt av Harvard University. Fullständiga problemuppsättningar publiceras på: cs50.harvard.edu

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *