هوش مصنوعی در کلاس: تکالیف را با chatgpt ایجاد و درجه بندی کنید


نویسنده (ها): Kseniia Baidina

در ابتدا منتشر شده در به سمت هوش مصنوعیبشر

هوش مصنوعی در کلاس: تکالیف را با chatgpt ایجاد و درجه بندی کنیدهوش مصنوعی در کلاس: تکالیف را با chatgpt ایجاد و درجه بندی کنید
تصویر توسط chatgpt

مقالات زیادی در مورد چگونگی استفاده دانش آموزان از ChatGPT برای تکمیل تکالیف خود – و آنچه اساتید باید در مورد آن انجام دهند وجود دارد. من شخصاً فکر می کنم اساتید باید این موضوع را تشویق کنند (اگر نمی توانید آنها را کتک بزنید ، به آنها بپیوندید) ، اما این تمرکز این مقاله نیست.

آنچه می خواهم به آن اشاره کنم این است که اساتید نیز می توانند از ChatGPT برای مدیریت کارآمدتر “تکالیف” خود استفاده کنند. ایجاد و درجه بندی تکالیف می تواند خسته کننده ، یکنواخت باشد – و در بعضی مواقع ، حتی آزار دهنده. در این مقاله ، من نحوه استفاده از API ChatGPT را برای اتوماسیون هر دو کار در خانه و درجه بندی ارسالی دانش آموزان به اشتراک می گذارم.

چرا API و نه فقط چت منظم؟
شما می توانید همه این کارها را با استفاده از رابط گپ انجام دهید ، اما یک مشکل وجود دارد: مقیاس پذیری. اگر در حال ایجاد یک تکلیف واحد یا درجه بندی چند پاسخ هستید ، خوب کار می کند. اما وقتی دانش آموزان زیادی دارید و تکالیف زیادی دارید ، انجام همه کارها به صورت دستی بیش از حد وقت گیر و ناکارآمد می شود.

API Chatgpt را تنظیم کنید

بیایید با تنظیم دسترسی به API Chatgpt شروع کنیم. اگر قبلاً این کار را کرده اید ، احساس راحتی کنید که از این قسمت پرش کنید.

برای استفاده از API ، به یک کلید API و تنظیم صورتحساب نیاز دارید ، زیرا API از آن استفاده نمی کند. در اینجا نحوه شروع کار آورده شده است:

  • ایجاد کردن حساب Openai
  • به بخش “API Keys” بروید و کلیک کنید “ایجاد کلید مخفی جدید.” بعداً برای تأیید اعتبار درخواست های خود از این کلید استفاده خواهید کرد.
  • رفتن به صورتحساب بخش و مقداری بودجه به حساب خود اضافه کنید. اضافه کردن 10-20 دلار برای شروع کافی است.

اکنون شما آماده استفاده از API هستید.

تکالیف ایجاد کنید

در این بخش ، من نشان می دهم که چگونه تکالیف خانه را با استفاده از ChatGPT تولید می کنم.

اما اول ، یک مرور سریع از رویکرد من. من تجزیه و تحلیل داده ها را آموزش می دهم ، و تکالیف معمولی من شامل یک است مجموعه داده همراه با مجموعه ای از سؤالات گسترده و باز برای پاسخگویی دانش آموزان. این قالب تفکر انتقادی را تشویق می کند و به دانش آموزان فضای خلاقیت می بخشد.

برای تولید هر تکلیف ، من استفاده می کنم:

  • مواد سخنرانی در قالب ارائه PDF
  • بوها مجموعه داده، معمولاً در قالب CSV یا اکسل

بر اساس این ورودی ها ، من از ChatGPT برای ایجاد تکالیف استفاده می کنم. حالا ، بگذارید شما را از طریق کد قدم بزنم.

ابتدا تمام کتابخانه های لازم را وارد کرده و کلید API خود را از بخش قبلی وارد کنید.

import openai
import PyPDF2
import nbformat

import pandas as pd

openai.api_key = "YOUR_API_KEY_HERE"

از آنجا که تکالیف بر اساس اسلایدها و داده های سخنرانی PDF و با فرمت CSV انجام شده است ، مرحله بعدی بارگیری این پرونده ها و استخراج متن است. API Chatgpt با ورودی متن کار می کند ، بنابراین باید قبل از ارسال آنها ، تمام مواد را به متن ساده تبدیل کنید.

کد زیر ارائه های PDF را می خواند. فقط به خاطر داشته باشید که نمودارها یا تصاویر را ضبط نمی کند. این مسئله برای من مسئله ای نبوده است ، اما بسته به محتوایی که با آنها کار می کنید ، می تواند یک محدودیت باشد.

def extract_text_from_pdf(pdf_path):
text = ""
try:
with open(pdf_path, "rb") as file:
reader = PyPDF2.PdfReader(file)
for page in reader.pages:
text += page.extract_text()
except Exception as e:
print(f"Error reading PDF: {e}")
return text

اگر چندین نمایش برای یک تکلیف واحد دارید ، می توانید آنها را در یک بلوک متن ترکیب کنید.

combined_text = ""

pdf_paths = ["Presentation1.pdf", "Presentation2.pdf"]

for pdf_path in pdf_paths:
pdf_text = extract_text_from_pdf(pdf_path)
if pdf_text:
combined_text += pdf_text + "\n"

و داده های خود را برای ارسال به ChatGPT آماده کنید.

data_path = 'data.csv'
csv_data = pd.read_csv(data_path)
csv_data_summary = csv_data.head(10).to_string()

در مرحله بعد ، بیایید تابعی را ایجاد کنیم که درخواستی را به API Chatgpt ارسال کند.

def generate_homework(pdf_text, csv_data_summary, prompt):
full_prompt = (
f"{prompt}\n\n"
f"Presentation Content: {pdf_text[:10000]}\n\n"
f"Data:\n{csv_data_summary}\n\n"
)

try:
response = openai.chat.completions.create(
model='o3-mini', # "gpt-4o-mini"
messages=[{"role": "user",
"content": full_prompt}],
temperature = 0.25
)
return response.choices[0].message.content

except Exception as e:
print(f"Error communicating with ChatGPT API: {e}")
return None

در اینجا نحوه عملکرد آن ، قدم به قدم آورده شده است:

  • این عملکرد در مطالب سخنرانی شما ، نمونه ای از مجموعه داده ها و سریع (جزئیات بیشتر در مورد سریع در قسمت بعدی) می گیرد.
  • سپس این ورودی ها را در a ترکیب می کند full_promptبشر
  • به عنوان یک بازگشت ، من محتوای ارائه را به 10،000 کاراکتر تغییر می دهم تا از بیش از حد ورودی جلوگیری شود.
  • سرانجام ، عملکرد سریع را به API Chatgpt ارسال می کند. شما می توانید از مدل های مختلف استفاده کنید – من از آن استفاده می کنم gpt-4o mini برای این مثال

اکنون برای جالب ترین و مهمترین قسمت – سریع. کیفیت خروجی به نحوه بیان دستورالعمل های خود به شدت بستگی دارد ، بنابراین مطمئناً ارزش آن را برای اصلاح دستورالعمل های خود دارید.

در زیر ، من سریع استفاده می کنم. اگر ایده هایی برای بهتر شدن آن دارید ، احساس راحتی کنید که آنها را در نظرات به اشتراک بگذارید!

در سریع من ، من:

  • از Chatgpt بخواهید که سؤالات باز را ایجاد کند و داستان پردازی را تشویق کند ، زیرا می خواهم به دانش آموزان فضای بیشتری برای خلاقیت بدهم
  • به عنوان مرجع یک سوال مثال ارائه دهید
  • به وضوح به آن دستور می دهد تا برای جلوگیری از ایجاد سؤالات بی ربط ، روی مطالب سخنرانی تمرکز کند
prompt = """
I am a university professor teaching a course on data analytics and statistics using Python.

I have a dataset with e-commerce transaction data. The dataset includes the following fields:
UserId, TransactionId, TransactionTime, ItemCode, ItemDescription, NumberOfItemPurchased, CostPerItem, Country.

I will upload a PDF containing the lecture materials.

Based on the concepts and materials covered in the lecture, please generate five assignment questions
for students working with this dataset.

The questions should:
- Be moderately open-ended (not too specific), to encourage critical thinking and analytical reasoning.
- Be clearly worded and suitable for university-level students.
- Encourage storytelling through data, not just coding.
- Align with topics from the lecture (e.g., data cleaning, descriptive statistics, visualizations,
group analysis, temporal trends).

Example (for reference):
“What can you tell about the distribution and descriptive statistics of the variables from the dataset?”
"""

سرانجام ، آماده است تا همه چیز را کنار هم قرار دهد.

result = generate_homework(combined_text, csv_data_summary, prompt)

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

Here are five assignment questions designed to encourage critical thinking 
and analytical reasoning while working with the e-commerce transaction dataset:

1. **Descriptive Statistics and Customer Insights**:
"Using descriptive statistics, analyze the purchasing behavior of users in the dataset.
What insights can you draw about the average number of items purchased and the average cost per item?
Discuss how these metrics might vary across different countries and what implications this could have for marketing strategies."

2. **Temporal Trends Analysis**:
"Examine the transaction data over time. Identify any temporal trends in purchasing behavior,
such as seasonal spikes or declines in sales. How might these trends inform
inventory management and promotional strategies for the e-commerce platform?"

3. **Data Cleaning and Quality Assessment**:
"Reflect on the importance of data cleaning in your analysis.
Identify potential issues in the dataset (e.g., missing values, outliers) and propose
methods to address these issues. How might these data quality concerns impact your findings and the overall analysis?"

4. **Correlation and Customer Segmentation**:
"Investigate the relationship between the number of items purchased and the total cost of transactions.
What correlation do you observe, and what does it suggest about customer behavior?
Based on your findings, propose a segmentation strategy for targeting different customer groups."

5. **Visualization and Storytelling**:
"Create visualizations that effectively communicate key insights from the dataset.
Choose at least two different types of visualizations (e.g., histograms, bar charts, line graphs) to represent your findings.
How do these visualizations help tell the story of customer purchasing behavior, and what actionable insights can be derived from them?"

در مورد من ، نتایج بسیار خوب به نظر می رسد. من معمولاً برخی از تنظیمات را انجام می دهم و دستورالعمل های بیش از حد دقیق را حذف می کنم تا به دانش آموزان در نحوه نزدیک شدن به تکلیف آزادی بیشتری بدهم.

تکالیف درجه

در این بخش توضیح می دهم که چگونه تکالیف خانه را با استفاده از chatGPT درجه بندی می کنم.

فقط برای recap: دانش آموزان یک مجموعه داده و مجموعه ای از سؤالات را دریافت می کنند ، و پاسخ های خود را در نوت بوک های پایتون ارسال می کنند ، از جمله نظرات که استدلال آنها را توضیح می دهد.

یک بار دیگر ، بیایید قدم به قدم کد را طی کنیم.

اول ، نوت بوک های پایتون باید به متن ساده تبدیل شوند – دقیقاً مانند من که قبلاً با PDF ها انجام دادم.

def extract_notebook_content(notebook_path):
try:
with open(notebook_path, "r", encoding="utf-8") as file:
notebook = nbformat.read(file, as_version=4)

content = []
for cell in notebook.cells:
if cell.cell_type == "code":
content.append("### Code and comments:\n" + cell.source.strip())
elif cell.cell_type == "markdown":
content.append("### Comments:\n" + cell.source.strip())

return "\n\n".join(content)

except Exception as e:
print(f"Error reading notebook {notebook_path}: {e}")
return None

قدم بعدی تهیه ارسالی دانشجویی برای Chatgpt است – اما این بخش به نظر می رسد چالش برانگیزتر از حد انتظار است.

در ابتدا ، من سعی کردم کار هر دانش آموز را به صورت جداگانه ارزیابی کنم ، اما چتپت تقریباً به همه نمرات مشابهی داد و در تلاش بود تا ارسال های قوی را از موارد ضعیف تر تشخیص دهد.

برای حل این مسئله ، من شروع به گروه بندی ارسال ها به سطل های حدود پنج کردم. من دانش آموزان را به صورت دستی به سطل تقسیم کردم تا مطمئن شوم که آثار موجود در هر سطل قابل مقایسه است. این یک ترفند ساده است که در واقع کار کرده است.

چالش دیگر این است که اطمینان حاصل کنید که چتپپ به وضوح می فهمد که کار هر دانش آموز از کجا شروع و پایان می یابد. اگر این به وضوح مشخص نشده باشد ، ممکن است از ارسال برخی از دانشجویان غافل شود یا از آن غافل شود. تمام نام های مورد استفاده داستانی هستند ، فقط در مورد.

names = ["Clara", "Malik", "Sofia", "Evan", "Leila"]

notebook_contents = {}

for name in names:
notebook_contents[name] = extract_notebook_content(name+".ipynb")

یک بار دیگر ، تابعی برای ارسال درخواست به API Chatgpt وجود دارد – این بسیار شبیه به موردی است که در ابتدا توضیح داده شده است.

def generate_feedback(task_description, csv_data_summary, notebook_content, prompt):
full_prompt = (
f"Task Description: {task_description}\n\n"
f"Data:\n{csv_data_summary}\n\n"
f"Student Notebook Content (Truncated):\n{notebook_content}\n\n"
f"{prompt}\n\n"
)

try:
response = openai.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": full_prompt}],
temperature = 0.25
)
return response.choices[0].message.content

except Exception as e:
print(f"Error communicating with ChatGPT API: {e}")
return None

این درخواست شامل:

  • توضیحات کار (که قبلاً با چند تنظیم کوچک ایجاد شده است)
  • نمونه ای از مجموعه داده (همانند بخش قبلی)
  • محتوای نوت بوک دانش آموزان ، به متن ساده تبدیل شده است

در اینجا توضیحات وظیفه ای که من استفاده می کنم وجود دارد:

task_description = """
In this assignment, you're going to do customer analysis for e-commerce store.

Data:
Transactions data for an e-commerce store. You'll find the dataset attached to the assignment.

Questions:
1. Identify potential issues in the dataset (e.g., missing values, outliers) and clean the data.

2. Using descriptive statistics, analyze the purchasing behavior of users in the dataset.
What insights can you draw about the average number of items purchased and the average cost per item?
Discuss how these metrics might vary across different countries and what implications this could have.

3. Examine the transaction data over time. Identify any temporal trends in purchasing behavior,
such as seasonal spikes or declines in sales.

4. Investigate the relationship between the number of items purchased and the total cost of transactions.
What correlation do you observe, and what does it suggest about customer behavior?

Format:
Submit Python notebook with interpretation of the results.
"""

و مانند گذشته ، چالش برانگیزترین قسمت نوشتن سریع است.

برای درست کردن آن ، من مجبور شدم خودم چندین ارسالی دانشجویی را بررسی کنم تا معیارهای درجه بندی واضح را تعریف کنم و اشتباهات متداول را که باید منجر به کسر شود ، مشخص کنم. این مرحله ضروری است – شما باید در مورد نحوه ارزیابی ارزیابی صریح باشید تا چتگپ بتواند منطق شما را منعکس کند.

در اینجا برخی از استراتژی های سریع که به آنها کمک کرده است:

  • من اسامی دانشجویی را شامل می شوم تا مطمئن شوم که چتپپ به طور تصادفی از کسی پرش نمی کند.
  • من دستورالعمل های مفصلی را در مورد آنچه انتظار می رود دانش آموزان انجام دهند ارائه می دهم (به عنوان مثال ، پاک کننده های پاک ، داده های پردازش به درستی ، توضیح نتایج و غیره).
  • من معیارهای خاصی را برای کسر نقطه تعریف می کنم – چه خطایی برای مجازات کردن و با چه میزان.

در اوایل ، من متوجه شدم که همان ارسال دانشجویی می تواند هر بار که سریع کار می کردم ، نمرات بسیار متفاوتی دریافت کنند. من با روشن تر کردن معیارهای ارزیابی و دستورالعمل های ساختار یافته تر ، این تنوع را کاهش دادم – اما برخی از تغییرات هنوز هم اتفاق می افتد.

برای رسیدگی به این کار ، من چند عنصر اضافی را به سریع اضافه کردم:

  • من از چتگپ می خواهم که او را تهیه کند سطح اطمینان در هر درجه اگر اعتماد به نفس کم یا متوسط ​​باشد ، ارسال را به صورت دستی بررسی می کنم.
  • من همچنین درخواست می کنم توجیه از درجه ، بنابراین من می توانم هر چیزی را که به نظر می رسد بررسی کرده و مرور کنم.

همچنین می توانید از قسمت نهایی – توجیهات نمره ای استفاده کنید تا در سخنرانی های آینده به اشتباهات رایج دانش آموزان بپردازید و به آنها بپردازید.

در اینجا نسخه نهایی سریع استفاده می کنم. اگر پیشنهادی برای بهبود آن دارید ، خوشحال می شوم که آنها را بشنوم!

prompt = """
You are a university professor evaluating student assignments.
You will receive submissions from several students in the following format:
- Each student’s work starts with: "WORK OF START"
- And ends with: "WORK OF END"

The students are: Clara, Malik, Sofia, Evan, Leila

Assignment requirements:
Students need to:
- Remove outliers from the dataset
- Aggregate data by customer
- Calculate and interpret mean, median, and variance for all variables
- Analyze correlation coefficients
- Provide descriptive statistics by country

Students must interpret and explain their results (e.g., significance of descriptive statistics,
meaning of correlations, behavior differences by country).

Grading criteria:
- Maximum is 10 points
- Deduct 2 points: No explanations for statistics, correlations, or behavior differences
- Deduct 1 point: Outliers not removed
- Deduct 2 points: Data not aggregated by customer
- Deduct 2 points for each unanswered question
- Deduct 4 points: no description or insights provided
- Give 1 extra point: Extra analysis (e.g., statistical tests, clustering)

Instructions:
For each student, give:
- Name
- Final grade and your level of confidence in this grade.
- 5 concise bullet points justifying the grade (max total: 500 characters)

After assigning the grade, re-check the instructions and adjust the grade if needed.
Be strict, fair, and brief.
"""

در اینجا نمونه ای از نتایج به نظر می رسد.

### Student: Clara
- **Final Grade:** 6/10 (Confidence: Medium)
- **Justifications:**
- Outliers were removed appropriately.
- Data was aggregated by customer.
- Mean, median, and variance were calculated, but explanations were insufficient.
- Correlation coefficients were analyzed, but interpretations were lacking.
- Descriptive statistics were provided, but comparisons across countries were incomplete.

افکار نهایی

بیایید همه چیز را جمع کنیم. در اینجا غذای اصلی من است:

  • تولید تکالیف خانه به نظر می رسد که بسیار ساده و آسان برای شروع کار است.
  • درجه بندیبا این حال ، اگر می خواهید چتپپ نتایج مداوم و قابل اعتماد را به دست آورد ، تلاش بیشتری می کند.

چند نکته عملی:

  • چندین ارسالی دانشجویی را خودتان بررسی کنید تا معیارهای ارزیابی واضح را تعریف کنید – آنچه می خواهید ببینید و چه چیزی سزاوار کسر است
  • ارسال های گروهی به دسته های کوچک و اطمینان حاصل می کند که هر دسته حاوی ارسالی با سطح کیفیت کاملاً متفاوت است. این کمک می کند تا بهتر بین آنها ارزیابی و تمایز قائل شود.

من هنوز در صورت لزوم به ارسال ها می پردازم و نمرات را تنظیم می کنم ، اما Chatgpt واقعاً به ساده سازی روند کمک می کند.

با تشکر از خواندن! امیدوارم که آن را مفید داشته باشید. اگر سوالی یا نظر دارید ، احساس راحتی کنید که آنها را در زیر به اشتراک بگذارید – من خوشحال خواهم شد که در مورد آنها بحث کنم.

منتشر شده از طریق به سمت هوش مصنوعی



منبع: https://towardsai.net/p/artificial-intelligence/ai-in-the-classroom-create-and-grade-assignments-with-chatgpt

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *