CS50 je najpopularniji kurs na Harvardu, Yale-u i internetu — Evo šta smo naučili iz njega

Harvardov kurs osnova programiranja i računarstva, CS50, je iz dana u dan sve popularniji. Kroz pregled kursa, izdvajamo nekoliko lekcija koje smo iz njega naučili.

Dimitrije Milenković - 11. Januar, 2017.

Retki su univerzitetski kursevi na kojima su predavali Mark Zakerberg i Stiv Balmer, a mali je i broj onih čije lekcije je slušalo više od 100 000 studenata i koji uz to imaju svoj zaštićeni brend i promotivne proizvode.

Uvod u računarstvo, odnosno CS50 (eng. Computer Science 50), sluša više od 12% Harvardovih i 10% studenata Yale-a.

Ovi brojevi čine ga najpopularnijim kursom na oba univerziteta.

Saradnjom sa online obrazovnom platformom edX, CS50 je postao besplatno dostupan svima širom sveta.

Popularizacijom ovakvih platformi i masovnih otvorenih internet kurseva, odnosno MOOC-ova, obrazovanje je dobilo nov kontekst. Najbolji univerziteti su postali dostupni svima, okupljeni na posebnim mestima na internetu.

edX je jedno od najznačajnijih takvih mesta, a njegov najpopularniji MOOC je upravo Harvardov Uvod u računarstvo, tj. CS50.

Zašto ne treba zaobilaziti osnove, koliko je bitna posvećenost predavača i da li su MOOC-ovi uzrokovali revoluciju u obrazovanju? Kroz pregled CS50-a, izdvajamo par lekcija o učenju koje nas je on naučio, a njihovu ispravnost potvrdila njegova velika popularnost na tri releventna mesta (Harvard-Yale-Internet).

Računarstvo vs Kodiranje

Broj onih koji uče da programiraju stalno se povećava. Ako ste jedan od tih, postoji velika verovatnoća da ste učenje počeli savladavanjem sintakse jezika preko popularnih platformi sa kratkim lekcijama.

Početnici često smatraju da je to sve što je potrebno da znaju. No, programiranje nije kucanje koda, već način razmišljanja. Ako želite da postanete dobar programer, veoma je bitno imati ovo na umu.

Na ovu temu, pročitajte tekst o tome zašto i kako je računarstvo mnogo više od kodiranja.

Kada dobro savladate osnove i počnete da razmišljate na “programerski” način, učenje konkretnih tehnologija biće za vas kao “dobar dan”.

To vas u ovom poslu čini konkurentnijim na duže staze. Programer sa dobrom osnovom sutra, kada tehnologija u kojoj radi ne bude više aktuelna, moći će lako da nauči drugu i ostane “u toku”, dok će za “kodera” to, maltene, biti novi početak.

Gotovo svi iskusni programeri će vam potvrditi ovo. “Koderi” se u ovom svetu ne snalaze dobro. Tehnologija se brzo menja, programski jezici nestaju i nastaju, a ono što traje je sama paradigma.

Jedan od načina za sticanje kvalitetne osnove je CS50. Ovaj kurs će vam dati temelj i svest na osnovu kojih dalje možete da se obrazujete u oblasti programiranja, i postanete kvalitetan developer koji zna šta se dešava “ispod haube”.

Nakon ovog kursa nećete biti spremni za posao. Ali, nećete ni nakon bilo kog drugog. Učenje programiranja je kontinualan proces. Ovaj kurs je samo prvi korak u tom procesu. Onaj pravi korak koji će učiniti naredne lakšim.

Šta se uči na CS50-u?

Na CS50-u učite od osnovnih apstrakcija, algoritama i struktura podataka, do bezbednosti i veštačke inteligencije. Ovaj kurs, pored osnovnih koncepata, pokriva i suštinu najaktuelnijih trendova u računarstvu.

Na početku kursa se prelaze osnove — uči se o tome kako računar radi i šta se to dešava “ispod haube”. Za tako nešto, idealan je programski jezik C, smatra tim CS50-a.

Većinu zadataka na kursu radićete u C-u, a u kasnijim fazama kursa koristićete i Python,  Javascript sa HTML-om i CSS-om.

Kao što je već pomenuto, ovo je samo jedan od načina za savladavanje osnova i ulazak u svet računarstva na prava vrata.

Mišljenja su podeljena — ne postoji idealan programski jezik za početnike. Nećete se prevariti ako krenete da učite neki drugi, ali morate imati na umu da je bitno da znate zašto nešto funkcioniše na baš određeni način.

Sa C-om kao programskim jezikom sa malo apstrakcija, smanjujete rizik da se ovako nešto desi jer vas on primorava da razumete način funkcionisanja računara.

Nakon osnovnih koncepata programiranja, na CS50 kursu učite o web programiranju, bezbednosti i veštačkoj inteligenciji.

Tokom kursa rešavaju se zadaci inspirisani stvarnim problemima u biologiji, kriptografiji, finansijama, forenzici i igricama. Kako bi se položio kurs mora se uraditi i završni projekat, koji je i te kako slobodan — jedini zahtev je napraviti nešto što rešava problem primenom znanja stečenih tokom kursa.

Evo kako tačno izgleda struktura kursa:

Predavanja u VR-u i kurs za srednjoškolce

Ozbiljna produkcija koja stoji iza CS50-a još jedan je od razloga njegove velike popularnosti. Ulaže se poseban trud da snimci predavanja svakom “internet studentu” prenesu atmosferu iz čuvenog Sanders teatra na Harvardu i amfiteatra na Yale-u.

Kako bi internet studenti bili što bliži onima koji su fizički tamo, a praćenjem napretka tehnologije, CS50 ide korak dalje — tim od ove godine snima predavanja u VR-u.

Harvard je tako postao prvi univerzitet koji je ponudio ovu opciju.

 

Od ove godine, CS50 ima svoj AP (eng. Advanced Placement) za srednjoškolce. Američki nastavnici i srednjoškolci sada mogu da prate predmet po odobrenom kurikulumu koji nudi tim CS50-a i koriste njihove interaktivne metode učenja. S obzirom na to da je AP dostupan besplatno onlajn, ovo otvara nove mogućnosti.

Srednjoškolska informatika je kod nas često ocenjena kao nedovoljno praktična ili zastarela. CS50 AP može poslužiti nastavnicima i srednjoškolcima, ako ne kao okidač za promene u programu, bar kao test za preispitivanje kvaliteta istog.

Programiranje iz drugačijeg ugla

CS50 poznat je po izvrsnom profesoru i predavaču — Dejvidu Džej Melanu. On podučavanju programiranja pristupa na potpuno drugačiji način od njegovih kolega širom sveta.

Takođe, ono što je posebno interesantno kod njega, a što može biti dodatna motivacija svima vama koji tek ulazite u ovaj svet, jeste njegov put do programiranja. Prve tri godine studija, on je bio na smeru za državnu upravu, da bi onda, nakon odslušanog tadašnjeg CS50-a, promenio interesovanja.

Na jednom predavanju, on upravo priča o tome kako je bio jedan od onih koji su ovu profesiju videli na pogrešan način:

david-malan-computer-scientistMislio sam da je programiranje pisanje koda. Video sam to kao provođenje sata i dana kuckajući na tastaturi. Kasnije sam shvatio da to uopšte nije tako. Ovde se radi o idejama  — o rešavanju problema.

Po statistici, 72% studenata CS50-a upiše kurs bez ikakvog predznanja o programiranju. Do kraja kursa, svi oni su sposobni da naprave svoje aplikacije u okviru završnog projekta.

Sa tolikim brojem početnika dolazi pitanje kako zadržati njihovu pažnju i zainteresovati ih za ovu oblast. Tim CS50 osmišljava detaljno svako predavanje tako da uključuje studente i oslanja se na interesantne primere.

Čuven je prvi čas na kome Melan objašnjava sistem binarnih brojeva. On koristi prekidače i sijalice kako bi demonstrirao bitove — jedinice i nule, znakove za uključeno i isključeno — kao nosioce informacija.

Kasnije, on se bavi i paradigmom koja stoji iza divide-and-conquer algoritama, kakvi su, na primer, mergesort i quicksort za sortiranje brojeva.  Zavadi pa vladaj, odnosno divide-and-conquer algoritmi, zasnivaju se na rešavanju kompleksnih problema, razlagajući ih na male, lako rešive.

Melan objašnjava algoritme ove vrste na primeru telefonskog imenika sa 40 milijardi brojeva tragajući za “Markom Smitom”. Cepajući imenik, on u 36 koraka dolazi do njega, a kako to izgleda pogledajte u 19. minutu sledećeg snimka:

 

MOOC-ovi kao revolucija u obrazovanju

Masovni otvoreni internet kursevi, odnosno MOOC-ovi, izazvali su revoluciju u obrazovanju. Čitave programe najboljih svetskih univerziteta poput Harvarda, MIT-a, Stanforda i drugih, sada možemo pratiti putem interneta.

mooc-je-masivni-otvoreni-online-kurs

 

Pre par godina, amerikanac Skot Jang opravdao je moje oduševljenje “drugačijim načinom obrazovanja”. Ovaj čovek uspeo je da za manje od godinu dana završi kompletne četvorogodišnje studije računarstva na MIT-u — preko besplatne platforme univerziteta.

Ako ste tek na početku vašeg učenja, preporučujem da pogledate ovaj TedX govor:

 

Očigledno je da danas to gde živimo i koliko para imamo gotovo minimalno utiče na naše obrazovanje. Potrebno je samo prosečno znanje engleskog i internet konekcija.

Čak i da ste potpuni početnik, verovatno ste već naišli na njih — najpopularnije MOOC platforme su Coursera, edX i Udacity, a neki univerziteti čak nude većinu svojih kurseva na posebnoj platformi, poput pomenutog MIT-a i Stanforda.

Ako želite nešto da naučite, kako biste se time primarno bavili ili kako biste rešili konkretan problem — počnite to odmah.

Najkvalitetnije obrazovanje dostupno je svima preko interneta i bezveze bi bilo to ne iskoristiti. Međutim, budite svesni da, iako je znanje na dohvat ruke, učenje često nije lak proces i mnogi ne istraju u samoedukaciji. Kao i kod mnogih stvari u životu, na kraju odluči upornost.