عنوان پایان‌نامه

شناسایی فریبکاری دانش آموزان در سیستم خودآموز هوشمند



    دانشجو در تاریخ ۰۶ مهر ۱۳۹۱ ، به راهنمایی ، پایان نامه با عنوان "شناسایی فریبکاری دانش آموزان در سیستم خودآموز هوشمند" را دفاع نموده است.


    محل دفاع
    کتابخانه مرکزی پردیس 2 فنی شماره ثبت: E 2656;کتابخانه مرکزی -تالار اطلاع رسانی شماره ثبت: 68196
    تاریخ دفاع
    ۰۶ مهر ۱۳۹۱

    با توجه به ضرورت وجود سیستم های آموزشی هوشمند در دنیای امروز، توجه به کیفیت آموزش در این سیستم ها یک نکته اساسی و ضروری است. که می توان با ارزیابی از طریق آزمون و تمرین، پی به میزان مفید بودن سیستم برای دانشجو، برد. اما امروزه با توجه به گسترش اینترنت و وجود منابع آزاد میزان فریبکاری و تقلب در انجام تمارین بسیار دیده می شود. پس نیاز به سیستمی برای کشف و شناسایی تقلب کاملا واضح است. در بعضی از سیستم های کشف تقلب که برای متن ساده استفاده می شوند بیشترین تمرکز بر روی یافتن سبک نویسنده می باشد. هدف این پروژه نیز تعمیم این مطلب به کدهای برنامه نویسی است. از این رو در مرحله اول مشخصه های اصلی مربوط به سبک کد، استخراج شده و در مرحله بعد با بقیه کدها مقایسه می شود و سپس با خوشه بندی به کدهای مشابه از لحاظ سبک می رسیم. ضمنا همزمان برای هر نویسنده پروفایلی هم ایجاد می کنیم که می توان از آن برای مقایسه کد جدید دانشجو و کدهای قبلی او استفاده کرد. تا اگر تغییری در سبک نویسنده اتفاق بیافتد، یعنی شباهت کد جدید با کدهای قبلی این فرد کم باشد، احتمال تقلب بدهیم. ضمنا اگر در مرحله قبل این فرد در یک کلاستر تقلب (خوشه شامل کدهای شبیه به هم) شناسایی شده باشد، بتوانیم نتیجه بگیریم که احتمالا در جریان تقلب، تقلب گیرنده بوده است. اما اگر در یک کلاستر تقلب وجود داشت و نیز شباهت کد جدیدش یا پروفایل قبلی اش زیاد باشد احتمالا تقلب دهنده است. از طرف دیگر ماژولی برای شناسایی کدهای کپی برداری شده از اینترنت یا از یک فرد خارج از محدوده دانشجویان، طراحی شده است. به این نحو که سطح سبک برنامه نویسی را مشخص می کند که آیا در سطح مبتدی است یا پیشرفته در صورتی که سطح پیشرفته باشد و کدهای قبلی او در سطح مبتدی باشند احتمال تقلب وجود دارد.
    Abstract
    In this project a plagiarism detection framework is proposed based on coding style. Furthermore, the typical style-based approach is improved to better detect plagiarism in programming codes. The plagiarism detection is performed in two phases: in the first phase the main features representing a coding style are extracted. In the second phase the extracted features are used in three different modules to detect the plagiarized codes and to determine the giver and takers of the codes. The extracted features for each code developer are kept in a history log, i.e. a user profile as his/her style of coding, and would be used to determine the change in coding style. The user profile allows the system to detect if a code is truly developed by the claimed developer or it is written by another person, having another style. Furthermore, the user profile allows determining the code giver and code taker when two codes are similar by comparing the codes’ styles with the style of the programmers. Also if a code is copied from the internet or developed by a third party, then the style of who claims the ownership of the code is normally less proficient in coding than the third party and can be detected. The difference between the style levels is done through the style level checker module in the proposed framework. The proposed framework has been implemented and tested and the results are compared to Moss which shows comparable performance in detecting plagiarized codes.