JavaRush /Java blogi /Random-UZ /CS50 ma'ruza uchun qo'shimcha materiallar: 0-hafta (1 va ...
Bender
Daraja
Маунтин-Вью

CS50 ma'ruza uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar)

Guruhda nashr etilgan
Dasturlash asoslari bo'yicha Garvard ma'ruzalarini hali ko'rmaganlar bu yerga kiring: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

Kirish. CS50 Kursning tuzilishi

CS50 ma'ruzalari uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar) - 1Do'stlar! Kirish qismida biz sizga CS50 tuzilishi haqida eslatib o'tamiz (yoki kimga aytsa ham). Kurs 12 hafta davom etadi. Har haftada ikkita ma'ruza, shuningdek, barcha turdagi seminarlar va tushuntirishlar mavjud. Ma’ruzalar tayyor bo‘lgach, shunga o‘xshash maqolalarni e’lon qilamiz. Unda ma'ruzalarning qisqacha tavsifi, "qisqa ma'lumotlar" bo'yicha eslatmalar va qo'shimcha ma'lumotlar, shuningdek, amaliy topshiriqlarning tarjimalari mavjud. Nolinchi hafta ma'ruzalari quyidagi masalalarni qamrab oldi:
  • Ikkilik sanoq sistemasi.
  • ASCII
  • Algoritmlar va algoritmik fikrlash
  • Kompilyatorlar
  • Scratch tili
  • Mantiqiy ifodalar
  • Shartlar
  • Velosipedlar
  • O'zgaruvchilar
  • Funksiyalar
  • Massivlar
  • Oqimlar
  • Voqealar
0-hafta gollari:
  • Axborotni raqamli shaklda qanday ifodalash mumkinligini tushuning.
  • Asosiy dasturiy ta'minot konstruktsiyalari va tushunchalarini o'rganing.
  • Scratch yordamida o'z animatsiyangizni, o'yiningizni yoki interaktiv faoliyatingizni yarating.
  • Do'stlaringizni hayratda qoldiring =).

CS50 0-hafta (1-2-ma'ruza): eslatmalar

Algoritmlar

CS50 ma'ruzalari uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar) - 2Umid qilamizki, siz allaqachon ma'ruzalarni tomosha qildingiz va algoritm muammolarni hal qilishni (turli xil masalalar, matematik yoki "N metro stantsiyasiga qanday borish kerak") bosqichlarga bo'lishini tushundingiz. Bundan tashqari, har bir qadam cheklangan vaqt ichida bajarilishi kerak va ma'lum miqdordagi qadamlar bo'lishi kerak. Bundan tashqari, keyingi bosqich avvalgisiga bog'liq. Algoritmlar haqida ko'proq o'qishingiz mumkin, masalan, bu erda . Agar siz ingliz tilini bilsangiz, bu erda Devid Malan tomonidan yaratilgan ajoyib TED animatsiyasi: https://youtu.be/6hfOvs8pY1k Umuman olganda, videodagi ma'lumotlar ma'ruzada buni takrorlaydi =).

Ikkilik sanoq sistemasi

CS50 ma'ruzalari uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar) - 3Bizda 10 ta barmoq bor va tizim o'nlikdir. Ya'ni, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 raqamlari yordamida qanchalik katta bo'lishidan qat'i nazar, istalgan sonni ifodalashimiz mumkin. har xil narsalar: agar bu raqam oxirgi bo'lsa, u birliklar o'rnida, oxirgidan oldingi raqam o'nliklar qatorida, hatto chap tomonda yuzliklar qatorida va hokazo. Asosan, har qanday raqam raqamlar yig'indisi sifatida yozilishi mumkin, ularning har biri ma'lum bir darajaga o'nga ko'paytiriladi. Birliklar holatida - nolga teng. Masalan, 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . Raqamlar ko'paytiriladigan songa sanoq tizimining asosi deyiladi. O'nlik sistema uchun asos mantiqan o'nta. Kompyuterning barmoqlari yo'q, lekin ikkita holat mavjud: shartli ravishda "oqim oqadi" va "oqim oqmaydi", nol va bitta. Shunga ko'ra, kompyuter xotirasidagi barcha raqamlar (va umuman ma'lumotlar) faqat ikkita raqamdan iborat - 0 va 1. Ularning joylashuvi, o'nlik sanoq sistemasidagi kabi, raqamni ko'rsatadi. Faqat endi raqamni o'nning darajasiga emas, balki ikkining darajasiga ko'paytiriladigan raqamlar yig'indisiga ajratish mumkin. 0 binary = 0 1 ikkilik = 1 2 ikkilik = 10 7 10 =111 2 Ikkilikdan o'nlikka o'tkazishni o'rganing. Bu qanday amalga oshirilishini allaqachon tushungan bo'lsangiz kerak - biz shunchaki raqamning eng o'ngdan boshlab raqamini olamiz va uni bazaga uning raqamiga mos keladigan quvvatga ko'paytiramiz va har bir raqam bilan hamma narsani qo'shamiz. Misol: 101101 ikkilik sonining o'nlik analogini topamiz 2 Eng o'ngdagisi = 1*2 0 Keyingi nol = 0*2 1 O'ngdan uchinchisi = 1*2 2 To'rtinchisi = 1*2 3 .. va shunga o'xshash 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 Bir qatorda joylashgan sakkizta lampochkani tasavvur qiling. Ularning har biri o'z kalitiga ega. Lampochkalarning har biri zaryadsizlanishdir. Siz nimani tasavvur qila olasiz, birinchi ma'ruzani eslang (u erda shunday qurilma bor) yoki bu erda siz uchun vidjet: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Play u bilan, uni "his" mashq qiling ikkilik tizim. O'nlikdan ikkilik tizimga o'tkazish. Bu erda ham hamma narsa juda oddiy, agar siz mohiyatni tushunsangiz. Bu erda bizda 57 10 raqami bor . Uni ikkilik tizimga aylantirish uchun ikkita maksimal quvvat bu raqamdan oshmasligini aniqlashingiz kerak. 2 6 = 64. Bu juda ko'p. Lekin 2 5 = 32. Endi biz eng muhim raqamni aniqladik. 32 10= 100000 2 . Endi biz keyingi raqamni qidirmoqdamiz. 57-32 = 25. Endi 25 uchun biz ikkining 25 dan oshmaydigan darajasini qidiramiz. 2 4 = 16. Bu bizning keyingi raqamimiz ham 1 ga teng ekanligini anglatadi. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8, bu 9 dan kichik. Bu keyingi raqam ham bitta bo'lishini anglatadi. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1, ya'ni faqat bitta kuch qoldi, 2 0 . Shunday qilib, 57 10 = 111001 2 . Agar to'satdan biror narsa tushunarsiz bo'lib qolsa, siz ko'proq Vikikitobda o'qishingiz mumkin va agar siz ingliz tilida kuchli bo'lsangiz, ma'ruzaga kichik bir qo'shimcha.

ASCII

CS50 ma'ruzalari uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar) - 4Kompyuter faqat nol va birlarni tushunadi va uning xotirasi siz yuqorida ko'rganingizdek, kalitlari bo'lgan juda uzun lampochkalar qatori sifatida ifodalanishi mumkin. Biz allaqachon kompyuterda raqamlarni qanday ifodalashni tushunamiz. Qolgan ma'lumotlar haqida nima deyish mumkin? Xatlar, rasmlar? Aytaylik, ingliz alifbosida 26 ta harf bor. Ya'ni, nazariy jihatdan biz 0 dan 25 gacha raqamlar bilan harflarni faqat ikkilik tizimda ifodalashimiz mumkin. Quyidagi savol tug'iladi: bizda kichik yoki katta harf borligini qanday tushunish mumkin? Tinish belgilari haqida nima deyish mumkin? Bo'shliqlar kabi ko'rinmas belgilar? Qisqasi, bizga kodlash tizimi kerak, Cap! 1960-yillarda belgilarni kodlaydigan juda ko'p turli xil sxemalar mavjud edi. Bir xillikning yo'qligi muammo bo'lib chiqdi va 1963 yilda Amerika Standartlar Instituti, ANSI, ASCII (American Standard Code for Information Interchange) kodlash sxemasini ishlab chiqdi va joriy qildi. Har bir ASCII belgisi etti bit yoki etti bitdan iborat bo'lib, ularning har biri 0 yoki 1 qiymatini qabul qilishi mumkin. 7 bit ikkilik tizimda 0 dan 127 gacha raqamlarni o'z ichiga olishi mumkin, ya'ni bizda belgilarni kodlash uchun 128 ta raqam mavjud. Bu yozma ingliz nutqini kodlash uchun etarli bo'lib tuyuladimi? Hisoblaymiz: az - 26 variant AZ - 26 yana 0-9 - 10 ,;:~& va boshqa tinish belgilari - 32 Va yana bitta bo'sh joy. Jami - 95 belgi. Qolgan 33 ta boʻsh opsiya qatorni taslim qilish yoki karetani qaytarish kabi boshqaruv belgilar deb ataladigan belgilar uchun ishlatiladi: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg Buni farqlash muhim. 0-9 belgilar va raqamli qiymatlar 0-9. 0-9 belgilar ASCII 48-57 qiymatlari bilan ifodalanadi. Shunisi qiziqki, ushbu ASCII qiymatlarining eng o'ngdagi to'rttasi 0-9 raqamli qiymatlarning ikkilik ko'rinishlaridir. Bu ASCII qiymatlari va ularning haqiqiy raqamli qiymatlari o'rtasida konvertatsiya qilish usulini biroz soddalashtiradi. Dasturlashni boshlaylikmi?

Scratch

CS50 ma'ruzalari uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar) - 5Shunday qilib, Scratch. Ma'ruzada sizga ushbu vizual dasturlash tili va uning asosiy buyruqlari haqida gapirib berildi. Scratch-ni o'zingiz sinab ko'rish uchun havolaga o'ting va "Qo'shilish" tugmasini bosing. Ro'yxatdan o'tganingizdan so'ng, siz onlayn dasturlashni boshlashingiz mumkin. Ha, aytmoqchi, bugungi kunda Scratch qisman ruslashtirilgan. Biroq, yordam hali ham ingliz tilida. Agar xohlasangiz, siz o'ynashingiz va ma'ruzada ko'rsatilgan talaba loyihalari kodini ko'rishingiz mumkin. Mana Pikachu pastry Catch . Yoki chiqindilarni turli idishlarga saralash loyihasi: https://scratch.mit.edu/projects/71161586/ Devid va kompaniya sizdan bunday murakkab loyihalarni amalga oshira olmayman deb o'ylayotgan bo'lsangiz, tashvishlanmaslikni so'raydi: bu daraja allaqachon ma'lum mahorat talab qiladi. .

Mashq qilish

  1. Scratch-da sodir bo'ladigan jarayonlarni yaxshiroq tushunish uchun siz bir nechta loyihalar uchun manba kodini bu yerdan yuklab olishingiz mumkin . O'ynang va ko'ring. Birovning kodini o'rganish juda foydali. Bu siz hali o'rganmagan dasturlarning ichida nima borligini aniqlashning eng yaxshi usullaridan biridir. Ushbu ilovalar qanday ishlashini tushunishni boshlaganingizdan so'ng, xavfsiz davom etishingiz mumkin.

  2. Endi o'zingiz biror narsa qilish vaqti keldi. Qiyinchilik kichik loyihani noldan amalga oshirish bilan birga zavqlanishdir. Bu animatsiya, o'yin, interaktiv harakat bo'lishi mumkin.

Loyiha talablari:
  • Dasturda kamida ikkita sprit (belgilar, tasvirlar) bo'lishi kerak va ulardan biri mushuk bo'lmasligi kerak =).
  • Kamida uchta skript (harakat) bo'lishi kerak.
  • Kamida bitta shart, bitta tsikl va bitta o'zgaruvchi bajarilishi kerak.
  • Dasturga kamida bitta tovush kiritilishi kerak.
Ya'ni, mohiyatiga ko'ra, sizning loyihangiz ma'ruzada yozilganidan ko'ra murakkabroq, ammo Pikachu va axlat yig'ish haqidagi namoyish qilingan o'yinchoqlardan ko'ra soddaroq bo'ladi. Shunday qilib, sizning loyihangiz Scratch kodini tashkil etuvchi bir necha o'nlab jumboqlardan foydalanadi. Agar biror narsa ishlamasa, muammoni hal qilish uchun yondashuvingizni o'zgartirishingiz kerak bo'lishi mumkin. Asosiysi, qo'rqmasdan borish! Biz sizni savollar berishni va sharhlarda loyihalaringizni baham ko'rishni taklif qilamiz.

Scratch: harakat qilish uchun tezkor qo'llanma

Sprite loyihaning markaziy ob'ektidir. Har qanday belgi - mushuk, samolyot, to'p - sprite. Agar siz ikki xil mushukni qo'shsangiz, bu ikki xil spritlar. CS50 ma'ruzalari uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar) - 6Har bir spraytda uning xatti-harakatlarini tavsiflovchi skriptlar mavjud. Bu harakat bloklari. Kostyumlar - bu ob'ektlar qanday ko'rinishga ega. Spritelarning o'zlari asosan chizmalardir. Har bir sprite bir nechta kostyumlarga ega bo'lishi mumkin. Sprite yaratish uchun siz Scratch kutubxonasidan uning asl kostyumini tanlashingiz, o'rnatilgan muharrirda o'zingizni chizishingiz, istalgan rasmni yuklashingiz yoki hatto veb-kamerangiz yordamida suratga olishingiz va uni yuklashingiz kerak. Barcha spritlar sahna deb ataladigan joyga joylashtiriladi. Sahna mohiyatan bizning tuvalimiz, dastur uchun joy. Shuningdek, kutubxonadagi tovushlarni sprayt yoki sahnaga qoʻshishingiz yoki ularni yuklashingiz yoki mikrofon yordamida oʻzingiz yozib olishingiz mumkin. Dasturni bajarishni boshlash uchun sahna oynasining yuqori o'ng burchagidagi yashil bayroqni bosishingiz kerak. Ammo buni amalga oshirishdan oldin dasturga quyidagi blokni joylashtirishingiz kerak: CS50 ma'ruzalari uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar) - 7Va unga dizayner qismiga o'xshab bir nechta bloklarni biriktiring. Masalan: CS50 ma'ruzalari uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar) - 8Bu holatda, bayroqni bosganingizda, amallar biriktirilgan sprayt 50 qadamni bosib, miyovlaydi. Bizda juda ko'p bloklar bor. Ular uchta yorliqga bo'lingan: skriptlar, kostyumlar va tovushlar. Shartli oddiy dastur tuzamiz. Agar u bajarilsa, mushuk miyovlaydi, bajarilmasa, u jim turadi. Operatorlar yashil rangda ko'rsatilgan. Shartning to'g'ri yoki noto'g'riligini tekshiradiganlar yon tomonlarida o'tkir burchaklarga ega. Vaziyatni tekshirish tuzilmalari va halqalar to'q sariq rangda ko'rsatilgan. Ularda boshqa bloklarni joylashtirishingiz mumkin bo'lgan maxsus teshiklar mavjud.

Tsikllar:

Cheksiz ko'p marta takrorlang: CS50 ma'ruzalari uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar) - 9Biror narsani ma'lum bir necha marta takrorlang: CS50 ma'ruzalari uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar) - 10Agar shart bajarilsa, harakatni takrorlang: CS50 ma'ruzalari uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar) - 11Ma'lumotlar blokida o'zgaruvchilar yaratishingiz mumkin. Quyidagi misolda biz x o'zgaruvchisini yaratdik va darhol u bilan bajarilishi mumkin bo'lgan harakatlar paydo bo'ldi. Siz o'zgaruvchilar doirasini o'rnatishingiz mumkin: barcha spritlar uchun yoki bittasi uchun. CS50 ma'ruzalari uchun qo'shimcha materiallar: 0-hafta (1 va 2-ma'ruzalar) - 12Yashil bayroq yagona harakat emas. Shuningdek, Voqealar bo'limida siz boshqa bir qator nazorat shartlarini topishingiz mumkin. Misol uchun, sichqoncha bilan tugmani yoki spraytning o'zini bosganingizda nima qilishni tanlashingiz mumkin. Agar sizga qo'shimcha ma'lumot kerak bo'lsa, uni, masalan, bu erda topishingiz mumkin .

Nima yana

Agar sizning Internetga kirishingiz ko'p narsani xohlamasa, biz https://scratch.mit.edu/scratch2download/ saytidan oflayn Scratch muharririni yuklab olishingizni tavsiya qilamiz . Keyin loyihangizni Fayl > Kompyuterdan yuklash orqali http://scratch.mit.edu/ manziliga yuborishni unutmang .
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION