هوش مصنوعی و روباتیک - Hamidreza Hosseinkhani

این وب‌گاه با هدف دردسترس قراردادن آموزش‌های رایگان هوش مصنوعی برای همه‌ی فارسی‌زبانان توسط حمیدرضا حسین‌خانی راه‌اندازی شده‌ست

هوش مصنوعی و روباتیک - Hamidreza Hosseinkhani

این وب‌گاه با هدف دردسترس قراردادن آموزش‌های رایگان هوش مصنوعی برای همه‌ی فارسی‌زبانان توسط حمیدرضا حسین‌خانی راه‌اندازی شده‌ست

هوش مصنوعی و روباتیک - Hamidreza Hosseinkhani

این وب‌گاه در سال ۱۳۹۱ (2012) برای آموزش هوش مصنوعی، روباتیک و برنامه‌نویسی توسط حمیدرضا حسین‌خانی راه‌اندازی شده‌ بود و درحال‌حاضر فعال نمی‌باشد.

حمیدرضا حسین‌خانی از نخستین مدرسان هوش مصنوعی در ایران است که از سال ۱۳۸۹ (2010 میلادی) مشغول ترویج و آموزش هوش مصنوعی ازطریق ارائه‌ی رایگان دور‌ه‌های آموزشی حضوری و آنلاین به علاقه‌مندان حوزه‌های مختلف فناوری اطلاعات ازجمله هوش مصنوعی، روباتیک، برنامه‌نویسی و پلتفرم داده‌ای بوده‌ست. او درحال‌حاضر استاد مدعو دانشگاه صنعتی شریف و پژوهشگر مستقل هوش مصنوعی و مدیر کانال تلگرامی محبوب School of AI است.
محبوب‌ترین آموزش‌های او:
۱) دوره‌ی آموزشی روبوکاپ در سایت رشد (شبکه‌ی ملی مدارس) در سال ۱۳۹۱ شامل موضوعات لینوکس، برنامه‌نویسی ++C، الگوریتم، عامل هوشمند و سامانه‌های چندعاملی، شبیه‌ساز ۲بعدی فوتبال.
۲) بوت‌کمپ‌های دانش‌آموزی روباتیک در شرکت نادکو شریف شامل ساخت عملی روبات، برنامه‌نویسی و آمادگی برای مسابقات کشوری .
۳) دوره‌ی محبوب برنامه‌نویسی اندروید در لایتک شریف که نخستین و محبوب‌ترین دوره‌ی اندروید فارسی در زمان خود بود.
۴) بوت‌کمپ‌ سامانه‌های پیشنهاددهنده با بیش از ۱۰۰۰ شرکت‌کننده.
۵) بوت‌کمپ ترنسفرمرها و مدل‌های زبانی با بیش‌از ۲۰۰۰ بازدیدکننده.
۶) درس کارگاه کامپیوتر دانشگاه شریف سال 2020 با بیش از ۱۵۰۰۰ بازدید.
۷) درس برنامه‌نویسی پایتون دانشگاه شریف سال 2021 با بیش از ۲۰۰۰۰ بازدید.
۸) درس برنامه‌نویسی C دانشگاه شریف سال 2022
۹) درس برنامه‌نویسی جاوا دانشگاه شریف سال 2023.
۱۰) درس برنامه‌سازی پیشرفته با موضوع عامل‌های هوش مصنوعی در دانشگاه صنعتی شریف که یکی از نخستین دوره‌های مربوط به عامل‌های هوشمند بود.

حمیدرضا حسین‌خانی همچنین در صنعت هم نقش فعالی داشته و سابقه‌ی همکاری به‌عنوان مهندس نرم افزار، پژوهشگر هوش مصنوعی، مدیر فنی، مشاور و ... را در تیم‌ها و شرکت‌های خوشنامی مانند دیجی‌کالا، اسنپ، اسنپ‌فود، بامیلو، دیجی‌استایل، ایران‌اپس، اینپین در کارنامه دارد. وی منتور تعداد زیادی از تیم‌های شرکت‌کننده در مسابقات مختلف برنامه‌نویسی، رباتیک و روبوکاپ و همچنین داور و برگزار‌کننده اولین دوره‌ی مسابقات دانش‌آموزی برنامه‌نویسی موبایل در دانشگاه صنعتی شریف (Nadcup 2016) است.

آخرین نظرات

در نوشتار قبلی به فرمت فایل JSON اشاره شد. فایل JSON یک فایل متنی شبیه به XML است که برای تبدیل اشیاء (یا آرایه هایی از اشیاء) به یک رشته متنی و انتقال آن بین سیستم ها از طریق شبکه مورد استفاده قرار می گیرد.

کلاس زیر را در نظر بگیرید:

class Student {
String name;
String lastName;
String studentNo;
int age;
boolean sex;
}

 

یک شی خاص از این کلاس رو می توان به فرمت JSON زیر در یک فایل متنی نوشت و آنرا به راحتی از طریق شبکه (مثلا اینترنت) بین چند سیستم منتقل کرد:

 

{

                        “name” : “Hamidreza”

        “last_name” : “Hosseinkhani”

        “student_no” : “88014026000”

        “age” : 24

        “is_male” : true

}

 

انتقال اطلاعات به صورت متنی مزایای زیادی نسبت به انتقال اطلاعات به صورت جریانی از بایت ها دارد. به عنوان نمونه اینکه در همه سیستم ها به یک شکل خوانده شده و اصطلاحا به راحتی قابل انتقال است. یک فایل JSON (همانگونه که از مثال نیز مشخص است) به راحتی برای انسان قابل فهم می باشد و با تجزیه (Parse) آن توسط یک پارسر (Parser) به راحتی می توان آنرا به کامپیوتر نیز فهماند (یک شی از کلاس Student با مقادیر صفات موجود در فایل JSON ایجاد کرد)

از طرف دیگر این فرمت مزایایی هم نسبت به سایر فرمت های متنی مثل XML دارد و به همین دلیل، API های سرویس های وب RESTful اطلاعات را به صورت JSON ارسال می کنند.

یک فایل JSON ناخوانا را می توانید از طریق سایت زیر مرتب و خوانا کنید (توجه کنید که این خوانایی برای کامپیوتر اهمیتی ندارد و صرفا برای راحت تر خواندن خود شماست)

http://www.jsoneditoronline.org/

برای تجزیه یک فایل JSON که از سمت API وب آمده یک روش این است که خودتان به صورت دستی و با استفاده از کلاس های موجود در پکیج org.json این کار را انجام دهید. اما در اینصورت تمام فایل JSON روی حافظه دستگاه شما لود می شود و داده های کلاس از آن استخراج می شوند. اگر حجم فایل JSON زیاد باشد (که معمولا در اپلیکیشن های موبایل چنین نیست) این موضوع ضعف بزرگی خواهد بود. با این حال این روش در بسیاری از اپلیکیشن های موبایل استفاده می شود.

اما روش ساده تر این است که  با استفاده از کتابخانه هایی که به این منظور توسعه یافته اند فرایند پارس کردن فایل JSON را با تعداد خط کد کمتری به انجام رسانیم. Google GSON یکی از این کتابخانه هاست. GSON از خاصیت Reflection در Java استفاده کرده و یک فایل JSON را به مراتب سریع تر و حرفه ای تر از روش قبلی پارس می کند.

برای استفاده از کتابخانه GSON آدرس زیر را در قسمت Dependency های فایل Gradle اضافه کنید:

compile 'com.google.code.gson:gson:2.3'

حال با قطعه کد زیر می توانید فایل JSON ذخیره شده در رشته jsonStr را پارس کرده و درون یک شی از کلاس Student قرار دهید.

Gson gson = new Gson();

Student student = gson.fromJson(jsonStr, Student.class);

برای اینکه مقادیر موجود در رشته JSON در صفات شی کپی شوند، لازم است نام متغیر ها در کلاس و فایل JSON یکسان باشد. اما گاهی (همانند مثال بالا) و به علت تفاوت استاندارد های نامگذاری بین برنامه نویسان موبایل و وب، ممکن است نام متغیر ها متفاوت باشند. برای نمونه در مثال بالا، کلاس Student یک متغیر به نام sex دارد که این متغیر در فایل JSON با نام is_male شناخته شده است. در این صورت لازم است در تعریف کلاس Student و در بالای متغیر sex نام دیگر آن، به صورت زیرعنوان شود:

@SerializedName(“is_male”)

boolean sex;

لازم به ذکر است که کتابخانه GSON به علت مقبولیت زیاد، از نسخه API 11 اندروید به صورت داخلی و با نام android.util.JsonReader به فریم ورک اضافه شده و قابل استفاده می باشد. اما برای نسخه های قدیمی تر اندروید باید از آن به صورت یک کتابخانه خارجی بهره برد.

استفاده از کتابخانه GSON بسیار ساده است، با این حال توصیه می کنم برای اطلاعات بیشتر، صفحه رسمی آن را مطالعه نمایید.

https://code.google.com/p/google-gson

به عنوان سخن آخر اشاره می کنم به کتابخانه دیگری به نام Jackson که بسیار سریعتر از Gson عمل می کند اما این سرعت در JSON های بسیار حجیم محسوس خواهد بود و در کاربردهای موبایل که با JSON های کم حجم سر و کار داریم به حجم بالا و کاربری سخت تر (نسبت به GSON) نمی ارزد.

موافقین ۲ مخالفین ۰ ۹۳/۰۷/۲۵
حمیدرضا حسین خانی

نظرات  (۱)

۲۷ آبان ۹۴ ، ۱۷:۴۷ امیر گنجه ای
سلام،

می خواستم ببینم چه جوری می شه با شما تماس گرفت؟

ممنون می شم آدرس ایمیلتون رو برای من ارسال کنید.

موفق باشید.
پاسخ:
میتونید بهم ایمیل بزنید در خدمتتون هستم
hosseinkhani@live.com

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی