مطالب برچسب شده ‘ویکیپدیا’
معرفی :
پایتون (Python) (که البته گاهی به اشتباه پیتون تلفظ می شود) یک زبان برنامهنویسی همه منظوره، سطح بالا، شیءگرا و مفسر است که توسط خَودو فان روسوم (Guido van Rossum) در سال ۱۹۹۱ در کشور هلند طراحی شد.
فلسفه ایجاد آن تاکید بر دو هدف اصلی خوانایی بالای برنامههای نوشته شده و کوتاهی و بازدهی نسبی بالای آن است . کلمات کلیدی و اصلی این زبان به صورت حداقلی تهیه شدهاند و در مقابل کتابخانههایی که در اختیار کاربر است بسیار وسیع هستند. یک کار غیر معمول که در طراحی این زبان انجام گرفته استفاده از فاصله و جلوبردن متن برنامه برای مشخص کردن بلوکهای مختلف کد است.
پایتون مدلهای مختلف برنامه نویسی (از جمله شیء گرا و برنامه نویسی دستوری و تابع محور) را پشتیبانی میکند و برای مشخص کردن نوع متغییرها از یک سامانه پویا استفاده میکند.
این زبان از زبانهای برنامه نویسی مفسر بوده و به صورت کامل یک زبان شیگرا است که در ویژگیها با زبانهای تفسیری پرل، روبی، اسکیم، اسمالتاک و تیسیال مشابهت دارد و از مدیریت خودکار حافظه استفاده میکند.
پایتون پروژهای متنباز توسعهیافتهاست و توسط بنیاد نرمافزار پایتون مدیریت میگردد.هماکنون (خرداد ۱۳۹۰ خورشیدی) این زبان در دو نسخهٔ پایدار ۲.۷.۱ و ۳.۲ ارائه میشود.
تاریخچه :
پایتون اواخر سال ۱۹۸۰ (میلادی) توسط خَودو فان روسوم در مؤسسه ملی تحقیقات ریاضی و رایانه (CWI) در کشور هلند ایجاد شد. هدف خَودو ایجاد جانشینی برای زبان برنامه نویسی «ایبیسی» بود که با قابلیت پردازش استثنا را داشته باشد. خَودو طراح اصلی پایتون است و نقش مداوم او در تصمیم گیری پیرامون اهداف پایتون، باعث شد که انجمن پایتون به او لقب دیکتاتور خیراندیش زندگی (Benevolent Dictator For Life) را بدهد.
کاربرد :
سازمانهای بزرگی که از پایتون استفاده میکنند، شامل گوگل، یاهو، سرن و ناسا هستند. ITA نیز از پایتون برای بعضی از اجزای خود استفاده میکند.
امنیت اطلاعات :
پایتون همچنین استفاده وسیعی از صنعت ایمنی اطلاعات میکند. مثلاً در چندین ابزار پیشنهاد شده توسط تأمین امنیت و امنیت مرکزی و اسکنر امنیت کاربردی وب واپیتی. پایتون معمولاً در توسعه کاربرد مورد استفاده قرار میگیرد.
جاسازی :
پایتون با موفقیت در تعدادی از تولیدات نرمافزاری مثل زبان فایل آغاز گر تعبیه شدهاست. پایتون معمولاً در بستههای انیمیشن ۳D استفاده میشود، مانند Houdini, Maya, Softimage XSI, TrueSpace, Poser, Modo, Nuke, Blender. GIMP, Krita, Inkcape, Scribus, Paint Shop Pro ESRI هم اکنون در حال ترقی دادن پایتون به عنوان بهترین انتخاب برای نوشتن فایل آغازگر در ArcGIS است. همچنین در بازیها استفاده میشود، مانند Civilization IV و Mount&Blade به عنوان زبان کنترل برای نمایش و عکس العمل حوادث.
مقبولیت :
در بسیاری از سیستمهای عملیاتی، پایتون یک جزء استاندارد است؛ چون با بیشتر بخشهای لینوکس انتقال داده میشود، با NetBSD و OpenBSD وRed Hat Linux.Mac OS X و Fedora هر دو از نصب کنده پایتونی استفاده میکنند. لینوکس Gentoo از پایتون در سیستم مدیریت بسته، حمل و ابزارهای دستیابی خود استفاده میکند. Pardus از آن برای مدیریت و در طول راه اندازی سیستم استفاده میکند.
منبع : ویکی پدیا
تاریخچه
پیش از بوجود آمدن علوم الکترونیک، هوش مصنوعی توسط فلاسفه و ریاضیدانانی نظیر بول که اقدام به ارائه قوانین و نظریههایی در باب منطق نمودند، مطرح شده بود. با اختراع رایانههای الکترونیکی در سال ۱۹۴۳، هوش مصنوعی دانشمندان را به چالشی بزرگ فراخواند. در بادى امر، چنین بهنظر میرسید که این فناوری در نهایت قادر به شبیهسازی رفتارهای هوشمندانه خواهد بود.
با وجود مخالفت گروهی از متفکرین با هوش مصنوعی که با دیده تردید به کارآمدی آن مینگریستند تنها پس از چهار دهه، شاهد تولد ماشینهای شطرنج باز و دیگر سامانه های هوشمند در صنایع گوناگون هستیم.
نام هوش مصنوعی در سال ۱۹۶۵ میلادی به عنوان یک دانش جدید ابداع گردید. البته فعالیت درزمینه این علم از سال ۱۹۶۰ میلادی شروع شدهبود.
بیشتر کارهای پژوهشی اولیه در هوش مصنوعی بر روی انجام ماشینی بازیها و نیز اثبات قضیههایریاضی با کمک رایانهها بود. در آغاز چنین به نظر میآمد که رایانهها قادر خواهند بود چنین اموری را تنها با بهره گرفتن از تعداد بسیار زیادی کشف و جستجو برای مسیرهای حل مسئله و سپس انتخاب بهترین آنها به انجام رسانند.
این اصطلاح (هوش مصنوعی) برای اولین بار توسط جان مکارتی (John Mccorthy) که از آن بهعنوان پدر «علم و دانش تولید ماشینهای هوشمند» یاد میشود استفاده شد.آقای جان مکارتی مخترع یکی از زبانهای برنامه نویسی هوش مصنوعی به نام (lisp)نیز هستند. با این عنوان میتوان به هویت هوشمند یک ابزار مصنوعی اشاره کرد. (ساختهٔ دست بشر، غیر طبیعی، مصنوعی)
حال آنکه AI به عنوان یک اصطلاح عمومی پذیرفته شده که شامل محاسبات هوشمندانه و ترکیبی (مرکب از مواد مصنوعی) میباشد.
از اصطلاح strong and weak AI میتوان تا حدودی برای معرفی ردهبندی سیستمها استفاده کرد. AIها در رشتههای مشترکی چون علم کامپیوتر، روانشناسی و فلسفه مورد مطالعه قرار میگیرند، که مطابق آن باعث ایجاد یک رفتار هوشمندانه، یادگیری و سازش میشود و معمولاً نوع پیشرفتهٔ آن در ماشینها و کامپیوترها استفاده میشود.
آزمون تورینگ
آزمون تورینگ آزمونی است که توسط آلن تورینگ در سال ۱۹۵۰ در نوشتهای به نام «محاسبات ماشینی و هوشمندی» مطرح شد. در این آزمون شرایطی فراهم می شود که شخصی با ماشین تعامل برقرار کند و پرسش های کافی برای بررسی هوشمندی او بپرسد. چنانچه در پایان آزمایش نتواند تعیین کند که با انسان در تعامل بوده است یا با ماشین، تست تورینگ با موفقیت انجام شده است. تا کنون هیچ ماشینی از این آزمون با موفقیت بیرون نیامده است. کوشش این آزمون برای تشخیص درستی هوشمندی یک سیستم است که سعی در شبیه سازی انسان دارد.
تعریف و طبیعت هوش مصنوعی
هنوز تعریف دقیقی که مورد قبول همهٔ دانشمندان این علم باشد برای هوش مصنوعی ارائه نشدهاست، و این امر، به هیچ وجه مایهٔ تعجّب نیست. چرا که مقولهٔ مادر و اساسیتر از آن، یعنی خود هوش هم هنوز بطور همهجانبه و فراگیر تن به تعریف ندادهاست. در واقع، میتوان نسلهایی از دانشمندان را سراغ گرفت که تمام دوران زندگی خود را صرف مطالعه و تلاش در راه یافتن جوابی به این سؤال عمده نمودهاند که: هوش چیست؟
اما اکثر تعریفهایی که در این زمینه ارایه شدهاند بر پایه یکی از ۴ باور زیر قرار میگیرند:
۱٫ سیستمهایی که به طور منطقی فکر میکنند
۲٫ سیستمهایی که به طور منطقی عمل میکنند
۳٫ سیستمهایی که مانند انسان فکر میکنند
۴٫ سیستمهایی که مانند انسان عمل میکنند
شاید بتوان هوش مصنوعی را این گونه توصیف کرد:«هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را میتوان وادار به کارهایی کرد که در حال حاضر انسانها آنها رابهتر انجام میدهند».
محققین هوش مصنوعی علاقهمند به تولید ماشینی هستند که دستورات مورد نیاز را به صورت هوشمندانه انجام دهد. به عنوان مثال قابلیت کنترل، برنامهریزی و زمانبندی، توانایی تشخیص جواب به سوال مصرف کننده،دست نویسها، زبان شناسی، سخنرانی و شناسایی چهره را داشته باشد. مطالعه بر روی یک AI دارد به یک رشتهٔ مهندسی تبدیل میشود که کانون مشروط است بر حل مشکلات زندگی واقعی، علم معدن کاری، نرم افزارهای کاربردی، استراتژی بازیها مثل بازی شطرنج و بازیهای ویدئویی یکی از بزرگترین مشکلات (سختیها) با AIها، قوهٔ درک آنها است.
تاحدی دستگاههای تولیدشده میتوانند شگفتانگیز باشند، اما کارشناسان هوش مصنوعی ادعا میکنند که ماشینهای هوشمند ساختهشده دارای درک واقعی و حقیقی نیستند.
–مشاهده رفتاری هوشمندانه و صحیح از یک سیستم را نمی توان دلیلی کافی بر هوشمندی آن سیستم تصورکرد بلکه بایستی به ساختار داخلی و مکانیزم انتخاب راه توسط سیستم توجه شود که آیا مبتنی بر آگاهی خود سیستم است یا نه و این آگاهی زمانی میسر خواهد بود که سیستم خود قابلیت تحلیل اطلاعات در یافتی از محیط را داشته باشد و بتواند رابطه های معنی داری بین علت و معلول ما بین اتفاقات محیطی ایجاد کند و در واقع قادر به ایجاد مدلی هر چند غیر دقیق بر پایه مشاهدات خود از محیط باشد سپس سیستم ایده ارزشمندی از نظرگاه خود تولید بکند و بعنوان خواسته و هدفی سعی در پیاده سازی آن بکند یعنی در پی پیدا کردن و اتصال ابزارهای مناسبی به آن هدف باشد تا بتواند آلگوریتم عملیاتی برای برآورد آن خواسته تولید نماید.
فلسفهٔ هوش مصنوعی
بطور کلی ماهیت وجودی هوش به مفهوم جمع آوری اطلاعات، استقرا و تحلیل تجربیات به منظور رسیدن به دانش و یا ارایه تصمیم میباشد. در واقع هوش به مفهوم به کارگیری تجربه به منظور حل مسائل دریافت شده تلقی میشود. هوش مصنوعی علم و مهندسی ایجاد ماشینهایی با هوش با به کارگیری از کامپیوتر و الگوگیری از درک هوش انسانی و یا حیوانی و نهایتاً دستیابی به مکانیزم هوش مصنوعی در سطح هوش انسانی میباشد.
در مقایسه هوش مصنوعی با هوش انسانی میتوان گفت که انسان قادر به مشاهده و تجزیه و تحلیل مسایل در جهت قضاوت و اخذ تصمیم میباشد در حالی که هوش مصنوعی مبتنی بر قوانین و رویههایی از قبل تعبیه شده بر روی کامپیوتر میباشد. در نتیجه علی رغم وجود کامپیوترهای بسیار کارا و قوی در عصر حاضر ما هنوز قادر به پیاده کردن هوشی نزدیک به هوش انسان در ایجاد هوشهای مصنوعی نبودهایم.
بطور کلّی، هوش مصنوعی را میتوان از زوایای متفاوتی مورد بررسی و مطالعه قرار داد. مابین هوش مصنوعی به عنوان یک هدف، هوش مصنوعی به عنوان یک رشته تحصیلی دانشگاهی، و یا هوش مصنوعی به عنوان مجموعهٔ فنون و راه کارهایی که توسط مراکز علمی مختلف و صنایع گوناگون تنظیم و توسعه یافتهاست باید تفاوت قائل بود.
اتاق چینی
اتاق چینی بحثی است که توسط «جان سیرل» در ۱۹۸۰ مطرح شد در این راستا که یک ماشین سمبل گرا هرگز نمیتواند دارای ویژگیهایی مانند «مغز» و یا «فهمیدن» باشد, صرف نظر از اینکه چقدر از خود هوشمندی نشان دهد.
مدیریت پیچیدگی
ایجاد و ابداع فنون و تکنیکهای لازم برای مدیریّت پیچیدگی را باید به عنوان هستهٔ بنیادین تلاشهای علمی و پژوهشی گذشته، حال، و آینده، در تمامی زمینههای علوم رایانه، و به ویژه، در هوش مصنوعی معرّفی کرد. شیوهها و تکنیکهای هوش مصنوعی، در واقع، برای حلّ آن دسته از مسائل به وجود آمدهاست که به طور سهل و آسان توسط برنامهنویسی تابعی (Functional programming)، یا شیوههای ریاضی قابل حلّ نبودهاند.
در بسیاری از موارد، با پوشانیدن و پنهان ساختن جزئیّات فاقد اهمّیّت است که بر پیچیدگی فائق میآییم و میتوانیم بر روی بخشهایی از مسئله متمرکز شویم که مهمتر است. تلاش اصلی در واقع، ایجاد و دستیابی به لایهها و ترازهای بالاتر از هوشمندی تجرید را نشانه میرود، تا آنجا که، سرانجام برنامههای کامپوتری درست در همان سطحی کار خواهند کرد که خود انسانها رسیدهاند.
به یاری پژوهشهای گسترده دانشمندان علوم مرتبط، هوش مصنوعی تاکنون راه بسیاری پیمودهاست. در این راستا، تحقیقاتی که بر روی توانایی آموختن زبانها انجام گرفت و همچنین درک عمیق از احساسات، دانشمندان را در پیشبرد این دانش کمک زیادی کردهاست. یکی از اهداف متخصصین، تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند. این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.
برای نمونه روباتیی هوشمند که بتواند اعضای بدن خود را به حرکت درآورد، این روبات نسبت به این حرکت خود آگاه بوده و با آزمون و خطا، دامنه حرکت خود را گسترش میدهد و با هر حرکت موفقیت آمیز یا اشتباه، دامنه تجربیات خود را وسعت بخشیده و سر انجام راه رفته و یا حتی میدود و یا به روشی برای جابجا شدن دست مییابد، که سازندگانش برای او متصور نبودهاند.
هر چند نمونه بالا ممکن است کمی آرمانی به نگر برسد، ولی به هیچ عنوان دور از دسترس نمیباشد. دانشمندان, عموماً برای تولید چنین ماشینهایی، از وجود مدلهای زندهای که در طبیعت وجود، به ویژه آدمی نیز سود بردهاند.
هوش مصنوعی اکنون در خدمت توسعه علوم رایانه نیز میباشد. زبانهای برنامه نویسی پیشرفته، که توسعه ابزارهای هوشمند را ممکن ساخته اند, پایگاههای دادهای پیشرفته، موتورهای جستجو، و بسیاری نرمافزارها و ماشینها از نتایج پژوهشهایی در راستای هوش مصنوعی بودهاند.
تکنیکها وزبانهای برنامه نویسی هوش مصنوعی
عملکرد اولیه برنامه نویسی هوش مصنوعی ایجاد ساختار کنترلی مورد لزوم برای محاسبه سمبولیک است زبانهای برنامه نویسی LISP,PROLOG علاوه بر اینکه از مهمترین زبانهای مورد استفاده در هوش مصنوعی هستند خصوصیات نحوی ومعنایی انها باعث شده که انها شیوهها وراه حلهای قوی برای حل مسئله ارایه کنند. تاثیر قابل توجه این زبانها بر روی توسعه AI از جمله تواناییهای انها بعنوان«ابزارهای فکرکردن»می باشد . در حقیقت همانطور که هوش مصنوعی مراحل رشد خود را طی میکند زبانهای LISP,PROLOGبیشتر مطرح میشوند این زبانها کار خود را در محدوده توسعه سیستمهای AIدر صنعت ودانشگاهها دنبال میکنند وطبیعتاً اطلاعات در مورد این زبانها بعنوان بخشی از مهارت هر برنامه نویس AIمیباشد. PROLOGیک زبان برنامه نویسی منطقی است .یک برنامه منطقی دارای یک سری ویژگیهای قانون ومنطق است . در حقیقت خود این نام از برنامه نویسی PROدر LOGIC میآید . در این زبان یک مفسر برنامه را بر اساس یک منطق مینویسد .ایده استفاده توصیفی محاسبهٔ اولیه برای بیان خصوصیات حل مسئله یکی از محوریتهای مشارکت PROLOGمی باشد که برای علم کامپیوتر بطورکلی وبطور اخص برای زبان برنامه نویسی هوشمند مورد استفاده قرار میگیرند . LISP اصولاً LISP یک زبان کامل است که دارای عملکردها ولیستهای لازمه برای توصیف عملکردهای جدید, تشخیص تناسب وارزیابی معانی میباشد LISP به برنامه نویس قدرت کامل برای اتصال به ساختارهای اطلاعاتی را میدهد گر چه LISP یکی از قدیمی ترین ترین زبانهای محاسباتی است که هنوز فعال است ولی دقت کافی در برنامه نویسی وطراحی توسعه باعث شده که این یک زبان برنامه نویسی فعال باقی بماند . در حقیقت این مدل برنامه نویسی طوری موثر بودهاست که تعدادی از دیگر زبانها براساس عملکرد برنامه نویسی آن بنا شدهاند :مثل . FP,ML, SCHEME یکی از مهمترین برنامههای مرتبط با LISP برنامه SCHEME میباشد که یک تفکر دوباره در باره زبان در آن وجود دارد که بوسیله توسعه AI وبرای آموزش واصول علم کامپیوتر مورد استفاده قرار میگیرد.
عاملهای هوشمند
عاملها (Agents) قادر به شناسایی الگوها، و تصمیم گیری بر اساس قوانین فکر کردن خود میباشند. قوانین و چگونگی فکر کردن هر عامل در راستای دستیابی به هدفش، تعریف میشود. این سیستمها بر اساس قوانین خاص خود فکر کرده و کار خودرا به درستی انجام میدهند. پس عاقلانه رفتار میکنند، هر چند الزاما مانند انسان فکر نمیکنند.
سیستمهای خبره
سیستمهای خبره زمینهای پرکاربرد در هوش مصنوعی و مهندسی دانش است که با توجّه به نیاز روز افزون جوامع بر اتخاذ راه حلها و تصمیمات سریع در مواردی که دانشهای پیچیده و چندگانهٔ انسانی مورد نیاز است، بر اهمیت نقش آنها افزوده هم میشود. سیستمهای خبره به حل مسائلی میپردازند که به طور معمول نیازمند تخصّصهای کاردانان و متخصّصان انسانیست. به منظور توانایی بر حل مسائل در چنین سطحی (ترازی)، دسترسی هرچه بیشتر اینگونه سامانهها به دانش موجود در آن زمینه خاص ضروری میگردد.
منبع : ویکی پدیا
زبانهای برنامهنویسی ساختارهای زبانی دستورمداری در رایانهها هستند که بهوسیلهٔ آنها میتوان یک الگوریتم را بهوسیلهٔ ساختارهای دستوری متفاوت برای اجرای رایانه توصیف کرد و با این روش امکان نوشتن برنامه جهت تولید نرمافزارهای جدید بوجود میآید. معمولاً هر زبان برنامهنویسی دارای یک محیط نرمافزاری برای وارد کردن متن برنامه، اجرا، همگردانی و رفع اشکال آن هستند. عموماً زبانهای برنامه نویسی را به پنج نسل تقسیم میکنند:
* نسل اول زبان ماشین – زبان صفرو یک
* نسل دوم زبانهایی مانند اسمبلی -قابل فهم تر برای انسان
* نسل سوم زبانهایی مانند کوبول و پی ال وان و… -دستورات قابل فهم تر برای انسان و نیاز به کمپایلرها
* نسل چهارم مثل زبانهای اوراکل و فاکس پرو و اس کیو الها – نزدیک به محاورههای انسانی
* نسل پنج زبانهایی مانند prolog , ops5 – تمرکز بر حل مسئله و استفاده از الگوریتمهای نوشته شده توسط برنامه نویس
یک زبان برنامه نویسی یک زیان مصنوعی است که برای بیان محاسباتی که توسط یک ماشین (مخصوصا رایانه) قابل انجام است، طراحی شدهاست.زبانهای برنامه نویسی برای ایجاد برنامههایی به کار میروند که رفتار یک ماشین را مشخص میکنند، الگوریتم دقیق را بیان میکنند، و یا روشی برای ارتباط انسانند. بسیاری از زبانهای برنامه نویسی تعدادی قالب از ویژگیهای نوشته شده دستوری(syntax) و معنا شناسی (semantics) دارند، چرا که رایانهها دستورات دقیقا مشخص نیاز دارند. برخی توسط سند خصوصیات (specification document) تعیین شدهاند. (برای مثال یک استاندارد ISO)، در حالی که برخی دیگر دارای پیاده سازی غالبی میباشند.(مانند Perl) اولین زبان برنامه نویسی به قبل از اختراع رایانه باز میگردد، و برای هدایت رفتار ماشینهایی مانند دستگاههای نساجی اتوماتیک و نوازندههای پیانو به کار میرفت. هزاران زبان برنامه نویسی خلق شدهاند، بیشتر در زمینهٔ رایانه، زمینهای که هر ساله بسیاری دیگر ایجاد میشوند.
۱ .تقسیمبندی
۲ .تعاریف
۳ .کاربرد
۱ .تقسیمبندی
زبانهای برنامه نویسی را میتوان از چهار دیدگاه متفاوت مورد بررسی قرار داده و تقسیم بندی کرد: الف)روشهای برنامه نویسی ۱-زیر روالی ۲-ساخت یافته ۳-مدولار ۴-شئ گرا ب)نزدیکی به زبان ماشین ۱-سطح پایین ۲-سطح میانی ۳-سطح بالا ج)نوع ترجمه ۱-مفسری ۲-کامپایلری د)رابط برنامه نویسی ۱-مبتنی بر متن ۲-مبتنی بر گرافیک (ویژوال)
۲ .تعاریف
ویژگیهایی که غالبا برای تشکیل یک زبان برنامه نویسی مهم شمرده میشوند:
* تابع :یک زبان برنامه نویسی، زبانی است که برای نوشتن برنامههای رایانهای به کار میرود که رایانهای را برای انجام محاسبات یا اجرای الگوریتم و یا احتمالا کنترل دستگاههای خارجی مثل چاپگر، ربات و… درگیر میکنند.
* هدف: زبانهای برنامه نویسی با زبانهای طبیعی تفاوت دارند و آن اینکه زبانهای طبیعی فقط برای فعل و انفعالات بین مردم به کار میروند، در حالیکه زبانهای برنامه نویسی همچنین به انسانها اجازه میدهد که از طریق دستورات با ماشینها ارتباط برقرار کنند. برخی زبانهای برنامه نویسی بوسیله یک دستگاه استفاده میشوند تا دستگاه دیگری را کنترل کند. برای مثال برنامههای پست اسکریپت(post script) غالبا توسط برنامه دیگری برای کنترل یک چاپگر و یا نمایشگر ایجاد میشوند.
* ساختارها: زبانهای برنامه نویسی ممکن است ساختارهایی برای تعریف و تغییر داده ساختارها یا کنترل جریان اجرا داشته باشند.
* توان بیانگر: نظریه محاسبات، زبانها را بوسیله محاسباتی که توان بیان آنها را دارند طبقه بندی میکند. تمام زبانهای “کامل تورینگ” میتوانند مجموعه یکسانی از الگوریتمها را پیاده سازی کنند.ANSI/ISO SQL و Charity مثالهایی هستند از زبانهایی که کامل تورینگ نیستند، ولی غالبا زبان برنامه نویسی نامیده میشوند.
برخی مولفین اصطلاح” زبان برنامه نویسی” را محدود به آنهایی میکنند که میتوانند تمام الگوریتمهای ممکن را پیاده سازی کنند، گاهی اوقات اصطلاح” زبان رایانه” برای زبانهای برنامه نویسی محدودتر به کار میرود. زبانهای غیر محاسباتی، مانند زبانهای مارک آپ(markup) HTML یا گرامرهای قراردادی مثل BNF، معمولا زبان برنامه نویسی محسوب نمیشوند. یک زبان برنامه نویسی(که میتواند کامل تورینگ نباشد) ممکن است در این زبانهای غیر محاسباتی (میزبان) تعبیه شوند.
۳ .کاربرد
زبان برنامه نویسی یک مکانیزم ساخت یافته برای تعریف دادهها، و عملیات یا تبدیلهایی که ممکن است بطور اتوماتیک روی آن داده انجام شوند، فراهم میکند. یک برنامه نویس از انتزاعات آماده در زبان استفاده میکند تا مفاهیم به کار رفته در محاسبات را بیان کند. این مفاهیم به عنوان یک مجموعه از ساده ترین عناصر موجود بیان میشوند(مفاهیم ابتدایی نامیده میشوند). زبانهای برنامه نویسی با غالب زبانهای انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبانهای طبیعی برای ارتباط با دیگر انسانها، نویسندگان و گویندگان میتوانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد. اگرچه، مجازا، رایانهها “دقیقا آنچه که به آنها گفته شده را انجام میدهند.” و نمیتوانند “بفهمند” که نویسنده دقیقا چه کدی مد نظر نویسنده بودهاست] البته امروزه برنامههایی برای انجام این کار تولید شدهاند و تلاشهای بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیده است[. ترکیب تعریف زبان، یک برنامه، و ورودی برنامه بطور کامل رفتار خروجی را به هنگام اجرای برنامه (در محدوده کنترل آن برنامه) مشخص میکند. برنامههای یک رایانه ممکن است در یک فرآیند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورات را در یک مرحله فعل و انفعال مفسر تایپ کند.در این حالت “دستور”ها همان برنامهها هستند، که اجرای آنها زنجیروار به هم مرتبطند.به زبانی که برای دستور دادن به برنامهای استفاده میشود، زبان اسکریپت میگویند. بسیاری از زبانها کنار گذاشته شدهاند، برای رفع نیازهای جدید جایگزین شدهاند، با برنامههای دیگر ترکیب شدهاند و در نهایت استعمال آنها متوقف شدهاست. با وجود اینکه تلاشهایی برای طراحی یک زبان رایانه” کامل” شدهاست که تمام اهداف را تحت پوشش قرار دهد، هیچ یک نتوانستند بطور کلی این جایگاه را پر کنند. نیاز به زبانهای رایانهای گسترده از گستردگی زمینههایی که زبانها استفاده میشوند، ناشی میشود: • محدوده برنامهها از متون بسیار کوچک نوشته شده توسط افراد عادی تا سیستمهای بسیار بزرگ نوشته شده توسط صدها برنامه نویس است • توانایی برنامه نویسها: از تازه کارهایی که بیش از هر چیز به سادگی نیاز دارند تا حرفهایهایی که با پیچیدگی قابل توجهی کنار میآیند. • برنامهها باید سرعت، اندازه و سادگی را بسته به سیستمها از ریزپردازندها تا ابر رایانهها متناسب نگه دارند. • برنامهها ممکن است یک بار نوشته شوند و تا نسلها تغییر نکنند، و یا ممکن است پیوسته اصلاح شوند. • در نهایت، برنامه نویسها ممکن است در علایق متفاوت باشند: آنها ممکن است به بیان مسائل با زبانی خاص خو گرفته باشند.
یک سیر رایج در گسترش زبانهای برنامه نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبانهای برنامه نویسی اولیه به سخت افزار رایانه گره خورده بودند. همانطور که زبانهای برنامه نویسی جدید گسترش پیدا کردهاند، ویژگیهایی به برنامهها افزوده شده که به برنامه نویس اجازه دهد که ایدههایی که از ترجمه ساده به دستورات سخت افزار دورتر هستند نیز استفاده کند. چون برنامه نویسها کمتر به پیچیدگی رایانه محدود شدهاند، برنامههای آنها میتواند محاسبات بیشتری با تلاش کمتر از سوی برنامه نویس انجام دهند. این به آنها این امکان را میدهد که کارایی بیشتردر واحد زمان داشته باشند. “پردازندههای زبان طبیعی” به عنوان راهی برای ازبین بردن نیاز به زبانهای اختصاصی برنامه نویسی پیشنهاد شدهاند. هرچند، این هدف دور است و فواید آن قابل بحث است. “ادسگر دیجسترا” موافق بود که استفاده از یک زبان رسمی برای جلوگیری از مقدمه سازی ساختارهای بی معنی واجب است، و زبان برنامه نویسی طبیعی را با عنوان “احمقانه” رد کرد، “آلن پرلیس” نیز مشابها این ایده را رد کرد. مطابق با متدولوژی نامتجانس استفاده شده توسط langpop.com در سال ۲۰۰۸، ۱۲ زبان پرکاربرد عبارتند از: C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell, SQL, and Visual Basic.
منبع : ویکی پدیا
لگوریتم تورینه (Rete Alghorithm)، الگوریتم تطابق الگوی کارآمدی برای پیادهسازی سامانههای خِبرهٔ مبتنی بر قانونها (Rules) است. الگوریتم تورینه در سال ۱۹۷۹ توسط دکتر چارلز فورگی از دانشگاه کارنگی ملون طراحی شده است. مفهوم تورینه بهعنوان پایهٔ بسیاری از سامانههای خبره مانند OPS5, JESS, CLIPS و LISA درآمده است ولی اولین بار در OPS5 بکار گرفته شد.
یک پیادهسازی ساده از یک سیستم خبره ممکن است هر قانون را به ازای واقعیتهای (Facts) موجود در پایگاه دانش بررسی نموده و در صورت لزوم آن قانون را فعال کند و سپس سراغ قانون بعدی برود (و زمانی که قوانین به انتها رسید در یک حلقه به اولین قانون بازگردد). حتی برای پایگاههای دانش با تعداد واقعیتها و قوانین متوسط نیز این دیدگاه سادهانگارانه بیش از حد کند عمل میکند.
الگوریتم تورینه یا Rete (که از لغت لاتین “rete” به معنای تور یا شبکه مشتق شدهاست) پایهای برای پیادهسازی بهینهتر یک سامانهٔ خبره را تأمین میکند. یک سامانهٔ خبرهٔ مبتنی بر تورینه، شبکهای از گرهها را میسازد که در آن هر گره (بجز ریشه) همارز با یک الگو است که در بخش سمت چپ یک قانون رخ میدهد. مسیری که از ریشه به یک گرهٔ برگ وجود دارد، بخش سمت چپ یک قانون را به طور کامل توصیف میکند. هر گره حافظهای دارد از واقعیتهایی که الگوی مد نظر آن گره را داشتهاند.
زمانیکه واقعیتهای تازهای وارد میشوند یا واقعیتهایی تغییر داده میشوند، ویژگیهای این واقعیتهای جدید در سراسر شبکه منتشر میشود و موجب میگردد که گرهها وضعیت خاصی که آن واقعیت با الگوی موجود در گره مطابق میشود را در حافظهٔ خود ثبت کنند. زمانیکه یک واقعیت یا ترکیبی از واقعیتها باعث ارضای کلیهٔ الگوهای یک قانون شدند، به یک گرهٔ برگ میرسیم و قانون همارز آن فعال میشود.
الگوریتم تورینه به شکلی طراحی شده است که حافظه مصرفی را فدای سرعت بیشتر مینماید. در اغلب مواقع، سرعت این روش در مقایسه با پیادهسازی سادهانگارانهای (که در بالا توصیف شد) چند برابر است (چرا که کارآیی الگوریتم تورینه به شکل نظری مستقل از تعداد قوانین موجود در سیستم است). هر چند در سیستمهای خبرهٔ بسیار بزرگ، استفاده از الگوریتم تورینه به شکل بدون تغییر مشکلات کمبود حافظه را بوجود میآورد. از زمان طراحی الگوریتم تورینه، الگوریتمهای دیگری – چه مبتنی بر تورینه و چه الگوریتمهای کاملاً جدید – طراحی شدهاند که نیاز به حافظهٔ کمتری دارند.
ویژگیهای کارکردی الگوریتم تورینه
- قوانین حاصله میتوانند با هدف بهینهسازی فرآیند تطبیق الگو مرتبسازی مجدد گردند.
- الگوریتم تورینه یک درخت تصمیمگیری میسازد که الگو را در تمامی قوانین پایگاه دانش ادغام میکند.
- این الگوریتم از یک گراف دارای ریشه، بدون دور و جهت دار بهعنوان درخت تصمیمگیری استفاده میکند.
منبع : ویکی پدیا
اینک با سپری شدن سالهای متمادی در صنعت آیتی و حاصل شدن تجربیات گوناگون در حوزه جمعآوری و ذخیرهسازی و بازیابی اطلاعات، موضوع «معنا بخشیدن به دادهها» و آسان کردن فرآیند «تصمیمسازی» همزمان در مرکز توجه کارشناسان فناوری اطلاعات و متخصصان علم و مدیریت و کسب و کار قرار گرفته است.
در علم E-Business یا کسب و کار الکترونیک، منظور از Business Intelligence یا اصطلاحاً BI همه راهکارها و ابزارهایی است که با هدف معنا بخشی به دادهها و فرآیند تصمیمسازی، طراحی و پیشنهاد شدهاند. دقت کنید که مفهوم «تصمیمسازی» یا Decision Making متفاوت از فرآیند «تصمیمگیری» است.
تصمیمسازی بهمعنای ساختن و پیشنهاد کردن انواع تصمیماتی است که در شرایط خاصی میتوان اتخاذ کرد، در حالی که تصمیمگیری نوعی عمل است و باید از میان راهکارهای موجود یکی را برگزید. فناوری BI در صنعت کسب و کار الکترونیک دنبال چنین هدفی است. BI میکوشد با استفاده از تکنیکهای پیشرفته ارزیابی و تحلیل دادهها، مفهوم یا معنایی را از دل آنها بیرون بکشد. BI بهمعنای تعریف کردن «بافت» و Context برای دادههاست. فناوری «هوشمندی کسب و کار» مدیران و تصمیمگیرندگان را در تصمیمسازی یاری میدهد.
از اینروست که گاهی اوقات اصطلاح E-Decision نیز بهکار میرود. BI طیف وسیعی از فناوریهای کامپیوتری را دربر میگیرد. این طیف شامل نرمافزارهای کاربردی، مدلهای کسب و کار و الگوهایی است که به انواع شرکتها و سازمانها کمک میکنند، دادههای پراکنده و بیقواره موجود را به اطلاعاتی کارگشا، قابل فهم، قابل تبادل (به اشتراک گذاشتن میان مدیران) و قابل ذخیره شدن برای تصمیمسازیهای بعدی تبدیل کنند.
بههمین جهت BI را میتوان تعبیر دیگری برای یک اصطلاح فنی و شناخته شده در آیتی بهنام Data Mining (کند و کاو دادهها) دانست. در حالی که اصطلاح Data Mining به جنبه تکنیکی و به فنی فناوری مورد بحث اشاره می کند، BI به جنبههای مدیریتی، اقتصادی و کاربردی آن میپردازد و صد البته ابزارها و راهکارهای BI از جنس ابزارها و راهکارهای Data Mining هستند. تفاوت اساسی میان این دو تعبیر این است که فناوری BI، معنا بخشیدن به دادهها و آسان نمودن تصمیمسازی را در قالب سایر راهکارهای کسب و کار الکترونیک همچون CRM، ERP، SCM جستجو میکند در حالی که Data Mining زیربنای این بحث است و نگاهی کلی به مسأله جمعآوری، سازماندهی و تحلیل اطلاعات دارد.
عناصر راهکار Business Intelligence شامل:
- Data Mining
- Data Warehousing
- Online Analytical Processing (OLAP
- Enterprise Resources Planning (ERP
- Analytical Customer Relationship Management
الیزابت ویت در کتاب (Business Intelligence 2) سه مزیت و کاربرد اصلی این راهکار را چنین عنوان میکند:
۱- تصمیمسازی بهتر و سریعتر در کسب و کار
۲- تبدیل «دادهها» به «اطلاعات»
۳- بهکارگیری یک رهیافت منطقی در مدیریت
ویت خصیصههای BI را در بهوجود آوردن یک رهیافت منطقی در جمعآوری، سازماندهی، مدیریت و تحلیل دادههای مربوط به کسب و کار، بهصورت زیر دستهبندی میکند:
- جستجو بهدنبال حقایق قابل اندازهگیری و قابل تفکیک (Quantitative) درباره کسب و کار.
- استفاه از یک متدولوژی سیستماتیک برای تجزیه و تحلیل حقایق.
- طراحی و توسعه مدلهایی برای شرح دادن علل و آثار رابطه میان فعالیتهای یک شرکت و تأثیرات این فعالیتها بر محیط خود شرکت.
- جستجو برای یافتن روشهای مختلف به منظور جمعآوری فیدبک (بازخورد) از همه کسانی که در چرخه کسب و کار دخیل یا ذینفع هستند (Stake holders).
- پذیرش این واقعیت که افراد کارمندان همیشه هم رفتار منطقی ندارند.
- متعهد شدن به تصمیمسازیها و اقدامهایی که متکی بر این مشخصهها و تحلیلهاست.
اما تصمیمات خوب به اطلاعات خوب و صحیح متکی است. سیستمهای BI کار جمعآوری، دستهبندی و معنابخشی به دادهها را نیز انجام میدهند. سیستمهای BI نوعاً متکی بر نرمافزارهای بانک اطلاعاتی (Database) و به عنوان ضمیمهای بر آنها تلقی میشوند. این سیستمها دسترسی به حجم عظیمی از دادهها را فراهم میسازند اما این دادهها برخلاف آنچه که در بانکهای اطلاعاتی معمولی وجود دارد، خام و پردازش نشده نیستند، بلکه متراکم، فیلتر شده و طبقهبندی شده هستند و شایستگی اطلاق واژه «اطلاعات» بر خود را دارند. بههمین دلیل فرآیند تصمیمسازی براساس آنها آسانتر و بامعناتر است. این سیستمها قادرند بهطور دینامیک (پویا) دادهها را در قالبها و صورتهای اطلاعاتی متفاوتی متراکم و یکپارچه کنند تا تحلیلگر بتواند معنای روشنی از آنها استنباط کند. از این اطلاعات میتوان با فرمتهای مختلف اعم از جداول، نمودارها و چارتهای متنوع، گزارش تهیه کرد و در روند تصمیمسازی مورد استفاده قرار داد.
اما BI چگونه به روند تصمیمسازی در یک شرکت یا سازمان کمک میکند؟ فلسفه اصلی پشت ایده «هوشمندی کسب و کار» این است که هر بنگاه اقتصادی باید دو دسته از حقایق را کاملاٌ روشن سازد. نخست اینکه رفتارها و فعالیتهای سازمان (Activities) دقیقاً کدامند. دوم اینکه چه رابطهای میان آنها و اهداف و برنامههای سازمان (Objectives) وجود دارد و تاثیرات متقابل این دو کدامند. BI برای این که بتواند به مدلسازی بهینهای از شرایط دو مؤلفه مذکور دست یابد، آنها را در شرایط واقعیشان یعنی در ارتباط با مشتریان، فرآیندهای درونی سازمان و فعالیت شرکتها و سازمانهای همکار میسنجد و دستهبندی میکند.
هفت مسألهعمده که توسط راهکار BI هدف قرار گرفتهاند:
۱- سازمان نیازهای اطلاعاتی ضروری و حساس خود را تشخیص نمیدهد یا نمیشناسد.
۲- سیگنالهای ضعیف از فضا و محیط کسب و کار دریافت نمیشود یا قابل تشخیص نیستند.
۳- اطلاعات و دادههایی که از برخی منبابع بیرونی میرسند بهگونهای بهینهای جمعآوری نشدهاند.
۴- اطلاعات و دانش پرسنل سازمان بهصورت بهینه مورد استفاده قرار نمیگیرد.
۵- حجم اطلاعاتی که باید ذخیره، دستهبندی، پردازش و تحلیل شوند خیلی زیاد است.
۶- ابزارها سیستمهای اطلاعاتی و محاسباتی ناکارآمد بهنظر میرسند.
۷- از اطلاعات و دادههای موجود در سازمان درست استفاده نمیشود.
منبع : ویکی پدیا
تکنولوژی آموزشی
واژه تکنولوژی آموزشی از ریشه یونانی Technologia به معنی برخورد سیستماتیک می آید و تکنولوژی آموزشی به معنای کاربرد دانش برای مقاصد عملی می باشد.
تعریف تکنولوژی آموزشی از دیدگاههای مختلف
- از نظر جی . آر . گاس مدیر مرکز تحقیقات و نوآوریهای آموزشی وابسته به سازمان همکاریهای اقتصادی کشورهای اروپایی تکنولوژی آموزشی عبارت است : طرح سازمان یافته و استقرار یک سیستم فراگیری که از مزایای روشهای نوین ارتباط جمعی و شیوه های جدید تدریس ، ابزار و وسایل بصری و سازمان بندی کلاس بهره گیری می کند .
- از نظرجیمز براون تکنولوژی آموزشی عبارت است از طراحی منظم سیستماتیک ، اجرا و ارزشیابی با استفاده از علومی چون ارتباطات وهنر و روانشناسی بخصوص مکاتب روانشناسی
نگاه جیمز براون با توجه به تعریف سیستماتیک از ارزش ویژه ای برخوردار است زیرا توجه به عملکردسیستم باعث می شود همواره یادگیری و یاددهی در غالب یک درون داد چرخه سیستم و برون داد مورد نظر و ارزیابی قرار گیرد. از این طریق میتوان مرحله به مرحله آموزش و یادگیری را مورد نظرو دقت قرار داد و معایب ومحاسن سیستم آموزش را مشخص نموده و نقاط قوت آن حفظ نموده و تکامل بخشید و نقاط ضعف آن را از بین برد تا سیستم به صورت بهینه به کار خود ادامه دهد .
کاربرد علوم مختلف در تکنولوژی آموزشی
۱ – روانشناسی : در علم تکنولوژی آموزشی به شرایط رشد ذهنی و جسمی افراد توجه شده و با در نظر گرفتن آمادگی انان برای یادگیری در زمینه های مختلف با انتخاب مکاتب مناسب یادگیری ( پیوند گرایی ، شناخت گرایی ، ساخت گرایی و …) مطالب درسی تدوین شده ، در اختیار فراگیران قرار می گیرد .
۲ –ارتباطات : طراحی پیام های آموزشی ، به مشارکت گرفتن مخاطبان ، رفع موانع ارتباطی و …. از جمله موارد ارتباطی می باشد که در علم تکنولوژی آموزشی ازآنها برای ارسال – نفوذ و درک پیام های آموزشی استفاده می شود .
۳ – هنر :تکنولوژی آموزشی با استفاده از خواص حواس در یادگیری ( بینایی %۷۵ – شنوایی %۱۳ – بویایی %۳ – لامسه %۶ – چشایی %۳) و نیز تاثیر زیبایی در یادگیری با طراحی صحیح تصاویر از طریق هم آهنگی وتضاد در طرح و هارمونی دررنگ و انتخاب خطوط و زاویه بندی مناسب سعی دارد از طریق حس بینایی به % ۷۵ تاثیر در یادگیری خود را نزدیک نماید . در کل علم تکنولوژی آموزشی قصد دارد از تمامی پدیده های علمی استفاده کرده تا امرشیرین یادگیری سریعتر اتفاق افتاده و دیر از دست برود .
تاریخچه
تکنولوژی آموزشی پس از سالهای ۱۹۰۰ مراحلی مختلفی را طی نموده است. اگرچه در سالهای قبل از ۱۹۰۰ نیز معلمان کودکان را به دیدن موزه ها میبردند و یا برای روشنتر شدن مفاهیم اجسامی را به کلاسهای درس میآوردند. برخی سوفسطائیان قرن پنجم پیش از میلاد را پیشگامان تکنولوژی آموزشی میداند .و به دلیل ماهیت سیستماتیک کار آنان از نظر طراحی و سازماندهی مواد آموزشی ، آنان را پیشگامان واقعی و غیر قابل انکار این رشته می شناسند . تکنولوژی آموزشی در طی تکامل خود از چهار مرحله گذر کرده و اکنون وارد مرحله پنجم شده است. گرچه ممکن است کشورهای مختلف الزاماً از این مراحل گذر نکنند ولی بیشتر کشورها این مراحل را تجربه کرده اند.
مرحله اول – ابزار و وسایل
مرحله دوم – مواد آموزشی
مرحله سوم – نظامهای درسی
مرحله چهارم – نظامهای آموزشی
منبع : ویکی پدیا
شنگول و منگول