MIT Challenge

, Author

De komende 12 maanden ga ik het volledige vierjarige MIT-curriculum voor computerwetenschappen leren, zonder lessen te volgen.

UPDATE: De MIT Challenge is nu voltooid. Ik eindigde op 26 september 2012, iets minder dan 12 maanden na het begin op 1 oktober 2011. Klik op “See More…” voor elke klas om toegang te krijgen tot mijn examens, officiële oplossingen of code die ik heb geschreven.

Antwoorden op een aantal veelgestelde vragen:

  1. Hoeveel heb ik tijdens de challenge gewerkt? In het begin ruwweg 60 uur/week. Later meer als 35.
  2. Heb je een graad van MIT? Nee. Zie het gesprek hierboven voor mijn motivatie om de hele opleiding zonder studiepunten te doen.
  3. Doet u alles wat een MIT-student doet? Nee. Ik heb de examens en programmeerprojecten gedaan voor een curriculum dat erg lijkt op dat van MIT zelf (ik moest sommige laboratoriumlessen en geesteswetenschappenvereisten omwisselen voor andere klassen). Het aantal studiepunten is echter hetzelfde. Kijk hier voor MIT’s werkelijke 4-jarige CS curriculum als een vergelijking met mijn eigen. (Opmerking: Deze link is bijgewerkt omdat de oude dood was, maar ik heb niet gecontroleerd of er wijzigingen zijn aangebracht in het CS curriculum sinds ik de MIT Challenge heb gedaan)
  4. Heb je tekstboeken of collegevideo’s gebruikt? Alles staat in het deelvenster “See More…” voor elke les. Bekijk het als je niet zeker bent voor elke les.
  5. In welke volgorde heb je de lessen gedaan? In de volgorde zoals hieronder vermeld. Behalve dat sommige op hetzelfde moment werden gevolgd. Maar als je deze volgorde aanhoudt, mis je geen voorkennis.
  6. Heb je het werk zelf beoordeeld? Ja. Toegegeven, dit introduceert een zekere mate van fout ten opzichte van een professor die mijn werk beoordeelt. Maar de meeste examens zijn kwantitatief, met oplossingen die in rubrics zijn ingedeeld, dus dat beperkt de fouten enigszins. Ik moedig iedereen aan om mijn eigenlijke examenresultaten te bekijken en ze te vergelijken met de oplossingen. In veel van de examens die lange berekeningen vereisten, stond ik gedeeltelijke cijfers toe op voorwaarde dat de concepten die in de cursus werden onderwezen correct werden toegepast. Ik denk dat de gegeven quotering redelijk is, maar als je het standpunt zou innemen dat elke fout (zoals vergeten een minteken te plaatsen) een hele vraag ongeldig maakt, zou dit sommige van mijn cijfers verlagen. Ik heb ze herberekend volgens deze strengere beperkingen en het eindexamen voor 18.01, 5.111, 18.03, 6.002 en 6.013 zou onder de slaagdrempel vallen (de andere 28 lessen werden niet beïnvloed of bleven boven de slaagdrempel). Ik geloof dat de oorspronkelijke indeling eerlijk was, zij het onvolmaakt, maar deze latere berekeningen tonen het effect aan van mijn beslissing om deelcijfers te gebruiken.
  7. Vindt u dat iedereen niet naar de universiteit moet gaan en in plaats daarvan dit moet doen? Natuurlijk niet. Ik heb mijn doctoraal aan de universiteit gedaan en ik heb er geen spijt van. Mijn doel met dit project was om te zien of het mogelijk zou zijn om de verwachtingen over hoe lang, hoe duur en hoe conventioneel een opleiding moet worden gevolgd, te temperen.

Computers hebben me altijd gefascineerd. Van financiën tot Facebook, algoritmen zijn de verborgen taal die ten grondslag ligt aan het grootste deel van ons leven. De grootste veranderingen in onze wereld worden in code geschreven, en vooruitgang in kunstmatige intelligentie stelt ons in staat computers te gebruiken om te begrijpen wat het betekent mens te zijn.

Naast de poëzie van de machine is computerwetenschap ook immens praktisch. Er zijn fortuinen gemaakt en revoluties ontketend op regels code.

Ik heb die taal altijd al willen spreken. Maar ik wilde geen vier jaar van mijn leven en honderdduizenden dollars investeren om het te leren.

Ik ga dit experiment aan omdat ik wil laten zien dat je voor leren geen toelatingsexamens en SAT-tests nodig hebt, geen duizenden dollars schuld, of zelfs niet het vierjarige tempo waarvan de meeste studenten denken dat het nodig is om een vak te leren.

Zal ik falen? Het is zeker een mogelijkheid – mensen veel slimmer dan ik worstelen met immense werkdruk op instellingen zoals MIT, en ik probeer dezelfde stof te leren op 4x de snelheid, zonder het voordeel van instructeurs.

Het enige dat ik kan beloven is om te delen wat ik met je vind. Hieronder staan alle 33 lessen die ik zal behandelen. Voor elk van hen zal ik het eindexamen schrijven en kun je mijn antwoorden vergelijken met de officiële oplossingen van MIT. Ik zal ook eventuele mislukkingen posten, zodat je er zeker van kunt zijn dat ik mijn fouten niet weglaat.

Post-MIT Challenge Update

Sinds de uitdaging is voltooid, gebruik ik deze ruimte om enkele van de nieuwe cursussen die ik voltooi of programma’s die ik heb voltooid met betrekking tot informatica te delen.

  • WordSmith – Dit is een AI die ik heb gebouwd en die Scrabble speelt. Gratis en open-source.

LEARNING PROGRESS (33/33):

Klik op de titels om video’s te bekijken, toegang te krijgen tot de cursussen en mijn resultaten te zien

8.01: Physics I – Classical Mechanics – COMPLETED

Ik heb deze cursus in juli afgerond als onderdeel van een pilotexperiment om te zien of ik het aankon om het hele programma te doen. De cursus is briljant, professor Walter Lewin brengt de natuurkunde op een geweldige manier tot leven zonder de intellectuele nauwkeurigheid op te offeren. Opmerking: Deze cursus werd verwijderd door MIT, je kan hier een andere versie vinden. Scott’s beoordeling: 5/5

18.01: Single Variable Calculus – COMPLETED

Dit was de eerste officiële cursus die ik heb gevolgd voor de MIT Challenge. Degelijke colleges gaven me een goed idee van de basis van calculus, beginnend bij limieten en oplopend tot meer geavanceerde integratie.
Scott’s rating: 4/5

18.02: Multi-Variabele calculus – COMPLETED

Deze les breidt de basisprincipes van de enkel-variabele calculus uit naar meer dan één dimensie. Zeer nuttig om te weten voor het begrijpen van elektriciteit, magneten, licht of alles wat met 3D-objecten te maken heeft.
Scott’s rating: 4/5

8.02: Physics II – Electromagnetism – COMPLETED

An another class taught by Prof. Walter Lewin, the demonstations are amazing. Streng voor wie de technische details wil, maar toch toegankelijk, met bespreking van alledaagse concepten zoals regenbogen en metaaldetectoren. Opmerking: De oorspronkelijke cursus die ik volgde werd door MIT verwijderd. Hier is een vervangende cursus.
Scott’s rating: 5/5

6.01: Introduction to EE and CS I – COMPLETED

Dit is een goede cursus, maar ik raad niet aan hem te volgen als je geen programmeerachtergrond hebt, omdat hij meteen in object-oriëntatie duikt met relatief weinig uitleg. Ik heb echt genoten van de mix van meer geavanceerde concepten van AI en toestandsmachines in de kerncursus. De cursusnotities zijn gratis en uitstekend, hoewel veel van de aandacht uitgaat naar robotica waarvoor gespecialiseerde apparatuur nodig is waar ik geen toegang toe heb. (Als een kanttekening, veel mensen hebben erop gewezen dat het eindexamen dat ik schreef niet volledig was, je kunt mijn diepgaande antwoord hier lezen) Opmerking: De oorspronkelijke cursus die ik volgde is omgeruild door MIT. Hier is een vervanging.
Scott’s rating: 4/5

  1. Toegang tot het cursusmateriaal gratis
  2. Download Code
    • Project: State-Machine Library
    • Project: Bayesian State Estimator
    • Project: A* Pathfinding Algorithm
  3. Mijn examenresultaten
  4. Actual MIT Solutions

5.111: Principles of Chemical Science – COMPLETED*

Goede inleiding tot kwantumchemie, Lewis-diagrammen, zuur/base- en redoxreacties. Bevat ook een meer gevorderd deel over overgangsmetalen en kristalveldentheorie. Helaas had de klas geen haalbaar eindexamen, dus ik was gedwongen om mijn praktijk tentamens te gebruiken als basis voor evaluatie.
Scott’s beoordeling: 4/5

7.012: Introduction to Biology – COMPLETED

Uitstekende biologiecursus die de biologie vanuit experimenteel oogpunt verkent en een basis geeft in de basis van biochemie, immunologie, genetica en ecologie. Het tekstboek is ook een goede aanvulling, omdat het de experimentele denkwijze laat zien die tot de ontdekkingen heeft geleid.
Scott’s beoordeling: 4/5

18.03: Differentiaalvergelijkingen – COMPLETED

Een uitbreiding van calculus, differentiaalvergelijkingen kunt u te modelleren en analyseren van complexe systemen. Ze spelen een bijzonder belangrijke rol in de elektrotechniek, waar ze (en hun discrete tegenhangers) essentieel zijn voor het begrijpen van schakelingen, signalen en systemen. De videocolleges die bij deze les horen, wijken sterk af van de rest van de cursusinhoud, waardoor ik wat tijd heb verloren.
Scott’s beoordeling: 3/5

6.02: Introduction to EE and CS II – COMPLETED

Dit was een lastiger college om te volgen omdat er geen college voor is in MIT’s OCW. Om het te leren moest je in de verborgen krochten van de openbare archieven van MIT zoeken naar notities en examens. Een gevolg daarvan was dat filterontwerp, een belangrijk onderwerp, helemaal ontbrak in de aantekeningen en dat ik niet in staat was de practica (6 & 7) of de examenonderdelen die daarover gingen te voltooien. Er was geen eindexamen, dus heb ik alle drie de tentamens gemaakt en ze samen beoordeeld: 3/5

  1. Cursusmateriaal
  2. Lab-opdrachten (waarschuwing groot), Opdrachtinstructies/Bestanden
  3. Mijn examenantwoorden
  4. Actuele MIT-oplossingen

6.042J: Wiskunde voor Informatica – COMPLETED

Grafieken, getaltheorie, bewijzen, kansberekening en tellen zijn slechts enkele van de onderwerpen die in deze uitstekende cursus aan bod komen. Er zijn geen videocolleges, maar het gratis cursusboek is ongelooflijk en boeiend. Er is ook een enorme hoeveelheid bronnen om de problemen te oefenen, die interessante uitdagingen bieden.
Scott’s beoordeling: 5/5

6.006: Inleiding tot algoritmen – COMPLETED

Een inleiding tot algoritmen en complexiteitstheorie. De cursus biedt een goede gelegenheid om algoritmische ontwerpconcepten (dynamisch programmeren, greedy-algoritmen, enz.) toe te passen op echte programmeringsproblemen, waardoor deze les een concreetheid krijgt die in 6.042J ontbrak. Helaas realiseerde ik me niet dat het eindexamen niet allesomvattend was voordat ik het schreef, dus ik heb ook mijn quizzen bijgevoegd die ik had gedaan om te oefenen. De meeste opdrachten heb ik voltooid, maar omdat er geen oplossingen bij zaten, heb ik ze zonder cijfer gelaten.
Scott’s beoordeling: 4/5

18.06: Lineaire Algebra – COMPLETED

Uitstekende videocolleges en een overvloed aan materiaal maakten dit een van de meer toegankelijke cursussen in de catalogus van OCW. Prof. Gilbert Strang geeft vloeiende, gemakkelijk te begrijpen lezingen. Mijn eerste examen voor deze cursus was slechts 56%, dus besloot ik nog een dag te nemen om het hoger scorende examen te schrijven dat ik hieronder heb gepost.
Scott’s rating: 5/5

6.041: Probabilistic Systems Analysis – COMPLETED

Een cursus in kansberekening, die ingaat op de fundamenten van kansberekening met behulp van calculus om moeilijkere probabilistische vragen te analyseren dan die in 6.042J worden gesteld. Het tekstboek is speciaal voor deze cursus ontworpen, dus het is uiterst nuttig.
Scott’s beoordeling: 4/5

6.002: Circuits and Electronics – COMPLETED

Deze cursus behandelt de basisprincipes van digitale en analoge circuits. Het examen was vrij uitdagend en het was het eerste examen waarbij ik echt tijd te kort kwam. Helaas zijn de officiële oplossingen alleen toegankelijk voor MIT, dus ik kan ze hier niet uploaden ter vergelijking. Deze les dient als basis voor veel van de latere EE lessen, dus ik weet zeker dat ik nog een kans krijg om echt getest te worden op de kernbegrippen.
Scott’s beoordeling: 4/5

6.046J: Design and Analysis of Algorithms – COMPLETED

Een van mijn favoriete vakken tot nu toe! De cursus verkent enkele van de meer geavanceerde concepten in algoritmen die niet in 6.006 voorkomen, zoals het bewijzen dat bepaalde problemen NP-compleet zijn, benaderingsalgoritmen, encryptie, sublineaire algoritmen en parallelle verwerking. Ik moest echter voorzichtig zijn omdat de OCW-versie van deze cursus dateert van voor MIT’s curriculumwijziging waarbij 6.006 werd toegevoegd, dus het behandelt aanzienlijk eenvoudiger materiaal dan de huidige versies.
Scott’s rating: 5/5

6.034: Artificial Intelligence – COMPLETED

Goede cursus die een overzicht gaf van verschillende AI-technieken, waaronder zoeken, constraint propagation, neurale netwerken, kernelmachines, conceptleren en natuurlijke taalverwerking. Ik heb ook 6 opdrachten gemaakt voor deze cursus waarvoor ik de programmeertaal Scheme moest leren. Een van de uitdagingen bij het schrijven van examens voor deze klas was de verscheidenheid in de syllabi, aangezien er zoveel verschillende technieken werden behandeld en de specifieke kenmerken van klas tot klas verschilden.
Scott’s beoordeling: 5/5

6.003: Signalen en Systemen – GECOMPLETEERD

In deze les leert u de grondbeginselen van signaal- en systeemanalyse, waarbij de wiskundige technieken die voor het eerst in 18.03 werden besproken, worden uitgebreid. Hoewel nuttig voor meer dan alleen circuits, is de les vooral belangrijk voor het begrijpen van zaken als frequentiemodulatie, audiofilters, ruisonderdrukking en dient zelfs als basis voor beeldanalyse en -manipulatie. Dit was ook het eerste examen waarvoor ik in eerste instantie zakte, gelukkig verbeterde ik me en scoorde een 69% bij mijn tweede poging. Opmerking: De originele cursus die ik heb gevolgd is niet meer beschikbaar. Hier is een vervanger.
Scott’s rating: 4/5

6.004: Computation Structures – COMPLETED

Goede les over de raakvlakken tussen elektrotechniek en informatica. Het ontwerpproject omvatte het bouwen van een CPU-specificatie op poortniveau, dat wil zeggen het bouwen van de schakelingen die het mogelijk maken een computer te bouwen. Het enige zwakke punt was het relatieve gebrek aan materiaal in de les, maar de opdrachten en practica werden sterk ondersteund.
Scott’s rating: 4/5

  1. Toegang tot het cursusmateriaal gratis
  2. Labs en projecten(Opmerking: BSim en JSim zijn nodig om de bestanden uit te voeren. Ze kunnen gratis worden gedownload van de cursuspagina)
  3. Mijn Examen
  4. MIT Officiële Oplossingen

24.241: Logica I – GECOMPLETEERD

Intro in sententiële en predicatenrekening, hun afleidingssystemen en metatheoretische bewijzen. Ik vond het college nogal droog en technisch, maar het college bood wel goede oefening in meer rigoureuze bewijsmethoden, in tegenstelling tot de meer informele stijlen die in informaticalessen worden onderwezen. Helaas zijn de examenantwoorden die ik heb gebruikt om mijn paper te corrigeren niet openbaar, dus ik kan ze hier niet plaatsen.
Scott’s beoordeling: 3/5

14.01: Principles of Microeconomics – COMPLETED

Ik had microeconomie al gevolgd toen ik mijn business diploma haalde, dus het overgrote deel van deze cursus was een herhaling. Maar omdat MIT een veel sterkere wiskundige basis heeft dan mijn alma mater, was het verfrissend om meer rigoureuze technische definities van veel van de concepten te zien. Ik heb iets minder dan vier dagen aan deze cursus besteed, dus de meeste van mijn fouten kwamen voort uit het vergeten van technische definities en formules, aangezien die niet in het examen werden gegeven.
Scott’s rating: 3/5

6.033: Computer Systems Engineering – COMPLETED

Een nuttige cursus waarin de grondbeginselen van computernetwerken, encryptie, client-server paradigma en het Internet worden uitgelegd. Ik vond een deel van de les repetitief na 6.004 en 6.02, die overlappende inhoud hadden, maar het was nog steeds nuttig. Ik maakte de fout om niet genoeg aandacht te besteden aan de leesopdrachten, omdat daar het grootste deel van het leren vandaan komt.
Scott’s rating: 4/5

6.013: Electromagnetics and Applications – COMPLETED

Ongetwijfeld het moeilijkste vak dat ik tot nu toe in het programma heb gevolgd. De cursus maakt veel gebruik van vectorrekening, transformaties en complexe notatie, naast een algemene uitbreiding van de principes van elektromagnetisme die in 8.02 werden onderwezen. Een sterke basis in de onderwerpen van 6.003, 6.002, 18.02, 18.03 en 8.02 is een goed idee als je aan deze cursus wilt deelnemen. Ik heb het examen maar net gehaald, dus het is zeker een onderwerp dat ik in de toekomst nog eens zou willen bekijken en verfijnen, omdat er veel interessante ideeën in naar voren kwamen.
Scott’s beoordeling: 3/5

14.02: Principles of Macroeconomics – COMPLETED

Ik had ook al eerder macroeconomie gedaan toen ik mijn undergraduate graad deed, dus dit was vooral een recap. Dat gezegd hebbende, dacht ik dat de MIT-versie van de cursus en het ondersteunende materiaal veel toegankelijker waren. Het is een geweldige cursus om te volgen als je de economie in zijn geheel wilt begrijpen. Opmerking: De oorspronkelijke cursus die ik volgde, werd door MIT verwisseld. Hier is een vervanging.
Scott’s rating: 3/5

24.242: Logic II – COMPLETED

Deze les was volledig gebaseerd op 8 huiswerkopdrachten, dus de hoeveelheid toetsmateriaal die ik heb doorgenomen was helaas zwakker dan bij veel anderen. Dat gezegd hebbende, ik hield van dit college, omdat Godel’s onvolledigheidstheorema’s een van de meest diepgaande ideeën zijn die ik ooit in een college heb gezien.
Scott’s beoordeling: 5/5

6.011: Intro to Comm., Control and Signals – COMPLETED

Deze les was een uitbreiding op 6.003, Signals and Systems. Het neemt de basisconcepten van signaalanalyse en filters en breidt deze uit tot state-machine representaties en stochastische signalen. De toevoeging van willekeurige signalen is zeer nuttig voor de behandeling van ruis, zodat veel van de concepten in deze cursus praktischer zijn dan hun ideale tegenhangers in 6.003. Het gratis tekstboek/cursusaantekeningen was erg nuttig.
Scott’s rating: 4/5

24.244: Modale logica – COMPLETED

Modale logica is de logica van mogelijkheid en noodzakelijkheid en breidt de basis predikatenrekening uit. Het is een interessante logica om te bestuderen, omdat ze veel verschillende systemen van logica kan vertegenwoordigen, afhankelijk van de gekozen axioma’s (deontisch, alethisch, tense, enz.). Het eindexamen was een take-home examen, dus ik heb het in twee dagen afgelegd.
Scott’s rating: 3/5

14.20: Industriële organisatie – AFGESLOTEN

Intro-economiecursussen vereenvoudigen de analyse meestal door uit te gaan van perfecte concurrentie of monopolie. Deze cursus maakt korte metten met die veronderstelling en gaat na hoe bedrijven strategisch met elkaar concurreren. Deze cursus heeft echt mijn interesse gewekt om meer te leren over speltheorie. Helaas realiseerde ik me niet dat het voorbeeldexamen vrij beperkt was als dekking van de inhoud, maar het was het beste wat ik kon doen.
Scott’s rating: 3/5

14.23: Overheidsregulering van de industrie – COMPLETED

De inhoud van dit college was zeer vergelijkbaar met 14.20, hoewel het meer gericht was op de historische context en het politieke kader dan op de speltheoretische kant. Een interessante cursus, het tekstboek lezen secties waren vrij lang (bijna 900 pagina’s), maar het niveau van wiskundige analyse was licht, dus het maakte voor gemakkelijk lezen.
Scott’s beoordeling: 3/5

14.48J: Economics of Education – COMPLETED

Gezien de aard van mijn uitdaging was dit een leuk college omdat het de verschillende theorieën over onderwijs onderzocht. Het grootste deel van de cursus leek op een discussie over econometrie, omdat de literatuur geen uitsluitsel geeft over veel kernideeën (zijn kleinere klassen beter? Werken voucher-programma’s?). De les onderzocht ook de verschillen tussen de standaard menselijk-kapitaaltheorie van onderwijs versus de verklaring van signalering, hoewel, nogmaals, de gepresenteerde literatuur meestal geen uitsluitsel gaf.
Scott’s rating: 3/5

6.005: Elements of Software Construction – COMPLETED

Dit is de verplichte cursus softwareontwikkeling van MIT. Het was een zware, niet omdat het te intellectueel veeleisend is, maar vanwege de hoeveelheid werk. Het bestaat uit 3 team projecten, 3 individuele projecten en verschillende labs (opdrachten, op hun eigen manier). Ik aarzelde om deze cursus te volgen omdat de tijdsdruk het moeilijk maakt om dit soort cursussen te volgen, maar uiteindelijk vond ik dat de enige manier was om gewoon al het werk te doen.

Ik slaagde erin om de cursus in ongeveer 3 weken af te ronden, verspreid over ongeveer twee maanden. Het was een van de meest lonende lessen, ook al was het ook de meest tijdrovende. Ik had graag langer willen doorgaan met elk project, met name de laatste instant messaging applicatie die ik vanaf nul heb gebouwd, om het te verfraaien met meer functies. De cursus is een uitstekende keuze als je al een beginnende programmeur bent, maar meer high-level ontwerp-ideeën wilt leren om niet alleen werkende code te schrijven, maar ook goed ontworpen code.

Ik heb alle projecten die ik heb geschreven hier gepost, hoewel je Java geïnstalleerd moet hebben om ze uit te voeren. Ik heb er ook de verslagen van de drie ontwerpprojecten bijgevoegd (sorry voor het gebrek aan contrast in de scans!)
Scott’s beoordeling: 5/5

  1. Toegang tot het cursusmateriaal gratis
  2. Alle code
  3. Project Write-Ups
  4. MIT Provided Material and Assignment Specs

6.801: Machine Vision – COMPLETED

Deze les leert de basisprincipes van het gebruik van computeralgoritmen om te zien, voornamelijk in de context van het sturen van een robot om acties uit te voeren op basis van die beelden. Onderwerpen zijn binaire beeldverwerking, randdetectie, Gaussiaanse uitgebreide oppervlakken, oriëntatie en fotogrammetrie. De cursus werd geëvalueerd door twee quizzen en telde als een van de twee graduate-level classes die ik nam in de uitdaging.

Over het algemeen was de klas uitdagend, met behulp van technieken van Fourier-analyse, vector calculus, lineaire algebra, kwadratische programmering en calculus van variaties, dus het was waarschijnlijk de meest uitdagende klas die ik heb genomen in de toepassing van wiskunde. Helaas waren er geen programmeeropdrachten, wat interessant zou zijn geweest.
Scott’s beoordeling: 5/5

  1. Toegang tot het cursusmateriaal gratis
  2. Mijn Examens
  3. MIT Official Solutions (and Questions)

6.837: Computer Graphics – COMPLETED

In deze les worden de grondbeginselen van computer graphics geleerd, voornamelijk ray tracing, hoewel ook scanline methodes worden onderwezen. De evaluatie was volledig gebaseerd op opdrachten (er waren twee kleine quizzen, maar die hadden geen oplossingen dus die heb ik niet gebruikt). Beginnend met een basis ray caster en flat shading, bouwden de opdrachten de ray tracer geleidelijk uit tot matte shading, glanzende reflecties, slagschaduwen, transparante oppervlakken met brekingsindices, spiegelreflectie en procedurele texturering. Er werd ook een project gedaan over het maken van een grid acceleratie datastructuur, die geen visueel effect heeft, maar de relatief trage ray tracing benadering van graphics enorm versnelt.

Details over de gebruikte programmeeromgeving zijn opgenomen in de README.rtf voor de code. Het bestand is vrij groot, maar het bevat ook alle gerenderde afbeeldingen, zodat u de uitvoer kunt bekijken, zelfs als u de specifieke scènes in kwestie niet compileert/uitvoert. (Ter vergelijking, MIT’s officiële outputs zijn bijgevoegd als sample_res.pdf voor elke opdracht, zodat je kunt zien hoe mijn raytracer zich verhoudt). Opmerking: De oorspronkelijke cursus die ik volgde is veranderd. Hier is een vervanging.
Scott’s rating: 5/5

  1. Toegang tot het cursusmateriaal gratis
  2. Mijn code
  3. MIT geleverde code (en voorbeeldantwoorden)

COSC 545: Theory of Computation – COMPLETED

Deze cursus was geen MIT-cursus, maar een graduate cursus in de theorie van het rekenen, gegeven door Cal Newport aan de Georgetown University. Dit was een onderwerp dat ik graag wilde bestuderen nadat ik beide algoritmecursussen van MIT had gevolgd, maar in de complexiteitstheoriecursus van MIT ontbraken evaluatie-instrumenten die ik kon gebruiken. Enkele interessante ideeën uit de cursus zijn welke soorten problemen kunnen worden opgelost door algoritmen (wat betekent dat er een proces is om elke instantie van het probleem op te lossen) en de beperkingen van de snelheid en het geheugen die nodig zijn om bepaalde klassen op te lossen.

Het bevat ook een uitgebreide discussie over een van de belangrijkste en onopgeloste problemen in de wiskunde, of P=NP, dat afhankelijk van het antwoord diepgaande implicaties voor de samenleving zou hebben en ondanks tientallen jaren werk en een prijs van een miljoen dollar voor de oplossing ervan, is niemand in staat geweest het te beantwoorden.

Er waren twee tentamens die ik schreef en beoordeelde omdat ze niet cumulatief waren.
Scott’s beoordeling: 5/5

  1. Toegang tot het cursusmateriaal gratis
  2. Mijn Examens

Mijn MIT Challenge TEDx Talk

FAQ voor de MIT Challenge

  1. Welke regels volg je?
  2. Doe je alle opdrachten, werkstukken en projecten?
  3. Wijkt je curriculum af van dat van MIT?
  4. Wat gebeurt er als je zakt voor een vak?
  5. Waarom doe je dit? Vind je studeren gewoon leuk?
  6. Krijg je hier een diploma voor?
  7. Je volgt de lessen achter elkaar op, is dat niet gewoon proppen voor toetsen?
  8. Welke ervaring heb je met het onderwerp?
  9. Ik ben een blogger/verslaggever/journalist, hoe kan ik contact met u opnemen om het verhaal te delen?

Q) Welke regels volgt u?

Omdat ik niet bij MIT sta ingeschreven (en er ook op geen enkele manier aan verbonden ben), heb ik mijn eigen regels moeten opstellen om de uitdaging eerlijk, maar toch uitvoerbaar te maken. De basisregels zijn eenvoudig:

  1. Ik beschouw een vak als met succes afgesloten als ik het eindexamen met goed gevolg heb afgelegd (wat meestal betekent dat ik een cijfer van ten minste 50% haal, hoewel ik veel hoger mik).
  2. Ik schrijf het examen onder dezelfde beperkingen als een student: geen inzage in de vragen of oplossingen vooraf, geen aantekeningen of verboden materiaal, dezelfde tijdsbeperkingen (de standaard is 3 uur indien niet gespecificeerd).
  3. Ik beoordeel de werkstukken zelf, door ze te vergelijken met de werkelijke MIT-oplossingen. Ik zal beide posten, zodat iedereen mijn beoordelingsmethoden kan controleren.

Bedenk dat dit slechts de minimumeisen van mijn uitdaging zijn. Voor lessen die een belangrijke programmeercomponent hebben, probeer ik representatieve programmeeropdrachten te doen, voor zover dat mogelijk is.

Q)Doe je alle opdrachten, werkstukken en projecten?

Voor theorie- of wiskundelessen zijn eindexamens over het algemeen een uitgebreide evaluatiebasis, dus die gebruik ik als mijn evaluatie. Ik doe nog steeds de meeste of delen van de opdrachten en quizzen als voorbereiding, maar omdat ik niet consistent kan blijven met dit criterium over de hele uitdaging (veel opdrachten zijn niet beschikbaar of onmogelijk objectief te evalueren) doe ik ze op een informele manier.

Voor klassen met een aanzienlijke hoeveelheid programmeerwerk of praktische ontwerpproblemen, zal ik proberen de meeste opdrachten te voltooien. Maar omdat deze moeilijker te evalueren zijn, vertrouw ik nog steeds op eindexamens als het belangrijkste criterium voor deze klassen.

Q) Verschilt uw curriculum van dat van MIT?

Ik ben bijna een maand bezig geweest om het dichtstbijzijnde spiegelbeeld van het werkelijke computerwetenschappelijke curriculum van MIT samen te stellen om te volgen. Helaas kan ik dit niet perfect doen, omdat sommige klassen onmogelijk te evalueren zijn (inclusief labs en onderzoeksklassen), en anderen hadden geen toegang online.

Ik neem hetzelfde aantal credit-uren als een werkelijke MIT-diploma, dus waar ik een klas niet kon nemen, heb ik deze vervangen door een vergelijkbaar alternatief. In termen van hoeveelheid te leren kennis is mijn curriculum dus vergelijkbaar met dat wat MIT zijn studenten voorstelt.

De enige andere uitzondering met MIT heeft te maken met keuzevakken. Ik volg verschillende vakken die niet met informatica te maken hebben, om de HASS-vereisten voor MIT-studenten zo goed mogelijk na te bootsen. Deze komen niet perfect overeen, omdat het online cursusaanbod voor kunst aanzienlijk zwakker is dan voor natuurwetenschappen bij MIT.

Hier kun je het werkelijke MIT-curriculum voor informatica zien.

Q) Wat gebeurt er als je een vak niet haalt?

Gezien het tempo dat ik probeer te halen, denk ik dat het onvermijdelijk is dat ik een vak niet haal. Mijn belangrijkste eis is dat ik een eindexamen haal, dus als ik er een niet haal, sta ik mezelf toe om daarna een ander examen te doen.

Mijn strategie is om een fail-first-aanpak te kiezen, om efficiënter met mijn tijd om te gaan met lessen waarin ik meerdere eindexamens heb die ik kan gebruiken als basis voor evaluatie. Dit is heel anders dan op de universiteit, waar een mislukking een echte tegenslag kan zijn. Dat is een voordeel van zelfstudie boven starre formele instellingen.

Q) Waarom doe je dit? Vind je studeren gewoon leuk?

Niemand houdt van studeren, maar iedereen wil slim zijn. Leren, tot die inzichten komen en je slimmer voelen over een onderwerp zijn immens lonend. Jammer dat velen van ons dit zijn vergeten na jaren van bestraffend formeel onderwijs.

Ik geef toe, ik ben misschien een beetje gek, of arrogant, voor het willen voltooien van een 4-jarig programma in slechts 12 maanden. Maar mijn echte motivatie is om mensen te laten zien dat sneller leren mogelijk is en dat het tegelijkertijd leuker kan zijn.

Q) Krijg je hier een diploma voor?

Nee, en dat is nu juist het punt. Onze maatschappij stelt kennis ten onrechte gelijk aan accreditatie. Een papiertje halen is geweldig, en voor veel beroepen is het zelfs noodzakelijk. Maar de vergelijking wordt zo sterk gemaakt dat mensen vergeten dat de twee dingen verschillend zijn.

Ik heb al een carrière als schrijver en kleine bedrijfseigenaar. Ik wil nooit voor een groot bedrijf werken, waar HR mijn gebrek aan diploma’s onder de loep zou kunnen nemen. Ik wil alleen maar informatica leren voor het geval ik een nieuw bedrijf wil beginnen of voor een start-up wil werken.

Ik heb niets tegen de universiteit. De universiteit was voor mij een geweldige en waardevolle ervaring, en dat zou het voor jou ook kunnen zijn. Ik hoop alleen dat door een alternatief te laten zien, mensen die het gevoel hebben dat het huidige systeem niet voor hen werkt, een ander pad kunnen vinden.

Q) Is dit niet gewoon proppen voor toetsen?

Nee, maar het verschil is subtiel. De meeste lessen bouwen voort op concepten uit het verleden, dus mijn doel bij elke les is om een diepgaand begrip te ontwikkelen dat ik kan gebruiken. Cramming is meestal een toevlucht tot memoriseren om snel een test te halen en het dan te vergeten. Begrijpen is moeilijker, maar niet noodzakelijkerwijs tijdrovender (en een vereiste als elke les voortbouwt op de vorige).

Als een update, Sinds de eerste vier lessen, heb ik 3-4 lessen in parallel tegelijk doorlopen. Hoewel dit betekent herziening over een veel kortere tijdspanne dan typisch is (1 maand in plaats van 1 semester), het verhoogt de voordelen van spaced herhaling.

Ultimately, mijn vermogen om te begrijpen en adequaat te presteren op een hoger niveau klassen zal de test van mijn methode, aangezien de meeste eerstejaars klassen in de eerste plaats dienen als aarding voor meer moeilijke senior klassen.

Q) Wat voor ervaring heb je met dit onderwerp opgedaan?

Toen ik nog op de middelbare school zat, heb ik redelijk wat geprogrammeerd, voornamelijk met het maken van kleine computerspelletjes. Daarnaast heb ik 4 universitaire informatica-lessen gevolgd, toen ik naar de Universiteit van Manitoba ging voor mijn business degree. Ja, ik heb al enige ervaring met programmeren, wat me een voordeel zal geven bij deze uitdaging. Dat gezegd hebbende, mijn eerdere vaardigheidsniveau is waarschijnlijk niet ver van veel van de CS-studenten die daadwerkelijk naar MIT gaan en voor wie het curriculum is gebaseerd.

Daarnaast heb ik de eerste cursus 8.01 Classical Mechanics voltooid als een pilotexperiment voor deze hoofduitdaging in juli 2011. Daarom is het aantal lessen dat ik in de periode van 12 maanden probeer officieel 32.

Q) Ik ben een blogger/verslaggever/journalist-hoe kan ik contact met je opnemen om het verhaal te delen?

Je kunt contact met me opnemen via [email protected] of gebruik het formulier hier. Ik zal het vrij druk hebben (om voor de hand liggende redenen), dus bij voorbaat excuses als het even duurt voordat ik mijn emails doorkrijg, want ik ga meestal offline als ik met een cursus bezig ben.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.