Siapa yang belum menonton kuliah Harvard tentang dasar-dasar pemrograman, buka di sini: https://javarush.com/quests/QUEST_HARVARD_CS50 =)
Perkenalan. Struktur Kursus CS50
Teman-teman! Dalam pendahuluan, kami akan mengingatkan Anda (atau memberi tahu Anda siapa pun) tentang struktur CS50. Kursus ini berlangsung 12 minggu. Setiap minggunya ada dua kali perkuliahan, serta berbagai macam seminar dan penjelasan. Kami akan menerbitkan artikel seperti ini segera setelah perkuliahan siap. Ini akan berisi penjelasan singkat tentang perkuliahan, catatan tentang “celana pendek” dan informasi tambahan, serta terjemahan tugas praktek. Kuliah nol minggu membahas isu-isu berikut:- Sistem bilangan biner.
- ASCII
- Algoritma dan pemikiran algoritmik
- Kompiler
- Bahasa awal
- Ekspresi Boolean
- Kondisi
- Siklus
- Variabel
- Fungsi
- Array
- Aliran
- Acara
- Memahami bagaimana informasi dapat direpresentasikan secara digital.
- Pelajari konstruksi dan konsep perangkat lunak dasar.
- Buat animasi, permainan, atau aktivitas interaktif Anda sendiri menggunakan Scratch.
- Buat teman Anda terkesan =).
CS50 Minggu 0 (Kuliah 1-2): catatan
Algoritma
Kami harap Anda telah menonton ceramah dan memahami bahwa algoritme memecah solusi masalah (berbagai masalah, masalah matematika atau “cara menuju ke stasiun metro N”) menjadi beberapa langkah. Selain itu, setiap langkah harus diselesaikan dalam waktu yang terbatas, dan harus ada sejumlah langkah tertentu. Selain itu, langkah selanjutnya bergantung pada langkah sebelumnya. Anda dapat membaca lebih lanjut tentang algoritma, misalnya di sini . Jika Anda tahu bahasa Inggris, berikut adalah animasi TED yang luar biasa oleh David Malan: https://youtu.be/6hfOvs8pY1k Meskipun secara umum informasi dalam video mengulangi informasi dalam ceramah =).Sistem bilangan biner
Kami memiliki 10 jari dan sistemnya desimal. Artinya, kita dapat merepresentasikan bilangan apa pun, berapa pun besarnya, menggunakan bilangan 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Tergantung di mana letak bilangan tersebut dalam bilangan tersebut, bilangan tersebut dapat berarti bedanya : kalau angka ini terakhir, maka letaknya di tempat satuan, angka kedua dari belakang di tempat puluhan, lebih ke kiri lagi di tempat ratusan, dan seterusnya. Pada dasarnya, bilangan apa pun dapat ditulis sebagai jumlah digit, yang masing-masing digit dikalikan sepuluh hingga pangkat tertentu. Dalam hal satuan, nol. Misalnya, 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . Bilangan yang digunakan untuk mengalikan angka-angkanya disebut basis sistem bilangan. Untuk sistem desimal, basisnya secara logis adalah sepuluh. Komputer tidak memiliki jari, tetapi ada dua keadaan: kondisional “arus mengalir” dan “arus tidak mengalir”, nol dan satu. Oleh karena itu, semua angka (dan informasi secara umum) dalam memori komputer hanya terdiri dari dua digit - 0 dan 1. Lokasinya, seperti dalam kasus sistem bilangan desimal, menunjukkan sebuah digit. Hanya sekarang bilangan tersebut dapat diuraikan menjadi jumlah digit yang dikalikan bukan dengan pangkat sepuluh, tetapi dengan pangkat dua. 0 dalam biner = 0 1 dalam biner = 1 2 dalam biner = 10 7 10 =111 2 Belajar mengkonversi dari biner ke desimal. Anda mungkin sudah memahami cara melakukannya - kita cukup mengambil digit suatu bilangan, mulai dari yang paling kanan dan mengalikannya dengan basis ke pangkat yang sesuai dengan digitnya, dan menjumlahkan semuanya dengan setiap digit. Contoh: Cari analog desimal dari bilangan biner 101101 2 Yang paling kanan = 1*2 0 Nol berikutnya = 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 delapan bola lampu disusun berjajar. Masing-masing memiliki saklarnya sendiri. Masing-masing bola lampu adalah pelepasan. Apa yang bisa Anda bayangkan, ingat kuliah pertama (ada perangkat seperti itu di sana) atau ini widget untuk Anda: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Mainkan dengan itu, latihlah “merasakan” sistem binernya. Konversi dari desimal ke biner. Di sini juga, semuanya sangat sederhana, jika Anda memahami esensinya. Di sini kita memiliki nomor 57 10 . Untuk mengubahnya menjadi sistem biner, Anda perlu menentukan berapa pangkat maksimum dua yang tidak melebihi angka ini. 2 6 = 64. Ini jelas berlebihan. Tapi 2 5 = 32. Sekarang kita sudah menentukan angka paling signifikan. 32 10= 100000 2 . Sekarang kita mencari digit berikutnya. 57-32 = 25. Sekarang untuk 25 kita mencari pangkat dua yang tidak melebihi 25. 2 4 = 16. Artinya digit berikutnya juga sama dengan 1. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8, kurang dari 9. Artinya digit selanjutnya juga satu. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1, artinya hanya tersisa satu pangkat, 2 0 . Jadi 57 10 = 111001 2 . Jika tiba-tiba ada sesuatu yang masih belum jelas, Anda dapat membaca lebih lanjut di Wikibook, dan jika Anda mahir berbahasa Inggris, berikut sedikit tambahan untuk kuliahnya.ASCII
Komputer hanya memahami angka nol dan satu, dan memorinya dapat direpresentasikan sebagai rangkaian bola lampu yang sangat panjang dengan sakelar, seperti yang Anda lihat di atas. Kita sudah memahami cara merepresentasikan angka di komputer. Bagaimana dengan informasi lainnya? Surat, gambar? Katakanlah ada 26 huruf dalam alfabet Inggris. Artinya, secara teoritis, kita dapat merepresentasikan huruf dengan angka dari 0 hingga 25, hanya dalam sistem biner. Timbul pertanyaan berikut: bagaimana kita dapat memahami apakah kita memiliki huruf kecil atau huruf besar? Bagaimana dengan tanda baca? Tanda-tanda tak kasat mata seperti spasi? Singkatnya, kita membutuhkan sistem coding, Cap! Pada tahun 1960-an, ada banyak skema berbeda yang mengkodekan karakter. Kurangnya keseragaman terbukti menjadi masalah, dan pada tahun 1963, American Standards Institute, ANSI, mengembangkan dan memperkenalkan skema pengkodean ASCII (American Standard Code for Information Interchange). Setiap karakter ASCII terdiri dari tujuh bit, atau tujuh bit, yang masing-masing dapat mengambil nilai 0 atau 1. 7 bit dapat menampung angka dari 0 hingga 127 dalam biner, artinya kita memiliki 128 angka untuk menyandikan karakter. Tampaknya ini cukup untuk mengkodekan pidato bahasa Inggris tertulis? Mari kita hitung: az - 26 opsi AZ - 26 lagi 0-9 - 10 ,;:~& dan tanda baca lainnya - 32 Dan satu spasi lagi. Total - 95 karakter. 33 opsi kosong yang tersisa digunakan untuk apa yang disebut karakter kontrol, seperti umpan baris atau pengangkutan kembali: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg Penting untuk membedakan antara karakter 0-9 dan nilai numerik 0 -9. Karakter 0-9 diwakili oleh nilai ASCII 48-57. Menarik untuk dicatat bahwa empat bit paling kanan dari nilai ASCII ini merupakan representasi biner dari nilai numerik 0-9. Ini agak menyederhanakan cara mengkonversi antara nilai ASCII dan nilai numerik sebenarnya. Mari kita mulai pemrograman?Menggores
Jadi, Gores. Anda telah diberitahu tentang bahasa pemrograman visual ini dan perintah dasarnya dalam kuliah. Untuk mencoba Scratch sendiri, ikuti tautannya dan klik “Gabung”. Setelah terdaftar, Anda dapat memulai pemrograman online. Ya, omong-omong, hari ini Scratch sebagian sudah di-Russifikasi. Namun bantuannya masih dalam bahasa Inggris. Jika mau, Anda dapat memutar dan juga melihat kode proyek mahasiswa yang didemonstrasikan dalam perkuliahan. Inilah Tangkapan Kue Pikachu . Atau proyek dengan memilah sampah ke dalam wadah yang berbeda: https://scratch.mit.edu/projects/71161586/ David dan perusahaan meminta Anda untuk tidak khawatir jika Anda merasa tidak dapat melakukan proyek rumit seperti itu: level ini sudah memerlukan beberapa keterampilan .Latihan
-
Untuk lebih memahami proses yang terjadi di Scratch, Anda dapat mengunduh kode sumber untuk beberapa proyek dari sini . Bermain-main dan lihat. Mempelajari kode orang lain sangat berguna. Ini adalah salah satu cara terbaik untuk mengetahui apa yang ada di dalam program-program yang Anda sendiri belum matang. Setelah Anda mulai memahami cara kerja aplikasi ini, Anda dapat melanjutkan dengan percaya diri.
-
Sekarang saatnya melakukan sesuatu sendiri. Tantangannya adalah bersenang-senang sambil melaksanakan proyek kecil dari awal. Bisa berupa animasi, permainan, aksi interaktif.
- Program harus berisi setidaknya dua sprite (karakter, gambar), dan salah satunya pasti bukan kucing =).
- Setidaknya harus ada tiga skrip (tindakan).
- Setidaknya satu kondisi, satu loop, dan satu variabel harus dijalankan.
- Setidaknya satu suara harus disertakan dalam program.
GO TO FULL VERSION