>> [MÚSICA DE XOGO]
>> [Aplausos]
>> David J. Malan: Este é CS50, Introdución da Universidade de Harvard
ao intelectual empresas de informática
ea arte da programación.
Agora, se está entre aqueles que cada ano está sentado aquí
cun pouco de nerviosismo na súa mente, tales que non pensa que é aquí,
Pensas que a maioría alguén sentado ao seu redor
sabe moito máis do que vostede, é de feito máis cómodo que no ordenador
ciencia ou ordenadores de xeito máis xeral, enténdese
que o 78% dos alumnos que agora tomar CS50 ten ningunha experiencia previa.
>> De feito, hai 100 puntos alí na pantalla, 78 dos cales
son verde continuo, o que significa que, se está entre ese grupo demográfico,
están en moi boa compañía de aquí en diante.
E se está en lugar entre os 22% dos estudantes que fan de feito CS50
ter experiencia anterior, sexa en ensino medio ou algún outro programa,
entender que, tamén, vai ser contestada no curso.
>> Non só temos diferentes temas para os alumnos menos cómodo e máis
cómodo iguais en seccións, tamén chamado edicións de hackers
de máis conxuntos de problemas que vai desafiar os alumnos
con esta experiencia adicional para explorar material semellante
pero a partir dun máis perspectiva sofisticado.
>> Pero o que é ciencia da computación?
Ben, en definitiva, o que vai importa como explorar este campo non é
tanto que acaba en relación aos seus compañeiros de clase,
pero onde aínda acabar en semana 12 versus onde comeza aquí
a semana cero.
Agora ordenador science-- ben, imos chaman a ciencia da computation--
onde a computación é realmente só unha xeito elegante de dicir, tendo algunha entrada,
producir algunha saída, e facelo a través de algoritmos que executan,
conxuntos de instrucións para resolver problemas neses inputs
de forma a producir preto de saída ou solución na que che interesa.
>> Entón, recentemente, tivemos oportunidade de viaxar fóra
a California para atoparse cunha alumna.
O nome dela é Susan Wojcicki.
E ela quere falar para ti aquí en vídeo
para testemuñar o quão aplicable mesmo só unha mostra do ordenador
ciencia no nivel introdutorio pode ser.
Mesmo se non ir a continuar ciencia da computación como un campo,
ou mesmo a enxeñería, ou STEM máis xeral,
vai ver, en realidade, como un correcto Claro que tanto influíu a súa vida.
E ela só tomou cando estaba no último ano aquí na facultade de Harvard.
>> Se puidésemos diminuír as luces para Susan.
SUSAN Wojcicki: Ola, mundo.
Estou Susan Wojcicki.
Eu son o CEO de YouTube.
E tomei CS50 cando eu era un senior na Universidade de Harvard en 1990.
Eu era realmente unha historia e gran literatura.
>> E o meu verán Júnior, Eu entender que talvez
quería aprender algo sobre ordenadores.
E así, eu volvín.
Tomei CS50.
Foi difícil, pero foi o máis clase incrible que eu tomei.
>> El cambiou o xeito no que eu penso sobre todo.
E cando eu me forma en Harvard en 1990, fun para o Silicon Valley.
E eu teño un emprego.
E eu teño a traballar en tecnoloxía desde entón.
DAVID J. Malan: Agora que Susan non mencionou neste vídeo,
que era, en realidade, na súa garaxe que o propio Google foi
fundada por Larry e Sergey.
>> Agora tamén estendeu a man para os nosos amigos en code.org, unha organización que
en relación ao ano pasado foi levar a xente particularmente
animado sobre ciencia da computación e de programación, en particular.
Pero é importante ter en conta que a programación non é ciencia da computación per se.
A ciencia da computación non está programando.
No canto de programación é só unha tool-- que todos vostedes
será moi ben familiarizado con end-- semestre
de tal forma que pode non aplicarse só para os futuros cursos de CS
pero para o que quere que os campos de onde está a benvida, en humanidades,
ciencias sociais, natural ciencia, ou similares.
>> De feito, facer que algúns outros ex-alumnos e os seus compañeiros
para falar coa aplicabilidade do campo que o espera.
>> BILL GATES: Eu tiña 13 anos cando primeiro ten acceso a un ordenador.
>> Jack Dorsey: Os meus pais me comprou un Macintosh en 1984
cando tiña oito anos de idade.
>> Mark Zuckerberg: Estaba na sexta serie.
>> COLUMNA 1: Eu aprendín a programar na facultade.
>> Ruchi Sanghvi: primeiro ano, primeiro semestre, Introdución á Ciencia da Computación.
>> BILL GATES: Eu escribín un programa que xogou tic-tac-toe.
>> DREW HOUSTON: Creo que foi comezos moi humildes.
Creo que o primeiro programa Escribín preguntou cousas como:
cal é a súa cor favorita?
Ou cantos anos tes?
ELENA SILENOK: Aprendín primeiro como facer un círculo verde
e un cadrado vermello aparecerá na pantalla.
Gabe Newell: O primeiro xa que eu realmente tiña
algo chegar e dicir: Ola, mundo.
E eu fixen un ordenador facelo.
Foi simplemente incrible.
>> Mark Zuckerberg: Aprender para o programa non comezou
como querendo aprender todo de ciencia da computación
ou tentando dominar esta disciplina ou algo así.
El só comezou porque eu quería facer unha cousa simple.
Quería facer algo que Foi divertido para min e para os meus irmás.
>> E escribín este pequeno programa.
E entón, basicamente, só engadido un pouco a el.
E entón, cando eu precisaba para aprender algo novo,
Eu olhei para arriba, sexa en un libro ou en Internet,
e, a continuación, engade un pouco a el.
>> DREW HOUSTON: Realmente non é diferente de tocar un instrumento ou algo
ou practicar un deporte.
DAVID J. Malan: Todo ben.
Entón, nós imos agora, en realidade, mergullo un pouco máis fondo.
Cales son esas entradas e saídas que estamos a falar aquí?
>> Entón, que tal algo sinxelo?
Probablemente sabe, mesmo se ten ningunha familiaridade coa informática
que sexa, de que os ordenadores de algunha maneira usar e comprende só ceros e uns.
Pero como é que isto pode, eventualmente, ser dada como escritorios como portátiles de hoxe e do mesmo xeito
pode facer?
>> O ADN do día, a única alfabeto que comprendan
é un cero ou un un.
Ben, considere isto.
Nós, os seres humanos, tenden a utilizar a sistema decimal. "Decembro", que significa 10.
E iso é 10 porque temos 10 díxitos, de 0 a nove.
>> Agora, os ordenadores, por contraste, tenden a usar binario.
"Bi" significa dous.
Así, eles tenden só cero e un para usar.
Pero acontece que, aínda só con ceros e uns, que
é suficientemente grande alfabeto coa cal a representar máis
calquera peza de datos que quere, se é un número,
se é unha carta, se é unha gráfica ou de vídeo na pantalla.
>> Considero, por exemplo, como nós, seres humanos normalmente interpretar ese número aquí.
Este é só tres díxitos, un, dous, tres.
Pero sabemos que este número innately agora como 123.
Pero por que isto?
>> Ben, se pensas que volta quizais para a escola,
probablemente foi ensino a pensar en estas cifras como, en columnas
onde un é na orde dos centos lugar, a dous está na casa das decenas,
e os tres está na casa das unidades.
Por que iso é realmente útil?
Ben, pense sobre o aritmética super sinxelo
que todos temos sido facendo desde hai anos.
Efectivamente, se ten un na casa dos centos,
Vostede fai a matemática rápida 100 veces 1 máis 10 veces 2--
porque dous é na casa das decenas lugar-- máis 1 veces 3--
porque tres é na casa das unidades.
Así, é evidente que, se realmente multiplicar tanto,
o que realmente estamos representando con este pattern--
dous três-- é de 100 máis 20 máis 3, o que, naturalmente, é de 123.
>> Agora binario, e os ordenadores realmente, fundamentalmente falan a mesma lingua
o que facemos.
Eles só teñen un alfabeto menor.
Así, os ordenadores só ten ceros e aqueles á súa disposición.
Así, mentres que nós seres humanos temos esencialmente potencias de 10 en cada unha destas places--
10 para o cero, a 10 a un, dez para os dous, dándolle 110 e 100
respectivamente.
>> Como os computadores só ten dous valores que se poidan entender, cero e un,
eles teñen que usar valores distintos nesas columnas, un, dous, catro.
E se continuou, oito, 16, 32, 64, e así por diante.
Pero o patrón e o mentalidade é exactamente o mesmo.
>> Entón, por esta lóxica, calquera, como sería Vou sobre o que representa o número
un par en?
Se nunca sequera pensou en iso antes, o que é o seu intestino dicir?
>> Audiencia: One.
DAVID J. Malan: One.
Exactamente.
Só necesitamos un un no queridos lugar porque os ceros
suficiente para darnos nin un, nin un de catro dous.
Entón, un veces un é igual a un.
Agora as cousas están un pouco interesante.
Se eu queira representar no binario número dois-- pero,
de novo, aínda que nunca fala esa lingua, antes,
como é que imos representar en binario O valor que os humanos saben como dous?
Cero un cero.
Basta pór un no columna que quere.
>> Agora está quedando moi fácil probablemente agora.
Entón, se eu queira representar três-- hai columna tres.
Entón, de novo, eu agora pode engadir eses valores xuntos, poñendo un aquí.
Polo tanto, 2 veces 1 máis 1 veces 1 é, evidentemente, 3.
>> Agora as cousas están un pouco de diversión quen agora se fixo cero.
E para representar catro, entendo iso.
E se aumentar lentamente aqui-- que sería cinco.
Este sería seis.
Este sería sete.
>> Pero agora me parece atopou con un problema.
Cómo podería ir sobre a representación eight-- sería o seguinte valor.
Si, por iso necesitamos un novo bits.
E, de feito, se ten escoitou esta frase antes,
anacos, iso é só a abreviación de díxito binario, cero ou un.
>> E así acontece que eu estar representando só tres deses anacos aquí.
Pero se eu tivese un xeito de non gardar tres diferentes bits, pero catro,
seguramente podería representar oito, nove e despois, e logo
10, e aínda máis e máis.
>> Pero que chama entón trate como podemos
ir sobre o que supón estes cousas en primeiro lugar.
É unha cousa para deseñar los aquí en un slide,
pero como representa-los se é un dispositivo mecánico?
¿Que é un ordenador que fai a representan as entradas e saídas que
fundamentalmente axustar computación ao final do día?
>> Ben, o que dicir de algo super sinxelo coma este?
É só unha lámpada.
E podo accionar esta lámpada para ir
xirando un pouco de electricidade on e permitindo que os electróns
a fluír a través, que cambia a súa estado ou o seu valor, por así dicir.
Por exemplo, esta é unha lámpada de mesa vella escola
aquí con un tal lámpada dentro del.
E agora non é realmente facendo algo útil.
Pero así que eu liga-lo a unha toma de corrente
e, a continuación, usar ese switch-- ou podemos ata chamalo dun transistor
ou pensar nel como such-- Agora podo representar tanto
ese valor, se a lámpada do obviamente, fóra, ou ese valor.
Este valor é ese valor.
Este valor e así por diante.
>> Entón, dentro dun ordenador, presuntamente, son pezas moi pequenas de hardware,
pero que ao final do día simplemente ter
usar electricity-- quizais capturar ele--
e logo manter algo ou manter algo fóra.
Por suposto, este non é particularmente interesante para facer
con só unha única lámpada.
>> De feito, como alto podo contar en binaria con esta lámpada de mesa aquí?
>> Audiencia: One.
>> DAVID J. Malan: un, non?
Necesito máis lámpadas de mesa se eu Realmente quere contar superior.
Pero podemos facer mellor que iso.
Porque as lámpadas que poñemos nestas cousas
son realmente extravagantes lámpadas que antigamente permitía.
E son, en realidade, lámpadas en rede.
E grupos de empresas facer isto nos días de hoxe.
>> Pero parece que este en particular
ven con un recurso a través do cal pode cambiar as súas cores.
Así, por exemplo, se adornada seu cuarto do dormitorio
con algúns destes luz lámpadas, dependendo do seu humor,
dependendo de quen vén, Dependendo do tempo,
dependendo do tempo do día, pode realmente
cambiar as cores as lámpadas no seu cuarto.
E iso é porque estes luz lámpadas e outros como el ten o que fai
chamado dunha API, unha aplicación interface de programación, que
é un tema co que estará ben familiarizado con ata o final do semestre.
>> E esta é só unha fantasía, forma críptica de dicir:
pode programar estes luz lámpadas para facer o seu tiro.
Pode enviar-lles mensaxes así como, un ser humano,
Pode enviar unha mensaxe a un servidor web dicindo, dáme a noticia de hoxe
ou dar-me o meu correo electrónico.
>> Pode enviar máis arcano mensaxes para estas lámpadas
quere dicir, activar e desactivar.
Pero isto non é tan interesante.
Pode dicir, chame vermello, conectar verde, chame azul,
todas coa mesma lámpada.
E aínda pode, con algo máis savvy, din, Xire se para o azul
cando é un día sombrío fóra, por exemplo.
É realmente fixar en unha API tempo e descubrir
que o tempo é, ou o tempo do día, ou outros tales gatillo.
>> Así, en realidade, dous Propios membros do equipo do CS50,
Dan Bradley e Ansel Duff aquí, por favor adquiridos
nós unha morea desas lámpadas.
E eles construíron CS50 da primeiros bulbos xa binarios
onde temos representado aqui-- con estes pequenos magnets-- brincallón
os distintos espazos reservados nos aludido só un pouco atrás.
>> Entón ata aquí é o queridos lugar, dous, catro.
E nós non vimos máis alto do que iso.
Pero, por suposto, son potencias de dous.
Oito, 16, 32, 64 e 128.
Entón, se eu agora quero ser un pouco afeccionado que o uso desta opción da vella escola,
Teño aquí neste iPad unha interface sinxela super
que Dan Bradley, ex estudante e agora ensinando compañeiro,
programado empregando algún HTML e JavaScript, que
son de traza e programación idiomas respectivamente.
E pode ser ver-- mesmo na traseira--
hai unha gran vantaxe e unha gran desvantaxe, un botón para cada unha destas lámpadas.
E o que iso me vai deixar non é, por exemplo, prema no signo máis
e agora representan, de Por suposto, o que número?
Unha.
E podo bate-lo de novo.
Dous.
Tres.
Catro.
Cinco.
Six.
Sete.
>> E aquí agora temos que rollover, pero temos un cuarto bit este tempo,
entón agora temos oito.
Entón, poderíamos facelo por algún tempo.
De feito, como un aparte, ; alto poderiamos contar?
Calquera?
>> Audiencia: 255.
>> DAVID J. Malan: 255, non?
Non te preocupes moito coa matemática para agora, pero que é un número moi decente.
Pero, en realidade, non vinculada só cantas pezas de información,
como unha carta ou un gráfico que podería representar.
>> Pero non importa agora.
Eu estou indo a ir adiante e transformalo los todos fóra.
E se eu puidese, gustaríame pedir un voluntario, o noso primeiro volunteer--
Oh, hello-- no escenario.
O problema é que ten que ser cómodo aparecendo, como claramente
están diante de todos os seus compañeiros de clase, , Así como en internet.
E déixeme mirar un pouco máis aló o-- E aquí na camisa branca?
E entregarse.
Imos cara arriba.
Cal é o seu nome?
>> Audiencia: Jackie.
>> DAVID J. Malan: Jackie.
Jackie, imos cara arriba.
Entón, o que hai é tamén neste iPad é un botón chamado Modo de Xogo.
E este modo de xogo é me vai permitir a entrada
anticipadamente un decimal especial número, as cifras que os seres humanos son
familiarizado.
E entón será desafiado aquí para usar os botóns
na para unha top-- cada un destes bulbs--
para realmente descubrir o estándar de lámpadas
que representa o número en cuestión.
>> E eu sinto moito, o que era o seu nome?
>> Audiencia: Jackie.
>> DAVID J. Malan: Jackie.
Todo correcto.
Pracer en coñece-lo.
>> Entón deixe-me ir adiante e no programa para que o mundo vexa o número 15.
Imos mantelo pequeno a principio aquí.
E eu estou indo a entrar en Modo de Xogo.
E eu vou especificar, ofrécenos o número 15.
>> Está ben.
E agora, con todo watching-- se quere destacar, quizais deste xeito,
porque vai aliñar up-- dalle cambiar entre os oito botóns na parte superior
para conectar as lámpadas en ou fóra como ve o axuste.
>> Audiencia: Aceptar.
>> DAVID J. Malan: E sen trampas por bater máis de 15 veces.
Oh, nós imos facelo.
>> Audiencia: Oh, espera.
Eu sinto moito.
>> DAVID J. Malan: Tamén pode activar as lámpadas en forma individual
con cada un destes botóns na parte superior.
Audiencia: Oh, Aceptar.
Polo tanto, sería como--
DAVID J. Malan: Aceptar.
Polo tanto, agora temos oito.
Entón, imos facer unha pausa para o público a participar aquí.
O número é Jackie representando na actualidade?
11.
Entón, nós estamos case alí.
E excelente.
Polo tanto, temos o noso primeiro gañador.
Parabéns.
>> E nós cremos que teriamos algúns agasallos fabulosos.
Se desexa ser un deses dormitorio cuarto aquí no campus,
pódese ter un proxecto final usando agora esta API, grazas a Jackie.
Entón agora--
>> [Aplausos]
>> --if puidésemos, unha tal arredor deste.
Oh, agora todo o mundo quere algunhas lámpadas.
Para a chamada edición hacker imos rampla lo a-- oh,
si, evasiva.
Creo que está chegando agora se a súa man está indo para abaixo.
Cal é o seu nome?
>> Audiencia: Alex.
DAVID J. Malan: Alex, veña aquí.
Así, para Alex, imos programa dun número lixeiramente maior.
Quizais en orde.
O número 50.
>> Audiencia: Aceptar.
DAVID J. Malan: Pero como Eu disse-- e que pode
quero estar aquí para que que os botóns se aliñan
como sería expect-- pero eu fixen chamar esta edición hacker.
Assim-- boa sorte!
>> [Risas]
>> Vai ser capaz de transformar los se você-- Aceptar.
Excelente.
Marabilloso.
Parabéns.
>> [Aplausos]
Creo que eu debería pagar.
Parabéns ao Alex tamén.
Está ben.
>> Así, o takeaway final aquí está espero, sinceramente,
o simplicity-- o sinxeleza con que
pode obter algunha luz agradable lámpadas, aparentemente en [inaudível].
Pero eles representan, en definitiva, as mesmas ideas
co cal nós, seres humanos son xa moi familiar.
Entón, o que pode próxima paso estar na progresión
de tratar de facer algo interesante con datos
e representando as entradas que non son só números, pero son talvez cartas ou máis?
>> Ben, acontece que o mundo da informática, por moitos anos,
simplemente adoptou un arbitrario, senón un estándar consistente que mapea números
para as letras do alfabeto.
Por exemplo, aquí está un fragmento do mapeamento.
Chámase ASCII.
A-S-C-I-I. E iso é simplemente unha táboa que mapea letters-- maiúscula
neste caso-- en números decimais.
>> Pero cal é a implicación?
Ben, se o quere representar algo así como un correo electrónico ou texto
nunha páxina web, obviamente quere amosar
as letras humanos da alfabeto, non números.
Entón, dependendo do contexto do programa
que un usuario está a usar, se é un navegador ou cliente de correo electrónico,
números pode ser certamente interpretada como letras.
É dicir, os patróns de bits pode facilmente ser interpretada como letras.
>> E entón o que podemos ter é a letra A ser
representada como 65, B sendo representado como 66.
Entón, se temos unha super palabra curta, como ola,
o que un ordenador faría en última instancia tenda en decimal, pero realmente en binario,
usando unha secuencia de bits, panca un pouco de electricidade, de algunha maneira,
serían os dous números 72 e 73.
>> Pero o patrón de bits que representa os valores.
Polo tanto, estas son, entón, como podemos representan as nosas entradas e saídas.
E basta dicir, podemos facer representacións máis complexas
en definitiva, con cousas como gráficos, vídeos, música e moito máis
como veremos a finais deste prazo.
>> Entón, iso só deixa entón algoritmos, estes conxuntos
de instrucións co cal estamos resolvendo problemas reais.
Estamos pasando en insumos para algoritmos.
E eses algoritmos están producindo saídas, saídas espero correctas
e, esperamos, tamén, eficientemente reunidos saídas.
Noutras palabras, é unha cousa aplicar algo correctamente.
É outra cousa para aplicar algo ben ou eficiente.
>> Por exemplo, unha demostración que estamos Apaixonado por no curso
é este.
Pero estas cousas están quedando cada vez máis difícil de atopar.
Pero esta é realmente unha vella escola libro de teléfono, dentro do cal
son 1.000 páxinas, máis de nomes e números de teléfono.
E se eu quixese mirar para arriba alguén nesta lista telefónica,
Podería simplemente facer unha algoritmo moi inxenuo.
Podería abrir a primeira páxina, e Podería comezar a buscar, por exemplo, alguén
chamado Mike Smith.
E se non está na primeira páxina, que acada para o segundo,
e, a continuación, para o terceiro, e logo para o cuarto, e así por diante,
ata que eu finalmente atopar Mike Smith.
>> Agora é que o algoritmo correcto?
>> Audiencia: Si.
>> DAVID J. Malan: Yeah.
Se está alí, eu vou finalmente atopalo.
Pero non é, sen dúbida, moi eficiente, seguro que non é rápido,
porque, meu Deus, por que eu son perdendo meu tempo Flipping
a través de todas estas páxinas cando podía certamente facelo físicamente máis rápido?
>> Ben, unha pequena optimización, a fin de falar, pode non ser unha páxina de cada vez,
pero dous, catro, seis, oito, 10.
Aínda correcto?
>> Audiencia: Non
>> DAVID J. Malan: Polo tanto, non se eu para exemplo saltar Mike Smith.
Pero mentres eu volver pedal unha páxina, se eu superar el,
quizá poderiamos resolver o que poderían ser unha pegadinha.
>> Pero será que é mellor?
É máis rápido?
Quero dicir, si.
É, literalmente, dúas veces máis rápido se eu facer dúas páxinas de cada vez.
Entón, se eu orixinalmente tiña 1.000 páxinas, agora eu só teño que virar 500 veces,
non é total de 1.000 páxinas para obter potencialmente, no peor caso
ao final do teléfono libro, en que alguén
como Mike Smith ou alguén con un nome máis tarde pode realmente ser.
>> Pero, por suposto, nos os seres humanos non son certamente
vai estar facendo iso, certamente non neste momento das nosas vidas.
¿Que é un razoable humana probablemente vai facer?
Audiencia: Vaia directo para The9 S de.
DAVID J. Malan: ir directo ao S do?
¿Como ir directo ao S do?
>> Audiencia: Rip-o ao medio.
DAVID J. Malan: Ben, non hai ningunha cita.
Entón, si, se houbese de feito unha etiqueta ou unha guía pegajosa para S,
debemos ir directo alí.
Pero é moi inócuo.
Entón, o mellor que podo facer é máis ou menos á sección S ou que máis ou menos
para o medio.
Pero o principal argumento agora-- ea intuición
que tomou a concedido por anos probably--
é que o que fai agora sabe sobre este problema?
>> Audiencia: [inaudível]
>> DAVID J. Malan: Mike Smith é certamente non desa metade do problema
porque Smith vén despois do medio que é aproximadamente o punto M,
parece ser.
Entón, como pode ver en Visitas, agora podemos literalmente
rasgar este problema á metade.
Audiencia: Woo!
DAVID J. Malan: É cada vez máis doado.
[Aplausos]
Alí vai.
[Risas]
E agora eu fundamentalmente teñen o mesmo problema,
pero é, literalmente, a metade do tamaño.
Eu aínda estou buscando por Mike Smith.
E eu ouso dicir, eu aínda podo buscalo, do mesmo xeito,
dividir o problema en metade de novo, rasgando o problema de novo
ao medio, que agora déixame con un problema de un cuarto do tamaño,
xogar dramáticas que media de distancia, e Repita este proceso unha e outra vez
e de novo, ollando para abaixo en cada punto para ver
se o Mike é en Smith a páxina en cuestión.
>> Agora, se eu fai iso dereito, en definitiva, eu vou atopar-me
con só unha páxina na que Mike Smith é se está de feito no libro de teléfono.
Por suposto, eu podería nunca chamar Mike novo.
Pero o punto aquí é que se comezou a con 1.000 páxinas, o meu primeiro algoritmo,
pasar páxina, quizais 1.000 vezes-- definitivamente menos porque é
un nome de S e non un nome de Z, pero como moitos como 1.000 páxinas, potencialmente.
>> Segundo algoritmo, mellor.
500 páxinas.
Terceiro algoritmo, con todo, cantos pasos sería el
levar a dividir unha páxina 1000 Teléfonos ao medio así?
10, máis ou menos.
Entón, só por navegar que Teléfonos, mergullo e conquistando,
por así dicir, 10 veces, farei meu camiño abaixo a só unha única páxina.
>> E así podemos capturar esa intuición agora algo gráficamente
se considerar só Neste gráfico super sinxelo.
Estamos no eixe x, ou horizontal eixe, é o tamaño do meu problema,
o número de páxinas no libro de teléfono.
E científicos da computación xeralmente quere chamar
o tamaño dun problema n, no que n é só unha variable que
represents-- neste caso-- número de páxinas.
>> O eixe y vertical, ou, aquí está será o tempo para resolver,
quizais o número de viradas de páxina, quizais o número de segundos
ou minutos, independentemente súa unidade de medida é.
E así esta liña vermella representa o primeiro algoritmo,
porque hai un 1-1 relación entre o número
de páxinas e cantidade de tempo que leva.
>> Se Verizon dobra o número de páxinas lista telefónica o ano que vén,
miña carreira tempo-- o tempo necesario para realizar
aquel primeiro algorithm-- dobra no peor dos casos.
Pero o segundo algoritmo, onde estou lanzando a dous,
require menos tempo para un determinado problema de tamaño.
Entón, se eu tivera tanto, moitos páxinas aqui-- aviso
que a liña amarela suxire menos tempo para resolver.
E, de feito, representa, imos dicir, n máis de dous.
>> Pero o que é a forma de terceira e curva final, vai parecer?
Si, é, en realidade vai look-- I Non sei o que ía dicir.
Pero imos ver o que ía dicir.
>> Audiencia: Así.
>> DAVID J. Malan: Vai parecer este, un exactly-- slope-- logarítmica
no que ten esa inclinación curiosa.
Xa non é unha liña recta.
E o que é interesante sobre iso é que aínda que o gráfico está cortada,
pode extrapolar no seu importa que esa liña verde non é
vai aumentar en altura todo o que moito
a medida que avanzar aínda máis debaixo dese eixe horizontal.
>> De feito, Verizon, por exemplo, pode dobrar
o número de páxinas no teléfono libro entre este ano eo próximo ano
desde 1000 a 2000 páxinas, pero non é gran cousa.
Con esta terceira e última, hai un algoritmo intuitivo
de dividir e conquistar.
Vai me levar cantos máis os pasos o próximo ano para atopar alguén
como Mike Smith?
>> Audiencia: One.
>> DAVID J. Malan: Hai só un.
E poden quadruplicar iso, é me vai levar só dous pasos
e así por diante.
E por iso este é unha proba só como un proxecto coidadoso
e algúns aprecio polo que súas entradas son pode facer aínda mellor.
Agora, estamos enganando a pouco no sentido
que estamos panca unha suposición.
Cal é a miña suposición sobre o noso libro de teléfono
que me permitiu dividir e conquistar deste xeito intuitivo e aínda correcta?
>> Audiencia: [inaudível]
DAVID J. Malan: Yeah.
Por iso, foi orde.
Foi clasificada polo a compañía telefónica.
Se fose en orde aleatoria, que sería un inferno dun catálogo telefónico,
pero certamente non o faría prestar-se ao algoritmo
Eu usei, porque nunca faría só terá lugar a través de Mike Smith
se mantivo a división en metade dese xeito por casualidade.
>> Entón, imos agora formalizar o que é claramente intuitiva.
Entón, unha cousa chamada pseudocódigo é onde imos
comezar algúns dos nosos problemas iniciais.
E esta é unha forma xenérica de describir un algoritmo ou un programa de ordenador,
non usar C ou C ++, ou Java, ou dalgunha linguaxe específica,
pero só mediante inglés, con que calquera ser humano pode ser familiar.
>> E podemos escribir o pseudocódigo a este problema, como segue.
Paso un, incorporarse o libro de teléfono.
Paso dous, aberta a través da lista telefónica.
Paso tres, ollar os nomes.
Paso Catro si Smith está entre names--
>> E agora esta é unha construto interesante.
É un punto de decisión.
É unha bifurcación na estrada, se vai, unha filial, por así dicir.
Entón eu vou para recuar só por convención step--
cinco-- que non é por exemplo, eu vou chamar a Mike.
Polo tanto, este retroceso, totalmente convención humana arbitraria, pero é
simplemente a intención de transmitir semanticamente que se Smith está entre nomes,
entón eu debería chamar Mike.
>> Mentres tanto, no paso seis, aviso que a retirada marchou.
Entón, outra cousa é outra bifurcación na estrada, o outro camiño que eu podería viaxar.
Entón else if Smith é no inicio do libro, o que é
o meu seguinte paso probablemente vai estar aquí?
Audiencia: Vai para o lado esquerdo.
DAVID J. Malan: Si, entón vai a a metade esquerda da lista telefónica.
Xoga fóra a metade dereita se Smith está no inicio do libro.
Entón aberto ata o medio da a metade da esquerda do libro.
>> E despois paso oito, vaia á liña tres.
E este é un lazo curioso eu son indución, unha recursão por así dicir.
Pero máis sobre iso no futuro.
>> Estou usando o meu mesmo algoritmo, miña mesmo pseudocódigo,
para resolver o mesmo problema novo porque o único que cambiou
é o tamaño do problema, non meu obxectivo, e non a persoa
Estou buscando.
Para que eu poida reutilizar o algoritmo que eu xa teña definido.
>> Else if Smith é máis tarde en book-- que pode
adiviñar aberta ao medio a metade dereita do libro.
E, de novo, vaia á liña tres.
Else-- cal é a liña de fondo neste programa vai ser?
Se non está entre os nomes na páxina Son
on, se non está no inicio o libro, e el non é máis tarde
no libro, o que sei é verdade sobre Mike Smith agora?
Audiencia: Non está no libro.
DAVID J. Malan: Non está no libro.
Entón, o mellor que podo facer é só desistir e deixar este programa.
Todo correcto.
Polo tanto, neste punto, imos dar un rápido paseo un pouco do que espera.
E, de feito, estou xuntouse aquí por un número de empregados CS50.
Se estas persoas poderían todo unirse a min aquí enriba no escenario.
>> [Aplausos]
>> Lembre, este é só un subconxunto do equipo CS50,
xa que cada ano temos uns 100 empregados membros en función de auxiliar do curso,
Teaching Fellows e moito máis.
Imos cara arriba.
Entón, eles van unirse a nós aquí torpes por un momento
como dar un rápido tour que ten que esperar aquí no curso.
>> Entón, en primeiro lugar, temos SAT / UNS como a posibilidade de clasificación no curso.
Este destino se deliberadamente para ser unha opción na que
se é un pouco incómoda a estar en curso,
e temer failure-- mesmo francamente fallo significa ferir o seu GPa,
a obtención dun B e non un A-- que é precisamente o que, sen dúbida, a unha porta de entrada
Claro que como CS50 e outros cursos introdutorios,
esta opción de clasificación destinado a permitir.
>> Eu sinceramente fomentar students-- especialmente
ó fence-- para iniciar o Claro SAT / UNS, aínda permanecen SAT / UNS.
Pero certamente pode pasar a unha carta grao xoves en término.
>> Francamente, cando era un calouro en 1995,
Eu mesmo nin sequera ter CS50 porque eu non tiven coraxe
para realmente chegar á aula.
Parecía un dominio demasiado descoñecido para min e realmente só
para os meus amigos, francamente, que fora programación
xa que eles eran seis ou quizais 10 anos de idade.
E foi só porque eu era capaz de tomar CS50 no meu día
na versión equivalente SAT / pass UNS-- / reprovação de volta na dia--
que mesmo eu levei 50.
E de algunha maneira ou doutra, eu son aquí de novo con vostedes hoxe.
>> Agora, con todo, o que máis lle debe ter presente uns 50
é a inscrición simultánea.
Contrariamente aos rumores que pode ter oído,
pode, de feito, á vez alta no CS50 e outra clase que
atende ao mesmo ou algunha superposición tempo, como conferencias de CS50 aquí.
Vexa o currículo para as indicacións da súa execución.
>> Charla, mentres, ao contrario do o que está oficialmente no catálogo,
xeralmente só atopar a só unha hora.
Na ocasión, podemos correr un pouco longo.
Pero ten en conta que a obxectivo en conferencias de CS50
é proporcionar-lle con unha visión xeral conceptual,
espero que algunhas manifestacións, quizais mesmo algúns agasallos,
que agarda para a semana que segue.
>> E así, en conferencias, imos explorar estes temas e exemplos xuntos,
traendo os alumnos para o escenario, e persoal enriba do escenario o máis rápido que pudermos,
para só un par de horas á semana.
Seccións, con todo, será ofrecidos por eles mesmos aqui-- moitos
deles ensinando compañeiros, algúns deles curso assistants-- vontade
pasar semanalmente.
>> E o que é fundamental para manter presente é que nós
Non ao contrario da primeira have-- Nights, a música class--
diferentes grupos de seccións para alumnos menos cómodos, máis
cómodo, e nalgún lugar no medio.
E, francamente, xa sabe se vostede é menos cómodo.
E probablemente sabe se está máis cómodo.
E se non está realmente certo, é por definición, algures no medio.
Entón, cando chega a hora de sección nunha semana ou así, por o plan de estudos,
imos pedirlle esta pregunta.
E pode auto-selección en base no seu propio nivel de confort
e estar con students-- estar con verde dots-- similar a nivel de confort para ti.
>> Non obstante, temos problema define, o que acabará
definir a súa experiencia neste curso.
Son ofrecidos normalmente en varias edicións.
A edición estándar que esperamos máis cada alumno no curso de afrontar
pero tamén o chamado edición hackers que non ofrece ningunha forma de crédito extra
de inmediato, pero realmente os dereitos de se gabar quere dicir que intentou e abordou
edicións de hackers do curso que achegamos do material semellante
pero desde un ángulo de máis sofisticado.
>> O que ofrecemos para o Standard Edition, para,
de novo, un super maioría dos estudantes, non son
só walk-through, que son videos liderados polo equipo do curso
que realmente levalo a través do problemas do curso e posible deseño
implementacións.
E tamén, despois do feito, ofrecer autopsias,
en que se está a pensar como podería
ou debería arranxarse ​​algúns problema, o corpo docente
o guiará a través aqueles en vídeo tamén.
>> Mentres tanto, o que espera tamén son cinco días de atraso eo feito
que imos soltar a súa menor conxunto de problemas de puntuación.
Nós certamente apreciar que a cambio para a carga de traballo que espera 50
de ti, a vida está no camiño Ás veces, se non cinco veces.
E para que isto pode ofrecer lle un pouco de flexibilidade,
estender o prazo de, digamos, un Xoves ó mediodía do venres ao mediodía.
Vexa o currículo ao detalles de implantación do mesmo.
>> Agora, o que agora agarda?
E iso se produciron só para min agora canto tempo
Estou convosco quedan aquí no escenario.
>> [Risas]
>> DAVID J. Malan: Pero nós imos chegar a o remate clímax antes de tempo.
Entón, o que espera en termos dos conxuntos de problemas?
Ben, quizais un teaser do que todos nós fixo o ano pasado cos seus antecesores.
O primeiro conxunto de problemas o ano pasado, introducimos
Cero, unha gráfica linguaxe de programación que
permite programar literalmente por arrastrando e soltando pezas do puzzle,
como estes, que están lembra as construcións
vai ver só unha semana Así, cando trocamos
dun xeito máis tradicional lingua, coñecida como C.
>> O ano pasado, procedeu a este conxunto de problemas,
envolvendo o cifrado, a codificación da información
para evitar que gobernamental ou amigos ' ollos que non quere velo.
Codificado aquí é un mensaxe de que en breve
poderá descifrar ou de-carreira.
>> Breakout era un problema establecido o ano pasado, no que
usalos nova programación atopados habilidades para realmente aplicar
un xogo como wherein-- debe lembrar de childhood--
o obxectivo era bater o ladrillos que están na parte superior da pantalla
aquí, acumulando marcar ao longo do camiño,
e aplicar os seus propios algoritmos que esta solución, en definitiva
permite que xogue o partido.
Non obstante, ao final do semestre, imos darlle
un dicionario de 143.091 palabras en inglés.
E será desafiado para escribir un programa que
deletrear cheques, documentos, por carga que moitas palabras para a memoria
forma máis eficiente posible.
Xeralmente poñendo vostede contra os seus compañeiros de clase
se optar en algo de reto no cadro de líderes
para ver quen pode utilizar o menor número segundos de tempo de execución,
e o número menor cantidade de megabytes de memoria,
e realmente afinar os seus programas para ser incrible eficiente de recursos non
tempo só.
>> O ano pasado, tamén, miramos para o final do semestre en programación web.
E, de feito, nós imos facelo de novo esta ano con varios conxuntos de problemas,
introducindo-lle as técnicas e a mentalidade coa que pode aplicar
esas habilidades de programación para sitios, sitios dinámicos,
sitios que realmente resolver problemas e se comportan de forma diferente
e simplemente non son estáticos sitios con información estáticas.
>> O proxecto final, en última instancia vai establecer, con todo,
o clímax do curso para os alumnos, que
Será desafiado a aplicar máis calquera cousa de interese
para ti, sempre que de algunha maneira baséase en clases do curso.
>> E como viu no vídeo ao principio,
imos completar o semestre co CS50 hackathon, que se, non familiar,
terá comezo ás 07:00 unha noite e rematará ás 07h00 do día seguinte.
Ao redor de 09:00, imos orde no primeiro xantar.
Ao redor de 01h00, imos orde en segundo cea.
E se aínda está situándose en 5:00, nos
vontade de traslado ti para IHOP no almorzo.
>> O CS50 Fair, pola súa banda, é un evento a que máis de 2.000 profesores, alumnos,
e funcionarios de todo campus veñen a ver as súas realizacións
no curso e na final proxectos e creacións
que crea nos seus portátiles, escritorios, ou quizais mesmo lámpadas de luz.
>> Mentres tanto, o horario de expediente e a estrutura de soporte.
E agora xa sería un mellor momento para causar-lle todo.
>> Horario de atención terá lugar catro noites por semana durante varias horas por noite
con xeralmente 20 a 30 do Os funcionarios do curso de servizo dunha soa vez
para ofrece-lo con íntimo one-on-one oportunidades de apoio
con conxuntos de problemas do curso.
Explicacións tamén será dispoñibles, en especial
para os alumnos menos comfortable-- ou atrévome a dicir menos comfortable-- para quen
horario de oficina non o son máis ambiente acolledor
e, por suposto, non son o máis libre de estrés.
Especialmente cando os prazos están presionando, imos Proativo vincular vostedes mesmos
con un membro do persoal para traballar con nalgún horario regular como as súas necesidades
e súa axenda permite.
>> E o equipo.
Permita-me presentar Davon, Rob, e Gabriel, os xefes deste ano.
Se che gusta de cada dizer--
>> [Aplausos]
palabra -Un.
[Aplausos]
Davon aquí é o director do curso, que
significa no seu papel a tempo completo el contribúe coa execución
e loxística de CS50.
Davon: Si, ola, persoal.
Vai ver unha morea para min no horario de oficina.
Eu vou estar ensinando seccións.
E se lle tire electrónicos adiante, Eu probablemente vou estar respondendo.
Entón, eu vou ver moitos de vostedes durante todo o semestre.
E benvido ao CS50.
>> DAVID J. Malan: E agora Gabriel, que si era só un calouro do ano pasado,
pero para os últimos dous anos está a funcionar a súa propia versión do CS50
no Brasil, na que baixou todos content-- do curso
que está sendo claramente filmado e posto online--
para que el puidese traducir-lo para Portugués e, a continuación, ensinar máis de 100
dos seus compañeiros sobre o curso de un par de anos,
ensino na súa lingua nativa currículo do curso.
>> GABRIEL: Ola.
>> [Aplausos]
GABRIEL: Ola, eu son Gabriel.
Eu son o TF cabeza do curso.
E eu espero que vai adorar CS50.
Este é CS50.
>> DAVID J. Malan: Agora para Rob.
Oh, quere introdución?
>> ROB: Non, eu non sei.
[Risas]
DAVID J. Malan: E Rob Boden.
[Risas]
ROB: Ola, eu son Rob.
Este é o quinto ano involucrada co curso.
Todos os anos, é só un mellor e mellor clase,
Entón vostedes son claramente Vai ser incrible.
Espero que todos divertirse con el.
Eu estou indo a divertirse con el.
Entón ve-lo arredor.
>> DAVID J. Malan: E o tempo non vai permitir US--
>> [Aplausos]
>> O tempo non permítenos presentar todos
sobre o escenario e todos os seus compañeiros que están a mercar clases hoxe.
Pero permítame presentar Belinda e CS50 enigma
Day, que agarda esta próximo sábado, o que
é o primeiro da eventos de grande escala do curso.
>> Este en particular significado para martelar a punto
que a informática é, en definitiva non sobre a programación, senón
sobre a resolución de problemas de forma máis xeral.
E Enigma do día, como vai ver, lle vai traer
e os seus compañeiros together-- Esperamos que este sábado.
>> Belinda: Aceptar.
Ola, persoal.
Entón, grazas.
Así como o noso ilustre capitán dixo, Belinda do meu nome.
Eu son un estudante de segundo ano en Quincy House.
>> Eu, como vostedes, levou CS50 ano pasado, realmente adorei.
Eu teño un fraquinho por vostedes na terceira fila.
E teño orgullo de dicir, eu son agora nunha relación serio
con CS50 [inaudível].
Está ben.
Esa foi a miña versión coxo dunha broma.
>> Sexa como sexa, así que seguir adiante, só quería invitar
vostedes todos ao i-lab ou Urticaria HBS.
Nós imos ter Quebra-Day 12: 00-03: 00.
E é unha grande oportunidade para vostede caras para coñecer os seus compañeiros amigos CS,
resolver algúns enigmas non-CS, como capitán mencionado, e tamén comer algún alimento libre,
gañar algúns premios incribles, como tarxetas de agasallo, $ 75 por persoa,
e também-- o que era?
Wii Ou é algo así?
Wii U?
Si.
Para o noso sorteo.
Incrible.
Entón, eu vou ir por aquí despois da aula.
E se vós ten algunha preguntas, deixe-me saber.
>> DAVID J. Malan: E vai ver, ademais iso non hai nada que facer hoxe.
O primeiro conxunto de problemas vai saír venres.
Pero para traer a casa hoxe, gustaríame presentar-lle máis especificamente un
membro do equipo, Colton Ogden aquí, cuxas mans están agora
protexido por riba de ti con este controlador MIDI
para martelar o punto máis que a informática, tamén,
ten aplicabilidade moito máis alá da enxeñería e talo e ciencia da computación en si,
estendéndose até mesmo a ámbitos como a música.
>> Colton foi xentilmente offered-- Pensei un deles estaba indo a fixar o enfoque.
Andrew, se puidésemos convocar foco aquí só por un momento.
>> O Colton fixo con antelación é o programa
este dispositivo, esta almofada de botóns que ve na imaxe aquí enriba,
como un controlador MIDI, en que cada un destes botóns
está conectado a unha nota musical particular ou un son, máis xeralmente unha gravación,
de tal xeito que ao xogar os patróns de estes botóns, moi parecido os patróns de bits,
pode representar outro conceptos de nivel superior.
Será que vai ser capaz, en última instancia para levar a casa hoxe?
Sen máis delongas, se poderiamos diminuír as luces,
e conectar a pantalla detrás Colton.
>> Audiencia: Woo!
>> David J. Malan: Este é CS50.
>> [MÚSICA DE XOGO]
>> [Aplausos]
>> Isto é todo para CS50.
Imos velo venres.
Algúns bolo espera por vostede no transepto.
>> [MÚSICA DE XOGO]