Siapa yang belum menonton kuliah Harvard tentang asas pengaturcaraan, pergi ke sini: https://javarush.com/quests/QUEST_HARVARD_CS50 =)
pengenalan. Struktur Kursus CS50
Kawan-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
- 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
Kami 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
Kami 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
Komputer 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
Jadi, 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
-
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.
-
Kini tiba masanya untuk melakukan sesuatu sendiri. Cabarannya adalah untuk berseronok sambil melaksanakan projek kecil dari awal. Ia boleh menjadi animasi, permainan, tindakan interaktif.
- 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.
GO TO FULL VERSION