Бағдарламалау негіздері бойынша Гарвард дәрістерін әлі көрмеген адам мына жерден өтіңіз: https://javarush.com/quests/QUEST_HARVARD_CS50 =)
Кіріспе. CS50 Курс құрылымы
Достар! Кіріспеде біз сізге CS50 құрылымы туралы еске саламыз (немесе кім болса да айтамыз). Курс 12 аптаға созылады. Апта сайын екі лекция, сонымен қатар семинарлар мен түсіндірулердің барлық түрлері өтеді. Дәрістер дайын болғаннан кейін осындай мақалаларды жариялайтын боламыз. Ол дәрістердің қысқаша сипаттамасын, «қысқа мәтіндер» бойынша ескертулерді және қосымша ақпаратты, сондай-ақ практикалық тапсырмалардың аудармасын қамтиды. Нөлдік апталық дәрістер келесі мәселелерді қамтыды:- Екілік санау жүйесі.
- ASCII
- Алгоритм және алгоритмдік ойлау
- Құрастырушылар
- Тілі
- Логикалық өрнектер
- Шарттар
- Циклдер
- Айнымалылар
- Функциялар
- Массивтер
- Ағындар
- Оқиғалар
- Ақпаратты цифрлық түрде қалай көрсетуге болатынын түсіну.
- Бағдарламалық жасақтаманың негізгі конструкциялары мен тұжырымдамаларын үйреніңіз.
- Scratch көмегімен өз анимацияңызды, ойыныңызды немесе интерактивті әрекетті жасаңыз.
- Достарыңызды таң қалдырыңыз =).
CS50 0-апта (1-2-дәріс): ескертпелер
Алгоритмдер
Сіз лекцияларды қарап шықтыңыз және алгоритм есептерді шешуді (әртүрлі есептер, математикалық есептер немесе «N метро станциясына қалай жетуге болады») қадамдарға бөлетінін түсіндіңіз деп үміттенеміз. Сонымен қатар, әрбір қадам шектеулі уақыт көлемінде аяқталуы керек және қадамдардың белгілі бір саны болуы керек. Сондай-ақ, келесі қадам алдыңғыға байланысты. Алгоритмдер туралы көбірек оқи аласыз, мысалы, мұнда . Ағылшын тілін білсеңіз, мұнда Дэвид Маланның тамаша TED анимациясы берілген: https://youtu.be/6hfOvs8pY1k Жалпы видеодағы ақпарат дәрістегі осылай қайталанады =).Екілік санау жүйесі
Бізде 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
Компьютер тек нөлдер мен бірліктерді ғана түсінеді және оның жады жоғарыда көргеніңіздей қосқыштары бар шамдардың өте ұзын тізбегі ретінде ұсынылуы мүмкін. Біз сандарды компьютерде қалай көрсету керектігін түсіндік. Қалған ақпарат туралы не деуге болады? Хаттар, суреттер? Ағылшын алфавитінде 26 әріп бар делік. Яғни, теориялық тұрғыдан біз 0-ден 25-ке дейінгі сандары бар әріптерді екілік жүйеде ғана көрсете аламыз. Келесі сұрақ туындайды: бізде кіші әріп немесе бас әріп бар екенін қалай түсінуге болады? Тыныс белгілері туралы не деуге болады? Кеңістік сияқты көрінбейтін белгілер ме? Қысқасы, бізге codeтау жүйесі керек, Cap! 1960 жылдары таңбаларды codeтайтын көптеген әртүрлі схемалар болды. Біркелкіліктің болмауы проблема болып шықты және 1963 жылы Американдық Стандарттар Институты ANSI ASCII (American Standard Code for Information Interchange) codeтау схемасын әзірлеп, енгізді. Әрбір ASCII таңбасы жеті биттен немесе жеті биттен тұрады, олардың әрқайсысы 0 немесе 1 мәнін қабылдай алады. 7 бит екілік жүйеде 0-ден 127-ге дейінгі сандарды сақтай алады, яғни бізде таңбаларды codeтау үшін 128 сан бар. Бұл жазбаша ағылшын тілін codeтау үшін жеткілікті болып көрінетін шығар? Санайық: 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 мәндері мен олардың нақты сандық мәндері арасында түрлендіру жолын біршама жеңілдетеді. Бағдарламалауды бастайық?сызат
Сонымен, Scratch. Сізге осы визуалды бағдарламалау тілі және оның негізгі командалары туралы дәрісте айтылды. Scratch қолданбасын өзіңіз қолданып көру үшін сілтемеге өтіп , «Қосылу» түймесін басыңыз. Тіркелгеннен кейін сіз онлайн бағдарламалауды бастай аласыз. Иә, айтпақшы, бүгінде Scratch ішінара орыстандырылған. Дегенмен, көмек әлі де ағылшын тілінде. Қаласаңыз, лекцияда көрсетілген студенттік жобалардың codeын қарауға және ойнауға болады. Міне, Пикачу кондитері . Немесе қалдықтарды әртүрлі контейнерлерге сұрыптайтын жоба: https://scratch.mit.edu/projects/71161586/ Дэвид пен компания сіз осындай күрделі жобаларды жасай алмаймын деп ойласаңыз, алаңдамауды сұрайды: бұл деңгей әлдеқашан белгілі бір дағдыларды қажет етеді. .Жаттығу
-
Scratch-те болатын процестерді жақсырақ түсіну үшін бірнеше жобаның бастапқы codeын осы жерден жүктеп алуға болады . Ойнап, көріңіз. Басқа біреудің codeын үйрену өте пайдалы. Бұл сіз әлі жетілмеген бағдарламалардың ішінде не бар екенін білудің ең жақсы тәсілдерінің бірі. Бұл қолданбалардың қалай жұмыс істейтінін түсінуді бастағаннан кейін, қауіпсіз түрде жалғастыра аласыз.
-
Енді өзіңіз бірдеңе жасайтын кез келді. Қиындық - шағын жобаны нөлден бастап жүзеге асыру кезінде көңіл көтеру. Бұл анимация, ойын, интерактивті әрекет болуы мүмкін.
- Бағдарламада кемінде екі спрайт (кейіпкерлер, кескіндер) болуы керек және олардың біреуі мысық болмауы керек =).
- Кемінде үш сценарий (әрекеттер) болуы керек.
- Кем дегенде бір шарт, бір цикл және бір айнымалы орындалу керек.
- Бағдарламада кем дегенде бір дыбыс болуы керек.
GO TO FULL VERSION