JavaRush /وبلاگ جاوا /Random-FA /مطالب اضافی برای سخنرانی‌ها CS50: هفته 0 (سخنرانی‌های 1 و...
Bender
مرحله
Маунтин-Вью

مطالب اضافی برای سخنرانی‌ها CS50: هفته 0 (سخنرانی‌های 1 و 2)

در گروه منتشر شد
کسانی که هنوز سخنرانی های هاروارد در مورد اصول برنامه نویسی را تماشا نکرده اند، به اینجا بروید: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

معرفی. ساختار دوره CS50

مواد اضافی برای سخنرانی ها CS50: هفته 0 (سخنرانی 1 و 2) - 1دوستان! در مقدمه، ساختار CS50 را به شما یادآوری می کنیم (یا به شما می گوییم). دوره 12 هفته طول می کشد. هر هفته دو سخنرانی و همچنین انواع سمینارها و توضیحات وجود دارد. به محض آماده شدن سخنرانی، مقالاتی مانند این را منتشر خواهیم کرد. این شامل شرح مختصری از سخنرانی‌ها، یادداشت‌هایی در مورد "مطالب کوتاه" و اطلاعات اضافی، و همچنین ترجمه تکالیف عملی است. سخنرانی های هفته صفر موضوعات زیر را پوشش می دهد:
  • سیستم اعداد باینری
  • ASCII
  • الگوریتم ها و تفکر الگوریتمی
  • کامپایلرها
  • زبان خراش
  • عبارات بولی
  • شرایط
  • چرخه ها
  • متغیرها
  • کارکرد
  • آرایه ها
  • جریان ها
  • مناسبت ها
گل های هفته صفر:
  • درک اینکه چگونه اطلاعات را می توان به صورت دیجیتالی نمایش داد.
  • ساختارها و مفاهیم اولیه نرم افزار را بیاموزید.
  • انیمیشن، بازی یا فعالیت تعاملی خود را با استفاده از Scratch ایجاد کنید.
  • دوستان خود را تحت تاثیر قرار دهید =).

CS50 هفته 0 (سخنرانی 1-2): یادداشت ها

الگوریتم ها

مواد اضافی برای سخنرانی ها CS50: هفته 0 (سخنرانی 1 و 2) - 2امیدواریم قبلاً سخنرانی ها را تماشا کرده باشید و متوجه شده باشید که الگوریتم حل مسائل (مسائل مختلف، مسائل ریاضی یا "نحوه رسیدن به ایستگاه مترو N") را به مراحل تقسیم می کند. علاوه بر این، هر مرحله باید در مدت زمان محدودی انجام شود و باید تعداد مشخصی از مراحل وجود داشته باشد. همچنین مرحله بعدی به مرحله قبلی بستگی دارد. برای مثال می‌توانید در اینجا درباره الگوریتم‌ها بیشتر بخوانید . اگر انگلیسی بلد هستید، در اینجا یک انیمیشن فوق العاده TED از دیوید مالان وجود دارد: https://youtu.be/6hfOvs8pY1k اگرچه به طور کلی اطلاعات موجود در ویدیو همان چیزی را در سخنرانی تکرار می کند =).

سیستم اعداد باینری

مواد اضافی برای سخنرانی ها CS50: هفته 0 (سخنرانی 1 و 2) - 3ما 10 انگشت داریم و سیستم اعشاری است. یعنی با استفاده از اعداد 0، 1، 2، 3، 4، 5، 6، 7، 8، 9 هر عددی را هر چقدر هم که بزرگ باشد می توانیم نمایش دهیم. بسته به اینکه عدد در کجای عدد باشد، می تواند به این معنی باشد. چیزهای مختلف: اگر این رقم آخرین باشد، پس در مکان واحدها قرار دارد، عدد ماقبل آخر در مکان ده ها، حتی بیشتر به سمت چپ در مکان صدها قرار دارد و غیره. اساساً هر عددی را می توان به صورت مجموع ارقام نوشت که هر کدام در ده به توان خاصی ضرب می شود. در مورد واحدها - صفر. به عنوان مثال، 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . عددی که ارقام در آن ضرب می شوند، پایه سیستم اعداد نامیده می شود. برای سیستم اعشاری، مبنای منطقاً ده است. کامپیوتر هیچ انگشتی ندارد، اما دو حالت وجود دارد: به طور مشروط "جریان جریان دارد" و "جریان جریان ندارد"، صفر و یک. بر این اساس، تمام اعداد (و اطلاعات به طور کلی) در حافظه کامپیوتر فقط از دو رقم تشکیل شده است - 0 و 1. مکان آنها، مانند سیستم اعداد اعشاری، رقم را نشان می دهد. فقط اکنون می توان عدد را به مجموع ارقام ضرب کرد نه در توان های ده، بلکه در توان های دو تجزیه کرد. 0 در باینری = 0 1 در باینری = 1 2 در باینری = 10 7 10 = 111 2 آموزش تبدیل از باینری به اعشاری. احتمالاً قبلاً متوجه شده اید که چگونه این کار انجام می شود - ما به سادگی رقم عدد را که از سمت راست شروع می شود در نظر می گیریم و آن را در پایه به توان مربوط به رقم آن ضرب می کنیم و همه چیز را با هر رقم جمع می کنیم. مثال: بیایید آنالوگ اعشاری عدد باینری 101101 را پیدا کنیم 2 سمت راست ترین = 1*2 0 صفر بعدی = 0*2 1 سومی از سمت راست = 1*2 2 چهارمی = 1*2 3 .. و به همین ترتیب 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 تصور کنید هشت لامپ در یک ردیف چیده شده اند. هر کدام سوئیچ مخصوص به خود را دارند. هر یک از لامپ ها یک تخلیه است. چه چیزی می توانید تصور کنید، اولین سخنرانی را به خاطر بسپارید (چنین دستگاهی در آنجا وجود دارد) یا در اینجا یک ویجت برای شما وجود دارد: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html پخش با آن، سیستم باینری "احساس" آن را تمرین کنید. تبدیل از اعشار به باینری. در اینجا نیز همه چیز بسیار ساده است، اگر اصل را درک کنید. در اینجا ما عدد 57 10 را داریم . برای تبدیل آن به سیستم باینری، باید تعیین کنید که حداکثر توان دو از این عدد تجاوز نمی کند. 2 6 = 64. این به وضوح زیاد است. اما 2 5 = 32. اکنون مهم ترین رقم را تعیین کرده ایم. 32 10= 100000 2 . اکنون به دنبال رقم بعدی هستیم. 57-32 = 25. حالا برای 25 به دنبال توان دو هستیم که از 25 تجاوز نکند. 2 4 = 16. یعنی رقم بعدی ما نیز برابر است با 1. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8، این کمتر از 9 است. یعنی رقم بعدی نیز یک خواهد بود. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1، یعنی فقط یک توان باقی مانده است، 2 0 . بنابراین 57 10 = 111001 2 . اگر ناگهان چیزی مبهم باقی ماند، می‌توانید بیشتر در ویکی‌کتاب بخوانید، و اگر زبان انگلیسی قوی هستید، در اینجا یک اضافه کوچک به سخنرانی آورده شده است.

ASCII

مواد اضافی برای سخنرانی ها CS50: هفته 0 (سخنرانی 1 و 2) - 4همانطور که در بالا دیدید، کامپیوتر فقط صفر و یک را می‌فهمد، و حافظه آن را می‌توان به‌عنوان یک رشته بسیار طولانی از لامپ‌ها با سوئیچ نشان داد. ما قبلاً درک کرده ایم که چگونه اعداد را در رایانه نشان دهیم. بقیه اطلاعات چطور؟ نامه ها، عکس ها؟ فرض کنید در الفبای انگلیسی 26 حرف وجود دارد. یعنی از نظر تئوری می توانیم حروف را با اعداد از 0 تا 25 فقط در سیستم باینری نمایش دهیم. سوال زیر مطرح می شود: چگونه می توانیم بفهمیم که حرف کوچک داریم یا بزرگ؟ در مورد علائم نگارشی چطور؟ علائم نامرئی مانند فضاها؟ به طور خلاصه، ما به یک سیستم کدگذاری نیاز داریم، Cap! در دهه 1960، طرح های مختلفی وجود داشت که کاراکترها را رمزگذاری می کردند. فقدان یکنواختی یک مشکل بود و در سال 1963، مؤسسه استانداردهای آمریکا، ANSI، طرح رمزگذاری ASCII (کد استاندارد آمریکایی برای تبادل اطلاعات) را توسعه و معرفی کرد. هر کاراکتر ASCII از هفت بیت یا هفت بیت تشکیل شده است که هر کدام می تواند مقدار 0 یا 1 را داشته باشد. به نظر می رسد که این برای رمزگذاری گفتار نوشتاری انگلیسی کافی است؟ بیایید بشماریم: az - 26 گزینه AZ - 26 گزینه دیگر 0-9 - 10 ,;:~& و سایر علائم نگارشی - 32 و یک فاصله دیگر. مجموع - 95 کاراکتر. 33 گزینه خالی باقیمانده برای به اصطلاح کاراکترهای کنترلی استفاده می شود، مانند تغذیه خط یا بازگشت کالا: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg تمایز بین کاراکترهای 0-9 و مقادیر عددی 0 -9. کاراکترهای 0-9 با مقادیر ASCII 48-57 نشان داده می شوند. جالب است بدانید که چهار بیت سمت راست این مقادیر ASCII نمایش دودویی مقادیر عددی 0-9 هستند. این تا حدودی راه تبدیل بین مقادیر ASCII و مقادیر عددی واقعی آنها را ساده می کند. برنامه نویسی را شروع کنیم؟

خراش

مواد اضافی برای سخنرانی ها CS50: هفته 0 (سخنرانی 1 و 2) - 5بنابراین، خراش. در مورد این زبان برنامه نویسی بصری و دستورات اولیه آن در سخنرانی به شما گفته شد. برای امتحان کردن Scratch برای خودتان، پیوند را دنبال کنید و روی "پیوستن" کلیک کنید. پس از ثبت نام، می توانید برنامه نویسی را به صورت آنلاین شروع کنید. بله، اتفاقا، امروز Scratch تا حدی روسی شده است. با این حال، کمک هنوز به زبان انگلیسی است. در صورت تمایل می توانید بازی کنید و همچنین به کد پروژه های دانشجویی که در سخنرانی نشان داده شده است نگاه کنید. اینجا شیرینی پیکاچو است . یا پروژه ای با تفکیک زباله در ظروف مختلف: https://scratch.mit.edu/projects/71161586/ دیوید و شرکت از شما می خواهند که نگران نباشید اگر فکر می کنید نمی توانید چنین پروژه های پیچیده ای را انجام دهید: این سطح قبلاً به مهارت نیاز دارد. .

ورزش

  1. برای درک بهتر فرآیندهایی که در Scratch اتفاق می‌افتند، می‌توانید کد منبع چندین پروژه را از اینجا دانلود کنید . بازی کن و ببین یادگیری کد شخص دیگری بسیار مفید است. این یکی از بهترین راه‌ها برای یافتن آنچه در داخل آن برنامه‌ها وجود دارد است که خودتان هنوز به بلوغ نرسیده‌اید. هنگامی که شروع به درک نحوه عملکرد این برنامه ها کردید، می توانید با خیال راحت ادامه دهید.

  2. حالا وقت آن است که خودتان کاری انجام دهید. چالش این است که سرگرم شوید و در عین حال یک پروژه کوچک را از ابتدا اجرا کنید. این می تواند انیمیشن، بازی، اکشن تعاملی باشد.

الزامات پروژه:
  • این برنامه باید حداقل دو جن (شخصیت، تصویر) داشته باشد و یکی از آنها قطعاً نباید گربه = باشد.
  • حداقل باید سه اسکریپت (اکشن) وجود داشته باشد.
  • حداقل یک شرط، یک حلقه و یک متغیر باید اجرا شود.
  • حداقل یک صدا باید در برنامه گنجانده شود.
یعنی در اصل، پروژه شما پیچیده تر از آنچه در سخنرانی نوشته شده است، اما ساده تر از اسباب بازی های نشان داده شده در مورد Pikachu و جمع آوری زباله خواهد بود. بنابراین پروژه شما احتمالا از چند ده پازل استفاده می کند که کد اسکرچ را تشکیل می دهند. اگر چیزی درست نشد، ممکن است لازم باشد رویکرد خود را برای حل مشکل تغییر دهید. نکته اصلی این است که بدون ترس بروید! ما از شما دعوت می کنیم سوالات خود را بپرسید و پروژه های خود را در نظرات به اشتراک بگذارید.

خراش: راهنمای سریع عمل

اسپرایت هدف اصلی پروژه است. هر شخصیت - یک گربه، یک هواپیما، یک توپ - یک جن است. اگر دو گربه متفاوت اضافه کردید، این دو جن متفاوت هستند. مواد اضافی برای سخنرانی ها CS50: هفته 0 (سخنرانی 1 و 2) - 6هر جن دارای اسکریپت هایی است که رفتار آن را توصیف می کند. اینها بلوک های عمل هستند. لباس همان چیزی است که اشیا به نظر می رسند. خود جن ها در اصل فقط نقاشی هستند. هر جن می تواند چندین لباس داشته باشد. برای ایجاد یک اسپرایت، یا باید لباس اصلی آن را از کتابخانه Scratch انتخاب کنید، لباس خود را در ویرایشگر داخلی بکشید، هر تصویری را آپلود کنید یا حتی با استفاده از وب کم خود عکس بگیرید و آن را آپلود کنید. تمام اسپرایت ها به اصطلاح روی صحنه قرار می گیرند. صحنه اساساً بوم نقاشی ماست، محیطی برای برنامه. همچنین می‌توانید صداهای کتابخانه را به یک اسپرایت یا صحنه متصل کنید، یا می‌توانید آن‌ها را بارگیری کنید یا خودتان با استفاده از میکروفون ضبط کنید. برای شروع اجرای برنامه باید بر روی پرچم سبز رنگ در گوشه سمت راست بالای پنجره صحنه کلیک کنید. اما قبل از انجام این کار، باید بلوک زیر را در برنامه قرار دهید: مواد اضافی برای سخنرانی ها CS50: هفته 0 (سخنرانی 1 و 2) - 7و چند بلوک را به عنوان یک قسمت طراح به آن وصل کنید. به عنوان مثال: مواد اضافی برای سخنرانی ها CS50: هفته 0 (سخنرانی 1 و 2) - 8در این حالت وقتی روی پرچم کلیک می کنید، اسپرایتی که اکشن ها به آن وصل شده اند، 50 مرحله انجام می دهد و میو می کند. ما بلوک های زیادی داریم. آنها به سه تب تقسیم می شوند: فیلمنامه، لباس و صدا. بیایید یک برنامه ساده با یک شرط بسازیم. اگر برآورده شود گربه میو میو کند و اگر برآورده نشود ساکت می ماند. اپراتورها با رنگ سبز نشان داده شده اند. آنهایی که درست یا نادرست بودن یک شرط را آزمایش می کنند، گوشه های تیز در طرفین دارند. ساختارها و حلقه های تست شرایط به رنگ نارنجی نشان داده شده اند. آنها سوراخ های خاصی دارند که می توانید بلوک های دیگر را در آن قرار دهید.

چرخه ها:

تکرار بی نهایت بار: مواد اضافی برای سخنرانی ها CS50: هفته 0 (سخنرانی 1 و 2) - 9چیزی را به تعداد معینی تکرار کنید: مواد اضافی برای سخنرانی ها CS50: هفته 0 (سخنرانی 1 و 2) - 10در صورت وجود شرط، یک عمل را تکرار کنید: مواد اضافی برای سخنرانی ها CS50: هفته 0 (سخنرانی 1 و 2) - 11می توانید متغیرهایی را در بلوک داده ایجاد کنید. در مثال زیر، یک متغیر x ایجاد کردیم و بلافاصله اقداماتی وجود داشت که می توان با آن انجام داد. شما می توانید محدوده متغیرها را تنظیم کنید: برای همه sprites یا برای یک. مواد اضافی برای سخنرانی ها CS50: هفته 0 (سخنرانی 1 و 2) - 12پرچم سبز تنها اقدام نیست. همچنین در بخش رویدادها می توانید تعدادی از شرایط کنترل دیگر را بیابید. برای مثال، می‌توانید انتخاب کنید که وقتی روی یک دکمه یا خود اسپرایت با ماوس کلیک می‌کنید، چه کاری انجام دهید. اگر به اطلاعات بیشتری نیاز دارید، می توانید آن را پیدا کنید، به عنوان مثال، اینجا .

چه چیز دیگری

اگر دسترسی به اینترنت شما بسیار مورد نیاز است، توصیه می‌کنیم ویرایشگر اسکرچ آفلاین را در https://scratch.mit.edu/scratch2download/ دانلود کنید . سپس فراموش نکنید که پروژه خود را با استفاده از File > Upload from Computer به http://scratch.mit.edu/ ارسال کنید.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION