韋昌法 趙濤
收稿日期:2023-09-07
基金項目:湖南省普通高等學(xué)校教學(xué)改革研究項目(2019-396)
DOI:10.19850/j.cnki.2096-4706.2024.06.039
摘? 要:闡述了基于ChatGPT開發(fā)數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程演示系統(tǒng)的意義,論述了系統(tǒng)的設(shè)計方案,提出了基于ChatGPT的軟件系統(tǒng)開發(fā)模式,利用自然語言編寫指令指揮ChatGPT開發(fā)了基于Access數(shù)據(jù)庫的學(xué)生信息管理系統(tǒng),實(shí)現(xiàn)了學(xué)生信息的查看、修改、添加和刪除等功能。上述工作有助于學(xué)生直觀地體驗(yàn)Access數(shù)據(jù)庫在實(shí)際業(yè)務(wù)中的使用方式,并深刻地認(rèn)識ChatGPT的自然語言理解能力和編程能力,激發(fā)學(xué)生學(xué)習(xí)和使用人工智能技術(shù)的意愿,并為廣大教師將ChatGPT應(yīng)用于教學(xué)工作提供一種可借鑒的模式。
關(guān)鍵詞:ChatGPT;生成式人工智能;數(shù)據(jù)庫應(yīng)用基礎(chǔ);課程演示系統(tǒng)
中圖分類號:TP18? ? 文獻(xiàn)標(biāo)識碼:A? 文章編號:2096-4706(2024)06-0185-05
Research and Practice of Developing a Course Demonstration System Based on ChatGPT
—Taking the Course of“Fundamentals of Database Application”as an Example
WEI Changfa, ZHAO Tao
(School of Informatics, Hunan University of Chinese Medicine, Changsha? 410208, China)
Abstract: This paper elaborates the significance of developing a course demonstration system for Fundamentals of Database Application based on ChatGPT, and discusses the design scheme of the system, proposes the software system development mode based on ChatGPT. It uses natural language instructions to command ChatGPT to develop the Student Information Management System based on Access database, and implements the functions of viewing, modifying, adding, and deleting student information. The above work helps students to intuitively experience the usage of Access databases in practical business, and deeply understand the natural language understanding and programming abilities of ChatGPT, stimulate students' willingness to learn and use Artificial Intelligence technology, and provide a reference model for teachers to apply ChatGPT to teaching work.
Keywords: ChatGPT; generative Artificial Intelligence; Fundamentals of Database Application; course demonstration system
0? 引? 言
2022年11月,OpenAI公司發(fā)布了對話式通用人工智能工具ChatGPT,在全球范圍內(nèi)迅速引發(fā)了廣泛的關(guān)注,成為有史以來增長最快的消費(fèi)者應(yīng)用程序[1,2]。ChatGPT擁有強(qiáng)大的自然語言理解、文本生成、情感識別能力,可以幫助用戶完成文案撰寫、語言翻譯、編寫程序等工作[3,4],讓全球用戶直觀體驗(yàn)了生成式人工智能的風(fēng)采。在ChatGPT引發(fā)的生成式人工智能研發(fā)和應(yīng)用浪潮中,廣大教師正在積極研究將ChatGPT類工具應(yīng)用于教學(xué)工作[5,6]。在此背景下,我們開展了基于ChatGPT開發(fā)數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程演示系統(tǒng)的研究與實(shí)踐工作。
1? 系統(tǒng)開發(fā)的意義
數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程是大學(xué)計算機(jī)基礎(chǔ)教學(xué)的重要課程之一,旨在培養(yǎng)學(xué)生的數(shù)據(jù)思維,提升學(xué)生利用數(shù)據(jù)庫技術(shù)對信息進(jìn)行管理、加工和數(shù)據(jù)表達(dá)的能力,以及使用數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品和數(shù)據(jù)庫應(yīng)用開發(fā)工具的能力[7]。
因?yàn)樵撜n程是面向非計算機(jī)專業(yè)的學(xué)生開設(shè)的,所以許多高校在教學(xué)過程中通常選用Microsoft Access來開展教學(xué),它是一種簡便易用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),能夠快速地創(chuàng)建并管理數(shù)據(jù)庫[8]。在教學(xué)過程中,教師通常通過實(shí)例引導(dǎo)學(xué)生創(chuàng)建數(shù)據(jù)庫以及表、查詢、窗體、報表和宏等數(shù)據(jù)庫對象,完成數(shù)據(jù)管理工作[9]。但是,在整個教學(xué)過程中學(xué)生都只能在Access中進(jìn)行數(shù)據(jù)管理操作。然而,在實(shí)際業(yè)務(wù)中,用戶通常是直接在軟件系統(tǒng)中進(jìn)行數(shù)據(jù)管理操作、而不會直接在Access等數(shù)據(jù)庫管理系統(tǒng)中進(jìn)行操作。這就意味著,學(xué)生在數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程中無法體驗(yàn)到Access數(shù)據(jù)庫在實(shí)際業(yè)務(wù)中是如何具體地被使用的,這不利于激發(fā)學(xué)生學(xué)習(xí)Access數(shù)據(jù)庫的興趣。因此,我們認(rèn)為有必要以學(xué)生熟悉的業(yè)務(wù)系統(tǒng)為例,設(shè)計一個簡單的數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程演示系統(tǒng),基于Access數(shù)據(jù)庫和簡單易學(xué)的編程語言Python來進(jìn)行開發(fā),使學(xué)生可以直觀地體驗(yàn)Access數(shù)據(jù)庫在實(shí)際業(yè)務(wù)場景中是如何被使用的,從而激發(fā)他們的學(xué)習(xí)興趣。
因?yàn)榉怯嬎銠C(jī)專業(yè)的學(xué)生的編程基礎(chǔ)相對薄弱,即使是用簡單易學(xué)的編程語言Python來開發(fā)數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程演示系統(tǒng),學(xué)生也很可能無法理解系統(tǒng)的代碼,更無法自行對系統(tǒng)功能就行修改和完善。因此,我們認(rèn)為可以利用ChatGPT來開發(fā)數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程演示系統(tǒng),教師利用自然語言編寫指令即可指揮ChatGPT完成開發(fā)工作,學(xué)生可以深刻地體驗(yàn)ChatGPT的自然語言理解能力和編程能力,也可以編寫合適的指令來指揮ChatGPT進(jìn)一步修改和完善該系統(tǒng),還可以自主指揮ChatGPT開發(fā)新的軟件系統(tǒng)。上述實(shí)踐將大大激發(fā)學(xué)生的學(xué)習(xí)興趣,激發(fā)他們學(xué)習(xí)和使用人工智能技術(shù)的意愿,使他們能夠在實(shí)踐中增長見識、提升能力、獲得學(xué)習(xí)成就感、提高自信心。
2? 系統(tǒng)設(shè)計
本文設(shè)計的數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程演示系統(tǒng)是一個基于Flask開發(fā)的Web系統(tǒng),F(xiàn)lask是一種用Python編寫的輕量級Web應(yīng)用框架,可用于快速開發(fā)Web系統(tǒng)[10]。該課程演示系統(tǒng)只有一個頁面(即系統(tǒng)主頁),通過訪問Access數(shù)據(jù)庫進(jìn)行基本的學(xué)生信息管理操作,實(shí)現(xiàn)學(xué)生信息的查看、修改、添加和刪除等功能,該系統(tǒng)的功能模塊如圖1所示。
圖1? 系統(tǒng)功能模塊圖
在學(xué)生信息查看模塊中,用戶可以通過主頁上的“學(xué)生信息”列表框查看所有學(xué)生的信息,當(dāng)用戶選中列表框中的某一條學(xué)生記錄后,主頁上半部分的“學(xué)生信息”區(qū)域?qū)⒄故驹搶W(xué)生的詳細(xì)信息。在學(xué)生信息修改模塊中,用戶可以對“學(xué)生信息”區(qū)域中展示的信息進(jìn)行修改,點(diǎn)擊“保存”按鈕后,相應(yīng)的信息將更新到Access數(shù)據(jù)庫和“學(xué)生信息”列表框中;在學(xué)生信息添加模塊中,用戶可以新增學(xué)生信息,點(diǎn)擊“保存”按鈕后,相應(yīng)的信息將保存到Access數(shù)據(jù)庫并新增到“學(xué)生信息”列表框中;在學(xué)生信息刪除模塊中,用戶可以刪除“學(xué)生信息”區(qū)域中展示的學(xué)生信息,點(diǎn)擊“刪除”按鈕后,相應(yīng)的信息將從Access數(shù)據(jù)庫和“學(xué)生信息”列表框中刪除。
3? 系統(tǒng)開發(fā)
根據(jù)上述系統(tǒng)設(shè)計方案、基于ChatGPT來開發(fā)數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程演示系統(tǒng),具體開發(fā)模式如圖2所示。在該模式下,用戶根據(jù)系統(tǒng)設(shè)計需求編寫與ChatGPT進(jìn)行對話的指令,將系統(tǒng)需要實(shí)現(xiàn)的功能以及系統(tǒng)頁面布局特點(diǎn)等信息告知ChatGPT,逐步指導(dǎo)它生成程序。需要注意的是,有時候ChatGPT所生成的代碼并不完全符合用戶的需求,需要進(jìn)一步修改完善;此時可以告知ChatGPT更多的需求細(xì)節(jié),或者將代碼運(yùn)行后編輯器輸出的錯誤信息反饋給ChatGPT,以便ChatGPT對先前生成的代碼進(jìn)行修改、直到完全滿足用戶的需求。
圖2? 基于ChatGPT的軟件系統(tǒng)開發(fā)模式
接下來,筆者將介紹給ChatGPT發(fā)送指令、指揮它開發(fā)數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程演示系統(tǒng)的具體過程。
3.1? 指揮ChatGPT開發(fā)系統(tǒng)主界面
首先,指揮ChatGPT開發(fā)系統(tǒng)主界面,在ChatGPT對話框中輸入如下的指令1。
指令1:請幫我用Flask框架開發(fā)一個學(xué)生信息管理系統(tǒng),該系統(tǒng)只有一個Web頁面(即主頁),頁面上首先顯示一個“學(xué)生信息”標(biāo)簽;下一行顯示“學(xué)號”標(biāo)簽和“學(xué)號”文本框,下一行顯示“姓名”標(biāo)簽和“姓名”文本框,下一行顯示“性別”標(biāo)簽和“性別”文本框,下一行顯示“出生日期”標(biāo)簽和“出生日期”文本框,下一行顯示“生源地”標(biāo)簽和“生源地”文本框,下一行顯示“入學(xué)年份”標(biāo)簽和“入學(xué)年份”文本框,下一行顯示“班級”標(biāo)簽和“班級”文本框;上述標(biāo)簽的長度都為50 px,上述文本框的長度都為300 px;下一行為空行;下一行顯示“添加”“保存”和“刪除”三個按鈕,每個按鈕的長度都是50 px,各個按鈕之間間隔20 px;下一行居中顯示“學(xué)生信息列表”標(biāo)簽;下一行顯示“學(xué)生信息”列表框,該列表框中的字段依次為“學(xué)號”“姓名”“性別”“出生日期”“生源地”“入學(xué)年份”和“班級”,列表框右側(cè)帶滾動條;請給出可以直接運(yùn)行的代碼。
在指令1中,要求ChatGPT利用Flask框架開發(fā)學(xué)生信息管理系統(tǒng)的主頁。筆者提出了明確的要求和設(shè)計要點(diǎn),詳細(xì)描述了主頁所需的標(biāo)簽、文本框、按鈕和列表框等頁面元素及其布局,還指定了標(biāo)簽、文本框和按鈕的長度,并要求列表框右側(cè)帶滾動條。
如圖3所示,ChatGPT回復(fù)了筆者的指令,提供了相應(yīng)的Python代碼,用于創(chuàng)建Flask應(yīng)用。代碼中包含Web頁面的布局,這些布局程序由HTML模板和Flask路由組成。ChatGPT的回復(fù)中還包含運(yùn)行該應(yīng)用的簡要說明,以便用戶可以輕松地在本地環(huán)境中運(yùn)行學(xué)生信息管理系統(tǒng)。
圖3? 指揮ChatGPT開發(fā)系統(tǒng)主界面
3.2? 指揮ChatGPT讀取數(shù)據(jù)庫中的學(xué)生信息并展示
其次,筆者指揮ChatGPT讀取Access數(shù)據(jù)庫中的學(xué)生信息并展示給用戶,在ChatGPT對話框中輸入如下的指令2。
指令2:上述學(xué)生信息管理系統(tǒng)所管理的學(xué)生信息存儲在Access數(shù)據(jù)庫中,文件路徑為“D:\project\student.accdb”,該數(shù)據(jù)庫中有一張“學(xué)生信息表”,該數(shù)據(jù)庫表的字段依次為“學(xué)號”“姓名”“性別”“出生日期”“生源地”“入學(xué)年份”和“班級”。系統(tǒng)從數(shù)據(jù)庫中讀取出學(xué)生信息后,將它們展示在“學(xué)生信息”列表框中,當(dāng)用戶點(diǎn)擊列表框中的某一條學(xué)生記錄時,系統(tǒng)將該學(xué)生的“學(xué)號”“姓名”“性別”“出生日期”“生源地”“入學(xué)年份”和“班級”等信息展示在主頁上相應(yīng)的文本框中;請在上一次問答給出的程序代碼的基礎(chǔ)上進(jìn)行擴(kuò)充和完善,實(shí)現(xiàn)上述功能。
在指令2中,筆者要求ChatGPT對之前實(shí)現(xiàn)的學(xué)生信息管理系統(tǒng)進(jìn)行擴(kuò)展,實(shí)現(xiàn)與Access數(shù)據(jù)庫的連接,讀取并顯示數(shù)據(jù)。筆者提供了數(shù)據(jù)庫文件的路徑和表格結(jié)構(gòu),明確指出了需要在列表框中展示所有學(xué)生信息記錄,并在文本框中展示選中的學(xué)生信息記錄。
如圖4所示,ChatGPT在收到指令后修改完善了之前的Flask應(yīng)用代碼,新增的代碼包含了連接Access數(shù)據(jù)庫的配置。ChatGPT還提供了修改后的HTML模板,其中包含JavaScript函數(shù),用于在用戶單擊“學(xué)生信息”列表框中的某一行后展示對應(yīng)的學(xué)生信息??傊?,ChatGPT回復(fù)的代碼充分滿足了筆者的需求,實(shí)現(xiàn)了與Access數(shù)據(jù)庫的連接,實(shí)時讀取并展示學(xué)生信息。
圖4? 指揮ChatGPT讀取數(shù)據(jù)庫中的學(xué)生信息并展示
3.3? 指揮ChatGPT實(shí)現(xiàn)修改學(xué)生信息的功能
再次,筆者指揮ChatGPT實(shí)現(xiàn)修改學(xué)生信息的功能,在ChatGPT對話框中輸入如下的指令3。
指令3:請完善上述學(xué)生信息管理系統(tǒng),當(dāng)用戶對“學(xué)號”“姓名”“性別”“出生日期”“生源地”“入學(xué)年份”和“班級”文本框中的信息進(jìn)行修改后,點(diǎn)擊“保存”按鈕,系統(tǒng)將相應(yīng)的信息更新到Access數(shù)據(jù)庫和“學(xué)生信息”列表框中;請在上一次問答給出的程序代碼的基礎(chǔ)上進(jìn)行擴(kuò)充和完善,實(shí)現(xiàn)上述功能。
在指令3中筆者要求ChatGPT完善先前提供的Flask應(yīng)用程序,以實(shí)現(xiàn)對學(xué)生信息進(jìn)行修改和保存的功能。ChatGPT回應(yīng)了筆者的請求,提供了修改后的程序代碼,該代碼包含了Flask應(yīng)用程序的邏輯,能夠處理學(xué)生信息修改和保存操作,將修改后的信息更新到Access數(shù)據(jù)庫和“學(xué)生信息”列表框中。此外,ChatGPT的回應(yīng)中還包含對HTML模板的修改,以便在用戶點(diǎn)擊“保存”按鈕時觸發(fā)表單提交,從而觸發(fā)后端代碼處理數(shù)據(jù)更新操作。
3.4? 指揮ChatGPT實(shí)現(xiàn)添加學(xué)生信息的功能
然后,筆者指揮ChatGPT實(shí)現(xiàn)添加學(xué)生信息的功能,在ChatGPT對話框中輸入如下的指令4。
指令4:請完善上述學(xué)生信息管理系統(tǒng),當(dāng)用戶在“學(xué)號”“姓名”“性別”“出生日期”“生源地”“入學(xué)年份”和“班級”文本框中填入新的學(xué)生信息后,點(diǎn)擊“添加”按鈕,相應(yīng)的信息將保存到Access數(shù)據(jù)庫并新增到“學(xué)生信息”列表框中;請在上一次問答給出的程序代碼的基礎(chǔ)上進(jìn)行擴(kuò)充和完善,實(shí)現(xiàn)上述功能。
在指令4中筆者要求ChatGPT進(jìn)一步完善先前提供的Flask應(yīng)用程序,以實(shí)現(xiàn)學(xué)生信息添加功能。ChatGPT回應(yīng)了筆者的請求,提供了修改后的程序代碼,該代碼包含F(xiàn)lask應(yīng)用程序的邏輯,能夠處理學(xué)生信息的添加操作,將新增的信息保存到Access數(shù)據(jù)庫并展示到“學(xué)生信息”列表框中。此外,ChatGPT的回應(yīng)中還包含對HTML模板的修改,以支持用戶在系統(tǒng)主頁上進(jìn)行學(xué)生信息添加操作。
3.5? 指揮ChatGPT實(shí)現(xiàn)刪除學(xué)生信息的功能
最后,筆者指揮ChatGPT實(shí)現(xiàn)刪除學(xué)生信息的功能,在ChatGPT對話框中輸入如下的指令5。
指令5:請完善上述學(xué)生信息管理系統(tǒng),當(dāng)用戶選中“學(xué)生信息”列表框中的某一條學(xué)生記錄后,點(diǎn)擊“刪除”按鈕,相應(yīng)的信息將從Access數(shù)據(jù)庫和“學(xué)生信息”列表框中刪除;請在上一次問答給出的程序代碼的基礎(chǔ)上進(jìn)行擴(kuò)充和完善,實(shí)現(xiàn)上述功能。
在指令5中筆者要求ChatGPT進(jìn)一步完善先前提供的Flask應(yīng)用程序,以實(shí)現(xiàn)學(xué)生信息刪除功能。ChatGPT回應(yīng)了筆者的請求,提供了修改后的最終版Python程序代碼以及HTML模板。
在ChatGPT的提示下,筆者將程序代碼復(fù)制到“D:\project\app.py”文件中,將HTML模板代碼復(fù)制到“D:\project\templates\index.html”文件中,安裝運(yùn)行該程序所需的Python庫pyodbc,在Windows系統(tǒng)的命令行窗口中執(zhí)行Python app.py命令以啟動程序,最后在網(wǎng)頁瀏覽器中輸入“http://localhost:5000/”以訪問學(xué)生信息管理系統(tǒng),進(jìn)入系統(tǒng)后即可在主頁上對學(xué)生信息進(jìn)行查看、修改、添加和刪除操作,系統(tǒng)運(yùn)行效果圖如圖5所示。
4? 結(jié)? 論
筆者分析了基于ChatGPT開發(fā)數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程演示系統(tǒng)的意義,開展了系統(tǒng)的設(shè)計工作,提出了基于ChatGPT的軟件系統(tǒng)開發(fā)模式,進(jìn)而基于ChatGPT開發(fā)了數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程演示系統(tǒng)——學(xué)生信息管理系統(tǒng),實(shí)現(xiàn)了學(xué)生信息的查看、修改、添加和刪除等功能。通過使用該學(xué)生信息管理系統(tǒng),學(xué)生可以直觀地體驗(yàn)Access數(shù)據(jù)庫在實(shí)際業(yè)務(wù)中是如何被使用的;通過查看該系統(tǒng)的開發(fā)過程,學(xué)生可以深刻地認(rèn)識ChatGPT的自然語言理解能力和編程能力;上述課程演示系統(tǒng)還有不少可以完善的地方,學(xué)生可以參考系統(tǒng)的開發(fā)過程,編寫合適的指令來指揮ChatGPT進(jìn)一步修改和完善該系統(tǒng),也可以自主指揮ChatGPT開發(fā)新的軟件系統(tǒng),在實(shí)踐中增長見識、提升能力。本文所論述的研究與實(shí)踐工作,為廣大教師將ChatGPT應(yīng)用于教學(xué)工作提供了一個可借鑒的模式,具有一定的參考價值。
參考文獻(xiàn):
[1] 陸偉,劉家偉,馬永強(qiáng),等.ChatGPT為代表的大模型對信息資源管理的影響 [J].圖書情報知識,2023,40(2):6-9+70.
[2] 劉禹良,李鴻亮,白翔,等.淺析ChatGPT:歷史沿革、應(yīng)用現(xiàn)狀及前景展望 [J].中國圖象圖形學(xué)報,2023,28(4):893-902.
[3] 王樹義,張慶薇.ChatGPT給科研工作者帶來的機(jī)遇與挑戰(zhàn) [J].圖書館論壇,2023,43(3):109-118.
[4] 孫柏林.ChatGPT:人工智能大模型應(yīng)用的千姿百態(tài) [J].計算機(jī)仿真,2023,40(7):1-7.
[5] 吳軍其,吳飛燕,文思嬌,等.ChatGPT賦能教師專業(yè)發(fā)展:機(jī)遇、挑戰(zhàn)和路徑 [J].中國電化教育,2023(5):15-23+33.
[6] 肖君,白慶春,陳沫,等.生成式人工智能賦能在線學(xué)習(xí)場景與實(shí)施路徑 [J].電化教育研究,2023,44(9):57-63+99.
[7] 韋昌法,羅鐵清,徐宏寧.中醫(yī)藥院?!皵?shù)據(jù)庫應(yīng)用基礎(chǔ)”線上線下混合式“金課”建設(shè)初探 [J].教師,2023(16):99-101.
[8] 韋昌法.Access數(shù)據(jù)庫應(yīng)用基礎(chǔ) [M].北京:人民郵電出版社,2020:16.
[9] 馬星光.醫(yī)藥數(shù)據(jù)管理與可視化分析 [M].北京:中國中醫(yī)藥出版社,2023:22.
[10] 許磊,林加論,張錦.基于微信小程序和Flask的教學(xué)評價系統(tǒng) [J].軟件導(dǎo)刊,2022,21(4):156-161.
作者簡介:韋昌法(1982—),男,壯族,廣西巴馬人,教授,碩士研究生導(dǎo)師,博士,研究方向:教育信息化、中醫(yī)智能輔助診療;趙濤(1997—),男,漢族,山東菏澤人,碩士在讀,研究方向:中醫(yī)藥信息學(xué)。