Кіріспе

Білім беру бағдарламалау тілі – көбінесе оқу құралы ретінде, ал жұмыс атқаруға арналған бағдарламалар жазу құралы ретінде аз жобаланған бағдарламалау тілі.

Ассамблея тілдері

Бастапқыда компьютерлерді бағдарламалаудың жалғыз жолы машиналық код болды. Ассамблер тілі келесі қолданылған тіл болды, ол бүгінде қолданылатын компьютерлік тілдердің ең көне отбасыларының бірі саналады. Көптеген диалекттер мен іске асырулар бар, әдетте әр компьютерлік процессор архитектурасы үшін. Бұл өте қарапайым және төменгі деңгейдегі бағдарламалау тілі ретінде танылады. Ол типтелмеген және қатаң болғандықтан жұмыс істеу қиын тілдердің бірі. Білім беру мақсатында бірнеше оңайлатылған диалекттер бар. Төменгі деңгейдегі тілдер нақты процессор архитектурасы үшін жазылуы керек және жазылған процессорға сілтеме жасамай, оқшауланған түрде жазылуы немесе оқытылуы мүмкін емес. Жоғары деңгейдегі тілдерден өзгеше, білім беру мақсатындағы ассамблер тілін қолдану үшін процессордың бейнеленуі қажет, ол виртуалды немесе физикалық болуы мүмкін. Ассамблер компьютер процессорларының негізгі жұмыс істеуін үйрену үшін қолданылады. Little Man Computer (LMC) – бұл қарапайым фон Нейман архитектурасы компьютердің оқулық моделі, ол қазіргі заманғы компьютерлердің барлық негізгі мүмкіндіктерін қамтиды. Оны машиналық кодпен (әдетте ондық) немесе ассамблер тілінде бағдарламалауға болады. Ол кішкентай бөлмеде құлыпталған кішкентай адам туралы тұжырымдамаға негізделген. Бөлменің бір жағында жад ретінде 100 пошта жәшігі орналасқан, әрқайсысы үш таңбалы нұсқау немесе дерек сақтай алады. Бөлменің екінші жағында INBOX және OUTBOX деп белгіленген екі пошта жәшігі орналасқан, олар деректерді қабылдайды және жібереді. Бөлменің ортасында екі функциялы (қосу және алу) калькулятор – Аккумулятор және қайта орнатылатын санаушы – Бағдарламалық санаушы бар жұмыс аймағы орналасқан. Санаушы есік күзетушіге ұқсас, ол нысанға кірген адамдардың санын санайды; ол 1-ге санап шығады немесе 0-ге қайта орнатылады. Фон Нейман архитектурасы бойынша жадта нұсқаулар мен деректер сақталады. Пайдаланушы деректерді пошта жәшіктеріне жүктейді, содан кейін кішкентай адамды орындауды бастауға белгілейді. Next Byte Codes (NBC) – Lego Mindstorms NXT бағдарламаланатын кірпіштерін бағдарламалауға арналған ассамблер синтаксисі бар қарапайым тіл. Командалық жол компиляторы NXT үйлесімді машиналық кодты шығарады және Windows, Mac OS X және Linux жүйелерін қолдайды. Little Computer 3 (LC 3) – ассамблер тілі, оның нұсқаулар жиынтығы қарапайым, бірақ орташа деңгейдегі күрделі ассамблер бағдарламаларын жазу үшін қолданылуы мүмкін және C компиляторлары үшін теориялық тұрғыдан тиімді мақсат болып табылады. Бұл x86 ассамблерінен қарапайым, бірақ күрделі тілдердегіге ұқсас көптеген мүмкіндіктерге ие. Бұл мүмкіндіктер оны бастауыш колледж студенттеріне негізгі бағдарламалау және компьютерлік архитектураны оқыту үшін пайдалы етеді, бұл оның ең көп таралған қолданылуы. DLX – MIPS және Berkeley RISC дизайндарының негізгі жасаушылары жасаған қысқартылған нұсқаулар жиынтығының (RISC) процессор архитектурасы, RISC дизайнының екі эталондық мысалы. DLX – бұл қарапайым 32 биттік жүктеу/сақтау архитектурасы бар тазартылған, оңайлатылған MIPS. Ол колледж деңгейіндегі компьютерлік архитектура курстарында кеңінен қолданылады. MIX және MMIX – Дональд Кнуттың «Компьютерлік бағдарламалау өнері» (TAOCP) монографиясында қолданылған гипотетикалық компьютерлер. MIX компьютерлік жүйелері негізгі және түсінікті машина тілін қолдану арқылы адамдарға компьютердің ішінде не бар екенін түсіндіруге арналған. Қарапайымдылығына қарамастан, MIX жүйесі жоғары өнімділігі бар жалпы мақсаттағы компьютерлерде кездесетін күрделі міндеттерді орындай алады. MIX – екілік және ондық сандарда бағдарламаланатын гибрид; оған арналған бағдарламалардың көпшілігі екі форматты да қолдайды. MIX және MMIX бағдарламалық жасақтамаларын Кнут жасады және оларды тегін қолжеткілі етті. Екі эмулятордың бірнеше нұсқасы бар. MIX – 1960 жылдардағы компьютер стилі. Оның орнына MMIX пайда болды, ол жаңа заманауи компьютерлік архитектура, 64 биттік RISC нұсқаулар жиынтығы архитектурасы (ISA). MMIX үшін Кнут MIPS және Alpha ISA архитекторларымен бірлесіп жұмыс істеді.

С негізіндегі

Ch – C/C++ тілдерінде математика, информатика және бағдарламалауды үйренуге арналған, компьютер ғылымдарына маманданбаған студенттерге көмектесу үшін жасалған интерпретатор. Ол C тілін сандық, 2D/3D графикалық кескіндеу және сценарийлік мүмкіндіктермен толықтырады.

Java-ға негізделген

NetLogo, Java және Scala тілдерінде жазылған, ғылыми модельдерді, әсіресе агенттік модельдеуді құру және зерттеуге арналған даму ортасы. Ол ғылыми зерттеулерде (NetLogo қолданылған ғылыми мақалалар) және білім беру саласында, соның ішінде бастауыш, орта мектептерде, университеттер мен мұражайларда кеңінен қолданылады.

Lisp-ге негізделген

Lisp – бүгінде қолданылып жүрген бағдарламалау тілдерінің екінші ескі түрі, сондықтан оның көптеген диалектілері мен түрлі қиындық деңгейлері бар іске асырылымдары көп. Lisp бастапқыда компьютерлік бағдарламалар үшін қолданылатын практикалық математикалық нотация ретінде жасалған, ол лямбда-есептеуіне (lambda calculus) негізделген, бұл оны есептеу теориясын оқытуға ерекше қолайлы етеді. Ең ерте тілдердің бірі ретінде Lisp компьютерлік ғылымда көптеген жаңа идеяларды енгізді, соның ішінде ағаш тәрізді дерек құрылымдарын, автоматты жад басқаруды, динамикалық типтеуді, объектіге бағытталған бағдарламалауды және өзін-өзі компиляциялайтын компиляторды – барлығы компьютерлік ғылымды үйрену үшін пайдалы. LISP атауы «Тізімді өңдеу тілі» деген сөздерден шыққан. Бүркенді тізімдер (linked lists) тілдің маңызды дерек құрылымдарының бірі болып табылады, ал Lisp коды тізімдерден тұрады. Осылайша, Lisp бағдарламалары дерек құрылымы ретінде бастапқы кодты өңдей алады, бұл бағдарламашыларға жаңа синтаксис немесе тіпті Lisp-ке енгізілген арнайы домендік тілдерді жасауға мүмкіндік беретін макрожүйелерді тудырады. Сондықтан Lisp тілді жобалауды үйрену және қолданушы тілдерді құру үшін пайдалы. Оқудың ұтымды жолы Logo тілінен басталып, содан кейін Scheme немесе newLISP сияқты білім беруге бағытталған нұсқаларға, одан кейін Common Lisp сияқты кәсіби нұсқаға өту болады. Logo – балаларды бағдарламалаумен таныстыру үшін арнайы жасалған тіл. Logo тілін үйренудің алғашқы бөлігі 1969 жылдан бері қолданылып келе жатқан «құба графикасымен» (turtle graphics) (құба роботтарынан алынған) айналысады. Қазіргі заманғы іске асыруларда, абстрактілі сурет салу құрылғысы – «құба» (turtle) балаларға бағдарламалауды қызықты ету үшін қолданылады, өйткені ол құба графикасын салуға баса назар аударады. Logo тілінің жасаушыларының бірі Сеймур Паперт конструктивизмнің, яғни конструктивистік оқыту теориясының маңызды ойшылы болды. Паперт, егер балалар есептеу мәдениетін қабылдаса, жазу сияқты іс-әрекеттерді өте жас кезеңде табиғи түрде үйрене алатынын айтты. Осылайша, Logo бағдарламалау және есептеу тұжырымдамаларын оқыту үшін ғана емес, сонымен қатар технология үстемдік танытатын мәдениетте баланың жан-жақты дамуына көмектесу үшін жасалған. «Интеллектуалды дамуды ерте бастаудан гөрі маңыздысы – ұзақ уақыт бойы тәуелділіктен құтылу, білімді басқа, күшті адам берген нәрсе ретінде қарастыруды үйрену. Мұндай балалар өздерін немесе қоғамды оларды интеллектуалды жағынан әлсіз деп анықтауға рұхсат етпейді».

Кішкене әңгімеге негізделген

"Бір балаға бір ноутбук" жобасы аясында Smalltalk тіліне негізделген бірнеше тілдер әзірленді, олардың әрқайсысы келесісіне кіріспе ретінде құрылған. Құрылымы: Scratch → Etoys → Squeak → кез келген Smalltalk. Әрқайсысы графикалық ортаны ұсынады, оны балаларға ғана емес, сонымен қатар физика мен математика симуляцияларын, әңгіме айту жаттығуларын және т.б. үйрету үшін пайдалануға болады, бұл конструктивтік оқу арқылы жүзеге асырылады. Smalltalk және Squeak ондаған жылдар бойы қолданылып келе жатқан және жоғары бағаланған толыққанды қосымшаларды әзірлеу тілдерін қамтиды; Scratch – балаларға арналған оқу құралы. Scratch – Squeak тіліне негізделген және оның үстінде іске асырылған визуалды тіл. Оның мақсаты – балаларға бағдарламалау тұжырымдамаларын үйрету және оларға ойындар, бейнелер мен музыка жасауға мүмкіндік беру. Scratch-тағы барлық интерактивті нысандар, графика және дыбыстар жаңа бағдарламаға оңай импортталып, жаңа тәсілдермен біріктірілуі мүмкін. Осылайша, бастаушылар жылдам нәтижелерге қол жеткізе алады және одан әрі тырысуға ынталанады. Scratch қауымдастығы 3 000 000-нан астам жобаны әзірлеп, жүктеді. Оны MIT Media Lab-тегі Lifelong Kindergarten тобы әзірледі. Etoys компьютер экранында әрекет ететін бағдарламаланатын виртуалды объектілер идеясына негізделген. Etoys соңғы пайдаланушылар жасаған көптеген объектілер үшін қарапайым, қуатты скриптпен басқарылатын модельмен жабдықталған, мультимедиалық контентке толы авторлық ортаны ұсынады. Онда 2D және 3D графика, суреттер, мәтін, бөлшектер, презентациялар, веб-беттер, бейнелер, дыбыс және MIDI, басқа Etoys пайдаланушыларымен жұмыс үстелін нақты уақытта бөлісу мүмкіндігі бар, соның арқасында Интернет арқылы көптеген түрдегі интерактивті оқыту мен ойынға қатысуға болады. Ол көп тілді және АҚШ, Еуропа, Оңтүстік Америка, Жапония, Корея, Үндістан, Непал және басқа да елдерде сәтті қолданылуда. Бағдарлама 9-12 жас аралығындағы балаларға арналған. Squeak – Smalltalk тілі мен ортасының қазіргі заманғы, ашық бастапқы коды бар, толыққанды іске асырылуы. Smalltalk – объектіге бағдарланған, динамикалық типтеуге ие, рефлексивті бағдарламалау тілі, ол "адам-компьютер симбиозы" арқылы бейнеленген есептеудің "жаңа әлеміне" негіз салу үшін жасалған. Lisp сияқты, ол суреттерге негізделген тұрақтылыққа ие, сондықтан тілдің ішіндегі барлық нәрсені өзгертуге болады (Smalltalk#Reflection бөлімін қараңыз). Ол индустрияға үлкен әсер етті, объектіге бағдарланған бағдарламалау және уақытында компиляциялау тұжырымдамаларын енгізді. Squeak – мультимедиалық қосымшалар, білім беру платформалары және коммерциялық веб-қосымшаларды әзірлеуді қамтитын көптеген жобалар үшін платформа болып табылады. Squeak жоғары дәрежеде портативті және оңай жөндеуге, талдауға және өзгертуге арналған, өйткені оның виртуалды машинасы толықтай Smalltalk тілінде жазылған.

Паскаль

Паскаль – білім беруді ескере отырып жасалған ең танымал тіл. 1970 жылдардың соңынан 1980 жылдардың соңына дейін АҚШ және Еуропада студенттерге бағдарламалауды үйрету үшін компьютерлік ғылымға кіріспе курстарында басты таңдау болып табылды. Одан бері оның нақты қолданыстағы мақсаты кеңейді, сондықтан оны тек оқу тілі деп қарау қазіргі таңдағы мәселе тудырып отыр.

Басқа

CircuitPython – интерактивті электроника және білім беруге арналған Python тілінің бастаушыларға бағытталған нұсқасы. Rapira – Кеңес Одағында мектептерде бағдарламалауды үйрету үшін жасалған, қарапайым интерактивті даму ортасы бар, ALGOL-ға ұқсас процедуралық бағдарламалау тілі. Src:Card – білім берулік карта ойынына кіріктірілген тактильдік офлайн бағдарламалау тілі.

Балалар

AgentSheets және AgentCubes – 2D/3D ойындар мен симуляцияларды жасауға арналған екі есептеу ойлау құралы. Авторлық жұмыс жұмыс үстеліндегі немесе браузерлік қосымшаларда жүзеге асырылады және HTML5 браузерлерінде, оның ішінде мобильді браузерлерде ойнатылатын 2D/3D ойындарды құруға мүмкіндік береді. Alice – балаларға оқиғаларға бағытталған объектілі бағдарламалауды үйретуге арналған тегін бағдарламалық қамтамасыз ету. Бағдарламашылар заманауи IDE интерфейсін пайдаланып, сүйреп тастау арқылы интерактивті оқиғаларды жасайды. Мақсатты аудиториясы – жоғары оқу орындарына жаңа түсетін студенттер, бірақ компьютерлік тәжірибесі бар балалардың көпшілігі оны қызықты және пайдалы деп табады. Story Telling Alice – кішкентай балаларға арналған Alice нұсқасы, ол оқиға айтуға ерекше назар береді. Blockly – ашық, веб-негізгі, графикалық тіл, онда пайдаланушылар қосымша жасау үшін блоктарды бірге сүйреп қоя алады; жазу қажет емес. Оны Google әзірледі. Қосымша ақпарат жобаның бас бетінде қолжетімді. CiMPLE – балаларға арналған робот жиынтығын бағдарламалауға арналған визуалды тіл. Ол C-ге DSL ретінде негізделген. ThinkLabs, үндістандық робототехникалық білім беру стартапы, оны iPitara Robotic жиынтығы үшін жасады. Бұл тіл C тіліне өте ұқсас. Үндістанда 5000-нан астам студент iPitara жиынтығын сатып алып, оны CiMPLE арқылы бағдарламалады. Қосымша ақпарат CiMPLE Original Developers Weblog және ThinkLabs сайтында бар. Physical Etoys – Etoys-дың тегін, ашық кодты кеңейтімі. Оның философиясы – «балаларға нақты әлемді модельдеуге және бағдарламалауға көмектесу, осылайша оны жақсырақ түсіну». Ол Windows, Linux және Sugar жүйелерінде жұмыс істейді. Physical Etoys блокты скрипт жүйесі арқылы Lego NXT, Arduino тақталары, Sphero, Kinect, Wiimote джойстигі және басқа да электрондық құрылғылардың өзара әрекеттесуіне мүмкіндік береді. Hackety Hack – Ruby негізіндегі тегін орта, бағдарламалауды жаңадан бастаушыларға, әсіресе жасөспірімдерге оңай үйренуді мақсат етеді. Karel, Karel++, және Karel J. Robot – көшелердің тікбұрышты торынан тұратын қаладағы қарапайым роботты басқаруға арналған, жаңадан бастаушыларға арналған тілдер. Karel өзінің жеке тілі болса, Karel++ – C++ тілінде іске асырылған Karel нұсқасы, ал Karel J. Robot – Java-да іске асырылған Karel нұсқасы. Kodu – қарапайым және толыққанды иконаға негізделген тіл. Ол Microsoft Research-тен кішкентай балаларды, әсіресе қыздарды технологияны пайдалануға тарту мақсатымен жоба ретінде құрылған. Бағдарламалар беттерден тұрады, олар ережелерге бөлінеді, олар шарттар мен әрекеттерге бөлінеді. Шарттар бір уақытта бағаланады. Kodu тілі ойын әзірлеуге арналған және ойын сценарийлерінен алынған арнайы примитивтерді ұсынады. Бағдарламалар физикалық терминдермен беріледі, кейіпкерлердің мінез-құлқын бақылау үшін көру, есту және уақыт сияқты ұғымдар қолданылады. Kodu құралы үш түрде қолжетімді: PC-де тегін бета-нұсқада және академиялық формаларда, сондай-ақ арзан Xbox 360 Live жүктелімі ретінде. Logo – 1967 жылы Дэниел Г. Боброу, Уолли Фёрзиг, Сеймур Паперт және Синтия Соломон жасаған балаларға арналған білім беру тілі. Бүгінде бұл тіл негізінен «құба графигін» қолдану үшін есте қалады, онда қозғалыс және сурет салу командалары экранда немесе «құба» деп аталатын кішкентай роботпен сызықтық графиканы шығарады. Тіл бастапқыда Lisp-ке қатысты бағдарламалау тұжырымдамаларын үйрету үшін және кейін Паперт «денелік ойлау» деп атағанды іске асыру үшін жасалды, онда студенттер қиялдану арқылы құбаның қозғалысын түсіне алады (және болжап, ойлана алады). Lego Mindstorms – электр қозғалтқыштары, сенсорлары, Lego кірпіштері және Lego Technic бөлшектері (орындар, осьтер және арқалықтар) бар бағдарламаланатын кірпіштерді біріктіретін Lego жиынтықтарының желісі. Mindstorms оқу ойыншықтарында қолданылатын бағдарламаланатын сенсорлық блоктардан пайда болды. Lego Mindstorms-тің алғашқы бөлшек сауда нұсқасы 1998 жылы шығарылды және Robotics Invention System (RIS) ретінде коммерциялық сатылымға шығарылды. Қазіргі нұсқасы 2006 жылы Lego Mindstorms NXT ретінде шығарылды. Mindstorms үшін бағдарламалау тілдерінің кең ауқымы қолданылады, Logo-дан BASIC-ке дейін Java, Smalltalk және C-нің туындыларына дейін. Mindstorm бағдарламалауға деген көзқарасы қазір компьютерлік клубтар деп аталатын арнайы физикалық сайттарға ие. Mama – оқушылардың ана тілінде барлық тіл элементтерін ұсыну арқылы бағдарламалауды бастауға көмектесу үшін жасалған білім беру объектілі бағдарламалау тілі. Mama тілі бірнеше тілде қолжетімді, LTR және RTL тілдік бағытты қолдауымен. Mama-ның жаңа нұсқасы Carnegie Mellon-ның Alice әзірлеу ортасының негізінде салынды, 3D сахна объектілерін скрипттеуді қолдайды. Бұл Mama-ның жаңа нұсқасы жас студенттерге 3D анимациялар мен ойындарды құру арқылы бағдарламалауды бастауға көмектесу үшін жасалды. Білім беру бағдарламалау принциптері туралы құжат Mama-ның жобалық ескертулерін түсіндіреді. RoboMind – бағдарламалауды жаңадан бастаушыларға роботты бағдарламалауға мүмкіндік беретін қарапайым білім беру ортасы. Ол танымал бағдарламалау техникаларын, сондай-ақ робототехника мен жасанды интеллектті ұсынады. Роботты араб, қытай, голланд, неміс, ағылшын және швед тілдерінде бағдарламалауға болады. Scratch – анимациялық оқиғалар мен ойындар жасауға арналған блоктарға негізделген графикалық тіл. Snap! – MIT-дің Scratch-інен алынған, JavaScript-те іске асырылған, тегін, ашық кодты блоктарға негізделген графикалық тіл. Snap! жаңа блоктар жасау мүмкіндігін қосады және анонимді функцияларды пайдалануға мүмкіндік беретін бірінші дәрежелі функцияларға ие. Оны UC Berkeley белсенді түрде қолдайды. Кодтың барлығы GitHub-та орналасқан. Stagecast Creator – демонстрация арқылы бағдарламалауға негізделген визуалды бағдарламалау жүйесі. Пайдаланушылар жүйеге не істеу керектігін экрандағы белгішелерді жылдыру арқылы көрсетеді, ол объектілер (кейіпкерлер) үшін ережелерді жасайды. Пайдаланушылар түсініктерді модельдейтін екі өлшемді симуляцияларды, көп деңгейлі ойындарды, интерактивті оқиғаларды және т.б. жасай алады. Stencyl – білім беру және коммерция үшін қолданылған визуалды бағдарламалау және ойын әзірлеу IDE. Ол MIT-дің Scratch визуалды тіліне (жоғарыда тізілген) негізделген код блоктарын пайдаланады. Ол сонымен қатар өзінің API және Haxe тілі арқылы қалыпты жазылған кодты (жеке немесе аралас) пайдалануға мүмкіндік береді. ToonTalk – бейне ойын сияқты көрінетін тіл және орта. Есептеу абстракциялары роботтар, үйлер, жүк көліктері, құстар, ұялар және қораптар сияқты нақты аналогтарға бейімделген. Ол үлкен бүтін сандарды және нақты рационалды сандарды қолдайды. Ол бірмезгілді шектеулермен бағдарламалауға негізделген.

Университет

Curry – ең маңызды декларативтік бағдарламалау парадигмаларын, атап айтқанда функционалдық бағдарламалауды (ішкі өрнектер, жоғары деңгейлі функциялар, жалқау бағалау) және логикалық бағдарламалауды (логикалық айнымалылар, толық емес дерек құрылымдары, кіріктірілген іздеу) біріктіруге арналған оқыту тілі. Сонымен қатар, ол интеграцияланған функционалдық-логикалық тілдер саласында дамытылған екі маңызды операциялық қағиданы: "қалдыққа келтіруді" және "қысқартуды" біріктіреді. Flowgorithm – бағдарламаларды ағын диаграммалары арқылы жазу және орындауға арналған графикалық құрал. Бұл тәсіл нақты бір тілдің синтаксисіне емес, алгоритмге баса назар аудару үшін жасалған. Ағын диаграммасын C#, Java, Visual Basic NET және Python сияқты бірнеше маңызды тілдерге түрлендіруге болады. M2001 – қазіргі дискретті математикадан классикалық үздіксіз математикаға дейін математикалық алгоритмдерді жасау және көрсетуге арналған модульдік математикалық тіл. Ол категориялық теорияға негізделген семантикалық құрылымда салынған, ал синтаксисі Pascal немесе Modula 2 сияқты. Ол тек білім беру мақсатында жасалған, сондықтан тиімділік пен енгізудің қарапайымдығы оның дамуындағы жалпылық пен қолданылу саласынан гөрі кем маңызды. Ол бірінші курс студенттеріне математиканың формалды алгоритмдік негізін қалыптастыруда маңызды рөл атқару үшін құрылған. Oz – компьютерлік теорияны оқытуға арналған тіл. Ол бір тілдегі көптеген маңызды парадигмаларды қолдайды, сондықтан студенттер бірнеше синтаксисті үйренбей парадигмаларды үйрене алады. Oz логика, функционалдық (жалқау және белсенді), императивтік, объектіге бағытталған, шектеулі, таратылған және параллель бағдарламалауды қоса алғанда, негізгі бағдарламалау парадигмаларының көптеген ұғымдарын қарапайым және жақсы құрылымдалған түрде қамтиды. Ол компьютерлік бағдарламалаудың ұғымдары, техникалары және үлгілері атты канондық оқулыққа және Mozart бағдарламалау жүйесі деп аталатын тегін қолжетімді стандартты іске асыруға ие.