韋昌法 趙濤



收稿日期:2023-09-07
基金項目:湖南省普通高等學校教學改革研究項目(2019-396)
DOI:10.19850/j.cnki.2096-4706.2024.06.039
摘? 要:闡述了基于ChatGPT開發數據庫應用基礎課程演示系統的意義,論述了系統的設計方案,提出了基于ChatGPT的軟件系統開發模式,利用自然語言編寫指令指揮ChatGPT開發了基于Access數據庫的學生信息管理系統,實現了學生信息的查看、修改、添加和刪除等功能。上述工作有助于學生直觀地體驗Access數據庫在實際業務中的使用方式,并深刻地認識ChatGPT的自然語言理解能力和編程能力,激發學生學習和使用人工智能技術的意愿,并為廣大教師將ChatGPT應用于教學工作提供一種可借鑒的模式。
關鍵詞:ChatGPT;生成式人工智能;數據庫應用基礎;課程演示系統
中圖分類號:TP18? ? 文獻標識碼: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公司發布了對話式通用人工智能工具ChatGPT,在全球范圍內迅速引發了廣泛的關注,成為有史以來增長最快的消費者應用程序[1,2]。ChatGPT擁有強大的自然語言理解、文本生成、情感識別能力,可以幫助用戶完成文案撰寫、語言翻譯、編寫程序等工作[3,4],讓全球用戶直觀體驗了生成式人工智能的風采。在ChatGPT引發的生成式人工智能研發和應用浪潮中,廣大教師正在積極研究將ChatGPT類工具應用于教學工作[5,6]。在此背景下,我們開展了基于ChatGPT開發數據庫應用基礎課程演示系統的研究與實踐工作。
1? 系統開發的意義
數據庫應用基礎課程是大學計算機基礎教學的重要課程之一,旨在培養學生的數據思維,提升學生利用數據庫技術對信息進行管理、加工和數據表達的能力,以及使用數據庫管理系統產品和數據庫應用開發工具的能力[7]。
因為該課程是面向非計算機專業的學生開設的,所以許多高校在教學過程中通常選用Microsoft Access來開展教學,它是一種簡便易用的關系型數據庫管理系統,能夠快速地創建并管理數據庫[8]。在教學過程中,教師通常通過實例引導學生創建數據庫以及表、查詢、窗體、報表和宏等數據庫對象,完成數據管理工作[9]。但是,在整個教學過程中學生都只能在Access中進行數據管理操作。然而,在實際業務中,用戶通常是直接在軟件系統中進行數據管理操作、而不會直接在Access等數據庫管理系統中進行操作。這就意味著,學生在數據庫應用基礎課程中無法體驗到Access數據庫在實際業務中是如何具體地被使用的,這不利于激發學生學習Access數據庫的興趣。因此,我們認為有必要以學生熟悉的業務系統為例,設計一個簡單的數據庫應用基礎課程演示系統,基于Access數據庫和簡單易學的編程語言Python來進行開發,使學生可以直觀地體驗Access數據庫在實際業務場景中是如何被使用的,從而激發他們的學習興趣。
因為非計算機專業的學生的編程基礎相對薄弱,即使是用簡單易學的編程語言Python來開發數據庫應用基礎課程演示系統,學生也很可能無法理解系統的代碼,更無法自行對系統功能就行修改和完善。因此,我們認為可以利用ChatGPT來開發數據庫應用基礎課程演示系統,教師利用自然語言編寫指令即可指揮ChatGPT完成開發工作,學生可以深刻地體驗ChatGPT的自然語言理解能力和編程能力,也可以編寫合適的指令來指揮ChatGPT進一步修改和完善該系統,還可以自主指揮ChatGPT開發新的軟件系統。上述實踐將大大激發學生的學習興趣,激發他們學習和使用人工智能技術的意愿,使他們能夠在實踐中增長見識、提升能力、獲得學習成就感、提高自信心。
2? 系統設計
本文設計的數據庫應用基礎課程演示系統是一個基于Flask開發的Web系統,Flask是一種用Python編寫的輕量級Web應用框架,可用于快速開發Web系統[10]。該課程演示系統只有一個頁面(即系統主頁),通過訪問Access數據庫進行基本的學生信息管理操作,實現學生信息的查看、修改、添加和刪除等功能,該系統的功能模塊如圖1所示。
圖1? 系統功能模塊圖
在學生信息查看模塊中,用戶可以通過主頁上的“學生信息”列表框查看所有學生的信息,當用戶選中列表框中的某一條學生記錄后,主頁上半部分的“學生信息”區域將展示該學生的詳細信息。在學生信息修改模塊中,用戶可以對“學生信息”區域中展示的信息進行修改,點擊“保存”按鈕后,相應的信息將更新到Access數據庫和“學生信息”列表框中;在學生信息添加模塊中,用戶可以新增學生信息,點擊“保存”按鈕后,相應的信息將保存到Access數據庫并新增到“學生信息”列表框中;在學生信息刪除模塊中,用戶可以刪除“學生信息”區域中展示的學生信息,點擊“刪除”按鈕后,相應的信息將從Access數據庫和“學生信息”列表框中刪除。
3? 系統開發
根據上述系統設計方案、基于ChatGPT來開發數據庫應用基礎課程演示系統,具體開發模式如圖2所示。在該模式下,用戶根據系統設計需求編寫與ChatGPT進行對話的指令,將系統需要實現的功能以及系統頁面布局特點等信息告知ChatGPT,逐步指導它生成程序。需要注意的是,有時候ChatGPT所生成的代碼并不完全符合用戶的需求,需要進一步修改完善;此時可以告知ChatGPT更多的需求細節,或者將代碼運行后編輯器輸出的錯誤信息反饋給ChatGPT,以便ChatGPT對先前生成的代碼進行修改、直到完全滿足用戶的需求。
圖2? 基于ChatGPT的軟件系統開發模式
接下來,筆者將介紹給ChatGPT發送指令、指揮它開發數據庫應用基礎課程演示系統的具體過程。
3.1? 指揮ChatGPT開發系統主界面
首先,指揮ChatGPT開發系統主界面,在ChatGPT對話框中輸入如下的指令1。
指令1:請幫我用Flask框架開發一個學生信息管理系統,該系統只有一個Web頁面(即主頁),頁面上首先顯示一個“學生信息”標簽;下一行顯示“學號”標簽和“學號”文本框,下一行顯示“姓名”標簽和“姓名”文本框,下一行顯示“性別”標簽和“性別”文本框,下一行顯示“出生日期”標簽和“出生日期”文本框,下一行顯示“生源地”標簽和“生源地”文本框,下一行顯示“入學年份”標簽和“入學年份”文本框,下一行顯示“班級”標簽和“班級”文本框;上述標簽的長度都為50 px,上述文本框的長度都為300 px;下一行為空行;下一行顯示“添加”“保存”和“刪除”三個按鈕,每個按鈕的長度都是50 px,各個按鈕之間間隔20 px;下一行居中顯示“學生信息列表”標簽;下一行顯示“學生信息”列表框,該列表框中的字段依次為“學號”“姓名”“性別”“出生日期”“生源地”“入學年份”和“班級”,列表框右側帶滾動條;請給出可以直接運行的代碼。
在指令1中,要求ChatGPT利用Flask框架開發學生信息管理系統的主頁。筆者提出了明確的要求和設計要點,詳細描述了主頁所需的標簽、文本框、按鈕和列表框等頁面元素及其布局,還指定了標簽、文本框和按鈕的長度,并要求列表框右側帶滾動條。
如圖3所示,ChatGPT回復了筆者的指令,提供了相應的Python代碼,用于創建Flask應用。代碼中包含Web頁面的布局,這些布局程序由HTML模板和Flask路由組成。ChatGPT的回復中還包含運行該應用的簡要說明,以便用戶可以輕松地在本地環境中運行學生信息管理系統。
圖3? 指揮ChatGPT開發系統主界面
3.2? 指揮ChatGPT讀取數據庫中的學生信息并展示
其次,筆者指揮ChatGPT讀取Access數據庫中的學生信息并展示給用戶,在ChatGPT對話框中輸入如下的指令2。
指令2:上述學生信息管理系統所管理的學生信息存儲在Access數據庫中,文件路徑為“D:\project\student.accdb”,該數據庫中有一張“學生信息表”,該數據庫表的字段依次為“學號”“姓名”“性別”“出生日期”“生源地”“入學年份”和“班級”。系統從數據庫中讀取出學生信息后,將它們展示在“學生信息”列表框中,當用戶點擊列表框中的某一條學生記錄時,系統將該學生的“學號”“姓名”“性別”“出生日期”“生源地”“入學年份”和“班級”等信息展示在主頁上相應的文本框中;請在上一次問答給出的程序代碼的基礎上進行擴充和完善,實現上述功能。
在指令2中,筆者要求ChatGPT對之前實現的學生信息管理系統進行擴展,實現與Access數據庫的連接,讀取并顯示數據。筆者提供了數據庫文件的路徑和表格結構,明確指出了需要在列表框中展示所有學生信息記錄,并在文本框中展示選中的學生信息記錄。
如圖4所示,ChatGPT在收到指令后修改完善了之前的Flask應用代碼,新增的代碼包含了連接Access數據庫的配置。ChatGPT還提供了修改后的HTML模板,其中包含JavaScript函數,用于在用戶單擊“學生信息”列表框中的某一行后展示對應的學生信息。總之,ChatGPT回復的代碼充分滿足了筆者的需求,實現了與Access數據庫的連接,實時讀取并展示學生信息。
圖4? 指揮ChatGPT讀取數據庫中的學生信息并展示
3.3? 指揮ChatGPT實現修改學生信息的功能
再次,筆者指揮ChatGPT實現修改學生信息的功能,在ChatGPT對話框中輸入如下的指令3。
指令3:請完善上述學生信息管理系統,當用戶對“學號”“姓名”“性別”“出生日期”“生源地”“入學年份”和“班級”文本框中的信息進行修改后,點擊“保存”按鈕,系統將相應的信息更新到Access數據庫和“學生信息”列表框中;請在上一次問答給出的程序代碼的基礎上進行擴充和完善,實現上述功能。
在指令3中筆者要求ChatGPT完善先前提供的Flask應用程序,以實現對學生信息進行修改和保存的功能。ChatGPT回應了筆者的請求,提供了修改后的程序代碼,該代碼包含了Flask應用程序的邏輯,能夠處理學生信息修改和保存操作,將修改后的信息更新到Access數據庫和“學生信息”列表框中。此外,ChatGPT的回應中還包含對HTML模板的修改,以便在用戶點擊“保存”按鈕時觸發表單提交,從而觸發后端代碼處理數據更新操作。
3.4? 指揮ChatGPT實現添加學生信息的功能
然后,筆者指揮ChatGPT實現添加學生信息的功能,在ChatGPT對話框中輸入如下的指令4。
指令4:請完善上述學生信息管理系統,當用戶在“學號”“姓名”“性別”“出生日期”“生源地”“入學年份”和“班級”文本框中填入新的學生信息后,點擊“添加”按鈕,相應的信息將保存到Access數據庫并新增到“學生信息”列表框中;請在上一次問答給出的程序代碼的基礎上進行擴充和完善,實現上述功能。
在指令4中筆者要求ChatGPT進一步完善先前提供的Flask應用程序,以實現學生信息添加功能。ChatGPT回應了筆者的請求,提供了修改后的程序代碼,該代碼包含Flask應用程序的邏輯,能夠處理學生信息的添加操作,將新增的信息保存到Access數據庫并展示到“學生信息”列表框中。此外,ChatGPT的回應中還包含對HTML模板的修改,以支持用戶在系統主頁上進行學生信息添加操作。
3.5? 指揮ChatGPT實現刪除學生信息的功能
最后,筆者指揮ChatGPT實現刪除學生信息的功能,在ChatGPT對話框中輸入如下的指令5。
指令5:請完善上述學生信息管理系統,當用戶選中“學生信息”列表框中的某一條學生記錄后,點擊“刪除”按鈕,相應的信息將從Access數據庫和“學生信息”列表框中刪除;請在上一次問答給出的程序代碼的基礎上進行擴充和完善,實現上述功能。
在指令5中筆者要求ChatGPT進一步完善先前提供的Flask應用程序,以實現學生信息刪除功能。ChatGPT回應了筆者的請求,提供了修改后的最終版Python程序代碼以及HTML模板。
在ChatGPT的提示下,筆者將程序代碼復制到“D:\project\app.py”文件中,將HTML模板代碼復制到“D:\project\templates\index.html”文件中,安裝運行該程序所需的Python庫pyodbc,在Windows系統的命令行窗口中執行Python app.py命令以啟動程序,最后在網頁瀏覽器中輸入“http://localhost:5000/”以訪問學生信息管理系統,進入系統后即可在主頁上對學生信息進行查看、修改、添加和刪除操作,系統運行效果圖如圖5所示。
4? 結? 論
筆者分析了基于ChatGPT開發數據庫應用基礎課程演示系統的意義,開展了系統的設計工作,提出了基于ChatGPT的軟件系統開發模式,進而基于ChatGPT開發了數據庫應用基礎課程演示系統——學生信息管理系統,實現了學生信息的查看、修改、添加和刪除等功能。通過使用該學生信息管理系統,學生可以直觀地體驗Access數據庫在實際業務中是如何被使用的;通過查看該系統的開發過程,學生可以深刻地認識ChatGPT的自然語言理解能力和編程能力;上述課程演示系統還有不少可以完善的地方,學生可以參考系統的開發過程,編寫合適的指令來指揮ChatGPT進一步修改和完善該系統,也可以自主指揮ChatGPT開發新的軟件系統,在實踐中增長見識、提升能力。本文所論述的研究與實踐工作,為廣大教師將ChatGPT應用于教學工作提供了一個可借鑒的模式,具有一定的參考價值。
參考文獻:
[1] 陸偉,劉家偉,馬永強,等.ChatGPT為代表的大模型對信息資源管理的影響 [J].圖書情報知識,2023,40(2):6-9+70.
[2] 劉禹良,李鴻亮,白翔,等.淺析ChatGPT:歷史沿革、應用現狀及前景展望 [J].中國圖象圖形學報,2023,28(4):893-902.
[3] 王樹義,張慶薇.ChatGPT給科研工作者帶來的機遇與挑戰 [J].圖書館論壇,2023,43(3):109-118.
[4] 孫柏林.ChatGPT:人工智能大模型應用的千姿百態 [J].計算機仿真,2023,40(7):1-7.
[5] 吳軍其,吳飛燕,文思嬌,等.ChatGPT賦能教師專業發展:機遇、挑戰和路徑 [J].中國電化教育,2023(5):15-23+33.
[6] 肖君,白慶春,陳沫,等.生成式人工智能賦能在線學習場景與實施路徑 [J].電化教育研究,2023,44(9):57-63+99.
[7] 韋昌法,羅鐵清,徐宏寧.中醫藥院校“數據庫應用基礎”線上線下混合式“金課”建設初探 [J].教師,2023(16):99-101.
[8] 韋昌法.Access數據庫應用基礎 [M].北京:人民郵電出版社,2020:16.
[9] 馬星光.醫藥數據管理與可視化分析 [M].北京:中國中醫藥出版社,2023:22.
[10] 許磊,林加論,張錦.基于微信小程序和Flask的教學評價系統 [J].軟件導刊,2022,21(4):156-161.
作者簡介:韋昌法(1982—),男,壯族,廣西巴馬人,教授,碩士研究生導師,博士,研究方向:教育信息化、中醫智能輔助診療;趙濤(1997—),男,漢族,山東菏澤人,碩士在讀,研究方向:中醫藥信息學。