موضوع مقاله: لوگو (زبان برنامه‌نویسی) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # لوگو (زبان برنامه‌نویسی) | مقدمه: امروزه این زبان با لاک‌پشت گرافیکش شناخته می‌شود، اما لوگو قابلیت‌های خوبی نظیر کار با لیست، فایل، ورودی/خروجی و حلقه‌ها دارد. | ## بخش 1: لوگو (زبان برنامه‌نویسی) | تاریخچه اواسط دهه ۱۹۶۰ میلادی سیمور پپرت به همراه ماروین مینسکی آزمایشگاه هوش مصنوعی دانشگاه ام‌آی‌تی را راه‌اندازی کرد. پپرت با گروهی از شرکت بولت، برنک و نیومن (BBN) که توسط والاس فرزیگ رهبری می‌شد همکاری کرد و در سال ۱۹۶۷ اولین نسخه زبان لوگو به وجود آمد. هدف گوست آموزش حل مسئله بود و کودکان می‌توانستند در یک محیط ریاضیاتی کار با کلمات و جمله‌ها را یاد بگیرند. هدف از آموزش کودکان در زمینهٔ فناوری ، درگیر کردن آن‌ها در فعالیت‌های هدفمند است تا ضمن جذب مهارت‌ها و مفاهیم موجود کودکان ، به سمت دانش سطح بالا (پیشرفته) و اندیشهٔ انتقادی ناشی از فرایندها و تولیدات فنی سوق داده شوند. تلاش برای فهم و به‌کارگیری فرایندها ( شامل تصمیم‌گیری در بارهٔ انتخاب و به‌کارگیری فناوری‌های مناسب ؛ طراحی ، و ساخت و ارزیابی تولیدات و فرایندهای فنی ؛ اجرا و توسعهٔ مواد ، اطلاعات و سیستم‌ها ) و فناوری‌های نوین ، مطمئناً اولین چالش خواهد بود (1996,X) . اغلب تاکیدات بر استفاده از رایانه به عنوان ابزاری برای بهره وری و حل مسئله در یک محیط یادگیری سازنده است که عمدتاً ، استانداردها به‌طور روشنی ، تعریف شده‌اند . لگو برای استفادهٔ کودکان و بر اساس دیدگاه پیاژه (1964) مبنی بر اینکه مفاهیم انتزاعی را می‌توان با بررسی‌های اکتشافی دستی ( تجربه عملی ) یادگرفت ، طراحی شد. از نظر پاپرت ، کودکان فعالانه ساختارهای فکری خود را می سازند و توانایی یادگیری استفاده از زبان برنامه‌نویسی و رایانه را دارند که یک مهارت پایه برای یادگیری هر چیزی است (1996,X) . در برنامه‌نویسی با مؤلفه‌ای تحت عنوان " معناسازی " روبرو هستیم ، هر نشانه در برنامه ، معنایی دارد و دانش آموزان فهم خود را از این نشانه‌ها در ذهن می سازند (2006Ricca and et all, ترجمه پرستو علیخانی) در حال حاضر لوگو تفاوت چندانی با ایده‌های اولیه قبل از اولین لاک‌پشت ندارد. در اوایل طراحی این زبان یک روبوت به شکل لاک‌پشت با توجه به دستورهای نوشته شده در کامپیوتر روی زمین حرکت می‌کرد. | ## بخش 2: لوگو (زبان برنامه‌نویسی) | این روبوت که ایروینگ نام داشت دارای حسگرهای لمسی بوده و می‌توانست به عقب، جلو، راست و چپ حرکت کرده یا زنگ خود را به صدا درآورد. بعدها روبوت لاک‌پشت حذف و به نمایشگر کامپیوتر منتقل شده و با دستورهایی شکل و طرح‌هایی را رسم می‌کرد. طراحی مشهورترین خصوصیت لوگو نشانه‌گر به شکل لاک‌پشت آن است که می‌توان دستور حرکت یا کشیدن شکل به آن داد و با توجه به برنامه خطوط گرافیکی رسم می‌کند. لاک‌پشت گرافیکی در اواخر دهه ۱۹۶۰ میلادی توسط سیمور پپرت به لوگو اضافه شد تا نسخه دارای روبوت لاک‌پشت را پشتیبانی کند. این روبوت لاک‌پشت یک روبوت ساده بود که از ایستگاه کاری کاربر کنترل می‌شد و دستورهایی برای رسم اشکال به روبوت که دارای یک قلم درون خود یا چسبیده به آن بود می‌داد. استفاده از هندسه لاک‌پشت به جای یک مدل مرسوم‌تر، حرکت منطقی روبوت لاک‌پشت را تقلید می‌کند. هندسه لاک‌پشت با (x،y) ای که در هندسه کارتزین استفاده می‌شود، تفاوت دارد و بیشتر در یک فضای اقلیدسی کار می‌کند (با استفاده از اندازه‌ها و زوایای نسبی و بدون مبدأ و متفاوت از سیستم‌های با دستگاه مختصات). یک دانش‌آموز با فرض اینکه اگر جای لاک‌پشت باشد باید چه حرکتی انجام دهد، می‌تواند حرکت لاک‌پشت را بفهمد (پیش‌بینی و دربارهٔ آن استدلال کند). لوگو حساس به بزرگ یا کوچک بودن حروف نیست ولی حالت را برای فرمت کردن نگه می‌دارد. لوگو مصالحه‌ای بین زبان برنامه‌نویسی ترتیبی با ساختار بلوکی و زبان برنامه‌نویسی تابعی است. | ## بخش 3: لوگو (زبان برنامه‌نویسی) | این زبان برای آموزش برنامه‌نویسی به کار می‌رود، اما به خاطر امکانات خوب کار با لیست‌ها زبان بسیار خوبی برای ایجاد scriptهای مفید است. گیومه: به این معنا که "این عبارت به همین شکل ارزیابی می‌شود" یا "ارزش این عبارت بعد از ارزیابی همان ارزش قبل از ارزیابی است". حوزه لزومی به تعریف متغیرها قبل از استفاده از آن‌ها وجود ندارد، در نتیجه حوزه تعریف آن‌ها سراسری (global) است. یک متغیر می‌تواند به صورت محلی تعریف شود، بنابراین حوزه تعریف آن محدود به همان رویه و رویه‌هایی که فراخوانی می‌کند است (حوزه پویا). فراخوانی یک رویه با ورودی‌هایش متغیرهای محلی ایجاد می‌کند که مقادیر آرگومان‌ها را نگه می‌دارند. فهرست زبان برنامه نویسی لوگو لیست را از لیسپ گرفته‌است و لیست‌ها روش اولیه ذخیره‌سازی بردارهاست. آرایه نیز در این زبان پشتیبانی شده‌است: عملگرهایی برای تبدیل کلمه‌ها به لیست و لیست به آرایه و برعکس وجود دارد. لیست‌های خصوصیت ها یک لیست خصوصیت لیستی است که در آن آیتم‌های با شماره فرد نشان‌دهنده اسم خصوصیت و آیتم‌های با شماره زوج نشان‌دهنده مقدار خصوصیت است. | ## جمع‌بندی | از هر نوشته‌ای بعد از علامت نقطه-ویرگول؛ صرف‌نظر شده و به کاربر این امکان داده می‌شود که توضیحاتی برای برنامه بنویسد.