[Powered by Google Translate] [ROCK MUSIC]
[MUSIC - "SELAMAT BERSAMA" THE PENYU]
DAVID MALAN: Hari ini, kami memulakan penerokaan kami
asas-asas sains komputer dan pengenalan kita,
sekarang, seni pengaturcaraan, yang itulah
hanya satu contoh.
Tetapi dalam urat yang sama menyelesaikan masalah, tahu bahawa
Hari Teka-teki tradisional CS50 adalah esok.
Jika anda belum RSVPed untuk acara ini, anda boleh pergi ke
cs50.net/rsvp.
Anda boleh membawa pasukan dua atau tiga atau empat.
Anda akan dicabar dengan masalah seperti yang anda lihat
sehingga ada di awal.
Semua masalah-masalah baru tahun ini jika anda mengambil bahagian tahun lepas, dan anda
akan mempunyai peluang untuk memenangi beberapa hadiah hebat.
Di kalangan mereka, Wii dan beberapa sijil hadiah dan suka,
manakala semua melepak dengan CS50 pelajar dan rakan sekelas
dan pizza dan Facebook.
Jadi lebih pada esok jika anda ingin.
>> Ini kemudiannya CS50, bagi orang-orang anda menyertai kami untuk
kali pertama.
Dan ketahuilah bahawa kursus ini amat ditentukan untuk mendapatkan
anda melalui kursus ini akhir, di mana titik anda
akan mempunyai bukan sahaja pemahaman ini
asas-asas sains komputer, tetapi anda akan mempunyai
kemahiran ini sangat praktikal set yang anda kemudian boleh mengambil kembali ke
jabatan anda sendiri, sama ada ia adalah sains kejuruteraan,
gunaan matematik, sains fizikal, semula jadi
sains, atau sebagainya.
Sesungguhnya, apa yang begitu menarik tentang sains komputer ini
hari ini adalah bahawa ia adalah hanya begitu terpakai kepada
pelbagai bidang.
Dan walaupun hari ini, kita hanya akan menggaru permukaan
bahasa pengaturcaraan yang sangat tradisional dikenali sebagai C, kami akan
sebaliknya melihat sesuatu yang dipanggil Gores, sesuatu dengan
yang bahawa cerita cookies cinta telah dilaksanakan oleh salah anda
terdahulu pada tahun-tahun lalu, untuk memberitahu cerita, untuk mewujudkan permainan,
untuk mewujudkan seni interaktif, dan untuk benar-benar bermula untuk membalut kami
minda sekitar beberapa membina asas yang
asas pengaturcaraan tetapi dalam konteks, seperti yang anda akan lihat, itulah
lebih kurang menakutkan, yang lebih kurang batin, daripada apa yang anda akan lihat
tidak lama lagi.
Dan sedar, juga, bagi mereka yang anda hanya menyertai kami ini
semester, frasa di mana kita berakhir kuliah Rabu,
ia tidak begitu penting di mana anda berakhir relatif kepada anda
rakan sekelas di dalam kelas ini, tetapi di mana anda, menjelang akhir semester
dalam 11 minggu, akhirnya relatif kepada diri sendiri betul hari ini sangat.
>> Jadi, tanpa berlengah-lengah lagi, ini adalah juga diperhatikan bahawa
mereka yang kurang selesa, mereka di suatu tempat di antara,
juga, dengan reka bentuk kursus ini, bukan mana-mana di dalam keadaan
vis-a-vis mereka lebih selesa
datang ke kelas ini.
Seperti yang anda akan lihat dalam tempoh beberapa minggu akan datang, kita perlu berbeza
trek untuk latar belakang berbeza, seksyen bagi mereka
kurang selesa, lebih selesa, orang-orang di tempat
di antara.
Seperti yang anda akan lihat hujung minggu ini dan minggu depan, dua versi
set masalah yang paling dalam kedua-dua edisi standard dan penggodam supaya
bahawa anda semua boleh sendiri pilih ke jalan yang anda
paling selesa.
>> Jadi hari ini, kita menyelam ke dalam pengaturcaraan ini
bahasa dipanggil Scratch.
Ia adalah satu bahasa pengaturcaraan grafik, tetapi ia mempunyai
ciri-ciri yang sama beberapa bahasa tahap yang lebih tinggi kita akan
meneroka kemudian pada semester, di kalangan mereka C dan
JavaScript dan PHP.
Tetapi ia akan membolehkan kita untuk mengelakkan beberapa gangguan
pada awal sintaks, perkara-perkara seperti koma bertitik, kurungan,
dan lain-lain butiran batin itu, pada pandangan pertama, hanya tidak
di semua intelektual yang menarik dan cenderung untuk mendapatkan
cara dari pemahaman beberapa asas.
Dari segi sekarang struktur sokongan hadapan, menyedari ini
alat, CS50 Bincangkan, yang akan dikaitkan pada kursus
laman web lewat hari ini, adalah forum perbincangan dalam talian
yang anda akan dapat untuk bertanya soalan antara satu sama lain dan
kakitangan, dan ia juga alat, seperti yang kita akan lihat minggu depan,
bahawa kita akan menggunakan agak integratedly dalam
waktu pejabat juga.
Malah, waktu pejabat bermula pada hari Isnin, dan terus-terang, yang pertama
minggu waktu pejabat adalah kunci yang agak rendah.
>> Saya tidak fikir anda akan menemui Gores semua yang tidak boleh diakses.
Ia agak jelas dengan sendirinya, seperti yang kita akan lihat, dan jadi apa
kami akan menggunakannya untuk hari ini adalah untuk mengeluarkan beberapa
idea-idea asas yang akan, kemudian, berterusan sepanjang
Selebihnya semester.
Tetapi bermula Isnin, pada pukul 8:00 PM melalui 23:00 akan
waktu pejabat di Annenberg lebih rehat otak.
Sectioning dua akan bermula petang ini, jadi kadang-kadang ini
hujung minggu, pergi kepada cs50.net/section, dan anda akan
akan ditanya beberapa soalan.
Di kalangan mereka, bagaimana anda menggambarkan anda
tahap keselesaan seperti hari ini?
Ada tidak keras, kaedah pantas yang di mana baldi.
Ia hanya jenis perkara yang anda mungkin tahu jika anda
adalah di kalangan mereka yang kurang selesa atau sebaliknya.
>> Dan kini, walkthroughs.
Masalah spesifikasi set untuk minggu ini, kedua-dua standard
dan edisi penggodam sama, adalah dalam talian di cs50.net sebagai kini.
Dan anda akan melihat bahawa pertama edisi ini,
edisi standard setiap minggu, diiringi dengan sesuatu yang kita
memanggil Walkthrough kod, sesi yang diketuai oleh salah satu
felo pengajaran kursus untuk membimbing anda melalui, menyediakan
tip atas, dan mendapatkan anda ke bawah laluan tertentu apabila ia datang
untuk memulakan set masalah.
Jadi dengan setiap masalah ini menetapkan, jika anda pernah mahu
untuk diri sendiri di mana saya bermula, anda mula dengan ini
walkthroughs.
Dan pada hakikatnya, izinkan saya untuk memperkenalkan Zamyla Chan, ini
sesama pengajaran tahun ini yang akan mengetuai setiap
salah ini walkthroughs.
Zamyla?
>> [Tepukan]
ZAMYLA CHAN: Oh, hi, semua orang.
Nama saya adalah Zamyla.
Saya kejuruteraan junior belajar di Winthrop House.
Tetapi saya cuba dan patut dalam sebagai banyak kursus sains komputer seperti yang saya
boleh, itulah sebabnya saya benar-benar teruja untuk membawa ini
tahun walkthroughs.
Walkthroughs, bagi saya, adalah sebahagian penting daripada CS50 saya
pengalaman.
Semasa Walkthrough, p bagi setiap set, kita akan pergi melalui
Masalah yang ditetapkan bersama-sama, melihat lebih masalah, jenis
membahagikan mereka ke dalam gigitan terkawal.
Saya akan memberikan anda tips, teknik, untuk mendapatkan
melalui dan bermula.
Saya berharap untuk melihat anda semua di walkthroughs.
Jika anda tidak boleh membuat ia pada orang, maka
sila melakukan menala talian.
>> DAVID MALAN: Cemerlang.
Terima kasih, Zamyla.
Jadi sedar bahawa walkthroughs adalah, sesungguhnya, pada hari Jumaat
petang, tetapi ini adalah sengaja oleh reka bentuk supaya
walaupun anda tidak mahu menghadiri kelas pada hari Jumaat
petang, video akan menjadi semua lebih cepat lebih
hujung minggu.
Jadi, menyedari bahawa cs50.net akan semua itu Zamyla
walkthroughs.
Dan bahawa terdapat tarikh hari ini dan masa, 3:00 PM,
Harberd Hall, 104.
Dan beberapa daripada felo pengajaran juga telah bersedia
beberapa kenyataan untuk anda tanpa hadir untuk memberikan anda sedikit
perspektif apa pengalaman mereka datang ke dalam dan
keluar CS50 adalah seperti.
Jadi, jika kita boleh meredupkan hanya seketika, saya memberi anda
beberapa kakitangan CS50.
>> JACKSON STEINKAMP: Saya mengambil CS50 tahun lepas sebagai bayat dalam
jatuh, dan ia benar-benar meniup fikiran saya.
Saya tidak pernah mengambil apa-apa kelas pengaturcaraan sebelum,
dan tidak pernah datang dengan mana-mana sains komputer
pengalaman pada semua.
Dan hanya, saya mendengar buzz tentang kelas dan
memutuskan untuk mengambilnya.
>> JULIA MITELMAN: Ia adalah benar-benar menyeronokkan, benar-benar terlibat.
Saya masih, hingga ke hari ini -
Saya hanya baru-baru ini menyaksikan saya mempunyai cakera liut bahawa Daud memberikan kita
pada hari pertama kami kuliah.
Saya telah digantung di dinding saya.
Ini mungkin sedikit nerdy, tetapi saya digantung di atas saya
dinding semasa kelas sebagai peringatan bagaimana sejuk ia adalah.
>> Travis Downs: Ia begitu memalukan.
>> JACKSON STEINKAMP: Sains komputer adalah sesuatu yang anda
harus cuba walaupun jika anda tidak satu untuk
sains tradisional.
Ia adalah pengalaman sendiri, dan CS50 akan pastikan anda
disokong baik melalui ia dengan tentera dipenuhi daripada TFS.
>> NAHM ALI: Saya mengambil ia sebagai bayat, dan jadi saya membuat banyak
kawan-kawan baru.
Saya juga mendapat diperkenalkan kepada kepekatan ini keseluruhan dan
sekolah seluruh kejuruteraan, dan sebagainya Saya sangat mengesyorkan ia
dan mengalu-alukan anda kepada keluarga CS50 kami.
>> Yaniv YACOBY: CS50 hanya mengajar anda bagaimana untuk menggunakan alat
yang boleh diakses secara meluas.
Anda hanya perlu sebuah komputer riba, anda perlu pelayar web, dan anda
perlu belajar untuk menulis beberapa kod, dan anda benar-benar dapat membina
perkara yang kemas.
>> KAREN Xiao: Ia hanya begitu sejuk untuk dapat untuk membuat sesuatu
dan mempunyai orang menggunakan dan mempunyai orang melihat ia, dan itulah
apa yang saya benar-benar suka tentang ia.
>> TIM McLaughlin: - rasa masyarakat, saya fikir, dalam hal ini
tentu lebih daripada mana-mana kursus lain yang saya telah diambil setakat ini.
Anda tidak hanya mengambil satu lagi -
anda tidak mengisi keperluan lain.
Anda tidak hanya pergi ke kuliah dan pergi ke seksyen.
Tetapi anda melakukan tan perkara yang semua tentang
pengaturcaraan dan semua tentang teknologi, tetapi ia tidak
benar-benar berasa seperti kelas kebanyakan masa.
>> Downs Travis: Dan pada hari pertama, mereka menyerahkan kek, dan
Saya serta-merta dijual.
>> JACOB PRITT: gula-gula percuma dan pizza.
>> ZAMYLA CHAN: - tanpa mengira tahap minat anda, saya fikir
bahawa CS50, anda akan mempunyai menyeronokkan, dan anda akan intelek
dirangsang.
>> MARK GROZEN-SMITH: Ia sentiasa pihak di dalam kelas, dan ia adalah
parti setiap malam bekerja di set p anda.
>> JACKSON STEINKAMP: Setiap kali anda selesai satu set masalah, anda
akan berasa seperti anda telah selesai projek.
>> Melissa Niu: Ia adalah tahun bayat, dan saya telah dilakukan membeli-belah.
Saya mempunyai empat kelas saya bersedia, dan saya berada di Annenberg.
Dan saya bertemu seorang kawan, dan dia berkata, hey, saya membeli-belah
kelas ini dipanggil CS50, dan anda harus datang dengan saya.
Akhirnya mengambil ia jatuh itu, dan selepas kelas itu, saya
fikir mungkin saya akan kecil dalam CS.
Tetapi di sini saya, tiga tahun kemudian, masih belajar komputer
sains dan sebenarnya melakukannya sebagai major, dan saya suka setiap
saat ia.
>> ROB Bowden: Saya mempunyai idea.
>> ALI NAHM: Mari kita lihat.
>> Melissa Niu: kegilaan.
>> SPEAKER 1: Saya rasa seperti saya menjadi sangat klise.
Saya hanya akan berkata, seperti, hebat.
>> Yaniv YACOBY: Kebolehcapaian.
>> JACOB PRITT: gula-gula percuma dan pizza.
>> Travis Downs: Tidak Boleh menolak kelas bahawa tangan keluar kek.
>> TIM McLaughlin: Bertenaga.
>> VIPUL SHEKHAWAT: Perlu.
>> ROB Bowden: Biar saya memikirkan jawapan.
Saya fikir saya mendapat sesuatu.
Oh, tuhan.
Ya, Bowden Rob nama saya, dan ini adalah CS50.
>> [Tepukan]
DAVID MALAN: Baiklah, jadi mari kita mulakan untuk melukis sekeping gambar
arah di mana kita boleh pergi, dan mari kita memperkenalkan
konsep ini di sini dikenali sebagai pseudokod.
Jadi pseudokod tidak pengaturcaraan
bahasa kepada dirinya.
Ia adalah apa yang teknikal per se, tetapi ia hanya jenis
cara umum menyatakan diri agak tepat,
agak algorithmically, agak procedurally, tetapi tanpa
perlu bimbang tentang apa bahasa yang anda menyatakan
diri anda masuk
Ia adalah beberapa model bahasa Inggeris dan bahasa pengaturcaraan dengan
yang anda berlaku untuk menjadi biasa, jadi kita boleh mula
menulis ini jenis perkara seperti yang kita pergi.
Dan pada hakikatnya, Joseph, saya boleh meminjam sehingga anda di atas pentas untuk
penulis di sini?
Saya pergi ke hadapan di sini di awal dan terlupa untuk meletakkan
pada beberapa stoking hari ini, dan ini akan menjadi antara lebih kami
contoh yang tidak masuk akal.
>> Sekarang, saya perlukan anda di sini.
Saya akan melakukan bahagian stoking.
Jadi di sini kita mempunyai pad calar sedikit.
Ini adalah benar-benar hanya TextEdit dalam Mac.
Kami tidak sebenarnya akan untuk menulis program runnable, tetapi
kami hanya akan memulakan lakaran keluar berasaskan pseudokod
pada beberapa nasihat yang anda berikan kepada saya di sini.
Jadi di sini adalah longgokan saya stoking di rumah.
Saya tidak mempunyai stoking apabila saya bangun pada waktu pagi, dan kita kini
perlu untuk menulis program, algoritma pelbagai, yang
untuk mendapatkan stoking ini pada kaki saya.
Dan sepanjang jalan, mari kita lihat jika kita tersandung, atau hadapi,
beberapa idea-idea yang anda akan perlu untuk memulakan
memikirkan lebih serius apabila pengaturcaraan
supaya program anda tidak berkelakuan agak seperti yang sepatutnya.
>> Jadi saya duduk di sini.
Saya telah mendapat longgokan saya stoking.
Apakah perkara pertama seorang manusia yang munasabah akan
lakukan apabila matlamatnya adalah untuk memakai sepasang stoking?
Seseorang memberikan saya satu langkah, dan hanya satu langkah.
Yeah?
PENONTON: Bend turun.
DAVID MALAN: Bend turun, Okay.
Langkah dua.
PENONTON: Angkat stoking anda.
DAVID MALAN: Angkat stoking anda.
Okay, kekaburan begitu sedikit di sini, dan ini adalah salah satu yang pertama
halangan bahawa kita sepatutnya sengaja
hadapi di sini.
Ia adalah sedikit kabur, jadi memilih stoking anda.
Halus, saya akan mengambil satu ini, tetapi komputer, menyedari hanya dalam
bit, tidak akan mempunyai bahawa jenis naluri manusia hanya
memilih salah satu yang terdekat.
Kami akan perlu untuk memulakan, sebelum lama, menyatakan
diri lebih tepat.
>> Baiklah, jadi dua langkah mengambil stoking anda.
Kami akan mengambil ia.
Langkah tiga.
Di belakang.
PENONTON: Cari sepasang padanan.
DAVID MALAN: Cari pasangan yang sepadan.
Okay, jadi ini adalah baik.
Saya terpaksa memilih stoking ini.
Jadi matlamat untuk mencari stoking sepadan, sekarang, tetapi apa yang
maksudnya?
Seorang manusia yang munasabah, sama seperti pada hari Rabu apabila saya hanya
tahu bagaimana untuk mencari Mike Smith dalam buku telefon, hanya jenis
pergi dengan naluri mereka.
Tetapi di sini, ia jelas ini stoking sini, tetapi komputer
tidak akan menjadi begitu naluri.
Sebuah komputer akan mempunyai koleksi bit, seperti yang kita
dibincangkan pada hari Rabu, dan mereka adalah
dianjurkan entah bagaimana dalam ingatan.
Tetapi persoalannya adalah bahawa komputer hanya mempunyai keupayaan
untuk melihat perkara-perkara pada satu masa, dan sebenarnya, walaupun kita
manusia - walaupun ia berasa seperti saya mengerling ke bawah dan berpecah
sesaat kemudian saya tahu di mana stoking adalah, otak saya dan mata saya
dianggap tidak cepat agunan mereka stoking, dan kemudian melekap
kepada satu dalam soalan.
>> Jadi, jika kita semua lebih sengaja sekarang sebagai komputer,
bagaimana saya boleh mencari pasangan ini sepadan?
Nah, kita perlu melelar.
Kami mempunyai gelung mungkin lebih kucar-kacir ini stoking pada
lantai di mana saya mengatakan sesuatu seperti BAGI SETIAP stoking, mengambilnya
DAN JIKA bentuk dan saiz yang sama sebagai satu yang lain, KEMUDIAN
dot, dot, dot, kita akan meneruskan cerita.
Jadi untuk stoking setiap, jadi saya mengambil satu ini.
Saya memeriksa ini sama dengan yang satu ini.
Ia tidak, jadi saya ketepikan sampingan.
Kemudian saya melelar lagi.
Adakah ini salah sama?
Tidak, ia tidak, jadi saya meletakkan ia diketepikan.
Adakah yang satu ini?
No
Yang satu ini?
Tidak, dan sebagainya.
Dan kemudian akhirnya, mudah-mudahan, saya akan menghadapi stoking ini di sini.
Jadi, jika ia adalah bentuk yang sama, saiz, mengambil ia.
>> Dan sekarang, apa yang akan menjadi langkah kami seterusnya di sini?
Yeah?
PENONTON: Mengenalpasti kanan dari kiri.
DAVID MALAN: Okay, identify kanan dan kiri, jadi
mujurlah, yang jenis kerja.
A simetri sedikit, atau saya baru sahaja dipakai mereka dengan cara itu.
Baiklah, jadi saya telah mengenal pasti hak.
Dan sekarang, sebelum kita teruskan, izinkan saya menunjukkan apa yang Yusuf
telah lakukan di sini sebagai jenis programmer mahir.
Jadi sekali lagi, tidak ada satu cara untuk melakukan ini, tetapi di luar hanya
berjumlah garisan, Yusuf telah mula untuk melakukan ini
jenis lekukan.
Sesungguhnya, ini adalah konvensyen yang sangat biasa dalam pengaturcaraan,
mana apabila anda melakukan sesuatu lelaran, menggelung gaya, seperti
kita membayangkan dengan frasa Inggeris "UNTUK SETIAP
yg bersukses, "konvensyen pseudokod dan, seperti yang kita akan lihat,
bahasa pengaturcaraan biasa, adalah untuk hanya inden.
Hit bar ruang beberapa kali, memukul kekunci Tab atau seperti,
supaya bersarang di bawahnya "UNTUK stoking SETIAP" adalah sebahagian
barangan yang anda perlukan untuk melakukan akibat gelung itu.
Jadi itulah semua itu menyampaikan semantik.
Sekarang Sementara itu, "Jika ia adalah bentuk yang sama dan saiz,"
hakikat bahawa "Ambil" dilekukan selanjutnya hanya bermakna
itulah satu-satunya perkara yang perlu anda lakukan jika keadaan itu,
jika bahawa cawangan, bahawa garpu di jalan raya, adalah dalam fakta sebenar.
>> Jadi sekarang di sini, kita berada pada empat langkah, mengenal pasti kanan dan kiri.
Saya telah dikenal pasti betul.
Beri saya melangkah lima.
Dan teknikal, kita benar-benar boleh memanggil
UNTUK perkara SETIAP -
anda mungkin perlu bilangannya semua garis jika
kita pergi untuk melakukan ini.
JOSEPH: [didengar]
DAVID MALAN: [didengar]?
Okay, halus, semua betul, kita akan melakukannya dengan cara anda.
Baiklah, jadi langkah lima, bagaimana kita lakukan stoking yang betul?
Bagaimana kita teruskan depan, di sini?
Ya?
PENONTON: Angkat kaki kanan.
DAVID MALAN: Angkatlah kaki kanan, Okay.
Langkah enam?
Cepat.
Yeah.
PENONTON: Cari akhir terbuka stokin.
DAVID MALAN: Okay, mencari hujung terbuka stokin.
Begitu baik.
Jadi di sini, jujur, naluri yang sangat biasa hanya akan
diletakkan di atas stoking betul, tetapi itu juga adalah agak samar-samar.
Melainkan jika komputer atau manusia tahu apa yang bermaksud,
ia tidak akan menjadi untuk melaksanakan itu, jadi di sini, saya telah
mendapati pembukaan stok.
Langkah 7?
PENONTON: Sentuh jari anda.
DAVID MALAN: Touch jari.
Okay, jadi sekarang kita pergi -
Baiklah, saya akan mengambil beberapa kebebasan di sini.
Terima kasih.
Langkah 8?
Pakai stoking.
Okay, jadi sekarang saya, berfikir kita cukup dekat untuk menyelesaikan mengambil
yang satu ini di rumah.
Baiklah, jadi ini naik.
Saya akan mengambil beberapa kebebasan dengan apa ia bermakna, sebenarnya.
Letakkan stoking pada.
Baiklah, kini melangkah 9?
PENONTON: Letakkan kaki ke bawah.
DAVID MALAN: Thank you.
Langkah sembilan, meletakkan kaki ke bawah, dan sekarang, kita boleh mengulangi.
Jadi mungkin, kita kini boleh pergi ke dalam 10 langkah dan mengatakan mengenal pasti
meninggalkan stoking, tetapi itulah dianggap sudah selesai.
>> Dan maka, saya boleh menyusun ulangi langkah-langkah ini.
Tetapi jenis ini menimbulkan persoalan.
Sebelum ini, kali terakhir kita mahu mengulangi sesuatu, kita
melakukannya iterative, sekali lagi dan sekali lagi, UNTUK
Gelung SETIAP jadi untuk bercakap.
Ia akan masuk akal untuk menggunakan gelung dalam usaha untuk mengendalikan kedua-dua
kiri dan stoking kanan?
Kerana ia berasa seperti ini operasi yang cukup banyak
sama kecuali fakta bahawa seseorang bermula di sini dan satu
bermula di sini?
Adakah kita gelung, atau adakah kita hanya menyimpan menulis langkah-langkah
10 dan 11 dan 12?
PENONTON: Loop.
>> DAVID MALAN: Okay, jadi gelung.
Saya sebenarnya mungkin telah berkata hanya menyimpan berterusan.
Jadi mengapa kes ini?
Nah, ini adalah sebenarnya pertama kami tidak jelas
keputusan reka bentuk, dan pada hakikatnya, salah satu metrik dengan yang
kita akan mula menilai, untuk diri sendiri dan untuk anda,
kualiti program betapa direka dengan baik ia adalah.
Pernahkah anda melakukan jumlah minimum kerja yang perlu untuk
mendapatkan pekerjaan yang dilakukan yang paling cepat, sama ada dari segi
masa atau dari segi masa berjalan komputer?
Berapa banyak operasi tidak ia mengambil masa untuk melaksanakan?
Jadi boleh dikatakan, ini adalah satu peluang bagi gelung kerana
sebaik sahaja saya mula menyalin dan menampal sebagai Yusuf berkesan
akan mula melakukan dalam seketika, anda jenis membuang anda
masa, dan anda menjadi duanya adalah terpakai ekspresif.
>> Tetapi pada masa yang sama, ini adalah benar-benar hanya dua istimewa
kes, kiri dan kanan.
Dan bahawasanya sebelum ini, saya mungkin mempunyai 10 atau 20 atau lebih stoking dalam
longgokan, ia pasti masuk akal untuk tidak mempunyai 50 baris
kod mengatakan memeriksa stoking ini, maka satu depan,
kemudian yang seterusnya.
Di sini, ia sedikit kurang jelas, dan saya akan mencadangkan
bahawa kita boleh pergi sama ada cara.
Kita boleh sama ada mempunyai gelung bahawa, walaupun ia hanya gelung
dua kali, atau kita hanya boleh menyalin dan tampal hanya sedikit
di sini untuk mendapatkan pekerjaan yang dilakukan.
Tetapi program ini adalah kereta, jadi untuk bercakap.
Ia mungkin mempunyai beberapa kesilapan, kesilapan, atau kes sudut, jadi untuk
bercakap, bahawa kita tidak benar-benar menjangka.
Tiada apa-apa silapnya masa ini, tetapi apa yang boleh silapnya
semasa melaksanakan program ini?
PENONTON: Anda tidak mempunyai apa-apa stoking.
>> DAVID MALAN: Jadi memang tidak ada stoking sana jua.
Jadi mari kita mempertimbangkan bahawa kes sudut.
Jadi, jika kita boleh menatal sandaran untuk melangkah satu, jadi langkah satu adalah
bengkok ke bawah, supaya cek keluar.
Langkah kedua, memilih stoking anda, tetapi kemudian mencari stoking yang sepadan,
mengenal pasti betul.
Kami jenis yang dibuat sekumpulan keseluruhan andaian, dan ini adalah,
terus-terang, mengapa program kadang-kadang kemalangan.
Jika anda, pengaturcara, telah membuat andaian tertentu, seperti
pasti ada akan menjadi stoking atau pasti ada akan
menjadi memori yang ditinggalkan dalam komputer, tentu ada akan
untuk menjadi ruang cakera yang ditinggalkan pada hard drive -
Nah, jika anda membuat andaian ini, dan itu bukan,
pada hakikatnya, hakikatnya, yang tahu kadang-kadang apa yang komputer
akan lakukan?
Dan kadang-kadang, apabila anda mendapat bola pantai berputar atau
beku Windows atau sebagainya, yang tepat kerana beberapa
pengaturcara tidak menjangka kes-kes sudut kononnya.
Apa lagi yang boleh pergi salah dalam program ini?
Yeah?
>> PENONTON: Anda tidak perlu kaki kanan dan kaki kiri.
DAVID MALAN: Okay, mungkin tidak mempunyai kedua-dua kaki kanan dan
kaki kiri, dan sebagainya program ini tidak mungkin universal
berkenaan.
Orang lain?
PENONTON: Anda mungkin telah dipilih sehingga stoking yatim.
DAVID MALAN: saya mungkin telah dipilih sehingga stoking yatim, jadi
bukan sepadan stoking yang hanya tidak mempunyai adik-beradik kerana saya telah
hilang, ia koyak, ia adalah dalam membasuh masih, atau sebagainya.
Supaya, juga, tidak benar-benar telah dikendalikan.
Yeah?
PENONTON: Anda mungkin sudah mempunyai stoking.
DAVID MALAN: Saya sudah mungkin mempunyai stoking.
Saya sebenarnya tidak menyemak.
JIKA anda tidak mempunyai stoking, Kemudian meneruskan lakukan
baris satu dan dua.
Dan yang boleh berlaku.
Anda tertidur dengan stokin anda dan sebagainya, jadi
itu juga, mana-mana sudut yang sangat berpatutan.
Dan mungkin satu lagi?
PENONTON: stoking yang ada di dalam keluar.
DAVID MALAN: Jadi stoking yang berada di dalam keluar, jadi kita lakukan kesilapan
memeriksa, dalam jangka pendek.
Kami tidak memeriksa jika keadaan dunia adalah seperti yang kita harapkan.
Kami tidak memeriksa jika kita benar-benar mendapati apa yang kita cari.
>> Dan walaupun ini adalah jenis contoh yang tidak masuk akal
melibatkan stokin, pada akhir hari, inilah
jenis minda anda perlu mempunyai semasa menulis program,
walaupun dalam Scratch serta dalam C, JavaScript, dalam PHP,
kerana jika tidak, program anda akan mempamerkan
bersamaan bahawa bola pantai berputar atau hanya menghasilkan
keputusan yang tepat.
Begitu banyak terima kasih di sini jurutulis kami kepada Yusuf.
[Tepukan]
>> DAVID MALAN: Baiklah, jadi apa yang adalah, dalam
Malah, program komputer?
Nah, mari kita mengambil pandangan cepat di
wakil satu di sini.
Jadi ini adalah satu program yang ditulis dalam bahasa yang dipanggil C. C adalah
baru agak lama pada hari ini, tetapi banyak bahasa dibina
di atasnya.
Sesungguhnya, PHP, salah satu daripada bahasa-centric web kami akan
menggunakan ke arah akhir istilah, sendiri mempunyai apa yang dipanggil
jurubahasa, satu program yang ditulis dalam C, tetapi lebih pada itu
banyak dalam beberapa minggu dari sekarang.
Tetapi program ini, dan ini adalah apa yang ia bermaksud untuk menulis
program, walaupun satu yang amat mudah.
Kami mempunyai beberapa sintaks yang agak samar di sini, tetapi anda boleh
mungkin meneka, walaupun anda tidak pernah diprogramkan sebelum, apa
Program ini tidak.
Malah, saya tidak tahu apa printf, tetapi mencetak pasti
conjures sehingga idea percetakan sesuatu yang keluar.
Dan begitu ya, program ini akhirnya akan mencetak keluar
perkataan "Hello World."
>> Sekarang, sama ada anda mempunyai Mac atau PC atau komputer Linux, kemungkinan
, sekurang-kurangnya jika anda memuat turun beberapa bebas
perisian yang tersedia, anda boleh telah menulis program pada
anda komputer riba sendiri untuk sekian lama kini.
Pada Mac OS, misalnya, ada program ini yang dipanggil
Terminal yang datang dengan Mac, yang biasanya dalam anda
Folder Utiliti, dan ia secara amnya membuka hitam dan
putih atau tetingkap putih dan hitam di mana anda mempunyai
segera di mana anda boleh menaip arahan.
Jadi ini adalah sebenarnya mengingatkan apa yang komputer
digunakan sebelum pengguna grafik
antara muka, GUIs, datang bersama-sama.
Sekarang, dalam Windows, anda mempunyai satu mekanisme yang serupa dalam bentuk
command prompt.
>> Tetapi apa yang saya akan lakukan di sini adalah membuka, katakan,
TextEdit lagi, jadi program yang sama kita gunakan untuk
pseudokod masa lalu, dan saya akan pergi ke hadapan dan
menulis program pertama saya.
Termasuk stdio.h, apa-apa yang bermakna, int utama
tidak sah, apa-apa yang bermakna, dan kemudian di tengah-tengah di sini,
printf ("hello, dunia."). Dan kemudian quote rapat,
menutup paren, koma bernoktah.
Sekarang saya akan pergi ke hadapan dan hanya melanda Perintah-S. Saya akan
untuk pergi ke hadapan dan menyimpan ini sebagai hello.c, supaya konvensyen dalam
dunia pengaturcaraan C adalah menamakan fail dot c.
Saya akan hanya dimasukkan ke dalam direktori Home John Harvard,
di sini, klik Simpan, dan kini saya akan pergi ke ini
tetingkap terminal, yang sekali lagi adalah prompt ini hitam dan putih
di mana saya boleh melaksanakan arahan.
>> Saya boleh menjalankan program-program dengan menaip nama mereka, bukan oleh
double-klik ikon dalam erti kata biasa.
Tetapi perkara itu adalah tentang C ialah bahasa seperti C pertama
datang dalam borang ini, sesuatu yang dipanggil kod sumber.
Sesuatu yang kelihatan sedikit seperti bahasa Inggeris tetapi
pasti kurang seperti bahasa Inggeris daripada pseudokod Yusuf
masa lalu.
Ia adalah sedikit lebih batin.
Ia seolah-olah mengikuti beberapa corak atau kaedah-kaedah.
Hakikat bahawa saya mempunyai pendakap kerinting, koma bertitik, petikan,
pendakap sudut, berasa seperti komputer datang dengan ini
jenis bahasa.
Tetapi jika saya pergi, sekarang, untuk tetingkap terminal ini, saya boleh menjalankan
perintah itu akan menukar bahawa kod sumber adalah
sesuatu yang dipanggil kod objek.
Itu akan menukar sintaks seperti Inggeris untuk sifar
dan orang-orang, jenis yang sama sifar dan yang kita
bercakap tentang Rabu.
Sekarang, saya akan menjalankan arahan yang dipanggil dilafaz.
Lanjut mengenai ini dalam minggu-minggu akan datang, tetapi ia adalah satu program dengan
yang saya boleh menukar hello.c ke dalam sekumpulan keseluruhan
sifar dan orang-orang.
>> Sekarang, saya telah menjalankan arahan ini.
Saya telah menjalankan dilafaz, dan kemudian saya berkata menjalankan sendiri pada fail ini
dipanggil hello.c, yang saya mencipta masa lalu, dan
seolah-olah tiada apa yang berlaku.
Tetapi sesungguhnya, jika saya mencucuk seluruh direktori rumah saya, saya akan melihat
bahawa ini a.out program yang dinamakan bodoh kini wujud.
Ini adalah hanya nama lalai untuk program semasa menulis dalam
C. Kami boleh mengatasi ini akhirnya, tetapi a.out adalah
nama program saya hanya ditukar menjadi sifar dan orang-orang.
Dan kini bahawa sifar dan orang-orang itu, Mac saya, dalam kes ini, atau
PC Windows anda, boleh memahami mereka bit, mereka
sifar dan orang-orang.
Dan sebagainya apabila saya tekan Enter, saya melihat "hello, dunia!"
>> Tetapi ia adalah satu buggy bit.
Saya tidak mengatakan "hello, dunia: udara: - jharvard." Udara adalah
nama komputer saya.
Jharvard nama akaun, jadi apa yang saya tidak jelas
tinggalkan dari program ini?
Beberapa jenis baris.
Saya tidak melanda setara Masukkan atau pulangan pengangkutan,
dan ini adalah, sekali lagi, bukti kepada hakikat bahawa komputer boleh
hanya melakukan apa yang anda beritahu mereka lakukan.
Dan hakikat bahawa saya tidak memberitahu komputer bergerak
kursor ke baris seterusnya -
baik, ia pasti tidak akan hanya melakukan
angkuh bagi saya.
Jadi, jika saya kembali kepada program saya, dan saya katakan \ n -
Jadi \ n, seperti yang kita akan melihat, adalah cara
mewakili perkara-perkara pelik seperti aksara baris perkara baru,
yang sebaliknya akan hasil daripada
memukul kunci Enter.
Tetapi untuk sekarang, hanya tahu bahawa memukul kunci Enter akan
hanya membuat kod kita kelihatan ganjil, jadi dunia memutuskan, anda tahu
apa, untuk menjaga perkara-perkara yang lebih cantik, untuk memastikan ia dalam satu baris, mari kita
hanya mengatakan \ n mewakili barisan baru.
Biar saya resave fail saya, kembali ke tetingkap terminal, dan
a.out-run semula, Enter.
Masih kereta, tetapi mengapa?
>> PENONTON: [didengar]
DAVID MALAN: Ya, jadi saya perlu susun semula ia.
Jadi untuk menyusun program hanya bermakna menukarkan ia dari sumber
kod kod objek, kod sumber kepada sifar dan orang-orang.
Sekarang, hakikat semata-mata bahawa saya memukul Simpan dalam ini TextEdit tidak mempunyai
kaitan dengan sifar dan orang-orang itu kerana saya perlu
memberitahu dilafaz hey, saya telah mengubah mereka baris kod,
kod sumber.
Anda perlu untuk menjana semula a.out.
Tiada apa-apa jua nampaknya telah berlaku, tetapi dalam komputer,
pada baris arahan, jadi untuk bercakap, apabila tiada apa yang berlaku,
yang biasanya bermaksud semuanya berjalan dengan lancar.
Apabila sesuatu yang tidak berlaku, ia bermakna
anda sehingga merosakkan, secara amnya.
>> Jadi mari kita sekarang pergi untuk a.out, dan sesungguhnya sekarang, saya mempunyai "hello,
dunia. "
Dan kini, bagaimana pula dengan sifar dan orang-orang ini?
Jika, pada hakikatnya, adalah mereka?
Well, saya tidak boleh benar-benar hanya jenis mencucuk di sekitar sangat
berkesan.
Izinkan saya membuka TextEdit.
Berikut adalah a.out.
Biar saya pergi ke hadapan dan terbuka ini, dan ini nampaknya apa yang saya
program kelihatan seperti.
Jadi saya telah dibuka, tidak hello.c, tetapi a.out.
Tetapi ini sebenarnya tidak apa program saya benar-benar adalah.
Jelas sekali, ini adalah beberapa jenis aksara abjad.
Saya melihat tiada sifar dan orang-orang, tetapi ini adalah
kerana a.out adalah program.
Sifar dan orang - tetapi TextEdit, seperti namanya, ia adalah
seperti Notepad pada Windows, adalah hanya editor teks, jadi ia
mengelirukan semua orang-orang sifar dan orang-orang sebagai
walaupun mereka adalah, apa?
Aksara ASCII.
>> Jadi ingat pada hari Rabu, kita hanya datang dengan ini
pemetaan sewenang-wenangnya nombor, atau bit, kepada surat
abjad dan simbol tanda baca dan sebagainya.
Jadi TextEdit, bahawa ia adalah editor teks memutarkan
mereka corak sifar dan orang-orang yang sepatutnya
percetakan perkataan, seperti "hello dunia,." Ia memaparkan mereka
sebagai ASCII, dan itulah sebabnya ia kelihatan sedikit kotor.
Kini, terdapat beberapa petunjuk ketepatan di sini.
Notis jika saya menyerlahkan, terdapat petunjuk sebenarnya "hello,
dunia, "demikian tempat dalam program itu adalah
hukuman itu saya menulis.
Tetapi mari kita pergi ke hadapan dan lihat sekarang dengan program yang berbeza.
Ini bukan salah kami akan menggunakan sering, tetapi ia juga datang dengan
Mac dan akan di dalam perkakas CS50.
Biar saya pergi ke hadapan dan membuka dengan program yang dipanggil XXD.
>> Kembali pada hari itu, kebanyakan program telah dinamakan agak cryptically,
dan sebagainya trend berterusan.
Tetapi-b bermakna meludah program ini sebagai binari.
Jangan jalankan ia.
Paparkan kepada saya sebagai sifar dan orang-orang, dan ini adalah C
program kita hanya menulis.
Sekarang, saya, sebagai manusia di sini, saya secara jujur ​​tidak mempunyai idea apa
pelbagai corak sifar dan orang-orang yang mewakili.
Kembali pada hari itu, saya, dengan kad menumbuk saya atau sebagainya, akan
sebenarnya perlu melihat apa corak pelbagai
01111000, sebenarnya mewakili.
Atau lebih teruk lagi, saya akan perlu untuk melakukan menumbuk atau penciptaan
ini corak sifar dan orang.
Tetapi untuk sekarang, mengambil iman bahawa CPU, Intel di dalam, jadi
untuk bercakap, di dalam semua komputer kita pada hari ini, tahu
bagaimana untuk mentafsir sifar dan orang-orang ini.
Dan beberapa sifar dan orang-orang yang bermakna cetak.
Sesetengah sifar dan orang-orang yang bermakna bermain bunyi.
Sesetengah sifar dan orang-orang yang bermakna mengambil input pengguna dari keyboard.
Terdapat pelbagai corak yang berbeza, tetapi kita bersyukur,
sebagai manusia, hanya amnya perlu bimbang tentang pengaturcaraan pada
tahap yang agak tinggi.
Dan dalam kelas CS lain anda boleh menyelidiki turun lebih mendalam dan melihat
pada perkara-perkara seperti sifar dan orang-orang itu, atau lagi
perkara-perkara lain yang masih.
>> Jadi sekarang mari kita menukar ini.
Mari kita bergerak sangat cepat dari C dan bergerak kepada sesuatu
sedikit lebih selesa, lebih sedikit menarik, di mana
kita boleh mendapatkan kembali animasi dan bunyi kami dan seperti yang
jelas telah melarikan diri kita dalam perkara ini
antara muka yang agak primitif.
Jadi program ini sama dalam C boleh diwakili sekarang ini
bahasa pengaturcaraan yang dipanggil Gores seperti berikut.
Ini adalah bersamaan hello program dunia ini ditulis dalam
ini sekeping teka-teki gaya bahasa yang dipanggil Scratch.
Jadi biarlah saya pergi ke hadapan dan membuka program ini sangat.
Ia sekali lagi dipanggil Scratch.
Ia bebas yang ada, dan ini adalah perkara yang sama kita
bermula hari ini.
>> Jadi ini di sini adalah Awal, dan ia dipecahkan kepada beberapa
kepingan yang berbeza.
Di sebelah kanan paling atas, kita mempunyai peringkat yang dipanggil, dan
sesungguhnya, yang mana cookies
dilakukan hanya sedikit lalu.
Dan pada peringkat itu perkara dipanggil sprites, watak-watak, atau
objek, atau entiti.
Ia tidak benar-benar perkara bagaimana anda berfikir tentang mereka, tetapi mereka
diprogramkan, perkara alih, dan dalam kes ini, ini
program yang pelajar kita menulis mempunyai beberapa roti halia
cookies, beberapa cookies pekeliling, sekumpulan keseluruhan
hati, sekumpulan keseluruhan cermin mata.
Kerana ini, dia mampu untuk memprogram setiap orang
watak individu berasingan.
>> Sekarang, apakah maknanya untuk memprogram watak-watak ini?
Baiklah, biar saya pergi ke hadapan dan klik pada cookies tangan ini kiri
dan tatal ke kiri bahagian atas di sini.
Di sebelah kiri atas skrin saya sekarang adalah
yang dipanggil kawasan skrip.
Ini adalah jenis sabak kosong, pada mulanya, ke mana saya boleh
seret dan lepaskan kepingan teka-teki itu, terus-terang, adakah
apa yang mereka katakan.
Di bahagian paling atas timbunan kepingan teka-teki ini adalah perkataan
Apabila Bendera Hijau Diklik, dan jika anda tidak perasan sebelum ini,
cara saya mula lagu cookie klik, secara literal,
bendera hijau.
Jadi bahawa sekeping teka-teki di sebelah kiri atas ada bermakna apabila
klik manusia bendera hijau, diteruskan untuk lakukan
perkara-perkara berikut.
>> Kini, apa yang mereka tidak cookie meneruskan lakukan?
Saya tidak benar-benar tahu bagaimana untuk mentafsirkan ini lagi, tetapi
Kuki nampaknya menetapkan alur untuk sifar, maka ia menunggu
tiga saat, maka ia mengubah kumpulan kepada satu, maka ia
menunggu kedua, maka ia berubah
alur belakang kepada satu.
Dan kemudian ini sebenarnya kelihatan seperti sedikit pepijat, sekiranya tidak
perlu untuk mengubah alur lagi dan lagi melainkan jika ia
sedang berubah di tempat lain, tetapi ini siri langkah-langkah apa yang
menetapkan tingkah laku cookies ini khususnya.
Jadi mari kita sebenarnya skrol kembali dan tidak melihat sesuatu
agak begitu kompleks lagi.
Biar saya pergi ke hadapan dan pergi File, New,
dan mendapatkan sabak yang bersih.
>> Jadi sekarang, saya sememangnya mempunyai kawasan skrip kosong, peringkat kosong,
dengan Gores bidadari lalai kami, dan di sebelah kiri atas
pada skrin saya adakah saya mempunyai palet semua mereka
keping teka-teki yang disediakan.
Dan kita tidak akan pergi melalui hampir bahawa banyak perkara-perkara ini
hari ini kerana, sekali lagi, kebanyakan penjelasan-sendiri, tetapi kita akan
cuba untuk mengkategorikan mereka dan menunjukkan persamaan
dengan bahasa ini masa depan yang kita akan menyelam.
Dan di sebelah kiri atas di sini adalah yang pertama Apabila Bendera Hijau Diklik,
jadi biarlah saya seret ini di sini, mengezum keluar sedikit.
Dan jika saya klik bendera hijau, tiada apa yang benar-benar berlaku kerana
Saya tidak melekat logik mana-mana, apa-apa pernyataan jadi untuk bercakap,
bahawa bendera hijau, jadi biarlah saya pergi sehingga
kategori di sini.
Saya kini dalam kategori Kawalan.
Saya sebaliknya akan pergi ke kategori Kelihatan, dan
ada sekumpulan keseluruhan perkara di sini yang mengatakan Katakanlah,
Berfikir, Tukar Warna, Switch Kostum.
>> Jadi, anda boleh melakukan perkara-perkara bodoh dengan pakaian dan
bunyi dan sebagainya.
Biar saya pergi ke hadapan dan hanya mengatakan Katakanlah, dan kini notis kerana saya heret
dan lepaskan ini sekeping teka-teki, ia akan mahu selak
ke dalam bentuk yang sama.
Jadi, apabila saya pergi ke hadapan dan melepaskan tetikus saya, mereka mengunci
bersama-sama, dan kini jika saya pergi ke sini dan klik bendera hijau,
kucing tidak sebenarnya menyapa kerana itulah apa yang berada di dalam
kotak putih ini.
Kita akan melihat bahawa ini kotak putih adalah apa yang dipanggil
hujah, atau parameter.
Ia adalah satu cara mengubah tingkah laku, dalam kes ini,
teka-teki sekeping, tetapi jika saya mahu untuk mengatakan apa yang saya kata
sebelum ini, berkata hello, dunia, saya kini boleh kembali di sini,
klik bermain, dan "hello, dunia" adalah apa yang berkata.
>> Jadi, kita benar-benar pengaturcaraan sekarang.
Ia tidak semua yang menarik program, tetapi sekurang-kurangnya
ia adalah sesuatu yang sedikit lebih menarik daripada yang kelihatan, pada
pandangan pertama, seperti ini.
Dan kita sangat cepat boleh mendapatkan semua lebih ekspresif
kerana dalam Gores, seperti dalam bahasa-bahasa lain, ada semua
pelbagai kenyataan, bukan hanya Katakanlah atau percetakan sesuatu, tetapi
anda boleh melakukan perkara-perkara seperti menunggu, seperti yang kita hanya melihat dengan
cookie, beberapa beberapa saat.
Anda boleh memainkan bunyi dalam persekitaran Gores hanya
seperti yang anda boleh dalam komputer biasa bermain bunyi program.
Anda boleh menyemak apa yang dipanggil ungkapan Boolean.
Jadi sekarang, mari kita mulakan untuk menambah Kit beberapa istilah
yang sebenarnya berkaitan dengan contoh bahawa Yusuf dan saya tidak
di sini dengan stokin.
Jadi penyata hanya kenyataan fakta.
Melakukan ini.
Satu arahan untuk bidadari, atau saya manusia, untuk melakukan sesuatu.
Satu ungkapan Boolean adalah sesuatu yang mempunyai nilai,
kononnya nilai kebenaran, yang sama ada sifar atau satu, palsu atau
benar, atau mematikan, tidak atau ya.
Tidak benar-benar kira bagaimana anda berfikir tentang ini, tetapi ia adalah satu
negeri binari.
Sebagai Nate dibincangkan dalam video Rabu, dua
perkara yang berbeza.
>> Jadi dalam Gores, ungkapan Boolean berlaku untuk melihat
seperti objek biru di sini, dan dalam hal ini, soalan
tanda menunjukkan bahawa anda bertanya soalan.
Adakah kucing, atau bidadari, menyentuh penunjuk tetikus?
Jadi ini adalah hanya satu contoh blok Gores yang akan
untuk membolehkan kita untuk memeriksa ya atau tidak, adalah menyentuh tetikus
bidadari pada skrin?
Dan ini boleh menjadi berguna jika anda benar-benar mahu melakukan perkara-perkara
dengan tetikus anda.
Di samping ungkapan Boolean, kita mempunyai perkara-perkara
seperti tetikus ke bawah, jadi anda boleh mengesan bahawa jenis
soalan juga.
Kita boleh melakukan matematik jika anda benar-benar mahu, dan terdapat
kegunaan untuk ini sebenarnya lebih menarik daripada sekadar tulen
aritmetik, seperti yang kita akan lihat.
Kerawakan Pseudo dan membuat program anda muncul untuk berfikir
atau berkelakuan berbeza berdasarkan beberapa nilai-nilai yang seolah-olah rawak,
dan kemudian kita mempunyai perkara-perkara seperti ungkapan Boolean seperti DAN.
Jadi, jika anda benar-benar mahu untuk memeriksa dua nilai, kita akan lihat di
Gores bahawa kita sebenarnya boleh menguji jika ini adalah
benar dan ini adalah benar.
Sebagai contoh, dalam kes stoking saya, saya boleh telah di
sangat akhir bertanya soalan jika kaus kaki kiri dan kanan yg bersukses
adalah, berhenti.
Anda semua dilakukan untuk hari itu, supaya akan menjadi satu
peluang untuk itu.
>> Jadi mari kita pergi ke hadapan dan cuba untuk sekeping beberapa ini bersama-sama
dan pergi ke beberapa contoh yang lebih
menarik daripada yang satu ini.
Jadi biarlah saya teruskan di sini dan membuka beberapa contoh
yang akan sentiasa berada di laman web kursus serta, dan
membuka hello2.
Jadi dalam hello2 sini, kita mempunyai satu program yang melakukan beberapa
perkara, tetapi ia tidak melakukan ia sebagai berkesan seperti yang kita mungkin.
Jadi di sini ia berkata "hello, dunia" untuk satu saat dan kemudian menunggu
untuk kali kedua.
Dan kemudian ia sekali lagi, dan kemudian tidak lagi.
Jadi jika saya klik bendera hijau, Gores mengatakan "Hello, dunia.
Hello, dunia.
Hello, dunia. "Dan ini adalah jelas calon sekarang untuk
penambahbaikan.
>> Apakah peningkatan kecil, mudah-mudahan, kita boleh
kini membuat jika Gores menyokong konsep?
Beberapa jenis gelung.
Beberapa jenis pengulangan, sekarang, akan menjadi baik, jadi biarlah saya
sebenarnya cuba.
Biar saya sebenarnya pergi dan bergerak ini.
Jadi notis boleh menanggalkan blok semudah anda boleh menambah
melampirkan mereka.
Biar saya pergi di bawah Akta Kawalan, tatal ke bawah sini, dan sesungguhnya,
ada ini sekeping teka-teki di sini, Ulang dan Selamanya dan
Selamanya Jika.
Jadi terdapat beberapa cara untuk menyatakan membina gelung
Gores.
Yang saya mungkin mahu di sini tidak Selamanya kerana saya hanya
mahu ini berlaku tiga kali, tetapi mungkin Ulangi.
Jadi biarlah saya seret Ulangi di sini, seret dan lepaskan, dan
sekarang bukannya berkata "hello, dunia" tiga kali yang berasingan,
izinkan saya seret ini sekeping teka-teki di sini.
Dan walaupun ia nampaknya tidak sesuai, program pintar
cukup untuk merealisasikan ia akan berkembang untuk mengisi, jadi ia adalah
bentuk yang perkara dan bukan saiz mutlak.
Izinkan saya menukar pengulangan kepada tiga, dan sekarang biarlah saya pergi
hadapan dan seret Tunggu Salah Kedua di sana juga.
Ia akan snap dalam juga, dan jadi sekarang saya akan mengheret
lelaki ini di sini dan hanya membuang mereka jauh kerana saya
tidak memerlukan mereka lagi.
Biar saya mengezum keluar dan klik bendera hijau sekarang, dan kita mempunyai
program yang sama tetapi, seperti yang saya meramalkan sebelum ini, lebih baik
direka kerana anda boleh bayangkan bagaimana buruk program ini
akan mendapat, sudah tentu estetik, jika anda terpaksa
mula menyalin dan menampal, menyalin dan menampal, atau
mengheret dan menjatuhkan perkara yang sama darn lagi dan lagi.
>> Sekarang, hanya mengatakan barangan pada skrin, percetakan kepada
skrin, benar-benar semua tidak menarik, jadi mari kita membuka satu
varians ketiga di sini.
Dan sekarang, seperti yang anda akan lihat, ini dengan cepat akan mendapat menjengkelkan -
[Meow]
DAVID MALAN: - tetapi ia juga jenis comel.
[Meow]
DAVID MALAN: Okay, jadi lebih baik, dan kita pasti boleh menggunakan yang
peralihan sama chunking ini ke dalam gelung
struktur, tetapi mari kita membuat ia lebih menarik masih.
>> Biar saya pergi ke hadapan dan membuka varians keempat di sini, di mana saya
mengambil perkara satu langkah ke hadapan.
Jadi, menurut ini, bodoh walaupun ini adalah pada mulanya
pandangan, apa yang program ini akan lakukan?
Ia akan Meow sekali.
Mengapa?
Nah, salah satu adalah, setakat yang saya tahu, selalunya kurang daripada dua orang.
Tiada tanggapan rawak di sini.
Saya telah benar-benar keras berkod satu dan dua, tetapi ini adalah satu
contoh kini sebenarnya menggunakan ungkapan Boolean.
Banyak seperti Yusuf lakukan dalam pseudokod beliau, pengengsotan JIKA
anda mencari padanan stokin THEN melakukan yang berikut, di sini kita mempunyai
ungkapan JIKA satu adalah kurang daripada dua THEN -
dan sebenarnya kita juga mempunyai sedikit lekukan,
mana ungu sedikit dilekukan ke kanan -
Kemudian anda akan untuk memainkan Meow bunyi.
Sekarang, dalam kes ini, bahawa seseorang itu sentiasa kurang daripada dua, jadi ini
adalah jenis sisa keadaan.
Tetapi kita akan dapat, seperti yang kita akan lihat, untuk palam perkara-perkara lain ke dalam
ini ruang letak mana satu dan dua sekarang.
Jadi mari kita kini maju ke lima contoh ini beberapa
hellos dan melihat apa yang program ini akan melakukan.
>> Jadi sekarang, dalam ayat Inggeris, bagaimanakah ini
program berkelakuan?
PENONTON: Meows separuh masa.
DAVID MALAN: separuh Meow masa, jadi ini adalah satu cara
menyampaikan idea yang sangat mudah.
Walaupun kita berada menggunakan beberapa ketidaksamaan sini
dalam beberapa nombor, ini adalah benar-benar hanya programmatical
cara, cara yang tepat, mengatakan jika syiling datang kepala, pergi
hadapan dan Meow.
Atau sebaliknya, jika syiling datang ekor, tidak Meow.
Dan dalam kes ini, bagaimana kita menyatakan bahawa?
Kami akan memilih nombor rawak 1-10, dan jika itu
nombor kurang daripada 6, teruskan dan Meow.
Dan bagaimana ini mendapatkan di sini?
Baik lagi, notis hanya mengheret dan menjatuhkan dan
perkara selak ke tempatnya.
>> Jadi sekarang mari kita lihat jika rawak ini berfungsi.
Biar saya pergi ke hadapan dan klik bendera hijau.
[Meow]
DAVID MALAN: Okay.
[Meow]
DAVID MALAN: Okay.
Okay, baik, jadi kami mendapat kepala, kepala, ekor berkesan.
Ekor.
[Meow]
DAVID MALAN: Ketua.
[Meow]
DAVID MALAN: Cemerlang.
Memang janggal apabila hanya statistik anda mendapat yang buruk
berlari, dan ia adalah semua kepala, dan program ini sebenarnya tidak
bekerja kerana anda akan berharap.
Tetapi kali ini, ia bekerja, dan kita seolah-olah mempunyai, jika kita lakukan
ini nombor terhingga kali, kemungkinan 50%.
Sekarang sekali lagi, tidak semua yang menarik, hanya membuat kucing
Meow, jadi mari kita lihat jika kita tidak boleh memajukan ini sedikit lagi
sini dalam enam versi.
Jadi sekarang, kita mempunyai versi yang benar-benar menjengkelkan -
[MEOWS SETIAP SECONDS FEW]
MALAN DAVID: - dan ini adalah apa yang diketahui, umum, sebagai
gelung tidak terhingga.
>> Gelung tidak terhingga Jadi dalam kes ini merasakan buruk.
Ia pasti akan mula membunyikan buruk, namun tidak terhingga
gelung tidak sentiasa buruk.
Bolehkah anda berfikir konteks program komputer di mana anda mahu
sebenarnya mahu gelung tak terhingga?
Yeah?
PENONTON: Apabila anda mahu untuk memeriksa keadaan.
DAVID MALAN: Baiklah, apabila anda mahu menyimpan memeriksa keadaan yang?
Seperti apa?
PENONTON: [didengar]
DAVID MALAN: Okay, baik, jadi jika anda mempunyai beberapa program, beberapa
jenis perkara automasi rumah, di mana anda mahu sentiasa
memantau adalah sesuatu kes itu.
Adakah lampu?
Adakah lampu kerana mungkin anda mempunyai pemasa, dan
anda mahu mereka pergi, anda mungkin perlu untuk melakukan sesuatu
lagi dan lagi.
Dan sebenarnya, bercakap pemasa, sesiapa di antara kamu yang telah
jam pada komputer atau jam tangan digital anda, itulah
gelung tidak terhingga.
Ia terus mengemaskini masa kerana ia sentiasa
memeriksa dan menyemak dan memeriksa mempunyai masa berubah,
dan jika ya, oh, tuhan saya.
Jam akhirnya berubah.
Ia memerlukan memaparkan bahawa nilai kepada anda.
Jadi sedangkan kebanyakan gelung tidak terhingga masa adalah kesilapan,
atau sekurang-kurangnya keputusan reka bentuk yang miskin, kadang-kadang mereka lakukan
mempunyai nilai mereka.
>> Nah, mari kita memajukan lagi di sini untuk hello7.
Jadi sekarang program ini akan mendapat sedikit lebih interaktif.
Biar saya mengezum masuk sini, dan sekali lagi, ini adalah apa yang bagus
tentang Scratch.
Dan kita akan menggunakannya untuk menjadi jelas, Awal, hanya hari ini dan ke
menetapkan masalah minggu depan.
Tetapi pada hari Isnin, kita menyelam ke dalam C. Dalam program ini di sini, ia tidak,
selama-lamanya, yang berikut.
JIKA menyentuh penunjuk tetikus - sekarang, yang
konteks di sini?
Nah, dan notis yang yang dipilih ke sini di bawah
betul adalah kucing, bidadari satu, jadi ini skrip, ini
program, terpakai kepadanya secara khusus.
Jadi, jika kucing yang menyentuh penunjuk tetikus, maka ia akan
untuk bermain ke bawah dan tunggu dua saat, dan
kemudian mengulangi nauseum iklan.
>> Jadi mari kita pergi ke hadapan dan memukul main.
Tiada apa-apa yang berlaku, tetapi jika saya mahu haiwan
kucing sekarang, saya boleh hanya.
[Meow]
DAVID MALAN: Disanjung.
[Meow]
DAVID MALAN: Baiklah, kurang menjengkelkan, tetapi juga mendapat membosankan,
jadi mari kita bergerak ke atas dan melihat jika kita tidak boleh menyuntik
sedikit lebih logik.
Itu adalah contoh 7.
>> Sini dalam lapan contoh, kita akan
memperkenalkan satu keadaan ELSE.
Begitu banyak seperti garpu literal di jalan raya, di mana anda boleh pergi
kiri atau anda boleh pergi betul, keadaan dalam pengaturcaraan
bahasa seperti Awal, atau seperti yang kita akan lihat C, boleh membenarkan anda untuk
pergi dalam satu arah atau yang lain melalui IF ELSE membina.
Jadi agak literal, JIKA menyentuh penunjuk tetikus, ini
akan memainkan beberapa bunyi, ELSE ia akan bermain ini lain
bunyi, Meow.
Sekarang, jika anda boleh membuat kesimpulan daripada nama bunyi-bunyi, anda boleh
mungkin meneka apa yang program ini bertujuan untuk nampak
idea.
Kucing ini mengiu gembira.
[Meow]
DAVID MALAN: Gembira, tetapi tidak
agak suka untuk disentuh.
[Roars]
DAVID MALAN: Jadi sekarang kita mempunyai kucing yang akan menjerit pada anda.
>> Baiklah, baik, salah satu contoh terakhir dengan kucing di sini, dan
mari versi terbuka sembilan ini di sini.
Jadi sekarang, kita mempunyai bunyi yang paling menjengkelkan yang saya boleh
mencari, jadi kita mempunyai anjing laut atau singa laut di sini siapa yang akan
melakukan yang berikut.
[MOHOR Bark]
DAVID MALAN: Okay, jadi ini akan pergi sehingga anda memikirkan bagaimana
program ini berfungsi.
Jadi kali ini, haiwan ini mempunyai dua skrip, dan apa yang
menarik di sini adalah bahawa skrip-skrip ini akan melaksanakan
secara selari.
Jadi, kerana kedua-dua mereka bermula dengan satu bendera hijau diklik,
ia seperti pergi seperti ini, dan kedua-dua program mula berjalan ia
sekali walaupun mereka menggelung selama-lamanya.
Jadi dalam skrip atas, saya mempunyai beberapa logik.
Apa ciri-ciri yang menyediakan di sana?
[MOHOR Bark]
PENONTON: [didengar]
DAVID MALAN: Jika ia adalah apa?
[MOHOR Bark]
PENONTON: Jika disenyapkan kepada sifar, ia akan terus bermain
bunyi. [MOHOR Bark]
DAVID MALAN: Okay, baik.
Jadi JIKA disenyapkan, apa ini, perkara ini oren adalah sifar,
THEN memainkan bunyi singa laut dan berfikir "Oh,
hi, "selama dua saat.
Sekarang, saya tidak tahu apa yang disenyapkan adalah, tetapi sifar conjures sehingga
idea palsu atau mematikan.
Jadi jika disenyapkan adalah palsu, jadi jika tidak disenyapkan,
terus memainkan bunyi.
Baiklah, baik, bagaimana kita melumpuhkan perkara ini?
>> Nah, mari kita melihat skrip kedua di bawah sana.
Skrip kedua mengatakan ditetapkan disenyapkan kepada sifar.
Notis ia juga oren, jadi apa Gores tidak ia warna
blok di bawah naungan yang sama jika apapun ia
daripada logiknya berkaitan.
Jadi hanya top up disenyapkan adalah oren, jadi disenyapkan turun di sini
yang disebut di dalam blok oren.
Tetapi ini adalah satu tugasan yang berubah-ubah, jadi hanya seperti dalam
algebra, anda mempunyai x dan y dan z, dalam pengaturcaraan anda mempunyai
pembolehubah, tetapi mereka umumnya -
mari kita berhenti untuk seketika dan angka bagaimana
untuk berhenti menyalak ini.
Bagaimana saya lakukan ini?
[MOHOR Bark]
DAVID MALAN: Okay.
Ia berhenti. Okay.
>> Jadi sama seperti dalam algebra anda mempunyai pembolehubah x, y, dan z, tetapi dalam
pengaturcaraan, yang mempunyai pembolehubah seperti x, y, dan z adalah umumnya
disukai kerana mereka tidak berada di semua ekspresif.
Mereka tidak mempunyai makna semantik jua, jadi dalam kebanyakan
bahasa pengaturcaraan, pembolehubah boleh mempunyai penuh
nama beroperasi atau perkataan atau frasa, seperti disenyapkan, untuk mengatakan
apa yang mereka lakukan.
Jadi ini skrip kedua juga telah mendengar selama-lamanya, dan ia berkata
jika kekunci, kekunci keyboard Angkasa,
ditekan, tanda tanya.
Jadi ada satu keadaan dengan ungkapan Boolean itu
akan menjawab soalan sama ada benar atau palsu,
maka saya mempunyai dalamnya JIKA kekunci space ditekan DAN
JIKA disenyapkan adalah sifar, tetapkan disenyapkan kepada satu, ELSE menetapkan disenyapkan kepada sifar.
Jadi ini garpu lain di jalan raya, dan notis bagaimana saya telah
bersarang dua JIKA keadaan, adalah cara memeriksa
Space Bar ditekan kerana jika begitu, saya sama ada mahu pergi ini
cara atau cara itu.
Dan bagaimana saya terbalikkan nilai disenyapkan?
Saya mempunyai untuk memeriksa ia sifar?
Jika demikian, menjadikan ia salah, lain menjadikan ia sifar itu togol
kedua-dua negeri.
>> Baiklah, jadi kita perlu maka beberapa-asas
membina.
Kami mempunyai ungkapan Boolean, dan sedar, juga, ini adalah
tidak semua yang tidak dikenali.
Malah, di sini adalah screenshot cepat Harvard kursus CS50
alat membeli-belah, dan mana-mana laman web di luar sana yang mempunyai kotak semak
dan turun menurun telah benar-benar, sepanjang masa ini, telah menggunakan
Ungkapan Boolean.
Dalam kes ini di sini, jika anda klik checkbox sebelah
kursus lebih besar daripada atau bersamaan kepada 4.5, atau seterusnya sama
fakulti, anda menyatakan ungkapan Boolean.
Tunjukkanlah kepadaku kursus yang ungkapan itu adalah benar.
Atau ke kanan, tidak bercanggah dengan kursus saya
mengambil, jika yang diperiksa, maka ya, anda mahu untuk memeriksa
keadaan itu, jika anda mahu untuk mengabaikan ia.
Ungkapan Jadi Boolean adalah jenis di seluruh, tetapi apabila
kita meletakkan mereka dalam keadaan, sama ada JIKA keadaan, JIKA
Elses, atau kita juga boleh meniru lebih mendalam
peringkat, IF ELSE IF ELSE -
supaya jenis negeri pertigaan.
Anda boleh pergi dengan cara ini atau cara ini atau cara ini.
Kita boleh menjaga perkara-perkara yang bersarang untuk pergi dalam arah yang berbeza.
>> Jadi Gores mempunyai gelung ini, seperti Selamanya.
Ia mempunyai ciri-ciri seperti 10 Ulangi, beberapa
nombor terhingga kali.
Kami mempunyai keupayaan sekarang untuk menetapkan pembolehubah, jadi dalam kes ini
Saya telah diisytiharkan, misalnya, dipanggil stoking ubah.
Saya telah dimulakan kepada 0, dan itulah lagi arah lain
kita boleh diambil di sini dengan Yusuf, di mana mungkin saya
hanya menjejaki berapa banyak stoking saya mempunyai dan menamatkan
program apabila nilai yang berubah-ubah 2.
Itu akan menjadi cara lain jenis generalizing bahawa
masalah dan melakukan sesuatu lagi dan lagi.
Nah, mari kita pergi ke hadapan dan kini memperkenalkan beberapa perkara baru.
Jadi orang-orang anda dengan pengalaman programing terlebih dahulu akan
tahu bahawa banyak bahasa mempunyai tatasusunan, atau vektor atau
senarai, dan sesungguhnya, Gores mempunyai sesuatu seperti ini, terlalu.
Jadi mari kita lihat jika kita tidak boleh mengambil perkara-perkara ke peringkat seterusnya di sini.
Jika saya mempunyai keupayaan, kini, dengan ini keping teka-teki untuk
menambah sesuatu, seperti perkataan atau nombor, pembolehubah, saya boleh
mula untuk mengumpul sesuatu.
Dan ini sebenarnya adalah apropos cantik untuk perkara-perkara seperti permainan,
peranan-bermain permainan di mana anda jenis berjalan di sekitar
beberapa dunia fantasi mengumpul perkara, memetik perkara,
pendapatan mata, atau sebagainya.
Anda mungkin mahu untuk menjejaki beberapa jenis inventori, dan
sesungguhnya, itulah yang salah bekas pelajar kami di sini lakukan dengan
sesuatu dipanggil Fruitcraft RPG.
>> Jadi biarlah saya pergi ke hadapan dan membuka perkara ini di sini, dan dalam
Fruitcraft, kita mempunyai dunia ini sehingga di atas.
Jadi biarlah saya pergi ke hadapan dan klik bendera hijau.
Notis di sebelah kiri atas adalah beberapa jenis inventori.
Itu dilaksanakan dalam Gores sebagai apa yang kita akan memanggil array atau
senarai, dan kini kita mempunyai animasi sedikit.
Jadi hanya kerana kita bermula awal dengan ini kisah cinta cookies,
dan kemudian kita mara ke kucing dan singa laut, kini kita boleh mempunyai
perkara-perkara yang lebih interaktif.
Dan lelaki ini biru sedikit, saya boleh mula untuk bergerak beliau
rumah kecil di sini.
Jadi ia kelihatan seperti dia mendapat keluar ke sini, jadi saya menggunakan
kekunci anak panah, sehingga, ke bawah, kiri kanan.
Dan sekarang saya di luar, jadi biarkan apa yang saya dapat di sini.
Kelihatan seperti oren, dan sesungguhnya, sebaik sahaja saya menyentuh
oren, ia mendapat plopped ke dalam inventori saya.
Jika saya pergi ke sini untuk ceri, sekarang saya mempunyai sesuatu
lain dalam inventori saya.
Dan ini adalah semua baik dan comel, tetapi berfikir tentang bagaimana, kini, ini
dilaksanakan.
Nah, kita mempunyai ini tanggapan senarai, dan itulah nampaknya
sekeping teka-teki yang anda hanya mengatakan apa yang anda mahu menambah, menambah
oren, menambah ceri.
Kini, apa yang lelaki ini biru sedikit melakukan?
Nah, dia bidadari.
Dan mungkin, oren dan ceri -
mereka sendiri sprites berasingan.
Dan menggunakan syarat dalam ungkapan Boolean,
pelajar mungkin dapat untuk meluahkan JIKA lelaki biru adalah
menyentuh ceri THEN menambah ceri perkataan dengan
inventori, dan kemudian juga menyembunyikan bidadari ceri.
Jadi di bawah hood, terdapat mungkin masih ceri
bidadari di sana.
Kita baru sahaja diberitahu ia untuk menjadi berkesan ghaib.
>> Sekarang, jika saya terus berjalan ke sini, kita juga boleh melakukan ini
perkara proksimal, di mana saya boleh pergi dan membaca tanda.
Jadi, jika lelaki biru menyentuh tanda, kita boleh mempunyai blok Katakanlah
hanya seperti kucing bercakap kepada kita dalam perkataan, hello, sebelum ini, "Got
beberapa buah?
Bawa ia ke tempat buah-buahan. "Baiklah, jadi sekarang, nampaknya,
Saya mempunyai arahan saya.
Saya boleh pergi ke sini ke tempat buah, beratur diri
dengan pintu.
Sekarang, saya di sini.
Saya boleh pergi sehingga kepada lelaki di kaunter.
Beliau mengesan bahawa saya rapat kepadanya, supaya ia tidak perlu
agak sepercaman menyentuh, dan saya telah memenangi permainan.
Jadi ada kita mempunyai Fruitcraft RPG.
>> Jadi, kita boleh melakukan perkara-perkara yang lebih maju daripada ini.
Kita boleh menambah bunyi.
Kita boleh menambah pseudo rawak.
Kita boleh menambah kerumitan.
Biar saya teruskan di sini, dan bukannya melakukan ini diri saya,
izinkan saya menunjukkan kepada anda salah satu penghujahan yang lebih canggih
kami mendapat tahun lepas daripada seseorang tertentu bernama Blake.
Bolehkah kita mempunyai satu sukarelawan yang selesa muncul pada
kamera dan untuk bermain permainan?
Bagaimana pula di sana?
Datang di atas.
Semua hak, jadi permainan yang anda mempunyai hanya disedari
menawarkan diri untuk bermain -
[Tepukan]
DAVID MALAN: - adalah sesuatu yang dari tadi dipanggil
"Frogger." Apakah nama anda?
Renda: Renda.
DAVID MALAN: Redna?
Renda: Ia seperti Brenda dengan b.
DAVID MALAN: Okay, Renda.
Daud.
Nice to meet you.
>> Jadi di sini dalam "Frogger," dan jika kita boleh menaikkan kelantangan hanya
sedikit, anda ini sedikit
katak hijau di bahagian bawah.
Anda boleh menggunakan kiri, kanan, atas dan ke bawah, dan matlamat anda adalah untuk
menyeberangi jalan, menyeberangi sungai, dan menyentuh pad teratai
di atas.
Aw.
Satu lagi t -
buat semula, hak semua?
Mari kita hit stop.
Tiada siapa yang melihat bahawa.
[Tepukan]
DAVID MALAN: Ya.
Sangat baik dilakukan.
Cemerlang, terima kasih.
>> Supaya ada Frogger. Sekarang anda tahu apa yang anda telah
mendapat dirimu, sukarelawan satu lagi untuk berbeza
permainan yang diserahkan oleh pelajar lain.
Anda mahu datang?
Apa nama anda?
RICHARD: Richard.
DAVID MALAN: Richard.
Baiklah, Richard, datang pada sehingga.
[Tepukan]
DAVID MALAN: Anda mempunyai sesuatu yang akan bunyi
biasa tidak lama lagi, jadi di sini adalah arahan anda.
Jadi dalam seketika, beberapa keping teka-teki akan tatal ke atas
dari skrin yang kelihatan sama ada meninggalkan
atau kanan atas atau bawah.
Anda akan perlu menekan kekunci anak panah dalam apa-apa cara
bahawa ia sepadan dengan orang-orang keping teka-teki yang beratur dengan
ruang letak di atas.
Jadi apabila anda melihat anak panah kiri, dan ia garisan dengan kiri
panah, memukul anak panah kiri.
Anda boleh mula.
[MUSIC - "MANTAP" Kayne Barat]
DAVID MALAN: Semua hak, bulat besar tepukan untuk Richard.
[Tepukan]
DAVID MALAN: Sangat baik dilakukan.
Terima kasih.
[Tepukan]
>> DAVID MALAN: menyeronokkan Jadi, seolah-olah, jenis
menakutkan kerana ia mungkin untuk melaksanakan sesuatu yang
seolah-olah canggih seperti ini, menyedari bahawa pelajar
tidak dinyatakan dan hanya menulis ini semua sekali gus.
Sebaliknya, anda boleh memecahkan masalah kerana seolah-olah kompleks
kerana ini kepada kepingan yang lebih kecil, dan ini juga adalah
akan menjadi tema.
Perkara yang paling buruk yang boleh anda lakukan dalam menulis program dalam kebanyakan mana-mana
bahasa adalah untuk duduk, mendapat benar-benar teruja, tuliskan
perkara sialan keseluruhan, dan kemudian hanya berharap bahawa ia berfungsi dengan
kali anda selesai menulis.
Sebaliknya, proses pengaturcaraan harus amnya
sangat sengaja, sangat lelaran, di mana anda hanya
menetapkan langkah-langkah yang sangat kecil untuk diri kamu sendiri, menggigit-saiz keping
adakah anda mahu menggigit, dan supaya anda mempunyai kewarasan ini
cek, pencapaian yang sedikit anda boleh bertemu.
Dan kemudian anda membina di atas mereka untuk mewujudkan lebih banyak
perkara canggih masih.
>> Jadi, sebagai contoh, bagaimana kita boleh pergi kira-kira
melaksanakan permainan seperti ini?
Nah, terus-terang, saya pasti akan bermula dengan hanya
menyokong satu kunci pada satu-satu masa.
Mari kita hanya melaksanakan sokongan untuk anak panah kiri.
Jadi pelajar terpaksa entah bagaimana mencipta dalam Photoshop, atau dalam
Menggaru sendiri menggunakan editor sedikit grafik,
kekunci anak panah yang kelihatan seperti salah satu di atas kiri sana, hanya
placeholder kelabu.
Kemudian pelajar terpaksa memikirkan apa x, y menyelaraskan
meletakkan ia, di mana untuk meletakkan ia dalam tetingkap.
0, 0 adalah di sini, jadi anda perlu memikirkan bilangan
piksel, atau titik, untuk mengimbangi anak panah itu dari
atas skrin.
Dan kemudian sekali itu di tempat, program anda tidak sebenarnya
berbuat apa-apa lagi, jadi anda kemudian perlu bidadari kedua,
contoh anak panah hijau itu juga menunjuk ke kiri, dan anda
maka perlu mula menulis beberapa skrip untuk itu.
>> Dan anda perasan, mungkin, bahawa perkara-perkara ini mula datang pada
kelajuan yang berbeza, dan warna dalam berbeza
lokasi, dan itu kerana pelajar yang digunakan sedikit
rawak pseudo.
Dan dengan pseudo rawak, saya hanya bermakna memilih nombor
antara sesuatu dan sesuatu kerana anda boleh
mula kepada perkara-perkara peta, seperti jika nombor adalah antara satu dan
lima, baik, mari kita membuat perkara hijau.
Jika ia adalah antara 6 dan 10, mari kita membuat sekeping teka-teki
merah sebaliknya.
Selagi anda mempunyai cara menjana beberapa jenis
rawak, maka anda boleh membuat keputusan berdasarkan itu
rawak.
Dan saya terus berkata pseudo rawak kerana terdapat
rahsia kotor sedikit.
Komputer tidak boleh tampil dengan nombor rawak.
Mereka hanya boleh melakukan apa yang mereka diberitahu kerana
mereka peranti buatan manusia.
Mereka tidak boleh hanya meneka nombor seperti kita manusia
rasa seperti kita boleh.
Sebuah komputer untuk melakukan sesuatu matematik nampak
ilusi nombor matematik, kadang-kadang menggunakan
hari semasa masa sebagai input untuk memikirkan apa
nombor untuk kembali, tetapi lebih kepada bahawa masa yang lain.
Buat masa sekarang, hanya tahu bahawa kita boleh menjana rawak pseudo.
>> Jadi apabila saya mempunyai keupayaan untuk anak panah kiri untuk memulakan
muncul pada masa yang berlainan dan pada kelajuan yang berbeza, maka
Saya boleh kembali dan menambah beberapa JIKA keadaan.
JIKA bidadari ini menyentuh satu lagi, DAN panah kiri
utama telah ditekan -
jadi tiga syarat dalam kes itu.
Saya boleh menggunakan bahawa DAN menyekat mungkin, dalam kes itu -
Kemudian saya mahu pergi ke depan dan kenaikan skor.
Dan di atas, kita mempunyai skor, kita mempunyai Awesome,
Sejuk, Baik, dan Boo.
Jadi ada nampaknya lima pembolehubah bahawa pelajar ini
digunakan untuk menjejaki ini pelbagai metrik.
Jadi dalam jangka pendek, hasil akhir adalah menakjubkan.
Ia menyeronokkan, ia adalah menyeronokkan untuk bermain, ia menarik, tetapi ini tidak
mana pelajar bermula.
Beliau bermula pada set langkah-langkah yang lebih kecil.
>> Jadi apakah beberapa blok bangunan lain yang boleh kita
menenun ke dalam program ini?
Nah, ada konsep lain dalam bahasa yang paling,
Gores di kalangan mereka, yang dikenali sebagai benang.
Jadi komputer boleh sebenarnya tidak benar-benar melakukan pelbagai perkara di
masa, sekurang-kurangnya tidak biasanya.
Sebaliknya, komputer umumnya mempunyai hanya satu CPU, dan juga
walaupun komputer super cepat dan boleh, oleh itu,
mewujudkan ilusi melakukan perkara-perkara sekaligus -
memeriksa e-mel anda, mendapat segera
mesej, percetakan dokumen -
benar-benar, komputer hanya melompat dari percetakan untuk IM
untuk menghantar e-mel, belakang dan belakang dan belakang dan sebagainya begitu pantas bahawa kita
perlahan kepala manusia hanya tidak sedar bahawa ia sebenarnya
menjalankan program-program sedikit pada satu masa.
Sekarang, ini sedikit putih terletak pada hari ini kerana, pada masa kini,
banyak komputer kita adalah apa yang dipanggil berbilang teras, jadi anda
mempunyai satu CPU tetapi pelbagai teras, yang adalah semacam
mempunyai pelbagai CPU.
>> Dan jadi kadang-kadang, komputer benar-benar boleh melakukan perkara-perkara pelbagai
pada satu masa, tetapi secara umumnya dalam program, program
bergantung kepada perkara-perkara yang dipanggil benang.
Jadi thread adalah jenis seperti program kecil yang boleh
wujud bersama-sama program lain kecil dan boleh menjalankan
secara selari, atau sekurang-kurangnya boleh dijalankan di bawah ilusi bahawa
mereka sedang berjalan secara serentak.
Jadi Gores menyokong perkara-perkara yang dipanggil benang.
Anda boleh mempunyai pelbagai skrip melaksanakan sekali, seperti mana kita
lakukan dengan singa laut, dan ini membolehkan kita untuk benar-benar
kemudian mempunyai interaksi antara-sprites.
Biar saya teruskan di sini dan tarik ke atas, katakan, benang, dan
bermain ini seperti berikut.
Kami mempunyai dua sprites, setiap daripada mereka kita akan melihat
mempunyai hanya satu skrip.
Dan anda notis nampaknya ada beberapa risikan dalam
kucing dalam satu ini kerana dia semakin hampir -
[Roars]
DAVID MALAN: - dan lebih dekat kepada burung kecil.
>> Jadi bagaimana operasi burung?
Nah, mari kita melihat burung pertama.
Skrip burung berkata apabila bendera hijau diklik, pergi ke x
sama negatif 115 dan y bersamaan 150.
Jadi saya hanya menemukan lokasi rawak di mana saya mahu
burung untuk memulakan, dan saya hanya plopped dia ada secara lalai.
Kemudian Selamanya JIKA tidak menyentuh kucing, jadi ini adalah berbeza
jenis membina gelung, tetapi idea yang sama, melakukan ini sekali lagi dan
lagi dan lagi.
Selagi anda tidak menyentuh kucing, bergerak tiga langkah, dan
jika anda berada di melantun pinggir, di mana ia adalah jenis yang
refleksi dalam erti kata biliard.
Jadi itulah bagaimana burung bergerak jenis
seolah-olah secara rawak, tetapi ia hanya kerana ia memantul dari
dinding dalam kes ini.
>> Sekarang kucing Sementara itu, adalah jenis menipu.
Kucing, apabila bendera hijau diklik, ya, bermula pada
beberapa lokasi, lokasi rawak -
sekurang-kurangnya di bahagian sebagai satu memilih
rawak blok hijau di sana -
dan kemudian Selamanya JIKA menyentuh burung, memainkan bunyi singa,
dan kemudian berhenti skrip.
Jadi apabila saya berkata menamatkan, atau keluar sebelum, ada teka-teki
sekeping dalam Gores yang hanya akan membunuh program itu
menunjukkan kerana ia adalah jenis logik dilakukan.
Tetapi sebaliknya, di sini, melihat apa yang akan berlaku.
Point ke arah burung dan bergerak satu langkah.
Jadi ini titik ke arah burung adalah jenis kelebihan kucing
mempunyai bahawa ia adalah homing dalam pada burung bergerak, dan kita boleh
kini membuat program ini semua lebih menarik.
Sebaliknya bergerak satu langkah pada satu masa setiap kitaran CPU, setiap
menyerang tol loceng, jadi untuk bercakap, biarkan saya pergi ke hadapan dan
bergerak, katakan, lima langkah pada satu masa sebagai kucing.
Klik berlari, dan kini dia benar-benar mendapati dia dengan cepat.
Jika kita menggandakan ini lagi kepada 10 langkah, ia jenis pergi
tepat untuknya.
Sekarang, kita boleh memberi burung,
mungkin, sedikit kelebihan.
Mari kita pergi ke burung itu dan mengatakan sebaliknya bergerak tiga langkah,
mari kita beralih dia 30 langkah.
Tetapi dia masih tersangkut di akhir.
>> Jadi di sini, kita mempunyai dua benang.
Ia dipenjarakan di Gores dengan dua skrip dan dua
sprites, tetapi idea dalam bahasa-bahasa lain adalah bahawa anda boleh
menulis, pada dasarnya, terlalu banyak program seperti ini dan mempunyai
mereka benar-benar menjalankan, atau imaginarily, selari.
>> Sekarang, terdapat juga konsep ini dalam pengaturcaraan yang dikenali sebagai
peristiwa, dan ini adalah sesuatu yang kita tidak akan melihat dalam C,
bahasa yang dikenali sebagai C. Kita akan melihat ke arah akhir semester
dalam pengaturcaraan web, apabila kita memperkenalkan JavaScript dan
tanggapan laman web bangunan yang dinamik dan berinteraksi
dengan pengguna.
Jadi dalam kes ini, kita mempunyai contoh yang sangat mudah dua
sprites, lelaki dan perempuan, setiap daripada mereka mempunyai masing-masing.
benang, tetapi entah bagaimana kedua-dua saling berkomunikasi dengan cara
sesuatu yang dipanggil peristiwa.
Jadi biarlah saya teruskan di sini dan zum di atas skrip budak,
yang kelihatan seperti ini.
Apabila bendera hijau diklik, selama-lamanya melakukan yang berikut.
Jika Angkasa utama, atau Space Bar, ditekan, katakan
Marco selama dua saat, itu semata-mata estetik pada
skrin, gelembung ucapan sedikit, tetapi kemudian disiarkan.
>> Jadi siaran adalah satu lagi Gores itulah
wakil kelas fungsi dalam pengaturcaraan
yang membolehkan program yang berbeza, benang yang berbeza,
antara berkomunikasi, entah bagaimana menghantar
mesej, satu dengan yang lain.
Pemergian sehelai kertas di dalam kelas adalah jenis teknologi yang rendah
setaraf.
Jadi menyiarkan acara.
Saya boleh menghantar mesej ini, dan acara perkataan
sewenang-wenangnya.
Gores kadang-kadang ini telah surut drop, jadi saya hanya datang
dengan perkataan rawak seperti acara kerana sekarang, apa yang budak lelaki itu tidak
apabila saya tekan kekunci adalah dia menyiarkan acara ini.
Dan jika saya melihat sekarang pada skrip gadis, skrip dia
super mudah kerana semua yang dia perlu lakukan tidak bertindak apabila
bendera hijau diklik.
Dia direka untuk tindakan apabila dia menerima quote, unquote,
"Peristiwa", dan pada ketika itu, dia mendengar maka
acara dipanggil lagi dan lagi.
Sebaik sahaja dia menerima kejadian itu, dia akan menjerit
Polo untuk dua saat.
>> Dan supaya anda mungkin boleh membuat kesimpulan daripada ini apa yang
hasil seterusnya akan menjadi.
Biar saya klik bendera hijau.
Tiada apa-apa yang berlaku kerana saya perlu melakukan apa?
PENONTON: Space Bar.
DAVID MALAN: Space Bar.
Boy berkata Marco, gadis berkata Polo.
Tetapi itu tidak sukar dikodkan per se.
Itulah antara komunikasi antara skrip, jadi sekarang kita
mempunyai keupayaan untuk membuat program yang lebih kompleks di mana
kedua-dua entah bagaimana saling berkomunikasi.
>> Jadi dalam apa arahan kita boleh mengambil ini?
Nah, dalam set masalah 0, benar-benar, objektif adalah untuk
bersenang-senang dengan Scratch.
Untuk edisi penggodam, sebaliknya anda akan bersenang-senang dengan lebih
versi canggih Gores dipanggil BYOB, Membina
Blok Sendiri anda, tetapi idea adalah sama.
Anda akan dapat -
Ya, itu adalah disengajakan.
Ia datang dari Berkeley.
BYOB adalah versi penggodam edisi ini, tetapi kedua-duanya
, demografi, edisi dan edisi penggodam standard sama
matlamat di tangan untuk minggu akan datang adalah benar-benar hanya untuk menyelam di
mendalam, mendapatkan tangan anda kotor dengan pengaturcaraan, dan membuat
sesuatu yang menarik, membuat sesuatu yang interaktif, membuat
sesuatu yang seni, membuat sesuatu yang menyeronokkan untuk benar-benar
menunjukkan, supaya menjelang akhir minggu ini, anda akan mempunyai projek,
bukan sahaja bagi pset pertama anda CS50, tetapi anda akan mempunyai
sesuatu yang sedikit yang anda boleh menunjuk-nunjuk di Annenberg untuk
rakan-rakan ataupun keluarga dengan memuat naik ke laman web MIT.
Dan sebagainya seperti yang saya katakan pada hari Rabu, kami menjangkakan 90% kelas,
secara amnya, untuk melakukan edisi standard.
Menyedari bahawa terdapat juga ini saluran untuk anda yang
selainnya mungkin mendapati diri anda sedikit bosan dengan asas-asas
dan benar-benar mahu untuk menyelam dalam dan kraf penglihatan anda sudah
dengan latar belakang terlebih dahulu ini lebih mesra
persekitaran.
>> Jadi biarlah saya tarik sehingga satu contoh lain bahawa salah satu bekas
pelajar di sini lakukan dan memberitahu sesuatu yang sedikit melalui lagu.
Bahawa yang sama, kerana ini bermain, berfikir tentang bagaimana anda pergi tentang
melaksanakan program ini menggunakan tepat ini sama
blok bangunan, sedikit rawak pseudo, dan
sedikit lagu biasa.
Jika kita boleh meningkatkan kelantangan hanya sedikit?
[MUSIC - "IT hujan LELAKI" THE GIRLS CUACA]
>> DAVID MALAN: Itu untuk CS50.
Kami akan melihat anda pada hari Isnin.
[Tepukan]