JavaRush /Blog Java /Random-MS /Bahan tambahan untuk kuliah CS50: Minggu 0 (Kuliah 1 dan ...
Bender
Tahap
Маунтин-Вью

Bahan tambahan untuk kuliah CS50: Minggu 0 (Kuliah 1 dan 2)

Diterbitkan dalam kumpulan
Siapa yang belum menonton kuliah Harvard tentang asas pengaturcaraan, pergi ke sini: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

pengenalan. Struktur Kursus CS50

Bahan tambahan untuk kuliah CS50: Minggu 0 (kuliah 1 dan 2) - 1Kawan-kawan! Dalam pengenalan, kami akan mengingatkan anda (atau memberitahu anda sesiapa sahaja) tentang struktur CS50. Kursus ini berlangsung selama 12 minggu. Setiap minggu ada dua kuliah, serta macam-macam seminar dan penerangan. Kami akan menerbitkan artikel seperti ini sebaik sahaja kuliah siap. Ia akan mengandungi penerangan ringkas tentang kuliah, nota mengenai "pendek" dan maklumat tambahan, serta terjemahan tugasan praktikal. Kuliah minggu sifar meliputi isu-isu berikut:
  • Sistem nombor binari.
  • ASCII
  • Algoritma dan pemikiran algoritma
  • Penyusun
  • Bahasa contengan
  • Ungkapan Boolean
  • syarat
  • Kitaran
  • Pembolehubah
  • Fungsi
  • Tatasusunan
  • Aliran
  • Peristiwa
Matlamat minggu 0:
  • Fahami cara maklumat boleh diwakili secara digital.
  • Pelajari pembinaan dan konsep perisian asas.
  • Cipta animasi, permainan atau aktiviti interaktif anda sendiri menggunakan Scratch.
  • Kagum rakan anda =).

CS50 Minggu 0 (Kuliah 1-2): nota

Algoritma

Bahan tambahan untuk kuliah CS50: Minggu 0 (kuliah 1 dan 2) - 2Kami berharap anda telah menonton kuliah dan memahami bahawa algoritma memecahkan penyelesaian masalah (pelbagai masalah, masalah matematik atau "bagaimana untuk pergi ke stesen metro N") ke dalam beberapa langkah. Selain itu, setiap langkah mesti diselesaikan dalam masa yang terhad, dan mesti ada beberapa langkah itu sendiri. Juga, langkah seterusnya bergantung pada yang sebelumnya. Anda boleh membaca lebih lanjut mengenai algoritma, sebagai contoh, di sini . Jika anda tahu bahasa Inggeris, berikut adalah animasi TED yang indah oleh David Malan: https://youtu.be/6hfOvs8pY1k Walaupun secara umum maklumat dalam video mengulanginya dalam kuliah =).

Sistem nombor binari

Bahan tambahan untuk kuliah CS50: Minggu 0 (kuliah 1 dan 2) - 3Kami mempunyai 10 jari dan sistemnya adalah perpuluhan. Iaitu, kita boleh mewakili sebarang nombor, tidak kira betapa besarnya, menggunakan nombor 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Bergantung pada di mana nombor itu berada dalam nombor, ia boleh bermakna perkara yang berbeza : jika digit ini adalah yang terakhir, maka ia terletak di tempat unit, yang kedua terakhir adalah di tempat puluhan, malah lebih jauh ke kiri adalah di tempat ratusan, dan seterusnya. Pada asasnya, sebarang nombor boleh ditulis sebagai jumlah digit, setiap satu daripadanya didarab dengan sepuluh kepada kuasa tertentu. Dalam kes unit - sifar. Contohnya, 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . Nombor di mana digit didarab dipanggil asas sistem nombor. Bagi sistem perpuluhan, asas secara logiknya ialah sepuluh. Komputer tidak mempunyai jari, tetapi terdapat dua keadaan: bersyarat "arus mengalir" dan "arus tidak mengalir", sifar dan satu. Sehubungan itu, semua nombor (dan maklumat secara umum) dalam ingatan komputer hanya terdiri daripada dua digit - 0 dan 1. Lokasi mereka, seperti dalam kes sistem nombor perpuluhan, menunjukkan digit. Hanya sekarang nombor itu boleh diuraikan menjadi jumlah digit yang didarab bukan dengan kuasa sepuluh, tetapi dengan kuasa dua. 0 dalam binari = 0 1 dalam binari = 1 2 dalam binari = 10 7 10 =111 2 Belajar untuk menukar daripada binari kepada perpuluhan. Anda mungkin sudah faham bagaimana ini dilakukan - kami hanya mengambil digit nombor bermula dari yang paling kanan dan mendarabnya dengan asas kepada kuasa yang sepadan dengan digitnya, dan menambah semuanya dengan setiap digit. Contoh: Mari cari analog perpuluhan bagi nombor perduaan 101101 2 Yang paling kanan = 1*2 0 Sifar seterusnya = 0*2 1 Yang ketiga dari kanan = 1*2 2 Yang keempat = 1*2 3 .. dan seterusnya 101101 2 = 1*2 0 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 Bayangkan lapan mentol lampu disusun dalam satu baris. Setiap daripada mereka mempunyai suis sendiri. Setiap mentol adalah nyahcas. Apa yang anda boleh bayangkan, ingat kuliah pertama (ada peranti sedemikian di sana) atau di sini adalah widget untuk anda: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Main dengan itu, mengamalkan "perasaan" ia sistem binari. Menukar daripada perpuluhan kepada perduaan. Di sini juga, semuanya sangat mudah, jika anda memahami intipatinya. Di sini kita mempunyai nombor 57 10 . Untuk menukarnya kepada sistem binari, anda perlu menentukan kuasa maksimum dua yang tidak melebihi nombor ini. 2 6 = 64. Ini jelas terlalu banyak. Tetapi 2 5 = 32. Sekarang kita telah menentukan digit paling bererti. 32 10= 100000 2 . Sekarang kita sedang mencari digit seterusnya. 57-32 = 25. Sekarang untuk 25 kita sedang mencari kuasa dua yang tidak melebihi 25. 2 4 = 16. Ini bermakna digit seterusnya kita juga sama dengan 1. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8, ini kurang daripada 9. Ini bermakna digit seterusnya juga akan menjadi satu. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1, iaitu hanya tinggal satu kuasa, 2 0 . Oleh itu 57 10 = 111001 2 . Jika tiba-tiba ada sesuatu yang masih tidak jelas, anda boleh membaca lebih lanjut di Wikibook, dan jika anda mahir dalam bahasa Inggeris, berikut adalah tambahan kecil untuk kuliah.

ASCII

Bahan tambahan untuk kuliah CS50: Minggu 0 (kuliah 1 dan 2) - 4Komputer hanya memahami sifar dan satu, dan ingatannya boleh diwakili sebagai rentetan mentol lampu yang sangat panjang dengan suis, seperti yang anda lihat di atas. Kami sudah faham cara mewakili nombor dalam komputer. Bagaimana dengan maklumat yang lain? Surat, gambar? Katakan terdapat 26 huruf dalam abjad Inggeris. Iaitu, secara teorinya, kita boleh mewakili huruf dengan nombor dari 0 hingga 25, hanya dalam sistem binari. Persoalan berikut timbul: bagaimana kita boleh memahami sama ada kita mempunyai huruf kecil atau huruf besar? Bagaimana pula dengan tanda baca? Tanda-tanda yang tidak kelihatan seperti ruang? Pendek kata, kita memerlukan sistem pengekodan, Cap! Pada tahun 1960-an, terdapat banyak skema berbeza yang mengekod aksara. Kekurangan keseragaman terbukti menjadi masalah, dan pada tahun 1963, American Standards Institute, ANSI, membangunkan dan memperkenalkan skema pengekodan ASCII (American Standard Code for Information Interchange). Setiap aksara ASCII terdiri daripada tujuh bit, atau tujuh bit, setiap satunya boleh mengambil nilai 0 atau 1. 7 bit boleh menyimpan nombor dari 0 hingga 127 dalam binari, bermakna kita mempunyai 128 nombor untuk mengekod aksara. Nampaknya ini sudah cukup untuk mengekod ucapan Inggeris bertulis? Mari kita kira: az - 26 pilihan AZ - 26 lagi 0-9 - 10 ,;:~& dan tanda baca lain - 32 Dan satu lagi ruang. Jumlah - 95 aksara. Baki 33 pilihan kosong digunakan untuk apa yang dipanggil aksara kawalan, seperti suapan talian atau carriage return: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg Adalah penting untuk membezakan antara aksara 0-9 dan nilai angka 0 -9. Aksara 0-9 diwakili oleh nilai ASCII 48-57. Adalah menarik untuk diperhatikan bahawa empat bit paling kanan nilai ASCII ini adalah perwakilan binari bagi nilai angka 0-9. Ini sedikit sebanyak memudahkan cara untuk menukar antara nilai ASCII dan nilai angka sebenar mereka. Mari mulakan pengaturcaraan?

calar

Bahan tambahan untuk kuliah CS50: Minggu 0 (kuliah 1 dan 2) - 5Jadi, Gores. Anda diberitahu tentang bahasa pengaturcaraan visual ini dan arahan asasnya dalam kuliah. Untuk mencuba Scratch sendiri, ikuti pautan dan klik "Sertai". Setelah mendaftar, anda boleh memulakan pengaturcaraan dalam talian. Ya, omong-omong, hari ini Scratch sebahagiannya Russified. Bantuan itu, bagaimanapun, masih dalam bahasa Inggeris. Jika anda mahu, anda boleh bermain dan juga melihat kod projek pelajar yang ditunjukkan dalam kuliah. Inilah Pikachu Pastry Catch . Atau projek dengan pengasingan sisa ke dalam bekas yang berbeza: https://scratch.mit.edu/projects/71161586/ David dan syarikat meminta anda untuk tidak bimbang jika anda berpendapat bahawa anda tidak boleh melakukan projek yang rumit seperti itu: tahap ini sudah memerlukan beberapa kemahiran .

Senaman

  1. Untuk lebih memahami proses yang berlaku dalam Scratch, anda boleh memuat turun kod sumber untuk beberapa projek dari sini . Main-main dan lihat. Mempelajari kod orang lain sangat berguna. Ini adalah salah satu cara terbaik untuk mengetahui kandungan dalam program yang anda sendiri belum matang. Sebaik sahaja anda mula memahami cara aplikasi ini berfungsi, anda boleh meneruskan dengan selamat.

  2. Kini tiba masanya untuk melakukan sesuatu sendiri. Cabarannya adalah untuk berseronok sambil melaksanakan projek kecil dari awal. Ia boleh menjadi animasi, permainan, tindakan interaktif.

Keperluan projek:
  • Program ini mesti mengandungi sekurang-kurangnya dua sprite (watak, imej), dan salah satu daripadanya mestilah bukan kucing =).
  • Mesti ada sekurang-kurangnya tiga skrip (tindakan).
  • Sekurang-kurangnya satu syarat, satu gelung, dan satu pembolehubah mesti dilaksanakan.
  • Sekurang-kurangnya satu bunyi mesti disertakan dalam program.
Iaitu, pada dasarnya, projek anda akan menjadi lebih kompleks daripada yang ditulis dalam kuliah, tetapi lebih mudah daripada mainan yang ditunjukkan tentang Pikachu dan pengumpulan sampah. Jadi projek anda mungkin akan menggunakan beberapa dozen teka-teki yang membentuk kod Scratch. Jika sesuatu tidak berjaya, anda mungkin perlu menukar pendekatan anda untuk menyelesaikan masalah. Perkara utama adalah pergi tanpa rasa takut! Kami menjemput anda untuk bertanya soalan dan berkongsi projek anda dalam ulasan.

Gores: panduan pantas untuk bertindak

Sprite ialah objek utama projek. Mana-mana watak - kucing, kapal terbang, bola - adalah sprite. Jika anda menambah dua kucing berbeza, ini adalah dua sprite berbeza. Bahan tambahan untuk kuliah CS50: Minggu 0 (kuliah 1 dan 2) - 6Setiap sprite mempunyai skrip yang menerangkan tingkah lakunya. Ini adalah blok tindakan. Kostum adalah rupa objek. Sprite itu sendiri pada asasnya hanya lukisan. Setiap sprite boleh mempunyai berbilang kostum. Untuk mencipta sprite, anda sama ada perlu memilih kostum asalnya daripada pustaka Scratch, melukis anda sendiri dalam editor terbina dalam, memuat naik sebarang imej, atau mengambil foto menggunakan kamera web anda dan memuat naiknya. Semua sprite diletakkan di atas pentas yang dipanggil. Pentas pada dasarnya adalah kanvas kami, tetapan untuk program. Anda juga boleh melampirkan bunyi dari perpustakaan ke sprite atau adegan, atau anda boleh memuatkannya atau merakamnya sendiri menggunakan mikrofon. Untuk mula melaksanakan program, anda perlu mengklik pada bendera hijau di sudut kanan atas tetingkap adegan. Tetapi sebelum melakukan ini, anda perlu meletakkan blok berikut dalam program: Bahan tambahan untuk kuliah CS50: Minggu 0 (kuliah 1 dan 2) - 7Dan lampirkan beberapa blok padanya, sebagai bahagian pereka. Contohnya: Bahan tambahan untuk kuliah CS50: Minggu 0 (kuliah 1 dan 2) - 8Dalam kes ini, apabila anda mengklik pada bendera, sprite yang dilampirkan tindakan mengambil 50 langkah dan mengeong. Kami mempunyai banyak blok. Mereka dibahagikan kepada tiga tab: skrip, pakaian dan bunyi. Jom buat program mudah dengan syarat. Jika ia dipenuhi, kucing akan mengeong, jika ia tidak dipenuhi, ia akan diam. Operator ditunjukkan dalam warna hijau. Mereka yang menguji sama ada keadaan itu benar atau salah mempunyai sudut tajam di bahagian tepi. Struktur dan gelung ujian keadaan ditunjukkan dalam warna oren. Mereka mempunyai lubang khas di mana anda boleh meletakkan blok lain.

Kitaran:

Ulangi bilangan kali yang tidak terhingga: Bahan tambahan untuk kuliah CS50: Minggu 0 (kuliah 1 dan 2) - 9Ulang sesuatu beberapa kali: Bahan tambahan untuk kuliah CS50: Minggu 0 (kuliah 1 dan 2) - 10Ulangi tindakan jika syarat dipenuhi: Bahan tambahan untuk kuliah CS50: Minggu 0 (kuliah 1 dan 2) - 11Anda boleh mencipta pembolehubah dalam blok Data. Dalam contoh di bawah, kami mencipta pembolehubah x, dan serta-merta terdapat tindakan yang boleh dilakukan dengannya. Anda boleh menetapkan skop pembolehubah: untuk semua sprite atau untuk satu. Bahan tambahan untuk kuliah CS50: Minggu 0 (kuliah 1 dan 2) - 12Bendera hijau bukan satu-satunya tindakan. Juga dalam bahagian Acara anda boleh menemui beberapa syarat kawalan lain. Sebagai contoh, anda boleh memilih perkara yang perlu dilakukan apabila anda mengklik pada butang atau pada sprite itu sendiri dengan tetikus. Jika anda memerlukan maklumat tambahan, anda boleh mendapatkannya, sebagai contoh, di sini .

Apa lagi

Jika akses Internet anda meninggalkan banyak perkara yang diingini, kami mengesyorkan anda memuat turun editor Scratch luar talian di https://scratch.mit.edu/scratch2download/ . Kemudian jangan lupa untuk menyerahkan projek anda ke http://scratch.mit.edu/ menggunakan Fail > Muat Naik dari Komputer.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION