Гарварддын программалоонун негиздери боюнча лекцияларын көрө элек болсо, бул жерге кириңиз: https://javarush.com/quests/QUEST_HARVARD_CS50 =)
Киришүү. CS50 курсунун структурасы
Достор! Кириш сөзүндө биз CS50 түзүмү жөнүндө эсиңизге салабыз (же ким болсо да айтып беребиз). Курс 12 жумага созулат. Ар жумада эки лекция, ошондой эле ар турдуу семинарлар жана тушундуруулер еткерулет. Бул сыяктуу макалаларды лекциялар даяр болгондон кийин жарыялайбыз. Анда лекциялардын кыскача баяндамасы, «кыскача» жазуулар жана кошумча маалыматтар, ошондой эле практикалык тапшырмалардын котормолору камтылат. Нөл жумалык лекциялар төмөнкү маселелерди камтыды:- Экorк санауу системасы.
- ASCII
- Алгоритмдер жана алгоритмдик ой жүгүртүү
- Компиляторлор
- Тил
- Логикалык туюнтмалар
- Шарттар
- Циклдер
- Өзгөрмөлөр
- Функциялар
- Массивдер
- Агымдар
- Окуялар
- Маалыматты кантип санарип көрсөтүүгө болорун түшүнүңүз.
- Негизги программалык түзүлүштөрдү жана түшүнүктөрдү үйрөнүңүз.
- Scratch аркылуу өзүңүздүн анимацияңызды, оюнуңузду же интерактивдүү аракетиңизди түзүңүз.
- Досторуңузга таасирлентүү =).
CS50 0-жума (1-2-лекция): эскертүүлөр
Алгоритмдер
Сиз буга чейин лекцияларды көрүп, алгоритм маселелердин чечorшин (ар кандай, математикалык же “N метро станциясына кантип баруу керек”) кадамдарга бөлөрүн түшүндүңүз деп үмүттөнөбүз. Болгондо да, ар бир кадам чектүү убакыттын ичинде бүтүшү керек жана кадамдардын белгилүү бир саны болушу керек. Ошондой эле, кийинки кадам мурункусунан көз каранды. Алгоритмдер жөнүндө көбүрөөк окуй аласыз, мисалы, бул жерден . Эгерде сиз англис тorн билсеңиз, анда бул жерде Дэвид Малан тарабынан жасалган сонун TED анимациясы: https://youtu.be/6hfOvs8pY1k Жалпысынан видеодогу маалымат лекцияда кайталанган =).Экorк санауу системасы
Бизде 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 экorк системада = 10 7 10 =111 2 Экorктен ондукка которууну үйрөнүңүз. Сиз мунун кантип жасалганын түшүнгөн чыгарсыз - биз жөн гана эң оң жактагы цифрадан баштап сандын цифрасын алып, аны анын цифрасына туура келген даражага негизге көбөйтөбүз жана ар бир цифрага баарын кошобуз. Мисал: 101101 экorк сандын ондук аналогун табалы 2 Эң оң жагы = 1*2 0 Кийинки нөл = 0*2 1 Оңдон үчүнчүсү = 1*2 2 Төртүнчүсү = 1*2 3 .. жана башкалар _ _ _ _ _ _ _ _ _ _ _ _ _ 10 Бир катар тизилген сегиз лампаны элестетсең. Алардын ар биринин өзүнүн которгучу бар. Электр лампаларынын ар бири разряд болуп саналат. Эмнени элестете аласыз, эң биринчи лекцияны эстеңиз (ал жерде мындай түзүлүш бар) же бул жерде сиз үчүн виджет: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Play аны менен, аны экorк системасын "сезип" машыгуу. Ондук системадан экorк системага которуу. Бул жерде да баары өтө жөнөкөй, эгер маңызын түшүнсөңүз. Бул жерде бизде 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 . Эгер күтүлбөгөн жерден бир нерсе түшүнүксүз болуп калса, Wikibook'тан кененирээк окусаңыз болот, ал эми англис тorнде күчтүү болсоңуз, бул жерде лекцияга кичинекей кошумча.ASCII
Компьютер нөлдөрдү жана бирди гана түшүнөт жана анын эс тутумун сиз жогоруда көргөндөй, өчүргүчтөрү бар лампочкалардын өтө узун саптары катары көрсөтсө болот. Биз компьютерде сандарды кантип көрсөтүүнү түшүнөбүз. Калган маалымат жөнүндө эмне айтууга болот? Каттар, сүрөттөр? Англис алфавитинде 26 тамга бар дейли. Башкача айтканда, теориялык жактан биз 0дөн 25ке чейинки сандары бар тамгаларды экorк системада гана көрсөтө алабыз. Төмөнкү суроо туулат: бизде кичине же чоң тамга бар экенин кантип түшүнсөк болот? Тыныш белгилери жөнүндө эмне айтууга болот? мейкиндиктер сыяктуу көрүнбөгөн белгилер? Кыскасы, бизге codeдоо системасы керек, Cap! 1960-жылдары символдорду codeдогон көптөгөн түрдүү схемалар бар болчу. Бирдиктүүлүктүн жоктугу көйгөй жаратып, 1963-жылы Американын Стандарттар Институту, ANSI, ASCII (American Standard Code for Information Interchange) codeдоо схемасын иштеп чыккан жана киргизген. Ар бир ASCII символу жети биттен же жети биттен турат, алардын ар бири 0 же 1 маанисин ала алат. 7 бит экorк системада 0дөн 127ге чейинки сандарды кармай алат, демек бизде символдорду codeдоо үчүн 128 сан бар. Бул англис тorн жазууну 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. Сизге бул визуалдык программалоо тor жана анын негизги буйруктары тууралуу лекцияда айтылган. Scratch'ти өзүңүз сынап көрүү үчүн, шилтемени басып , "Кошулуу" баскычын басыңыз. Катталгандан кийин, сиз онлайн программалоону баштасаңыз болот. Ооба, демек, бүгүнкү күндө Scratch жарым-жартылай орусташтырылган. Бирок жардам дагы эле англис тorнде. Кааласаңыз, сиз ойноп, ошондой эле лекцияда көрсөтүлгөн студенттик долбоорлордун codeун карай аласыз. Бул жерде Пикачу кондитеринин кармалышы . Же таштандыларды ар кандай контейнерлерге сорттоо долбоору: https://scratch.mit.edu/projects/71161586/ Дэвид жана компания сизден мындай татаал долбоорлорду жасай албайм деп ойлосоңуз, кабатыр болбоңуз: бул деңгээл кандайдыр бир чеберчorкти талап кылат. .Көнүгүү
-
Scratch'те болуп жаткан процесстерди жакшыраак түшүнүү үчүн, бул жерден бир нече долбоорлордун баштапкы codeун жүктөп алсаңыз болот . Ойноп ойноп көрүңүз. Башка бирөөнүн codeун үйрөнүү абдан пайдалуу. Бул сиз өзүңүз жете элек программалардын ичинде эмне бар экенин билүүнүн эң жакшы жолдорунун бири. Бул тиркемелер кантип иштээрин түшүнө баштагандан кийин, коопсуз уланта аласыз.
-
Эми өзүңүз бир нерсе жасоого убакыт келди. Кыйынчылык, ошондой эле нөлдөн баштап чакан долбоорду ишке ашыруу менен бирге көңүл ачуу. Бул анимация, оюн, интерактивдүү аракет болушу мүмкүн.
- Программада жок дегенде эки спрайт (каармандар, сүрөттөр) болушу керек жана алардын бири мышык болбошу керек =).
- Жок дегенде үч скрипт (аракет) болушу керек.
- Жок дегенде бир шарт, бир цикл жана бир өзгөрмө аткарылышы керек.
- Программага жок дегенде бир үн киргизorши керек.
GO TO FULL VERSION