Per tant, és la meva major plaer donar-los la benvinguda aquí avui
per a la primera conferència de, bé, Introducció
d'Informàtica i Programació.
També conegut com CS50 o bé, la CPSC 100, oficialment aquí a Yale.
>> Així que no podíem estar més emocionats donar-los la benvinguda aquí.
El meu nom és Patrick Rebeschini.
Sóc l'instructor principal per a la classe.
Sóc aquí en representació d'un grup d'al voltant de 60 membres del personal
que treballarà amb vostè durant el semestre.
Aquest nombre és gairebé 60 de nosaltres.
No obstant això, al llarg de l'extraordinària nivell dels compromisos
que posem en aquest classe, fa que la classe CS50
a la Universitat de Yale que ofereix el major nivell de suport
a tots vostès.
I no podríem estar més orgullós de oferint aquesta classe aquí de nou.
>> De fet, tan aviat experimentarà, CS50 és molt més que una classe.
És una comunitat.
I va ser part abans d'aquesta comunitat.
Aquest és el segon any que Yale està oferint aquesta classe.
Estem construint a l'extrem l'èxit de l'any passat, on
per primera vegada, aquí en aquesta universitat,
assistent d'aprenentatge de grau van ser adoptats a les aules.
Tot va començar amb aquesta classe l'any passat.
>> Així com se sap, la classe s'ensenya en conjunt amb la Universitat de Harvard.
Per impartir aquest curs estem relying-- podem
comptar amb la gran experiència de David Malan i l'equip de la Universitat de Harvard.
Així que David ha estat l'ensenyament CS50 per així, ara de 10 anys.
I tots els anys que ha estat empenyent els límits
i la millora de l'experiència de l'aula.
Un cop més, no podríem estar més feliços de continuar amb aquesta col·laboració amb ells.
>> De fet, una de les la majoria de les parts interessants,
Vaig a dir d'executar aquesta classe ara, tant a Harvard i aquí a Yale,
és la realment increïble fertilització creuada
d'idees, destinat a millorar la experiència per tot el que aprendre.
Així, com a resultat d'aquesta extensa la col·laboració entre els dos
universitat, CS50 s'enorgulleix de anunciar la nova versió d'aquest any
amb canvis notables.
David serà tota dir-nos sobre ells ara.
Així que aquest ésser favor-- Dit això, si us plau acompáñenme
i benvinguts a donar una gran aplaudiment
donar la benvinguda a David i equip de Harvard aquí a Yale.
>> [Aplaudiments]
>> DAVID Malan: Gràcies.
Gràcies.
Aquesta és CS50, de la Universitat de Harvard i la introducció de la Universitat de Yale
a l'intel·lectual empreses de ciències de la computació
i la tècnica de la programació.
I el que això significa és que aquest curs en última instància, es tracta de resoldre un problema.
De fet, molts de vostès han sortit de l'escola secundària
o han passat l'últim parell d'anys preguntant el que alguns dels seus amics
ho va fer l'any passat o en altres classes.
I, però, la realitat És a dir, no importa el que
fer al final del dia en aquesta classe, que serà sobre la resolució de problemes.
>> I com a tal, potser prendre una mica de tranquil·litat en el fet
que el 73% dels estudiants que prendre aquesta classe, tant aquí
a Yale, així com la Universitat de Harvard, mai han pres una classe de CS abans.
Així que si vostè està assegut aquí a l'audiència d'avui es pregunta
raó per la qual estan asseguts aquí en l'audiència d'avui,
o potser només seguit juntament amb alguns amics,
o potser vostè ha estat una poc de curiositat pel que fa al
la informàtica i la programació és, s'adona
que la majoria dels seus companys de classe per l'esquerra ia la dreta de vostès
són en gran mesura en aquest mateix grup demogràfic.
>> I de fet, si mirem en les estadístiques de l'any passat
dins del cos d'estudiants de CS50, tant aquí ia Harvard, el 58% dels estudiants
descriuen a si mateixos com menys confortable.
9% és més còmode.
I a continuació, el 33% està en algun lloc en el medi.
I no hi ha cap definició formal del que vol dir que aquests cubs.
Que tipus de saber que estàs menys còmode si ho són.
Se sent una mica incòmode per tal d'estar a la classe.
No està molt segur de si un ordinador la classe de ciències és en última instància, per a vostè,
i adonar-se que són en molt bona companyia.
I de fet la classificació, i l'avaluació,
i la retroalimentació, i tot això estructura de suport a la classe
en última instància molt individualitzat.
Més que la majoria de qualsevol una altra classe de disseny.
I, en efecte, el que en última instància assumptes d'aquesta classe no és
tant on s'acaba amunt en relació amb els altres,
però en el qual, en la setmana 11 o l'últim, i pel que fa a si mateix en la setmana
0 aquí la nostra primera.
Llavors, què vol dir això?
Doncs bé, aquest mitjà dels 73% de estudiants l'any passat que mai havien pres
una classe de CS abans, per la inici del semestre es
van ser incursions en un idioma anomenat Scratch, que nosaltres mateixos
veurà aquí avui.
I per al final de la semestre calia anat
a través de tota aquesta llista de desafiaments.
A partir d'un llenguatge anomenat c.
La implementació, el que és a primera vista, anant
ser una mica un desafiament per a alguns, però bastant gratificant una vegada que es
arribar Super Mario rebot amunt i avall d'una piràmide
implementat, encara que, amb només cosa que es diu art ASCII.
La implementació de l'última any-- el els estudiants l'any passat després
va fer després que s'implementin les seves pròpia xifrat César i xifrat Vigenère.
Pel que els algoritmes de xifrat amb el qual es podia
informació scramble i després unscramble informació per enviar missatges secrets.
El joc de 15.
Si vostè recorda de la infància o algun favor de partit,
aquest petit joc de plàstic on es mou els números de dalt, a baix, esquerra i dreta
per tractar d'aconseguir el fi, l'aplicació real d'aquest joc
i la solució de la lògica necessària allà.
I després incursionó en forense any passat.
>> Així que a mitjans de semestre, estudiants que mai han tingut
utilitzat els seus teclats per a aquest fi abans,
van ser l'escriptura de programari per recuperar, per així dir-ho,
JPEG o fotografies que teníem accidentalment
esborrat d'un indicador digital targeta de memòria d'una càmera.
Recuperació de missatges secrets des de l'interior de la imatge de mapa de bits,
i altres tals tipus de gràfics també.
>> A continuació, la transició a donar tota la classe un diccionari.
Només un arxiu de text molt gran amb 150.000 paraules en anglès.
I tothom va ser desafiat llegir alguna manera, per així dir-ho,
aquestes paraules en la memòria.
En la memòria de l'ordinador.
I després respondre a les preguntes de la forma, es tracta d'una paraula?
És aquesta una paraula?
En realitat només la implementació un corrector ortogràfic.
I després es desafien entre una altra amb una gran board--
una taula de líders per veure qui podia utilitzar la menor quantitat de memòria,
en el mínim de temps per de fet la revisió ortogràfica de documents de grans dimensions.
>> Hem realitzat la transició des de llavors fins l'aplicació dels propi servidor web.
Així que no fer pàgines web en els idiomes com HTML i CSS, si està familiaritzat.
Però en realitat la implementació el servidor que
escolta a l'internet per a les sol·licituds dels navegadors
i després respondre a aquestes sol·licituds.
A continuació, la implementació de la nostra pròpia e-comerç com el lloc web, on
els estudiants podien comprar i vendre accions.
Dibuix gairebé en temps real cotitzacions d'accions de Yahoo Finances.
I permetent als estudiants per veure com es desenvolupa la seva cartera.
I, finalment, un mash up de Google News i Google
Mapes qual els estudiants per terme per tal Condicions
tingut la possibilitat de fer clic, i rodona, i de cerca en un mapa de Google.
I després veure tots els articles de notícies que
són proximals a aquestes àrees en particular.
Així que realment va de zero a 60.
>> I en el camí que té el que teníem l'any passat trucada, addicions de hackers.
Que augmenten la barra encara més per a aquells de vostès
que podria molt bé tenir una bona quantitat d'experiència d'estar en aquest 9%
de més còmode.
Així s'adonen que hi ha un sostre molt alt
fins i tot dins de les reptes per als estudiants
provinent d'un fons diferent.
A causa de que al final de el dia, estem en última instància,
centrat simplement en això.
>> Però el que fa aquest a dir, la resolució de problemes?
Així que proposo destil·lem així.
Per tant la resolució de problemes és realment Només aquest tipus d'imatge.
Pel que té entrades a algun problema, cosa que realment volen resoldre.
L'objectiu és aconseguir que les sortides, una solució a aquest problema.
I després en el medi és el que anomenarem un quadre negre.
Que no necessàriament sap o fins i tot cuidar el que hi ha dins d'aquesta caixa negre.
Tot el que sé és que quan vostè alimenta l'entrada en ella,
és d'esperar que aconsegueix sortida o una solució d'ell.
I mentre Avui veurem tant en les entrades i sortides,
Anem a llarg termini, i sobre el curs de tot el semestre,
centrar-se en el que està dins d'aquesta caixa.
>> I en ella es fica al llit cosa que es diu algoritmes.
Instruccions pas a pas per En realitat la solució d'alguns problemes.
Però el que és un exemple d'alguns de les entrades?
Així que potser una cosa simple en el inici de cada any escolar, algú
pot ser que vulgui prendre assistència.
Pel que podríem fer un, dos, tres, quatre, cinc, sis,
i ¿com mantindria pista d'aquesta informació.
Jo podria anar a un, dos, tres, quatre, cinc, sis.
I només ha d'utilitzar una espècie d'un sol dígit.
>> O que en realitat podria gravar aquest terme una mica més.
I com fer que represento tot els éssers humans en aquesta habitació?
Bé, jo podria fer alguna cosa així, està bé.
Veig a una persona.
Tot bé.
Veig una altra persona, una tercera persona, i així successivament.
Però ningú compte a les persones els agrada això.
Així que, literalment, la majoria de nosaltres si estem fins i tot anar a treure res en absolut,
són probablement va a anar un dos tres quatre,
potser una mica de luxe, cinc, sis, set, vuit, nou, deu i així successivament.
>> I això és en realitat una sistema anomenat unari.
Un, com un que implica una, on es només hi ha una lletra de l'alfabet.
Vostè acaba d'aconseguir aquesta marca hash.
I jo, per eficiència, acaba de dibuixar aquestes marques de control, en última instància
com a línies rectes.
Però podria haver-los dibuixat com petites figures de pal.
On per representar una persona, una entrada,
Només trec un pal figura o un coixinet.
Però això no és tot el que expressiva.
>> Si tot el que tinc és això de hash marques, permeten pal xifres per si soles,
Com pot representar alguna cosa així com el número 15?
O 15 persones a l'habitació?
Vaig a haver de fer alguna cosa com 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15.
Simplement no s'adapta molt bé.
Com les entrades reben gran, necessita un sistema millor que això.
>> I resulta que la sistema que utilitzen els ordinadors
no és tan diferent del que vostè i jo sabem.
De fet, la majoria de la gent en aquesta sala, fins i tot si vostè està entre els menys
còmode, no necessàriament saben com el seu Mac o PC realment funciona,
vostè probablement ha escoltat almenys, que sota de la campana són de 0 i 1 de.
L'anomenat sistema binari.
Així que de fet, els equips tenen més de acaba de marques de control en el seu vocabulari,
però no tant d'una vocabulari com els éssers humans.
>> De fet, els éssers humans no utilitzen binari.
Bi vol dir 2, 0 i 1.
Però decimal, deia és a dir, 10, del 0 al 9.
Així que tenim molt més expressiu capacitats del nostre món humà normal.
Però jo diria que aquests sistemes, binari, i els decimals, i tot
en el medi i més enllà, són en realitat tot molt familiar.
Per exemple, consideri aquest exemple aquí, 123.
Així que això realment és, per descomptat, un nombre que coneixem com 123.
Però tot el que acaba de dibuixar això va ser només patró de símbols, pictogrames per així dir-ho.
Tipus de formes a la pissarra amb guix.
>> Però per què tenim immediatament i intuïtivament entendre això com 123?
Bé, si eren com jo a l'escola primària,
vostè probablement ha après que aquest és el columna 1S, aquesta és la columna de 10s,
aquesta és la columna de 100s.
I per què és tan útil?
Bé, és simple aritmètica que ara fer per aconseguir a partir d'un patró de símbols
a un nombre entenem intuïtivament.
És el que, 100 vegades 1, i després 10 vegades 2, i 3, 1 vegades
que per descomptat és només 100, i això és 20, i això és de tres.
I pel que si sumem els junts-- ah.
Així que aquí està el tipus de raonament darrere de per què aquest conjunt de símbols
significa alguna cosa real i numèric.
>> Doncs bé, els ordinadors fan exactament el mateix, però només poden comptar tan alt com un.
Mentre que jo era capaç de comptar tan alt com tres.
I de fet, si ho seguia fent que podia anar tan alt com les nou d'aquest sistema.
Els ordinadors només tenen zeros i els del seu alfabet.
>> Llavors, què vol dir això?
Doncs bé, només vol dir que si un ordinador vol representar, per exemple el nombre 0,
potser usant tres 03:00 characters-- lletres de l'alfabet, per així dir-ho,
que és com un ordinador representa 0.
Així que no tot el que fa por fins ara.
És exactament el que els humans farien.
I de fet, la majoria de nosaltres simplement ignorar els zeros a l'esquerra de totes maneres.
>> Un equip, si es vol per emmagatzemar el número 1,
Resulta que va a fer això.
I un ordinador per emmagatzemar el número 2 no és
va a fer el sistema unari, el que he al·ludit abans.
Que en realitat va a fer això.
I això és probablement en què el patró comença
a ser menys obvi per a la majoria de la gent.
Això és 2, és a dir 3.
Curiosament, això és ara 4.
I ara el que realment fa semblen ser potser críptic,
però no ho és si tenim en compte el que realment vol dir binari.
Vol dir que té dos lletres del seu alfabet.
Pel que dos caràcters possibles per a cada marcador de posició.
>> Pel que en realitat vol dir que anem a necessitar un lloc 1s, 2s o el lloc,
un lloc i després 4s 8, i 16, 32 i 64.
I quina és la diferència que hi ha?
Igual que aquests són 1, 2, 4, 8, 16, 32, 64.
I abans que tinguéssim 110, 100.000, 10.000.
Quina és la similitud que hi ha?
I el que és el patró?
Sí.
ESTUDIANT: potències de 2 en lloc de potències de 10.
DAVID Malan: Sí.
Potències de 2 en comptes de potències de 10.
I pel que si volia mantenir va, 8, 16s i així forth--
però ara si vostè té aquest tipus de la pista, ara el sistema binari
en realitat és força senzill.
Per què és aquest patró de 0 de en el món dels ordinadors 0?
Bé perquè és 4 vegades 0, 2 els temps 0, 1 Temps 0 i s'obté 0.
>> Per què és aquest el número 1?
Mateix raonament, però ara tenen un 1 a la columna 1.
Per què és aquest febrer?
Tenim un 1 en la columna 2s.
I llavors, com fer que represento a dir, el número 7 en binari?
Dir més fort.
>> ESTUDIANT: Tres 1s.
>> DAVID Malan: Tres 1s.
Així 1, 1, 1, perquè només tenim 4 més 2 més 1 em dóna 7.
Tot bé.
Així que a partir d'aquí com podem representar a 8 amb 3 marcadors de posició?
Sí.
>> ESTUDIANT: 1, 0, 0, 0.
>> DAVID Malan: Sí 1, 0, 0, 0.
I no obstant això, potser, com que em de vista tècnic necessari
afegir un altre marcador de posició en el tauler.
Si vull encaixar que de fet que hagi de fer alguna cosa com això.
Així que realment es necessita per utilitzar ara la columna 8s, i això està bé.
Però el curiós en la informàtica és que això costarà alguna cosa.
Necessita més memòria RAM en l'equip ara.
Necessita més memòria perquè es necessita alguna cosa
físic per emmagatzemar aquesta bit addicional, per dir-ho.
dígits binaris.
I, de fet tot el que ha passat aquí, igual que el sistema decimal,
si seguim afegint números de dalt i dalt ia dalt, anem a 5 a 6 de 7 a 8
és com portar a la 1, literalment.
I llavors tota la resta es remunta a zero.
>> Però, com és el que realment representem aquestes coses físicament en un ordinador?
Bé, al final del dia, l'únic entrada física d'entrar en el meu equip
aquí és la següent cable d'alimentació, per la qual electricitat o electrons de la paret.
I així, com puc obtenir a partir de quelcom física com la que en realitat
que representa una idea com aquesta vegada.
>> Doncs bé, què podíem fer?
Podríem considerar que, d'acord, potser si l'electricitat flueix
Podia conservar-se i mantenir-se a ella.
I si jo estic aferrant a alguna cosa d'electricitat,
que només va a arbitràriament representen gener 1.
I si em tiri de la clavilla i no hi ha res allà,
vostè sap que només va per representar arbitràriament un 0.
>> Així que si alguna cosa hi és, 1.
Si no hi és, 0.
O pot presentar aquest una mica més visual.
Aquí és un 0.
No passa res interessant seguir sobre el fons del meu telèfon.
Però si permeto una mica bit de l'electricitat flueixi,
tot i que és una mica brillant aquí, la meva llanterna es va encendre.
Així que estic emmagatzemar una càrrega i ergo, aquest telèfon ara representa l'1.
Així 0 1.
>> Així, amb 1 iPhone com de alt puc comptar l'ús d'aquest tipus d'enfocament?
Em refereixo a 1.
No és tot el que convincent.
Llavors, què més podem fer?
Bé anem a veure, hi ha algú en el seu telèfon en aquest moment que jo podria demanar?
Qualsevol persona que tingui un telèfon amb una llanterna incorporada a?
Puc demanar prestat?
No necessito que la desbloquegin.
Tot bé.
Gràcies.
Presta-això.
Tot bé.
Així que si ara desplaçar-se cap amunt i aquí, ¿Què estic representant ara?
Sí.
Així que és un tres, perquè això és en el columna 1s, això és a la columna 2s.
Així gener més 2 és 3.
I després, si tractem d'obtenir Realment creative-- oh, gràcies.
Molt preventiva.
Tot bé.
Ara tinc tres iPhones.
Tot bé.
>> I ara això- no ho faré fer més enllà d'això.
Què estic representant ara?
A només set en set.
Però necessitava físicament més memòria en aquest cas.
Però això és tot el que és.
Es pot pensar en el que està passant en-- gràcies usted-- interior del seu telèfon
tan sols ser un interruptor que és de ser encès i apagat.
>> I si alguna vegada has sentit la paraula transistor.
O si alguna vegada has sentit la comercialització parlar d'Intel a l'interior,
això és parlar amb el tipus de maquinari això és a l'interior del seu ordinador.
Intel fa CPU, unitats centrals de processament,
que són com els cervells en l'interior del seu ordinador.
I aquestes CPU i coses que estan connectats
tenir munts i munts de petits interruptors.
Milions, milers de milions d'interruptors que pot ser o bé encès o apagat.
>> Així ordinadors, per sort, de la mateixa manera que els nostres Macs i PCs,
pot comptar manera més gran que 7 o 8 perquè tenen forma més de tres
o quatre bits.
Molt més que l'equivalent de la 3 llanternes que només teníem.
Però ara això comença a posar-se bastant avorrides ràpidament.
Si ara vull ser realment capaços fer alguna cosa més interessant,
Vull ser capaç de saltar a alguna cosa com això.
>> Així ASCII, que no és realment un útil sigles, però Codi Estàndard Americà
per Intercanvi d'Informació.
Només vol dir que, alguns anys fa que els éssers humans van decidir,
Vostè sap quin és, que desitja ser capaç de fer més amb els ordinadors que només nombres.
No volem que s'acaba calculadores ser cars,
ens agradaria ser capaç de fer coses com processament de textos, encara que de manera molt senzilla.
Més tard vam tenir correu electrònic i altres mitjans de comunicació.
>> I així el món va decidir fa alguns anys fa d'acord amb aquest sistema ASCII,
tu saps que?
En certs tipus de programes en qualsevol moment que
veure l'equivalent de la quantitat 65, com el patró de bits.
I podríem fer el matemàtiques aquí al tauler.
El patró de bits que representen 65.
No pensar en ella com 65 en decimal.
Penseu en això com a forma arbitrària, però a nivell mundial, consistent com la capital
A.
I llavors el món decidit, saps què?
Prenguem un altre patró de bits.
I si alguna vegada veiem la número 66, anem a
assumeixen que aquesta és la social B. Un avanç ràpid a H
i jo, si veig 72 o 73, que ha de ser un H i un I, respectivament.
I així, sempre que el conjunt món està d'acord en això.
Així que quan es rep un correu electrònic, o que s'obtindria un arxiu en una memòria USB,
o alguna cosa així, quan que- es veu que el patró de bits,
vostè sap que ha de ser aquest lletra o alguna altra lletra.
>> Però és un context específic, a la dreta.
Un programa de correu electrònic podria interpretar aquestes coses com a personatges,
però una calculadora gràfica o calculadora podria representar o interpretar
aquestes coses, per descomptat, com lletres.
>> Així que amb això dit, petit repàs ràpid.
Aquesta és potser una de tres caràcters correu electrònic que s'ha enviat a mi.
Sota el capó està tot a 0s i 1s, però no m'importa.
Anem a començar a abstreure per sobre dels 0s i 1s a les cartes.
I si veig un patró de 0s i 1s que realment representar 72, pista, pista, de 73 anys,
i després de 33 anys, quin és el missatge?
>> ESTUDIANT: [inaudible]
DAVID Malan: Així que si vostè pensa Fa esquena un moment, HI
va ser el missatge que estava tractant de comunicar aquí perquè H és 72,
I és de 73 anys, i ara 33-- que no ho faria necessàriament saber això per endavant,
però resulta que si en realitat veure més de la gràfica i el sistema de
que la humanitat acordada anys fa, és només un signe d'exclamació.
I de fet, hi ha un patró de símbols i nombres per a cada personatge
que podria tenir en el seu teclat.
>> Tot bé.
Resum del més deixar.
Si no volem tenir només coses com números i lletres,
que en realitat volem implementar gràfics.
Bé, si alguna vegada has escoltat el acrònim RGB.
És una mena de antiquada, però és encara tipus d'allà.
RGB és de color vermell, verd, blau.
I és només un sistema de de dir, saps què,
utilitzarem tres conjunts de bits.
Un conjunt de 8 bits, una altra sèrie de 8 bits, i una altra sèrie de 8 bits.
I utilitzarem aquests bits per emmagatzemar quant vermella
desitjar a la nostra pantalla, quant verd que volem en la nostra pantalla,
i la quantitat de blau que volem en la nostra pantalla.
I això només vol dir que si tenir un gran un nombre lot-- per al vermell,
això vol dir que em donen molt vermell.
Si vostè té un gran nombre de verd, dóna'm un munt de verd.
I si vostè té només una mica de blau o un petit nombre com 33,
dóna'm una mica de blau.
I si per casualitat combinar els tres magnituds, per així dir-ho,
s'obté això- que amb prou feines es pot veure en el projector aquí, però aquesta tèrbola
to de groc o marró.
>> Però això és a dir, amb el qual patró de 8 i de 8 plus plus 8--
que el patró de 24 bits és com un ordinador faria
emmagatzemar aquest to de groc en una puntet un píxel a la pantalla.
Així que hem passat de 0s i 1s a decimal nombres a les lletres de l'alfabet.
O més interessants, punts de color.
>> Bé, el que, per descomptat, a continuació, ve després?
Doncs bé, el que és una imatge que es veure a Facebook o aconseguir en un correu electrònic?
O similars?
Quina és la definició tècnicament d'una imatge?
Sí.
Què és una imatge composta de si mirar molt de prop a la seva pantalla?
Sí.
És només un munt de píxels.
De fet, si vostè pren el seu portàtil potser més endavant,
i mirar molt de prop en funció it--
en el car que el portàtil és i com l'alta qualitat de la pantalla és,
vostè pot veure molt bé tots els petits punts a la pantalla.
>> I aquests punts o píxels, que vol dir que hi ha
24 bits que representen cada píxel en aquesta fotografia que veus a Facebook,
o que acaba de prendre en el seu iPhone recentment.
I així és com obtenim a coses com gràfics.
Doncs bé, el que és un vídeo?
Un vídeo és només un conjunt de gràfics volant per la pantalla de nou
i una altra vegada i una altra.
I així, vídeos realment, són només patrons de bits que representen reixetes, files
i columnes de punts, volar la imatge en pantalla,
després d'imatge, d'acord amb la imatge, també anomenat
Les imatges en moviment.
Així que és això per a entrades i sortides.
>> Tot el que tenim ara és una supòsit que, vostè
saber el que, si volem un ordinador per representar la informació,
tenim un sistema per fer-ho.
Podem fer-ho amb 0s i 1s al final del dia.
Però podem abstreure, per la qual per parlar, per sobre d'això
de manera que es representen més coses interessants.
I a partir d'ara en CS50, i en la informàtica en general,
ens trobem ara a les espatlles de totes les persones que
va arribar abans que nosaltres va imaginar que fos.
I ara acaba d'assumir que els ordinadors pot representar entrades i sortides.
>> Però ara anem a realitat fer alguna cosa amb ells.
Així que un algoritme és un conjunt d'instruccions, pas a pas,
per resoldre algun problema.
I el que podria ser un d'aquests problemes.
Així que aquesta és una vella escola tecnologia, una llibreta de telèfons.
I a l'interior d'una guia telefònica és una Gran quantitat dels noms i números.
I aquests noms són generalment ordenats alfabèticament.
>> Així que si volia trobar algú a aquest llibre de telèfon com Mike Smith,
¿Què és un humà típic va a fer?
Bé, vostè podria simplement obrir cap amunt, mira la primera pàgina.
No veig Mike Smith.
Al seu torn a la segona pàgina, No veig Mike Smith.
I només seguir i seguir.
És aquest enfocament pas a pas correcte?
Sí.
És una espècie d'estúpida, dreta.
És ineficient, a la dreta.
A causa de que va a tenir per sempre per arribar a Mike, però és correcte.
Perquè si Mike aquí Jo de fet a buscar-lo.
>> Llavors, què és una mica més persona raonable farà?
Encara poden obrir a la part davantera, i potser volar a través de la guia telefònica
dues pàgines alhora.
Dos, quatre, sis, vuit.
En realitat no puc físicament fer-ho molt bé.
Però en teoria, això hauria de ser dues vegades més ràpid, dues pàgines alhora.
És correcte aquest algoritme?
>> ESTUDIANT: [inaudible]
DAVID Malan: No necessàriament.
Bé.
Per què aquest advertiment?
>> ESTUDIANT: A causa de que pogués estar en una de les pàgines que vostè està saltant.
DAVID Malan: Sí.
Així que fins i tot si em dóna cada vegada més a prop.
I si ell és només accidentalment, pel mal sort, intercalada entre les dues pàgines
que estic volant sobre?
Així que tenim una solució per a aquest.
En realitat necessitem després dir, espera un minut,
potser si anem massa lluny, potser si arribem a la secció en T,
per T ve després que Smith, llavors hauríem almenys doble volta almenys una pàgina.
Així es pot fixar, però hi ha un tema condicional allà.
Pel que és el doble de ràpid, però és possible que doblegar cap enrere una mica.
Però ningú a la seva habitació, fins i tot si en realitat no utilitzar guies telefòniques més,
va a començar pel principi.
Què faràs a la recerca de Mike Smith?
Vas a anar més o menys a la dècada de S.
O si realment no té el full de trucs en el paper,
vas a anar almenys més o menys a la meitat.
I certament no per la part davantera del llibre.
Vostè va a mirar cap avall.
I matemàticament és probable que estiguis anar a veure la secció M, que
és més o menys en el medi.
I després vas a adonar-se'n, el que és cert?
On és Mike?
>> ESTUDIANT: [inaudible]
DAVID Malan: Sí.
Així que està en aquest costat.
I així, què es pot fer?
Doncs bé, tant figurativa com literalment es pot estripar el problema d'una vegada per la meitat?
I llavors sap que es pot tirar Aquesta meitat del problema de distància.
I ara ens queda fonamentalment el mateix problema, però és la meitat de gran.
I pel que ara quina és la conjunt d'instruccions?
Quin és l'algoritme per trobar Mike Smith?
És exactament el mateix.
>> Ara bé, aquest passa a ser el M secció i aquesta és la secció Z,
però la fonamental fórmula segueix sent el mateix.
Anar més o menys a la meitat, mirar cap a baix, oh, caram.
Ara estic a la secció T, He anat massa lluny.
Però aquí també es pot aplicar la mateixa lògica.
la meitat de tir del problema de distància i ara estem
esquerra amb un problema que és un quart de la seva grandària.
I podem repetir, i podem repetir, i podem repetir fins que teòricament
només hi ha una pàgina de l'esquerra a Mike, que és o no és.
>> Llavors, què és tan poderós sobre aquesta idea?
És a dir, al capdavall, és bastant intuïtiva.
Ningú va a començar pel a partir de la guia telefònica
i voltejar 1.000 pàgines per trobar Mike Smith.
Gairebé tothom en aquesta sala va fer més o menys aquest tipus d'algorisme
excepte pel llagrimeig.
>> I així, per què ho fem?
Doncs bé, considerar l'eficiència.
Penseu quant millor aquest algoritme era per descomponen
en les seves parts components.
Llavors, què em faig primer?
Vaig agafar la guia telefònica.
I un científic de la computació, i un programador,
més generalment resulta que està passant per començar a explicar tot a 0.
>> Per què?
Bé, és una mica estrany que els éssers humans compten, en general,
a partir d'un.
A causa del que és el nombre més petit que clarament pot representar basada
fins i tot en el nostre vell matemàtiques de l'escola primària?
Bé, va ser 0, si que és en decimal o binari.
I pel que veurà en el món de la informàtica i la programació,
específicament, vam començar comptant des de 0.
>> Així que vaig agafar el llibre de telèfon etapa 0.
Vaig a obrir a la mitjà de la guia telefònica.
I això és de fet, una expressió del que vaig fer.
I llavors el segon pas va ser buscar en els noms.
El tercer pas és una mica diferent conceptualment.
Estic preguntant a mi mateix una pregunta.
Si Smith és un dels noms, Vaig a prendre una decisió.
Si ell és un dels noms, a continuació, vaig a trucar a Mike.
I vaig a prendre una decisió sobre la base d'aquesta informació.
>> No obstant això, si no, si és Smith anteriorment en el llibre, a l'esquerra,
Vaig a obrir fins a la meitat de la meitat esquerra del llibre.
I llavors aquí està la intel·ligència, Vaig a tornar al pas dos.
Vaig a ordenar de de peu sobre els meus propis espatlles
i simplement repetiu el passat treball que vaig fer.
Però el treball que em queda és menys, i menys i menys.
Però encara funcionarà.
Però si Mike, en canvi, és més tard en el llibre cap a la dreta,
Vaig a obrir fins a la meitat de la meitat dreta del llibre,
després tornar al pas dos.
>> Però hi ha en realitat una cambra escenari.
Mike ja sigui aquí, o aquí, o aquí, o-
>> ESTUDIANT: No n'hi ha.
DAVID Malan: No n'hi ha.
I de fet, si no anticipem aquest escenari quarta i última
nostre programa pot tenir errors o defectuosa d'alguna manera.
Si no, deixar de fumar al cas que no hem trobat Mike en absolut.
I de fet, si vostè ha notat alguna vegada el penjoll ordinador, o tots
d'una paraula sobtada o algun altre programa simplement es tanca inesperadament,
i, de vegades et d'error missatge literalment és que.
Aquest programa es tanqui inesperadament.
Pot ser per a qualsevol nombre de raons.
Però de vegades és una cosa tan simple com això.
El programador humana qui va escriure que el programari
No ens vam adonar que, oh, hi ha una etc. El que realment pot succeir.
I si vostè no escriu codi per capturar aquest quart escenari,
de fet és de vegades inesperada el que l'ordinador en realitat podria fer.
Ara anem a trucar a terme una Algunes d'aquestes coses.
Així en groc aquí, tenir termes ressaltats
que en endavant només estem va a cridar funcions.
Funcions en el món de programació són com accions,
declaracions d'accions.
Així que recollir, obert a, mira a, trucar, oberta, oberta, deixar de fumar.
Aquesta és una funció, un procediment, una acció, qualsevol nombre de sinònims
funcionaria també.
Ara el que són aquestes coses ara en groc?
Si altra cosa, si altra cosa, si la resta, es tracta del que
anem a cridar condicions en la programació,
o branques, la decisió punts, si es vol.
Però, com saber què forquilla en el camí a prendre, per dir-ho?
Cal destacar els termes a la dreta
allà, els quals són aquests Sí, no hi ha preguntes.
Aquestes veritables preguntes falses.
Smith entre els noms?
Smith anteriorment en el llibre?
Smith més tard en el llibre?
Aquestes són preguntes a la qual hi ha un sí o no,
o equivalentment vertadera o falsa, o equivalentment, un o zero resposta.
>> I mentrestant hi ha només una última peça.
Aquest d'aquí té quin tipus d'efecte?
Sigui o no es programa abans, com
descriure el que pas 07:00 i 10 estan fent?
Què has dit?
ESTUDIANT: Un pas recursiu.
DAVID Malan: Un pas recursiu.
Sí, essencialment.
És tècnicament iteratiu aquí si està familiaritzat.
Però anem a tornar a això.
Però està fent alguna cosa amb claredat.
Un cop més, és la inducció d'una cicle, un bucle, a la dreta.
Ets literalment anar enrere per a alguns pas anterior.
I així, de fet, això va a aplicar algun tipus de cicle.
Però no es va a aconseguir encallat en aquest sense fi, a la dreta.
Perquè si vostè està en constant control és Mike aquí, o cap a l'esquerra, o no aquí,
finalment, ell no va a ser-hi.
I que acaba de deixar de fumar per complet pot segons l'última línia.
>> Així que això és tot pel vocabulari.
I això va ser el que ho faria en general, trucar al codi pseudocodi.
No és un llenguatge real.
És només molt concisa Anglès, però es comunica el punt.
No hi ha cap estructura formal aquí.
Només ha d'utilitzar és uns pocs paraules, però paraules com a clars
com sigui possible per comunicar la seva idea.
>> Ara el bo és que l'algoritme i quant millor és?
Bé, nosaltres no hem d'entrar en el detalls de nombres o gens
així.
Però podem veure el forma d'aquesta solució.
Així que si acabem de treure algunes gràfica xi aquí en l'eix horitzontal aquí.
Anem a cridar la mida del problema.
I ho faria un científic de la computació solen utilitzar n com la variable aquí.
Així n pàgines, o n persones a l'habitació, o sigui el que sigui que estiguis tractant d'explicar.
>> I a continuació, en l'eix vertical en el a l'esquerra, que seria el moment de resoldre.
Llavors, quants segons ho fa em portés a trobar Mike Smith?
O quants passos presa?
Quantes voltes pàgina es triga?
Així que això és el que costa mi en el moment de resoldre un problema.
I podríem anomenar la primera algoritmes pendent, si es vol,
com s'acaba d'aquesta línia recta en vermell.
I el trucaré n.
>> Per què n?
Per què és només per aquesta a una relació?
Bé, si Verizon o qualsevol que sigui la companyia telefònica
afegeix una pàgina més per la guia telefònica el proper any,
que podria empènyer a Mike 01:00 pas més a prop del final,
depenent d'on és aquesta pàgina.
I el que l'efecte pot ser que amb prou feines consistiria a afegir un segon més.
O una pàgina més al seu torn.
Una relació un a un.
>> Per contra, el segon algoritme.
Quant més ràpid era que intuïtivament?
On vaig anar dues pàgines alhora?
Sí.
>> ESTUDIANT: [inaudible]
>> DAVID Malan: Sí.
Per tant, serà el doble de ràpid.
I dibujaríamos que aquí depenent de l'escala.
Encara és una línia recta, però inferior a la línia vermella.
Perquè per alguna sèrie de pàgines, si es porta
que aquesta quantitat de passos amb el primer algoritme,
que haurà de mitjana com molts passos amb la segona.
I pel que la línia groga que descriu el segon algoritme
és només va a estar per sota d'ella.
>> Però el que és realment de gran abast és pensar en la tercera i última,
i sorprenentment més intuïtiva algoritme, que té aquesta forma.
tècnicament diríem aquesta una corba logarítmica.
Logaritme en base 2 de n en aquest cas.
Però això no importa realment.
El que importa realment és la fonamental diversa forma que té.
I es pot considerar fins a quin punt molt més curta aquesta línia realment
és en el llarg termini.
Està en constant augment.
Que no s'aplana a la perfecció.
Però es fa cada vegada molt més lentament ja que el problema es fa més gran i més gran.
I es pot pensar d'aquesta manera- si Verizon no només
afegir una pàgina, però l'any que ve dobles el nombre de pàgines de la guia telefònica,
el primer algoritme podria prendre el doble de passos.
Si es tracta de 1.000 pàgines d'aquesta any, 2.000 pàgines any que ve,
Mike podria ser molt més lluny.
Pel que és de 1.000 passos addicionals per trobar-lo.
El segon algoritme podria ser tan sols 500 més
passos per trobar ell, perquè una vegada més, Estic volant a través d'ell dos alhora.
>> Però què passa amb el tercer algoritme?
Si Verizon duplica el mida de la guia telefònica
l'any que a partir de 1000 a 2000 pàgines, quants més passos
és el meu tercer algoritme va a prendre?
Sí, és només un.
I aquesta és la idea de gran abast.
Pot prendre de 1.000 pàgines mossegada d'aquest problema alhora.
I ara, si es té en compte un escenari ximple,
però la classe de parla de la poder d'aquest tipus de intuition--
si tenia una llibreta de telèfons, com, 4000000000 pàgines, se sent com un problema molt gran.
I, de fet, podria Em prendre de quatre milions de pàgines
es torna a trobar en aquesta Mike Smith cas amb el primer algoritme.
Però la quantitat de passos que ho faria prendre en el tercer algoritme
per trobar Mike entre quatre milers de milions de fulls de paper?
Així què quatre mil milions es estripa per la meitat.
Vostè aconsegueix dues mil milions.
Després de mil milions, 500 milions i després, 250 milions, 125 milions-- però
se sent com això és Va a prendre un temps.
Pot ser que necessiti 32 dits a comptar fins que l'alt.
No obstant això, és de fet, com pocs com 32 llàgrimes de pàgina.
Es pot anar de quatre 1000000000-1 divisòria pàgina
el nombre original de Articles en la meitat 32 vegades
fins que un es queda amb només que d'una sola pàgina.
>> Bé, és clar, jo estic fent trampa aquí.
No és que només estem sent espècie d'estúpida per complet amb els dos primers
algoritmes.
Estic fent trampa en algun sentit, o Realment estic aprofitant una suposició.
El que era cert sobre la llibreta de telèfons en la seva forma original que va permetre
jo fins i tot utilitzar aquest tercer algoritme?
Sí?
PÚBLIC: S'ordena alfabèticament.
DAVID Malan: Va ser ordenada alfabèticament, oi?
Si només fos en l'atzar ordre, això és un malbaratament
de temps, tota aquesta conversa.
He de mirar cada pàgina si està en ordre aleatori
per trobar Mike Smith abans que jo es pot concloure que hi és o no.
I així, el que cantonada han tallat és que tinc
assumit que algú més en aquest cas va fer el treball per a mi.
I en última instància, de manera que convida la pregunta, bé, espera un minut.
Com es pot ordenar 1.000 pàgines de noms i números?
Això és en realitat una diferent problema, una cosa
tornarem en el futur.
Però quan es pensa sobre llocs web com Facebook i Google per Gmail
i coses com Google de propis índexs de recerca,
quan es té milions o bilions de peces de dades que s'emmagatzemen en aquests dies,
searching-- i per no parlar classificar els problemes--
en última instància, és un repte en si mateix.
I, de fet, això és, doncs, només un d'aquests desafiaments
que estarem veient.
>> Així que ara anem a prendre un moment i fer una ullada a CS50
en si i li donarà una sensació de el que està reservat aquest semestre.
De fet, si no ho ha fet, no fer una ullada a aquesta adreça URL.
I com Patrick va al·ludir que, enguany estem
fer una inversió important de tot més en suport del curs
estructura en termes de la PA i les entitats emissores, les hores d'oficina,
seccions disponibilitat, i materials digitals en línia, també.
De fet, en termes del curs d' conferència, estem aquí avui.
I les expectatives d'aquest any oficial del curs
són assistir al dia d'avui, del curs última conferència, i un curs
aproximadament a la meitat del semestre amb cada conferència en el medi
posat a disposició general divendres a la tarda
en línia, tant per als estudiants de Yale i els estudiants de Harvard aquest any.
De fet, una de les canvis fonamentals és
que estem adoptant en Harvard un paradigma molt
com ho vam fer aquí l'última any i ara aquest any,
pel que de la mateixa manera, que encara pel·lícula més de conferències del curs a Cambridge
però posar-los a disposició anterior que hem fet en el passat
de manera que els de usted-- si li agradaria, per exemple,
aconseguir un avantatge sobre els materials en el primer cap de setmana en comptes
que el segon cap de setmana, tindrà l'accés a aquest tipus de materials,
recerques, integrable, hyperlinkable als recursos relacionats amb tots els anteriors.
Quant als temes, per donar-li un sentit de trajectory-- del curs
i una mica d'això podria ser l'argot de ara, però no per molt temps, pot estar segur.
Anem a començar avui, en última instància, amb l'examen d'una programació
llenguatge anomenat Scratch.
Anem a la transició a partir de llavors la setmana que per a alguna cosa que es diu C
i després mirant a un altre edifici blocs per a la solució de problemes,
coses anomenades matrius i algoritmes, com fem servir la memòria del nostre avantatge
i el desavantatge, i coses com estructures de dades,
i després cap a l'extrem de cua de la classe mirant la màquina d'aprenentatge
i mirant a un altre llenguatge anomenat Python,
com funciona la web, com internet més generalment funciona, igual que els protocols HTTP,
idiomes per a bases de dades com SQL, JavaScript per al web,
i en última instància lligar tots aquells junts.
>> I així, de fet, al final del dia, es
no va a aprendre en aquesta classe de Scratch o C o Python o SQL o JavaScript.
Va a aprendre en lloc de forma més general la informàtica i les fundacions
de la mateixa, i vostè aprendre a programar
en qualsevol nombre d'elles idiomes en el camí.
Així que de fet, un dels objectius del curs a l'extrem
és per treure tot el curs de rodes d'entrenament per aquestes últimes setmanes
de manera que després d'això, es pot tornar al seu propi fields--
si aquesta és o No ciències de la computació
o l'enginyeria, en el natural ciències, arts, humanitats, o beyond--
i portar una mica d'això Les idees dels cursos i aquest camp de
idees i pràctica habilitats al seu propi domini
per tal de resoldre els problemes en el mateix.
>> El que farem aquí per la seva banda en la majoria dels dijous després d'avui
és amb els caps principals del curs el que anomenarem tutorials
de conjunts de problemes del curs.
Pel que cada setmana quan han creat un problema, anem a
estar caminant a través d'una ubicació com aquest reptes del curs,
que li ofereix alguns consells i trucs i tècniques de disseny.
Però si vostè no és capaç per fer els de la persona,
adonar-se dels mateixos s'integraran els recursos
per un el curs de assistents d'ensenyament
en el problema estableix si mateixos, també.
>> El problema que diferencia aquest any, a diferència l'any passat, basat en la retroalimentació,
encara serà llançat el divendres.
Però en lloc de ser a causa la posterior Divendres,
el que et dóna només set dies, efectivament s'ha de 10 dies més tard.
I, en efecte, això vol dir que que van a solapen per un cap de setmana.
No obstant això, esperem aquest any Això serà especialment
permeten als estudiants per donar cabuda a una millor flux i reflux en les seves llistes,
ja sigui acadèmic o extracurriculars o atletisme
o la temporada de meitat de període.
Pot càrrega frontal o posterior de càrrega la seva setmana centrant-se en CS50 basa
en la càrrega acadèmica real de la seva pròpia setmana.
>> El problema fixa a si mateixos cobrirà una àmplia gamma d'idiomes,
encara que ens centrarem predominantment des del principi en C
abans que ens centrem a continuació, de major nivell, més idiomes centrades en la web.
I després un parell de preguntes més freqüents aquí-- s'ha de prendre una classe com CS50
com un primer any?
Tan absolutament.
I, en efecte, no és necessàriament una cosa
vostè ha de posposar fins que s'hagi tallat les seves dents sobre altres tipus de classes.
Sinó més aviat, considerar que per a molts estudiants,
m'incloc al seu dia, aquest és un camp molt poc familiar,
especialment si mai ho va fer prendre un CSA AP
o alguna cosa per l'estil a l'escola secundària.
Però adonar-se que des del principi, si es tracta d'aquest curs
o algun altre curs d'introducció, Ara és de fet el millor temps,
Crec que, de trobar alguna nova ruta o algun nou interès acadèmic, també.
I després prendre amb altres courses-- pel que una de les diferències clau aquí
davant de la Universitat de Harvard és que només prendre quatre cursos per semestre
a Harvard per alguna raó.
I vostès realment Tire d'uns 36 cursos en total
al llarg dels seus quatre anys, el que significa generalment a quatre o cinc
classes.
I jo crec que és bastant just dir i no reivindicar la CS50, per disseny, és
probablement no és el tipus de classe que s'ha de fer en general
portar amb altres quatre cursos per a un total de cinc
perquè són conjunts de processadors per disseny bastant intensiva.
De fet, jo també vaig aprendre aquesta de tornada al dia.
No ho descriuria CS50 i la informàtica, la programació
com tant difícil com és només que consumeix temps.
No és el tipus de cosa on després del sopar,
pot tornar al seu dormitori habitació, seure, i començar
centrant-se en el conjunt de processadors pensar, d'acord,
Vaig a terme aquesta explosió aquesta nit i després moure
al meu següent tema l'endemà.
De vegades s'acaba de colpejar una paret.
Vostè té errors en el seu codi.
Que no necessàriament sap com resoldre algun problema.
I una de les característiques clau de programació per a mi, per al dia d'avui
és que només tipus de necessita prendre un pas enrere en ocasions, dormir-hi
o pensar-hi durant el curs d'un trot o alguna altra activitat,
i després tornar-hi més fresc.
I només té aquestes finestres de temps.
>> I, de fet, és per això que hem allargat la quantitat de temps
disponible per als conjunts de problemes aquest any i també, per aquesta URL
Poso més d'hora que què hi ha de nou aquest semestre,
retallat el problema de manera que estableix que són, fonamentalment, no és menys rigorosa,
i el menjar per emportar no són menys, però hi ha molta menys matèria frontal,
molt menys treball de camp que necessita fer al front de cada conjunt de problemes,
com es veurà, abans que pugui realment submergir-se en la carn d'ella.
Així que adonar-se que aquests i altres canvis en l'horitzó
per acomodar millor els estudiants, però en última instància per assegurar
que són el menjar per emportar de fet el més alt possible.
Així, com més treball del que podria estar en una classe típica,
esperem que els rendiments de vostè i els robatoris de pilota per a vostè
i les habilitats i idees amb la qual surt
són tant més convincent com a resultat.
I per aconseguir que allà-- i això és un dels punts clau,
com Patrick al·ludit abans els he parlat és estructura de suport del curs.
Així que no només té un CS50 els majors personal del curs al campus.
També compta amb una de les la majoria de pregrau.
De fet, l'any passat CS50 va ser la primera classe
tenir un professorat universitari.
I prova que l'èxit fer ara molts altres cursos dins de Yale CS
haver de, també.
I per als estudiants, específicament, seran aquestes TA i assistents del curs
ser de suport en el seu conjunt la xarxa de recursos de suport,
entre ells o seccions recitacions, oportunitats setmanals
tenir discussions més íntimes i avaluacions de materials adreçats
per diferents pistes, per als estudiants menys còmode, més còmode,
o en algun punt intermedi.
Aquests seguiran la disponibilitat de les conferències de diversos dies a la setmana
els dilluns i dimarts.
I després hores-- oficina un-a-un oportunitats
ajuda a les entitats emissores de golf i TA seran els dimecres i dijous
i diumenges a les múltiples vegades, tots els quals
serà publicat a la pàgina web del curs, encara més que l'any passat, també.
>> Però el que és clau per a CS50, si No dubta una mica inusual,
és la cultura del supòsit que hem tractat de conrear,
tant a Cambridge durant molts anys i ara més recentment a New Haven.
I, de fet, que fins aquest Dissabte, si vostè no ha sentit,
és el Dia CS50 trencaclosques, que té res a veure amb la informàtica
sinó que està totalment dissenyat per enviar un missatge que és la informàtica
sobre la resolució de problemes.
I de fet, si es vol associar amb un o dos o tres amics
i formar un equip per CS50 Trencaclosques Dia, mireu
en els anuncis que es troben en el camí de sortida.
I tres hores de pizza i trencaclosques i premis esperen.
I, de fet, per a la primera vegada en l'any,
no es durà a terme en conjunt amb la Universitat de Harvard.
Serà aquí de forma independent a Yale.
Així que mantenir un ull cap a fora per els que si no ho han fet.
La majoria de tots els divendres al semestre què tractem de fer una gran classe
se senten petits i portar uns 50 estudiants per dinar amb el personal del curs,
amb ex alumnes, amics des de la indústria a parlar
sobre com és la vida després d'una classe com CS50 i durant els estius
i després de la graduació.
Així que mantenir un ull cap a fora per invitacions a això.
Per primera vegada mai aquest any farem nosaltres
sostenir la primera codificació CS50 concurs, una oportunitat opcional opt-in
la meitat del semestre, després que tots nosaltres hem tingut uns sis o set setmanes de programació
en C sota el cinturó per competir, així que si vols choose-- nou
en teams-- tractant de resoldre tants desafiaments
com es pot en la programació amb amics seus contra altres.
>> I cap a la cua del semestre farà que alguns autobusos xàrter,
en realitat passar algun temps a Cambridge, si ho
agradaria unir-se a nosaltres, per a la els anomenats CS50 hackathon.
A les 7 am anem a començar.
Al voltant de les 9 del vespre, tindrem pizza.
Al voltant de les 1:00 del matí, tindrem burrets.
I qualsevol persona encara està despert en el passeig amb autobús a casa al voltant de les 5:00 del matí,
ens aturarem per pancakes en IHOP en el camí de casa-
una oportunitat de 12 hores per submergir a si mateix amb els seus companys i el personal
en el projecte final del curs, que és una oportunitat
per anar més enllà de la butlletins de problemes del curs
i dissenyar i implementar la majoria res del seu interès,
que finalment es ofert aquí als Comuns.
La primera fira cada vegada CS50 va ser l'última any, una exposició de final de semestre
o una celebració del que tots en la classe havia aconseguit,
especialment els que, de nou, que va passar de res a alguna cosa, de zero a 60,
no tenir antecedents abans i que presenten, en última instància,
alguna cosa per tot el campus i, Si en línia, el món ho vegi, també.
>> Ara, aquests aquí són només algunes de les TA i CA que fa possible CS50.
Permetin-me convidar a qualsevol dels membres del personal
que són aquí per pujar a l'escenari, així com els caps del curs,
oferir algunes paraules de inspiració, també.
>> ANDI: Hola, nois.
Poden vostès sentir-me?
Gràcies per acompanyar-nos en aquest preciós, plujós dijous a la tarda.
El meu nom és Andi.
Sóc un jove a Berkeley.
I juntament amb Stelios i l'estiu, serem el seu ensenyament de tres caps
ajudants per aquest proper any.
Així que, suposo, mostra de mans-- quants de vostès
no tenen cap intenció de ser un CS important ni realment submergir profundament
en ciències de la computació com un important aquí?
Impressionant.
Això és brillant.
>> Així que estic en realitat un assumptes globals i comandant de la ciència cognitiva.
Jo, literalment, vaig venir a Yale amb la intenció
de no haver de mirar a una nombre cada vegada més en la meva vida.
Quan vaig arribar a la Universitat de Yale, això era cosa que mai va estar en el meu radar.
Jo volia aprendre sobre la poesia.
Jo volia aprendre sobre assumptes internacionals.
Jo volia aprendre sobre aquarel·les.
Sí, oferim una classe en els dibuixos d'aquarel·la.
>> Però mai realment estava interessat en tot el relacionat STEM.
Però llavors el que més anys va aconseguir, més m'adonava
que cada camp realment d'alguna sentit empra la informàtica,
o si no la informàtica, la computació.
De fet, per a mi mundial projecte final assumptes,
estem utilitzant anàlisi de dades per analitzar els atacs terroristes
de Boko Haram a Nigèria.
I així com es pot veure, sense tenir en compte de l'important que acaben perseguint
o quins són els seus interessos aquí a Yale són, la programació i les bases
de qualsevol tipus d'habilitats són super útil.
I CS50 realment està ben equipat per tipus de tirar una gran quantitat dels seus recursos
per a vostè, independentment de com de còmode se sent
o com vostè està interessat en la recerca de la classe.
>> Estiu va a parlar una mica poc sobre el que vostès estan
va a aprendre sobre aquest any.
ESTIU: Hola, tothom.
Estic estiu Wu.
Sóc un jove en Morse.
I, de fet vaig començar com a estudiant CS50 mi mateix.
Així que fa tres anys, jo estava en un any sabàtic.
Jo mai havia pres un CS classe a l'escola secundària,
però vaig pensar que en el meu temps lliure, que seria genial per aprendre com codificar.
Així que vaig fer una ràpida cerca a Google, buscat el que estava disponible en línia,
i vaig veure aquest vídeo amb els muppets i els DJ i llocs web interessants.
Jo estava com, vull aprendre a fer això.
>> Així que vaig prendre el curs, i jo simplement es va enamorar d'ella.
Però recordo estar tan gelós de la nens que van poder assistir a la hackathon,
Trencaclosques assistir a Dia, assistir a l'oficina hores, reben ajuda de TA en persona.
I pel que mai vaig imaginar que m'agradaria tenir l'oportunitat
que aquí participen en el supòsit que en primer lloc es va dur
M'interessa ordinador ciència i és la raó per la
Sóc un informàtic important avui dia.
Així que t'adverteixo, aquesta classe es va a estirar vostè.
Es va a desafiar.
Però també va a li ensenyi com fer les coses
que mai es va imaginar que podria.
>> Stelios: Hola, tothom.
El meu nom és Stelios.
Sóc un jove a Branford La universitat i un dels principals CS.
També sóc d'Atenes, Grècia.
Estic amb moltes ganes per conèixer-los a tots vostès,
conversi amb vostè en la secció, en les hores d'oficina, en divendres per emportar.
Estic molt emocionat perquè hem posat tant esforç
en la creació d'un suport únic estructura per a tots vostès
per fer que la seva experiència amb el curs de la millor manera possible.
I espero que, si bé la major part de és probable que no hagi pres una CS
Per descomptat abans, espero que sigui CS50 per a vostè és el que desperta l'interès
per prosseguir equip la ciència en el futur,
com ho ha fet amb tan moltes persones en el passat.
Així que gràcies per estar aquí, excitat veure't.
Jason Hirschhorn.
JASON Hirschhorn: Hola, tothom.
El meu nom és Jason Hirschhorn.
Jo visc a Silliman.
I vaig anar a Harvard com a estudiant i es va especialitzar en estudis socials
amb especialització en ciències de la computació.
I una de les meves principals funcions aquí és donar suport a aquest meravellós personal
ja que tots vostès donen suport.
De fet, això no és de tots ells.
Hi ha 55 estudiants universitaris i graduats aquí per donar suport a tots.
I m'atreviria a dir que un dels millors parts del curs per a vostè
tot és arribar a treballar amb ells, conèixer-los,
arribar a veure'ls, tant en CS50 i fora d'aquest semestre CS50
i per a molts semestres vinents.
Així que espero que vostè prengui la Per descomptat, perquè esperem que pugui
arribar a interactuar amb el personal meravellós que tenim a l'escenari.
>> ALTAVEU: Bé, deixa acabar dient que va a ser divertit.
DAVID Malan: Bé, Gràcies a tot l'equip.
Permetin-me atenuar les llums i permetre que una mica més del nostre equip,
tots dos de Cambridge i New Haven, per saludar com a arxiu d'aquests tipus.
I després d'això anem a la transició a el primer dels nostres compromisos de programació
amb aquest llenguatge anomenat Scratch.
Així, gràcies a l'equip.
Anem a baixar les llums i saber d'alguns altres.
>> [Aplaudiments]
>> [REPRODUCCIÓ DE VÍDEO]
>> -La Missió de CS50 és fer que es més còmode amb una forma totalment nova
de pensar, aquesta forma de pensar computacional.
-Es Va fer la informàtica interessant, que
és una cosa que realment no em vaig adonar era possible fins que va prendre la classe.
-I Era com, espera.
Realment estic traduint els meus pensaments en un equip en aquest moment.
>> -fins i tot Si no té alguna experiència en informàtica o cap experiència,
això és en realitat la classe per a tu.
>> -així Que definitivament vull meus estudiants a només
entusiasmar-se amb la informàtica.
No només la programació, però pensar com un científic de la computació
és realment el que vull tractar d'ensenyar al meu primer any.
>> -CS50 És difícil i gratificant.
>> -Una Experiència.
>> -Extravaganza.
>> -Es Ens està portant al següent nivell.
>> [MÚSICA]
>> -Els TFS són, crec, la element vital del curs.
>> -Estic Emocionat de tenir meus alumnes que estic ajudant
ha de aha moment de realitzar el que realment estan intentant
per fer, per trobar la manera de fer un conjunt de processadors.
>> -CS50 És definitivament un curs dur.
Però a diferència de qualsevol altre Per descomptat realment a Yale,
que té un gran tipus, comunitat de suport.
-Vostè No ho fan en absolut necessita saber res
sobre la codificació per poder per prendre el curs.
-És Increïble per veure fins a quin punt la gent ve en un semestre.
>> -No S'asseu només en seva habitació aprendre a codi,
però era alguna cosa més que una classe.
Va ser una experiència.
-La Millor manera d'aprendre conceptes i per processar-és ensenyant als altres.
>> -Quin És la fracció de telèfon?
>> [MÚSICA]
>> I això és CS50.
>> [MÚSICA]
>> -Aquesta És CS50.
>> -Got Un problema?
Trencar per la meitat.
>> [MÚSICA]
>> Llençar a les escombraries.
>> DAVID Malan: Està bé.
Així que anem a tackle-- en una petita poc, dit sigui de passada, és
estat d'aquesta tradició alguna raó durant 10 anys
per servir a la coca iniciar i al final de CS50.
Així que li espera al final de Avui en dia, a més dels programes d'estudi,
serà una mica de pastís, així, i el personal del curs per dir hola.
Però ara, de deixar pas a la primer dels nostres idiomes, si
anem a passar realment només una setmana i un problema ajustar-se en aquest domini, Scratch.
I trobarà si vostè té programada abans, molts
de les idees i la possibilitats són familiars per a vostè.
No obstant això, trobareu que és divertit en el camí
per esbrinar exactament com traduir algunes de les idees que ja coneix
a aquest entorn particular realment impressionar a la seva família
i amistat amb el seu treball, el que pot anar en línia, si així ho desitja, després.
>> I si no té experiència prèvia i estan
entre la majoria estudiants menys confortables,
adonar-se que moltes de les idees que simplement explorat amb les coses reality--
com els llibres de telèfon i d'assistència i així forth-- traduir
bastant bé a un ordinador, però no si s'utilitza,
Inicialment, un llenguatge com aquest.
Així que aquest és un programa escrit en un llenguatge anomenat C.
I anem a passar una mica de tant en C, en última instància.
Però les probabilitats són, això va a semblar una mica críptic perquè a primera vista.
De fet, hi ha un munt d'estrany sintaxi, parèntesis, claudàtors angulars,
claus, cites, i punt i coma.
I de fet, si vostè submergir-se en programació per primer cop
mirant i tractant de crear coses així, honestament, s'obté de manera sumit
tan sovint en una estupidesa minúcies que no té res
intel·lectualment interessant al respecte.
>> Però imagini si vostè podria crear aquest mateix program-- que,
com es pot inferir la classe de, probablement, imprimeix "Hola, món" d'alguna manera o d'una altra índole.
Podem destil·lar aquesta mateixa idea en només dues peces d'un trencaclosques, si es vol.
De fet, Scratch és interessant perquè és aquest llenguatge gràfic.
Podeu arrossegar i deixar anar aquests peces d'un trencaclosques que només enclavament
si té sentit lògic per fer-ho.
I així, en Scratch, aviat veurem, això és
com es duria a terme aquest mateix programa, amb només dues peces d'un trencaclosques
que més o menys fan el que diuen.
>> Però ja veurem en un moment que alguns dels blocs de construcció que al·ludim
anteriorment i alguns més són tot el que en última instància, constituiran
alguns dels nostres primers programes.
Tindrem coses com acaba de functions--
accions que fan alguna cosa, com dir hola, món.
Tindrem bucles, coses que indueixen cicles
cop i un altre, de la mateixa manera que ho ho va fer fa un moment amb la recerca
per Mike Smith.
Variables, com en l'àlgebra, si tenir XOY, que poden emmagatzemar un nombre.
Doncs bé, en un programa, en realitat es pot emmagatzemar més enllà dels nombres.
Pot emmagatzemar paraules i frases i els gràfics i altres coses encara.
Les expressions booleanes, simplement preguntes-- si o no, veritable o fals.
Condicions de presa de decisions, sobre la base d'aquestes respostes sí / no.
>> I llavors les coses més elegants com matriu i les discussions i esdeveniments
i qualsevol nombre d'una altra característiques, però tots els quals
mapa molt bé a molt blocs d'amics com aquest.
Això serà una funció, una peça del trencaclosques de color porpra que amb prou feines diu
que el seu nom és-- en aquest cas, per exemple.
I després, sovint, no hi ha una caixa blanca que es
pot escriure o arrossegar algun valor en.
I això és el que generalment diu un argument o un paràmetre.
És una manera d'alterar la comportament predeterminat d'un trencaclosques
peça o una funció perquè ho faci una activitat a mida per a vostè com dir,
hola, hola o món, Andy o hola, Jason o alguna altra frase al seu lloc.
>> Si vol dir que una lot-- literalment forever--
pot prendre una altra peça del trencaclosques anomenat per sempre
i just el intercalat dos junts com aquest.
I aquest bucle, com la imatge suggereix, significa simplement dir hola, món per sempre,
una i altra vegada i una altra.
O, si només vol fer una nombre finit de vegades, com 50 vegades,
que serà un altre trencaclosques que- peça per repetir 50 vegades.
>> Mentrestant, si desitja tenir una variable
en aquest idioma que estem a punt de jugar,
pot utilitzar un bloc de taronja com aquest.
I aquesta variable que forma arbitrària i crida de nombre sencer.
I jo només vaig posar igual a 0.
I el que potser, en aquest cas-- aquest variable--
representa la puntuació d'algú en un joc.
Es comença a zero, i cada vegada que es fer un gol o alguna cosa per l'estil,
s'obté un punt addicional.
>> Pot fer preguntes en Scratch.
Si ens arrossegar i deixar anar trencaclosques peces en un moment com aquest,
vostè pot fer preguntes com, així, és i menys de 50?
Potser necessita 50 punts per guanyar.
I el que aquesta seria la pregunta que li demana.
O, més generalment, es podria dir és x menor que i,
on no està involucrat dues variables?
Ara, aquest és molt gran a primera vista,
però en realitat no tot el que més complexa.
>> Això és només una combinació de condicions i variables
i les expressions booleanes per preguntar 3 preguntes-- és x menor que i?
Si és així, digui-ho.
Per exemple, x és menor que i.
Si no, si x és més gran que i, d'una altra x ha de ser igual a i.
I mentre que amb Mike Smith, hi havia quatre escenaris, aquí
en el món dels nombres, x és o bé menor que, major que, o igual a.
Tot el que tenim són tres bifurcacions en el camí.
I després hi ha més elegant peces del trencaclosques com aquest
per a coses com arrays, on estem serà capaç d'emmagatzemar informació.
Anem a veure blocs que permeten hem de realitzar diversos subprocessos,
una altra de les característiques que utilitzarà, i a continuació, també una cosa anomenada esdeveniments.
Però abans d'arribar a aquest punt i crear encara,
en última instància, la nostra pròpia personalitzada trossos del trencaclosques, anem a
en realitat obrir el programa en si.
>> Així que això és Scratch.
Està disponible en scratch.mit.edu.
I de res per jugar ara o més endavant, també.
Això passa a ser la versió fora de línia.
Per a les persones que no ho fan necessàriament ha gran Internet,
es pot descarregar la mateix programari, també.
I no hi ha realment només tres components a aquest programari.
A la cantonada superior esquerra de la la pantalla és el tipus d'escenari
que Scratch, que per omissió s'assembla a un gat, viu a l'interior.
Ell pot moure cap amunt, avall, esquerra i dreta i realitzi una sèrie d'altres coses,
i pot buscar qualsevol nombre de formes basades en els vestits que assigna a ell.
Però això és el que anem a cridar a una sprite, una mena de caràcter.
I vostè pot tenir múltiples personatges, com aviat veurem.
>> Al mig estan ara tots aquests trencaclosques peces i aquestes categories o paletes
dels mateixos.
Així que ara mateix, vaig fer clic en moviment.
I pel que estic veient tota la relacionades amb el moviment peces del trencaclosques o blocs,
de manera que les funcions que tenen a veure amb anar amunt,
avall, esquerra o dreta o alguna altra operació.
Però si he fet clic a mirades, es podria veure les coses com ara el bloc
que vam veure fa un moment.
I si faig clic al Control, veurà coses com la repetició i la sempre
i si el bloc que vam veure fa un moment.
>> I pel que trobarà que només haurem de gratar
la superfície d'alguns dels trencaclosques de peces en conjunt,
però és tot bastant intuïtiu i el punt i clic.
De fet, Scratch va ser dissenyat per als estudiants més joves
per ajudar-los a donar una sortida per al pensament creatiu.
I, no obstant això meravellosament, és una pedra meravellosa esglaonament
exactament a les idees que anem a explorar en C i Python i JavaScript,
tant be.
>> A la banda de la dreta, finalment, aquí és això, l'anomenada àrea de scripts.
I això és només la pissarra en blanc amb la qual es comença a escriure un programa.
I vaig a exactament això.
Ara, jo sé on són les coses perquè he fet això unes quantes vegades.
Però sé que, en virtut la categoria Esdeveniments,
hi ha aquest bloc aquí-- quan es fa clic a bandera verda.
I adonar-se si el zoom cap a fora i de tornada a aquí a l'escenari,
vides de gratar dins d'aquest petit món rectangular,
a la part alta que és un verd bandera i un senyal de stop de color vermell.
Així que anar i detenir, respectivament.
>> I així ho faig el que vull fer quan es fa clic en aquesta bandera verda?
Bé, deixa anar a la qual es veu categoria.
I m'ho dius a mi anar per davant i arrossegar això.
I l'avís tan aviat com es posa estreta, que són una mena de magnètica.
Així que si ara em deixo anar, que encaixi junts agradable i neta.
I vaig a seguir endavant i dir alguna cosa així com hola, món
durant dos segons.
Permetin-me allunyar i feu clic en l'ara bandera verda, i dir hola, món.
Tot bé.
Així que això és tot fi i bo.
No tot el que emocionant.
Anem a fer una mica més bonic.
I jo sé que en antelació, Scratch succeeix
venir amb algunes coses boniques com aquesta.
Així que juga miol so fins que estigui fet.
Així que anem a fer això.
>> [MEU]
>> Aw, això és adorable.
I si faig clic en ell una altra vegada--
>> [MEU]
>> I un altre cop.
>> [MEU]
>> Però segueixo havent de reanimar les ratllades.
Però no puc fer millor que això.
Per què no simplement arrossegar 03:00 d'aquests.
I ara és tres vegades més adorable.
>> [Meowing]
>> OK, en realitat, és una mica esgarrifós.
Així que necessitem alguna cosa intermedi allà.
Si vaig al control, que sembla de fet hi ha un bloc d'espera.
I així compte si hi ha sobre allà-- i m'ho dius a mi fer això una mica més gran.
Si planen, que va a encaixar al seu lloc.
Així que esperi un segon, esperi un segon.
Anem a colpejar la bandera verda de nou.
>> [Meowing]
>> Bé, una mica més natural, però no és molt eficient.
Així que això és correcte si el meu programa de miol gol va ser tres vegades.
Però no és molt ben dissenyat.
Jo com que tallar algunes cantonades.
Tinc una mica mandrós.
El que se sent com- què és el que sembla haver fet malament, què li diries?
Sí?
Si, en el medi.
PÚBLIC: S'utilitza més la memòria del que necessitava per
perquè vostè està utilitzant tants línia diferent.
DAVID Malan: Sí, així que més línies.
I no seria necessàriament memòria, tot i que podria ser vist com d'aquesta manera.
Però és definitely-- no hi ha redundància.
I literalment tipus de arrossegar i va deixar caure les mateixes coses.
I si la classe de extrapolate-- si No és obvi aquí-- així, com
Em Meow 30 vegades?
M'agradaria arrossegar i deixar anar, com, 30 parells més de les peces del trencaclosques.
I sens dubte, hi ha una manera millor.
I hem vist una millor manera.
Ho faria de forma intuïtiva ser el millor camí?
Sí, només ha d'utilitzar un bucle.
No copiar i enganxar.
I de fet, en qualsevol moment present semestre si s'inicia
trobar-se arrossegar i deixar anar, o realment copiar i enganxar,
hàbit perillós per entrar a perquè això no és només molt fàcil de mantenir.
Per exemple, si vull canviar el so a una altra cosa,
He de canviar ara en tres ubicacions en lloc d'un de sol.
Perquè de fet, si trencar aquest away-- estic
només va a desacoblar així.
Déjame agafar un bloc de repetició, i a continuació, en tres, escriviu 3,
farà fora a alguns d'aquests de distància amb només deixar anar.
I després notar-ho no sembla que s'ajusta,
però magnèticament, que va que no només s'enganxin al seu lloc
però créixer per adaptar-se a la forma.
I això és bo.
I ara si faig clic en el joc.
>> [Meowing]
Molt agradable.
Tot bé.
I ara és molt fàcil canviar, també, perquè només pot
canviar un nombre en un sol lloc.
Però això, també, no és tan interessant.
Anem en realitat tenen Zero no Miau, sinó que es mouen.
Déjame anar a Motion i seguir 10 passos dins de-- crits, deixa arreglar això.
Déjame haver de moure 10 steps-- En realitat, no fem de repetició.
Déjame agafar un bloc de control, i fer el següent per sempre.
Sempre, moure 10 passos.
I feu clic a Reproduir.
>> D'ACORD.
Així que per sort, s'atura.
Altrament, els nens els molesta molt quan perden la seva espècie de gat.
Però almenys puc arrossegar ell de nou a la pantalla.
Però això no és tot el que gran d'un joc o animació.
Seria bo si potser que va rebotar a la vora.
Llavors, què fem?
El constructe és el que necessita tenir Scratch decidir a rebotar, creu que,
fins i tot si vostè mai ha esgarrapades vist abans?
Sí, a la part posterior.
PÚBLIC: Es necessita una si el bloc o si-llavors.
DAVID Malan: Sí, pel que alguns tipus de bloc o si si-llavors.
Així que en realitat, tenim un d'aquests aquí.
Així que si: així que anem a aconseguir desfer-se del moviment.
Permetin-me ampliar de manera que és més gran.
Llavors, com sobre això.
Sempre, si Sensing-- nosaltres no hem vist abans.
Necessito una expressió booleana.
I resulta que si el toca?
Si toca la vora, Què vull fer?
Bé, si torno a Motion, Resulta que, oh, puc donar la volta.
Permetin-me arrossegar aquest aquí.
Per què no seguir endavant i donar la volta 180 graus?
>> I ara, em van deixar de moure al final.
Podria posar en moviment al principi o al final.
Però lògicament, cada vegada que es movia, em vulgueu comprovar, estic tocant la vora?
Sóc que toca la vora?
Així que, lògicament, em gir en cas afirmatiu.
Així que anem a prémer el botó Reproduir.
>> D'ACORD.
Així que és lleugerament amb errors, per dir-ho.
I un error és només un error en un programa d'ordinador.
Però almenys està funcionant.
I, de fet, jo puc entrar aquí.
I vull deixar No 10 passos a la temps, però això és tot animació és.
Tot això és un dibuix animat o fins i tot una pel·lícula és.
Permetin-me passar 20 passos alhora.
Així que 20 vegades la quantitat de coses estan succeint una vegada, o dues vegades més, en aquest cas.
I s'està movent més ràpid.
Déjame canviar a 30.
100.
1000.
I es va molt ràpid.
I això és-- Sí, està bé.
>> Així que ara només estem a jugar amb ell.
OK, així buggy.
Però el podem arrossegar fora del camí aquí.
Però podem fer més divertit amb això, també.
Què hi ha de això- que és al revés.
Però resulta Scratch-- i no és en realitat,
He de renunciar, acadèmica valor al que estic a punt de fer.
Però si obro el micròfon, anem a detenir i fer alguna cosa com això.
Ai!
>> [Riuen]
>> Això era adorable.
Gràcies.
Ara, això és el que la meva veu sembla que quan li crit ai.
No crec que vam agafar el teu riure.
Està bé.
Em deixa guardar això com "ai".
Anem a guardar això com "ai".
I ara anem a tornar a seqüències d'ordres.
I ara anem a veure need--, so.
Oh, ai reproduir so.
Així que si jo estic tocant la vora, em va deixar ouch primera jugada i, a continuació, donar la volta.
I ara anem a posar-lo al mig.
>> [Dir "ai"]
>> El doble de ràpid.
>> D'ACORD.
Però és, literalment, fent el que estic dient.
Pel que és de fet correcta, és a només una mica molest ràpidament.
Així que anem a afegir una mica més interessant a aquest.
Permetin-me realitat espontani un que vaig fer amb antelació,
encertadament anomenat Pet el Cat, que fa això.
Aquí està la seqüència de comandaments aquí.
Què és això va a fer en termes anglesos?
El que aquesta dissenyat per fer?
Sí, anirem some-- si?
>> AUDIÈNCIA: Quan acariciar al gat, miola.
DAVID Malan: Sí, per la qual cosa quan acariciar al gat, que va a miolar.
Així, en altres paraules, ara hi ha un bucle infinit encara, combinat
amb una condició, combinat amb una expressió booleana,
combinat amb un parell de les funcions, l'efecte
dels quals, una vegada que joc aquest programa, no és gens
que passa fins que moure el cursor cada vegada més a prop i més a prop i-
>> [MEU]
Llavors és com acariciar al gat.
[MEU]
Només una vegada que realment moure el cursor sobre ell.
Ara, també assotat fins a no acariciï el gat, el que fa aquest lloc.
>> [Meowing]
>> Així que acaba de miolant constantment.
>> [Meowing]
>> Però si aconsegueixo massa close--
>> [Meowing]
>> [Anual sobre els resultats]
>> Llavors, com funciona això?
Ara només tinc una forquilla de dues vies a la carretera.
Si tocar punter del ratolí, a continuació, reproduir el so lleó.
Els altres només reproduir el so miol, i després esperar tres segons pel
que és una espècie de fer molt tranquil·lament.
Tot bé.
Així que aquesta és la combinació més idees fixes.
Anem a fer una ullada a aquest exemple Vaig assotar fins anomenats fils.
I aquesta és fonamentalment diferent, ja que palanquejaments
una característica de molts llenguatge de programació anomenat
fils, la capacitat d'un programa per literalment, fer dues coses alhora.
De fet, en aquests dies si s'està utilitzant Google Docs o Microsoft Word,
i el document està sent constantment revisi l'ortografia, fins i tot a mesura que type-- o
Prem Ctrl-P o Control-P i imprimir alguna cosa,
que està imprimint mentre continua escrivint.
Programes de fet avui en dia pot fer múltiples coses alhora, igual que en Scratch
aquí.
>> Així que aquí, tinc dos sprites Ara, un ocell i un gat.
I si faig clic a cada un els caràcters d'un en un,
Veig ara l'ocell de seqüències d'ordres a la part superior dreta.
Ara veig el gat.
Ocell, gat.
Així que cada un d'ells tenen el seu propi guió.
Però avís, el peça del trencaclosques ¿Les dues començar?
Quan fa clic a bandera verda.
I aus, quan es fa clic a bandera verda.
Així que quan faig clic a la bandera verda, tots dos d'aquests scripts o programes
es van a executar en paral·lel.
I s'adonarà que l'au és sense pensar simplement rebotant a la vora.
El gat clarament s'ha programat amb un avantatge estratègic.
i-
>> [Anual sobre els resultats]
Tot bé.
Perquè el gat va atrapar a l'ocell en aquest cas.
Perquè és això?
Doncs bé, l'avís primera només tenim l'ocell simplement anar sense pensar
a aquesta ubicació inicial, i després per sempre,
si no es toca el gat, només cal moure.
I si estàs a la vora, rebotar.
I només es mouen.
I si estàs a la vora, rebotar.
Però el gat, per la seva banda, té certa lògica addicional
que diu això- primera, tan que això no és completament esbiaixada
contra l'ocell, noto que tinc s'utilitza una peça del trencaclosques verd allà
que realment recull un nombre aleatori.
Una característica de molts idiomes és donar que els nombres aleatoris o pseudoaleatoris.
Així doncs, en aquest cas, el gat inicialment tria un nombre aleatori entre, igual que,
90 graus i 180 graus, en essència, per la qual
que hi ha una mica de la variància.
I després per sempre, si el toc l'ocell, reproduir el so lleó.
Altrament, simplement apunt cap a l'ocell.
Apuntar cap a l'ocell.
Point cap al au, que és una peça del trencaclosques en si mateix en aquest cas.
Bé, no podem fer altra cosa aquí.
Permetin-me obrir el programa d'esdeveniments aquí.
I aquí tenim de nou 2 sprites, que s'assemblen a aquestes dues titelles aquí.
I el que és interessant aquí és la següent.
El tipus de taronja té aquesta un conjunt de peces d'un trencaclosques aquí.
Sempre fer el following-- Si es prem la barra d'espai,
després dir, Marc, i llavors retransmetre un esdeveniment.
I mentrestant, el noi de color blau té aquí això- quan rep l'esdeveniment,
dir Polo.
Així que resulta en Scratch i en altres idiomes,
hi ha maneres perquè dos programes o dos guions, en aquest cas,
intercomunicar perquè quan jo prem la barra d'espai, diu Marc.
I l'altre s'assabenta que, per així parlar, i diu Pol en resposta.
Així que vostè pot escriure programes que en realitat interactuar d'aquesta manera.
I si ho faig d'una vegada, Fins i tot puc afegir les variables,
simplement usant un sprites en aquest cas.
Aquest és especialment molest.
>> [Lladruc d'una foca]
>> Ara, l'avís a la dreta tenim alguna lògica addicional aquí.
Com puc evitar que aquest segell de bordar?
>> [Lladruc d'una foca]
>> Sembla que a la mà dreta costat és el que és la reproducció del so.
Però només s'està jugant una sonarà si el que és veritat?
Si un taronja variable-- block-- silenciat és zero.
Com canvi silenciat a ser 1, és a dir, cert, fan d'aquest silenciat?
Pel que sembla, l'altre guió, que pugui prem la barra d'espai, i ara s'atura.
Perquè puguem tenir aquesta intercomunicació a través de seqüències d'ordres, així,
per només compartir una variable a través dels dos com aquest.
Ara, això no és tan interessant.
Seguirem endavant i fer això i es combinen una gran quantitat d'aquestes idees amb aquest programa
aquí.
Abans de fer-ho, però, Què tal un voluntari?
Déjame treure la pressió de mi perquè en realitat no
jugar a aquest joc.
Anem a tenir algú que no han vist abans.
Ha de ser còmode venir a l'escenari aquí, a càmera.
OK, anem a dalt.
Molt valent.
Com et dius?
>> Idris: Idris.
DAVID Malan: Ho sento?
Idris: Idris.
DAVID Malan: Idris, un plaer conèixer-te.
Anem amunt.
I ara, en el seu propi telèfon mòbil telèfon, es juga Pokémon GO?
>> Idris: No.
DAVID Malan: De debò?
Idris: Sí.
DAVID Malan: OK.
Tot bé.
Bé, encantada de conèixer-te.
Anem de nou.
Jo tampoc.
Així que anem a esbrinar junts com jugar a aquest, que algú realment
va ser implementat i en Scratch canviant el gat a essencialment
diferents personatges tots junts.
I si a pantalla completa això aquí, anem
per a vore el joc en conjunt.
Encara s'està carregant, sent la càrrega.
Vinga.
Déjame fer això.
Vinga.
Aquest joc és tan gran que es va estavellar.
En mode d'espera.
Prova això un cop més.
Vinga.
Tot bé.
>> Allà anem.
D'ACORD.
Bandera verda.
Així que aquí anem.
>> [MÚSICA]
>> Trieu el nivell mitjà aquí.
Feu clic al noi de color blau allà.
Tot bé.
I pot utilitzar la fletxa keys-- amunt, avall, esquerra, dreta.
Ara, considerarem com ho fem això- i després anar pel personatge allà.
Sí.
I ara li faci clic amb el ratolí.
Oh, si.
Mou.
On és la fletxa?
Aquí tens.
Així que feu clic en aquest país.
Sí.
Tot bé.
Així que ara, m'han dit que té una bola d'empenta, que si ho fa clic, que va a fer això.
Molt bé.
A la pràctica d'avui, trobat aquesta versió del joc de
en realitat no és molt difícil.
Així que si vols anar de nou aquí, baixar a aquesta bola d'empenta.
I després gireu a la dreta.
Proveu fer clic.
Oh, en realitat, això és la botiga, pel que sembla.
Acceptar el que tancar.
Mai havia fet això abans.
Potser anar a aquesta cosa aquí.
Oh, cal anar.
Espera, n'hi ha un per aquí.
Oh, no hi ha altra.
D'ACORD.
De Down.
Sí, premeu.
>> OK, això és molt bonic.
OK, molt ben fet.
Aquest joc no és molt difícil.
D'ACORD.
Felicitacions.
Aquí, tenim una CS50 bola de la tensió per a vostè.
Però considerem per un moment el alguns dels robatoris de pilota són allà.
Més fàcil que el joc real, pel que sembla.
Però tot el que hem d'anar aquí és un personatge
que probablement té algun tipus de bucle associat amb ell.
No és un gat.
És aquest caràcter al seu lloc.
I aquest bucle és només constantment a dir, si es prem la fletxa cap amunt,
Si prem la fletxa cap avall, si fletxa cap a l'esquerra o cap a la dreta prem
fletxa premuda, moure cap amunt o cap avall o cap a l'esquerra o cap a la dreta.
O si hi ha una altra peça del trencaclosques que hi ha diu que en tocar un altre element sprite,
en tocar un dels personatges a la bola d'empenta, si el toc,
a continuació, fer això.
>> Així que totes les idees que hem estat utilitzant fins ara realment
Només pot aplicar-se en aquest particular, context per jugar a aquest joc, també.
Déjame anar per davant i tirar per una altra aquí, de fet.
Déjame anar per davant i tirar fins, diguem, aquest.
Això és una cosa que torna a barrejar.
Feta per un dels nostres estudiants a Cambridge,
i després em vaig anar a través i canviat pràcticament tots els casos de Harvard
a Yale aquest moment.
Algú vol competir contra les heures
aquí en una altra acumulació de totes aquestes idees?
Anem cap a baix, si.
Com et dius?
>> DINA: Dina.
>> DAVID Malan: Adina?
>> DINA: Dina.
>> DAVID Malan: Dina, anem cap avall.
Molt bé, Dina.
Pel que aquest joc es fa més difícil i més difícil, perquè en aquest joc,
hi ha variables que estan sent utilitzats, així que estan constantment fer el seguiment
de quin nivell estàs en el joc.
Així plaer conèixer-te.
Vine per aquí.
I pel que l'objectiu aquí és per ordenar de fer el seu camí a través d'un laberint
que implementa aquest estudiant.
>> I només per establir l'escenari, cadascun d'aquestes imatges a la pantalla
és el seu propi sprite, el seu propi caràcter.
Així que aquests van ser predeterminats pels gats, però l'estudiant els va canviar
als diversos logotips heures aquí.
I llavors veurà que simplement mitjançant l'ús de condicions i bucles
i funcions i més, s'obté això.
>> [MÚSICA]
[MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
>> Sí, està bé.
Sí, segueix endavant.
En primer lloc de molt fàcil nivell.
Només has d'anar allà.
Però, de nou, ha de tenir en compte, això és només una llaç de l'escolta de la fletxa keys--
amunt, avall, esquerra, dreta.
I ara un bloc de detecció.
Molt agradable.
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
>> Molt agradable.
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
>> Molt agradable.
Bastant fàcil, carmesí.
Tot bé.
Levels-- uh-oh.
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
>> I de nou, en aquests 3 crestes de Harvard,
només té lògica dient que si a la vora, de rebot.
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
>> OK, el que estàs fent és més interessant que per què.
Molt agradable.
UH oh.
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
Jo crec que cal sacrificar-se.
[MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
Ràpid!
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
Niça.
Està bé.
Vostè ho aconseguirà.
Sí sí!
Molt agradable.
>> [ANIMA]
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
>> Nice!
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
Ho tinc.
Vinga!
En segon lloc a últim nivell.
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
>> Tot bé.
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
Sí.
El bon ús de les variables aquí.
[MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
Sí.
[MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
Niça.
[MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
Està bé.
Hem d'arribar fins al final.
Hi ha.
Oh!
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
>> Podria executar tard avui, però que va a ser val la pena.
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
>> Tu ho pots fer!
Sí!
>> [ANIMA]
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
>> Aquest és realment difícil.
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
>> Li donarem dues vides més.
Pots fer-ho?
>> [MUSIC - MC Hammer, "O POT NO TOC AQUESTA "]
>> Tot bé.
Què tal una gran ronda d'aplaudiments, però.
Has de del segon a l'últim nivell.
Gràcies.
>> [Aplaudiments]
>> Així que això és només per dir que li es pot fer amb aquest tipus de coses.
I adonar-se'n, també, que quan peces del trencaclosques no la qual existeixen
i, de fet, això va a ser un dels poders amb el primer problema
conjunts i és beyond-- en realitat crear el seu propi compte.
I això és només un fragment d'un dels exemples
podràs jugar amb la línia, on
si no ha incorporat en les ratllades una mena de peça del trencaclosques de la tos,
en realitat es pot fer vostè mateix.
>> I així, tot això i més l'espera.
I només per pintar una final la imatge del que és en veritat
per davant en el magatzem per a la classe per a tu, sobre la base d'algunes fotos dels companys de classe
passat, em permet atenuar les llums per última vegada i es mostren CS50.
>> [MÚSICA]
>> Tot bé.
Això és tot per CS50.
Coca ara se serveix.
>> [MÚSICA]