برنامه‌سازی رایانه‌ای

context: برنامه‌سازی رایانه‌ای یا برنامه‌نویسی رایانه‌ای (به انگلیسی: computer programming) همان فرایند طراحی و ساخت یک برنامه رایانه‌ای اجراپذیر برای به‌دست‌آوردن یک نتیجه رایانشی خاص، یا انجام یک عمل خاص است. برنامه‌نویسی شامل عمل‌هایی مثل: تحلیل، ایجاد الگوریتم‌ها، رخ‌نمانگاری دقت الگوریتم‌ها و مصرف منابع، و پیاده‌سازی آن الگوریتم‌ها به یک زبان برنامه‌نویسی انتخاب شده‌است (که معمولاً به آن کدگذاری (کدینگ) گفته می‌شود). کد منبع یک برنامه به یک یا بیشتر زبان نوشته می‌شود که این زبان برای «برنامه‌نویس» قابل فهم است (به جای کد ماشین که به صورت مستقیم توسط واحد پردازش مرکزی اجرا می‌شود). هدف از برنامه‌نویسی، پیداکردن ترتیبی از دستورالعمل‌ها است که انجام یک عمل را در یک رایانه، معمولاً برای حل‌کردن یک برنامه داده شده، خودکارسازی می‌کند (که می‌تواند تا حد یک سیستم‌عامل پیچیده باشد). بنابراین، یک برنامه‌نویسی حرفه‌ای نیاز به مهارت در چندین موضوع متفاوت دارد، که شامل دانش دامنه کاربردی، الگوریتم‌های خاص، و منطق صوری است.
qas: answers: text: فرایند طراحی و ساخت یک برنامه رایانه‌ای اجراپذیر برای به‌دست‌آوردن یک نتیجه رایانشی خاص، یا انجام یک عمل خاص است
question: برنامه‌سازی رایانه‌ای چیست؟

answers: text: تحلیل، ایجاد الگوریتم‌ها، رخ‌نمانگاری دقت الگوریتم‌ها و مصرف منابع، و پیاده‌سازی آن الگوریتم‌ها به یک زبان برنامه‌نویسی انتخاب شده‌است
question: برنامه‌سازی رایانه‌ای شامل چه عمل‌هایی است؟

answers: text: دانش دامنه کاربردی، الگوریتم‌های خاص، و منطق صوری
question: یک برنامه‌نویسی حرفه‌ای نیاز به مهارت در چه دانش‌هایی دارد؟

context: دستگاه‌های قابل برنامه‌ریزی قرن هاست که وجود دارند. در اوایل قرن نهم میلادی، یک ترتیب سنج موسیقی قابل برنامه‌ریزی توسط برادران فارسی بانو موسی اختراع شد که یک دستگاه پخش خودکار فلوت را در کتاب دستگاه‌های مبتکر توصیف کرد. در سال ۱۲۰۶میلادی، مهندس کوردالجزاری یک دستگاه درام قابل برنامه‌ریزی را اختراع کرد که در آن می‌توان از اتوماتیک مکانیکی موسیقی برای پخش ریتم‌های مختلف و الگوهای طبل، از طریق میخ‌ها و کامپ‌ها استفاده کرد. در سال ۱۸۰۱، با تغییر دادن برنامه «ژاکارد»، بافندگی ژاکارد می‌تواند بافتهای کاملاً متفاوتی تولید کند - مجموعه ای از کارتهای کارتن با سوراخهایی که در آنها وجود دارد.
qas: answers: text: اوایل قرن نهم میلادی
question: در چه قرنی، یک ترتیب سنج موسیقی قابل برنامه‌ریزی توسط برادران فارسی بانو موسی اختراع شد؟

answers: text: ۱۲۰۶میلادی
question: در چه سالی مهندس کوردالجزاری یک دستگاه درام قابل برنامه‌ریزی را اختراع کرد که در آن می‌توان از اتوماتیک مکانیکی موسیقی برای پخش ریتم‌های مختلف و الگوهای طبل، از طریق میخ‌ها و کامپ‌ها استفاده کرد؟

answers: text: مهندس کوردالجزاری
question: در سال ۱۲۰۶میلادی، چه کسی یک دستگاه درام قابل برنامه‌ریزی را اختراع کرد که در آن می‌توان از اتوماتیک مکانیکی موسیقی برای پخش ریتم‌های مختلف و الگوهای طبل، از طریق میخ‌ها و کامپ‌ها استفاده کرد؟

answers: text: دستگاه درام قابل برنامه‌ریزی را اختراع کرد که در آن می‌توان از اتوماتیک مکانیکی موسیقی برای پخش ریتم‌های مختلف و الگوهای طبل، از طریق میخ‌ها و کامپ‌ها استفاده کرد
question: در سال ۱۲۰۶میلادی، مهندس کوردالجزاری چه دستگاهی اختراع کرد؟ 

question: مهندس کوردالجزاری در کجا متولد شده‌است؟

question: مهندس کوردالجزاری در چه سنی یک دستگاه درام قابل برنامه‌ریزی را اختراع کرد؟

context: در دهه ۱۸۸۰ هرمان هالریت مفهوم ذخیره داده‌ها را به صورت قابل خواندن با دستگاه اختراع کرد. بعداً یک کنترل پنل (افزونه) به Tabulator Type 190 خود که به آن اضافه شده بود اجازه داد که برای مشاغل مختلف برنامه‌ریزی شود و تا اواخر دهه ۱۹۴۰ تجهیزات ضبط واحدی مانند IBM 602 و IBM 604 توسط پنل‌های کنترل به روش مشابهی برنامه‌ریزی شدند. اولین کامپیوترهای الکترونیکی با این حال، با مفهوم رایانه‌های برنامه ذخیره شده معرفی شده در سال ۱۹۴۹، هر دو برنامه و داده‌ها به همان شیوه در حافظه کامپیوتر ذخیره و دستکاری شدند.
qas: answers: text: دهه ۱۸۸۰
question: در کدام دهه هرمان هالریت مفهوم ذخیره داده‌ها را به صورت قابل خواندن با دستگاه اختراع کرد؟

answers: text: هرمان هالریت
question: در دهه ۱۸۸۰ چه کسی مفهوم ذخیره داده‌ها را به صورت قابل خواندن با دستگاه اختراع کرد؟

answers: text: مفهوم ذخیره داده‌ها را به صورت قابل خواندن با دستگاه اختراع کرد
question: در دهه ۱۸۸۰ هرمان هالریت چه اختراعی در مفهوم ذخیره داده‌ها داشت؟

question: هرمان هالریت در کجا متولد شده‌است؟

context: قدم اول در فرایند توسعه بیشتر نرم‌افزارها به شکل معمول شامل بررسی نیازمندی‌ها، سپس آزمایش برای تشخیص الگوی متغیرها، اجرا و سپس حذف خرابی‌ها (اشکال زدایی) است. راه‌های مختلفی برای رسیدن به هر کدام از این وظایف وجود دارند. یک راه پرطرفدار برای تحلیل نیازمندی‌ها تحلیل مورد کاربردی است. بسیاری از برنامه نویسان از شکل توسعه چابک نرم‌افزاری استفاده می‌کنند؛ در این روش مراحل مختلف توسعه نرم‌افزار به شکل چرخه‌های کوتاه با هم ترکیب می‌شوند به‌طوری‌که هر کدام از این چرخه‌ها فقط چند هفته طول بکشند. این در مقابل روش معمول است که ممکن است چند سال زمان ببرد. روش‌های خیلی زیادی برای روند توسعه برنامه‌ها وجود دارند.
qas: answers: text: بررسی نیازمندی‌ها، سپس آزمایش برای تشخیص الگوی متغیرها، اجرا و سپس حذف خرابی‌ها (اشکال زدایی)
question: قدم اول در فرایند توسعه بیشتر نرم‌افزارها به شکل معمول شامل چه مراحلی است؟

answers: text: آزمایش برای تشخیص الگوی متغیرها
question: در قدم اول در فرایند توسعه بیشتر نرم‌افزارها به شکل معمول بعد از بررسی نیازمندی‌ها کدام مرحله است؟

answers: text: اجرا
question: در قدم اول در فرایند توسعه بیشتر نرم‌افزارها به شکل معمول بعد از آزمایش برای تشخیص الگوی متغیرها کدام مرحله است؟

question: نرم‌افزار چیست؟

context: اشکال زدایی کار بسیار مهمی در فرایند توسعه نرم‌افزار است زیرا نقص در یک برنامه می‌تواند عواقب قابل توجهی برای کاربران آن داشته باشد. بعضی از زبانها بیشتر مستعد ابتلا به برخی از خطاها هستند زیرا مشخصات آنها به کامپایلرها نیاز ندارد تا به همان اندازه سایر زبانها بررسی کنند. استفاده از ابزار تجزیه و تحلیل کد استاتیک می‌تواند به تشخیص برخی از مشکلات احتمالی کمک کند. به‌طور معمول اولین مرحله برای اشکال زدایی تلاش برای تولید مثل مشکل است. این می‌تواند یک کار غیر مهم باشد، به عنوان مثال با فرایندهای موازی یا برخی از اشکالات نرم‌افزاری غیرمعمول. همچنین، شرایط خاص کاربر و تاریخچه استفاده می‌تواند تولید مشکل را دشوار کند.
qas: answers: text: زیرا نقص در یک برنامه می‌تواند عواقب قابل توجهی برای کاربران آن داشته باشد
question: به چه دلیل اشکال زدایی کار بسیار مهمی در فرایند توسعه نرم‌افزار است؟


answers: text: زیرا مشخصات آنها به کامپایلرها نیاز ندارد تا به همان اندازه سایر زبانها بررسی کنند
question: به چه دلیل بعضی از زبانها بیشتر مستعد ابتلا به برخی از خطاها هستند؟

answers: text: برای تولید مثل مشکل
question: به‌طور معمول اولین مرحله برای اشکال زدایی در فرایند توسعه نرم‌افزار چیست؟

question: کامپایلر چیست؟

context: زبان‌های مختلف برنامه‌نویسی وجود دارند که هر کدام از آن‌ها سبک‌های خاصی را پشتیبانی می‌کنند. (به نام پارادایم‌های برنامه‌نویسی). انتخاب زبان مورد استفاده مورد توجه بسیاری از مباحث از قبیل خط مشی شرکت، مناسب بودن در انجام کار، در دسترس بودن بسته‌های شخص ثالث یا ترجیح شخصی است. در حالت ایده‌آل، زبان برنامه‌نویسی که برای کار مورد نظر مناسب تر باشد انتخاب می‌شود. تجارت از این ایده‌آل شامل یافتن برنامه نویسان به اندازه کافی است که زبان را برای ایجاد یک تیم می‌شناسند، در دسترس بودن کامپایلرها برای آن زبان و کارایی که برنامه‌های آنها را با یک زبان خاص اجرا می‌کنند. زبانها طیف تقریبی را از «سطح پایین» تا «سطح بالا» تشکیل می‌دهند. زبانهای «سطح پایین» به‌طور معمول بیشتر دستگاه محور و سریعتر اجرا می‌شوند، و به زبان ماشین نزدیکتر هستند در حالی که زبانهای «سطح بالا» انتزاعی تر و آسان‌تر برای استفاده هستند اما سرعت کمتری دارند. معمولاً کدگذاری به زبانهای «سطح بالا» از زبان‌های «سطح پایین» ساده‌تر است.
qas: answers: text: پارادایم‌های برنامه‌نویسی
question: زبان‌های مختلف برنامه‌نویسی که هر کدام از آن‌ها سبک‌های خاصی را پشتیبانی می‌کنند چه نامیده می‌شوند؟

answers: text: زبان‌های مختلف برنامه‌نویسی وجود دارند که هر کدام از آن‌ها سبک‌های خاصی را پشتیبانی می‌کنند
question: پارادایم‌های برنامه‌نویسی چیست؟

answers: text: دستگاه محور و سریعتر
question: زبانهای برنامه‌نویسی «سطح پایین» به‌طور معمول بیشتر چگونه اجرا می‌شوند؟

question: زبان‌های برنامه نویسی را می توان به چند پارادایم دسته بندی نمود؟