برنامه نویسی یا کدنویسی کامپیوتری ترکیبی از توالی دستورات است آموزش برنامه نویسی برای کودکان که برنامه نامیده می شود که رایانه ها می توانند برای انجام وظایف از آنها پیروی کنند.[1][2] این شامل طراحی و پیاده سازی الگوریتم ها، مشخصات گام به گام رویه ها، با نوشتن کد در یک یا چند زبان برنامه نویسی است. برنامه نویسان معمولاً از زبان های برنامه نویسی سطح بالا استفاده می کنند که برای انسان راحت تر از کد ماشین قابل درک است که مستقیماً توسط واحد پردازش مرکزی اجرا می شود. برنامه نویسی ماهر معمولاً به تخصص در چندین موضوع مختلف از جمله دانش حوزه برنامه، جزئیات زبان های برنامه نویسی و کتابخانه های کد عمومی، الگوریتم های تخصصی و منطق رسمی نیاز دارد.
وظایف کمکی همراه و مرتبط با برنامه نویسی شامل تجزیه و تحلیل نیازمندی ها، آزمایش، اشکال زدایی (بررسی و رفع مشکلات)، پیاده سازی سیستم های ساخت و مدیریت مصنوعات مشتق شده، مانندآموزش برنامه نویسی برای کودکان کد ماشین برنامه ها است. در حالی که اینها گاهی اوقات برنامه نویسی در نظر گرفته می شوند، اغلب اصطلاح توسعه نرم افزار برای این فرآیند کلی بزرگتر استفاده می شود - با عبارات برنامه نویسی، پیاده سازی، و کدگذاری برای نوشتن و ویرایش کد فی نفسه. گاهی اوقات توسعه نرم افزار به عنوان مهندسی نرم افزار شناخته می شود، به خصوص زمانی که از روش های رسمی استفادهآموزش برنامه نویسی برای کودکان می کند یا از یک فرآیند طراحی مهندسی پیروی می کند.
تاریخ
آدا لاولیس، که یادداشت هایش به انتهای مقاله لوئیجی منابریا اضافه شد، شامل اولین الگوریتمی بود که برای پردازش توسط موتور تحلیلی چارلز بابیج طراحی شده بود. او اغلب به عنوان اولین برنامه نویس کامپیوتر تاریخ شناخته می شود.
همچنین ببینید: برنامه های کامپیوتری § تاریخچه، برنامه نویس § تاریخچه و تاریخچه زبان های برنامه نویسی
دستگاه های قابل برنامه ریزی قرن هاست که وجود داشته اند. در اوایل قرن نهم،آموزش برنامه نویسی برای کودکان یک ترتیبدهنده موسیقی قابل برنامهریزی توسط برادران ایرانی بانو موسی اختراع شد که یک دستگاه فلوت مکانیکی خودکار را در کتاب دستگاههای مبتکر توصیف کردند.[3][4] در سال 1206، مهندس عرب الجزاری یک دستگاه درام قابل برنامه ریزی را اختراع کرد که در آن یک خودکار مکانیکی موسیقی می توانست برای نواختن ریتم ها و الگوهای طبل مختلف، از طریق میخ ها و بادامک ها ساخته شود.[5][6] در سال 1801، دستگاه بافندگی ژاکارد میتوانست با تغییر «برنامه» بافتهای کاملاً متفاوتی تولید کند - یک سری کارتهای مقوایی با سوراخهایی روی آنها.
الگوریتم های کدشکن نیز قرن هاست که وجود داشته اند. در قرن نهم، الکندی، ریاضیدان عرب، یک الگوریتم رمزنگاری را برای رمزگشایی کد رمزگذاری شده در کتاب دستنوشته ای در مورد رمزگشایی پیام های رمزنگاری شده توصیف کرد. او اولین توصیف را از تحلیل رمز با استفاده از تحلیل فرکانس، اولین الگوریتم آموزش برنامه نویسی برای کودکانشکستن کد، ارائه کرد.[7]
اولین برنامه کامپیوتری به طور کلی به سال 1843 مربوط می شود، زمانی که ریاضیدان آدا لاولیس الگوریتمی را برای محاسبه دنباله ای از اعداد برنولی منتشر کرد که قرار بود توسط موتور تحلیلی چارلز بابیج انجام شود.[8]
دادهها و دستورالعملها زمانی روی کارتهای پانچ خارجی ذخیره میشدند، که به ترتیب نگهداری میشدند و در عرشههای برنامه مرتب میشدند.
در دهه 1880، هرمان هولریث مفهوم ذخیره سازی داده ها را به آموزش برنامه نویسی برای کودکانشکل قابل خواندن توسط ماشین ابداع کرد.[9] بعداً یک تابلوی کنترل (برد پلاگین) به جدولساز نوع اول او در سال 1906 اجازه داد تا برای کارهای مختلف برنامهریزی شود، و در اواخر دهه 1940، تجهیزات ضبط واحد مانند IBM 602 و IBM 604 توسط پانلهای کنترل در یک مشابه برنامهریزی شدند. مانند اولین کامپیوترهای الکترونیکی. با این حال، با مفهوم کامپیوتر برنامه ذخیره شده در سال 1949، هر دو برنامه و داده ها به یک شکل در حافظه کامپیوتر ذخیره و دستکاری شدند.[10]
زبان ماشین
کد ماشین زبان برنامه های اولیه بود که در مجموعه دستورات یک ماشین خاص نوشته می شد، اغلب به صورت نماد دودویی. زبانهای اسمبلی به زودی توسعه یافتند که به برنامهنویس اجازه میداد دستورالعملها را در قالب متنی (مثلاً ADD X، TOTAL) با اختصارات برای هر کد عملیات و نامهای معنیدار برای تعیین آدرسها مشخص کند. با این حال، از آنجایی که یک زبان اسمبلی کمی بیشتر از یک نماد متفاوت برای یک زبان ماشین است، آموزش برنامه نویسی برای کودکاندو ماشین با مجموعههای دستورالعمل متفاوت نیز زبانهای اسمبلی متفاوتی دارند.
کنترل پنل سیمی برای ماشین حسابداری IBM 402. سیمها جریانهای پالس را از کارتخوان به شمارندهها و دیگر منطقهای داخلی و در نهایت به چاپگر متصل میکنند.
زبان های کامپایلر
همچنین ببینید: کامپایلر
زبانهای سطح بالا، فرآیند توسعه یک برنامه را سادهتر و قابل فهمترآموزش برنامه نویسی برای کودکان کرده و کمتر به سختافزار زیرین محدود میشوند. اولین ابزار مرتبط با کامپایلر، سیستم A-0، در سال 1952 [11] توسط گریس هاپر، که اصطلاح "کامپایلر" را نیز ابداع کرد، توسعه یافت.[12][13] FORTRAN، اولین زبان سطح بالا که به طور گسترده موردTeaching programming for children استفاده قرار گرفت و دارای پیاده سازی کاربردی بود، در سال 1957 منتشر شد، [14] و بسیاری از زبان های دیگر.