?

云原生技術下軟件教學模式的探索和實踐

2022-11-17 01:24
江蘇通信 2022年5期
關鍵詞:代碼編程軟件

劉 軍

南京厚建軟件有限責任公司

0 引言

計算機學科相較于其他學科的發展和變革是比較快的,在計算機語言方面經歷了機器語言、匯編語言、高級語言三個階段,在互聯網行業蓬勃發展后又延展和出現了很多語言(含腳 本)如:PHP、Python、GO、Objective-c、Android及Vue等前端框架。

目前高校在計算機軟件教育的模式、內容、適用性等方面都存在課程與行業脫節的情況,很多校企合作也僅限于局部點狀合作,學校之間、學生之間無法真正共享共建。

綜上所述,很有必要運用最新的互聯網技術,基于云原生技術構建一個混合云生態的計算機軟件教學平臺,在技術上采用云編輯器、云編譯、云發布、云托管,可以讓師生擺脫時間、地點、設備的局限隨時隨地進行授課和完成編程練習;在教學內容上建設以終為始(以本門學科結束后學生需要達到的目標作為終點,讓課程設計有一個正確的開始及過程)的課程體系,提供不同難度的業務場景教程,因材施教確保每個同學都能圍繞目標進行學習和產出。

1 計算機軟件教學現狀及應對策略

1.1 軟件教學現狀

目前高校的計算機軟件教學模式也在不斷發展和創新,但是大部分的模式是依據統一的課本教材作為主體教學方案,依然是傳統的教師講、學生聽的模式,上機操作部分也是考核學生對知識點的掌握。

同時軟件行業的發展是日新月異,人工智能、大數據、區塊鏈、元宇宙,軟件語言越來越豐富,延展的行業場景也越來越多,toG、toB、toC每一個方向都有若干的場景需求。

而高校教師平時要面臨很多班級的教學任務,各種備課、考試、批改占據了日常的大部分時間,沒有太多精力關注軟件技能和新技術的發展。

1.2 應對策略

1.2.1 千人千面,以終為始

高校的計算機軟件教學完全可以構建一個差異化的教學模式,允許每個學生提前選擇好專研的項目方向,再采用以項目結果為導向的教學模式,讓學生時刻知道他的學習目標和進展,過程中同學之間可以共享階段作品,通過互相之間的幫助和交流來提升學習的動力。

1.2.2 共享開放,持續迭代

引入以軟件項目工程實戰經驗為目標的教學內容,提供一個開放的課程入駐系統,允許軟件企業在校企合作時共建課程,可以吸納在各個垂直行業有影響力的企業將優勢產品轉化為教學實訓課程,這樣就可以讓教學內容時刻保持領先性,讓師生接觸到最新的軟件項目案例,從而激發學習興趣和明確未來的學習方向。

1.2.3 項目實戰,保持領先

可以通過加強校企合作的共建能力,讓教師把教學和項目實踐融為一體,那么教師就能跟學生一起以軟件工程項目案例作為每個學年的教學目標,從而可以讓教師和學生都具備實戰經驗和保持技術的領先性。

2 基于云原生技術的教學平臺設計

云原生是一種利用云計算交付模型的優勢來構建和運行應用程序的方法論。當開發者使用云原生架構開發和運維應用程序時,可以更快速地響應產品需求和將新想法快速落地。在使用云原生技術后,開發者無需考慮底層的技術實現,可以充分發揮云平臺的彈性和分布式優勢,實現快速部署、按需伸縮、不停機交付等,這樣可以大大降低師生的介入門檻,并實現可持續性發展。

2.1 總體設計目標

(1)能夠持續導入最新的技術和項目案例,為教師提供持續的學習機會;

(2)支持多語言、多平臺、多框架,為學生提供因材施教的可能性;

(3)提供軟件工程全生命周期的閉環實訓能力,提升學生的全局性思維;

(4)支持中臺服務能力的持續迭代,讓師生可以實現敏捷研發能力;

(5)以學生成長就業作為基石,以實際項目作品無縫銜接就業創業。

2.2 構建持續迭代的生態平臺

軟件教學的重點在于編程實踐而非理論,雖然目前市面上有很多全科目的慕課平臺,但是這些平臺的功能性很少,互動實操性較弱,無法滿足軟件技術的快速迭代。

所以軟件教學平臺本身應該是采用開放式的設計目標,產品本身的每個版本發布流程需要非常完善,版本的建立、測試、預發布、正式發布等重要節點需要可管可控,才能跟上新技術的發展。

2.3 打破日常教學授課時間空間的限制

在傳統的項目實踐中,由教師布置開發任務,學生需要在不同的設備安裝軟件,將在本地編寫好的代碼作業,以手動打包發郵件、交U盤等形式提交給教師。

云原生教學平臺提供云端編程、代碼托管的工具,每個學生都可以擁有自己的獨立空間,學生可通過教學平臺在線編程或本地編寫上傳至平臺,代碼自動提交至托管平臺,代碼提交的歷史過程可以溯源,教師可以直接實時查看學生提交的代碼內容并進行修改備注。

2.4 以終為始的教學規劃可以實現因材施教

目前所有學校的編程教學都是按照教材進行的,這在很大程度上限制了學生的差異化發展,學生缺少了目標感和興趣度從而影響到學習效果。

面向未來的教學平臺應該是提供多種不同難度等級的軟件工程案例,學生可以選擇一個自己比較感興趣的工程方向,然后再匹配實踐教材,這樣學生從一開始就知道自己的學習目標,過程中的每一步實踐都是為了最終的目標,這樣才能把興趣愛好和教學目標進行融合,最終實現以終為始的教學模式,培育出百花齊放的學生。

2.5 在軟件工程的全生命周期中提升學生實戰能力

完成一個軟件工程或系統,從開發到上線基本上要經歷“研發、集成、部署、交付”的過程。平臺應該支持容器化集群,再將這些容器分配給學生,學生可以在容器中構建自己的應用與服務,平臺也提供了一些基礎的系統服務,加速應用產品開發,實現軟件生產發布的完整流程實踐。通過完整地體驗軟件工程的全生命周期過程,才能具備更加全局的研發思維。

2.6 豐富的中臺能力滿足創新創業的快速實踐

教師可以通過維護開發某些中臺能力,開放給需要此功能的學生,學生基于此中臺能力構建業務應用,一方面減少重復構建功能,另一方面也能夠熟悉真實開發場景流程。豐富的中臺能力可以支撐業務系統快速落地,展示學習成果。

隨著中臺服務的補充和完善,也為后續的學生提供了實現創意的基礎,可在這些中臺服務之上搭建自己的創意業務,為學生創新創業提供了很好的條件。

2.7 給學生提供一個學習沉淀平臺,提升就業機會

云原生可以為每一位學生提供獨立的空間服務,每個空間存在物理隔離,在空間下可以擁有多個容器,學生可將自己的作品進行部署與管理。這些作品可以一直迭代更新至從高校畢業,這些作品也是很好展示個人能力的一張名片。

學生在與企業交流時,可以直接展示工程作品、代碼工程、作業流程,一是可以很具象地展示出自己的個人能力與學習成果,二是體現院校與時俱進的教學實踐模式,讓企業與學生交流起來更順暢,為學生和院校帶來更多機會與尊重。

3 教學平臺的業務功能

教學平臺提供云端仿真實訓平臺與標準實用課程資源,可為每位教師學生生成標準化的軟件開發環境。平臺采用B/S架構的在線使用模式,工作學習不受時間地點的限制,把理論教學、案例教學、軟件使用、項目實訓融為一體,打造學生在線代碼訓練、版本管理、代碼Review、代碼托管、查看運行結果、提交作業、查看成績,教師項目管理、查看學生提交的源碼與運行結果、發布成績的在線教學開放平臺。

平臺采用分層設計的思路來打造一個全面的技術中臺,通過低代碼平臺的能力調用業務中臺豐富和開放性的能力,可以快速構建教學平臺的業務場景,并實現日后的低成本維護。云原生教學平臺架構如圖1所示。

圖1 云原生教學平臺架構圖

3.1 基礎管理

由平臺管理員對學校教師學生人員信息、組織架構進行管理,支持批量導入人員信息,關聯手機號密碼,人員無需注冊即可登錄,根據學校實際院系、專業、年級、班級錄入信息,將人員信息與組織架構關聯,人員根據相匹配的角色權限使用平臺功能,方便管理。

3.2 課程管理

課程管理實現對教師所授課程信息的管理。課程整體規劃時,教師可以根據實際教學需求進行方案的設計,包括該課程章節設計、作業練習布置,支持給不同班級分別布置編程作業,規定起止時間;制作課件教案時,平臺提供項目案例資源課程庫供教師選擇使用,支持瀏覽、修改課程內容,同時支持使用markdown自定義快速制作課件,支持插入鏈接、圖片、代碼段、視頻、文檔等內容,實時預覽,為教師教學提供便利。適用于基礎教學、項目實訓、考試測評等場景,教師發布課程后,對應班級學生可進入課程學習,可查看課程進度、授課教師、課程作業等,完成作業后在線提交,教師批改完成公布參考答案,學生可查看成績與評語,下載參考答案代碼。課程管理如圖2所示。

圖2 課程管理

3.3 腳手架管理

在軟件工程領域中,腳手架是幫助開發人員在開發過程中使用的開發工具、開發框架,在教師帶學生做項目時,很多項目初期做的事情基本上都是一樣的,在項目中減少重復的代碼行、方法及模塊,避免重新造輪子,借助已有的框架或工具提高效率。教師上傳腳手架,在課程編程環境中,學生就可使用腳手架,無需從頭開始搭建或者編寫底層軟件,提升編程體驗,縮短開發時間。使用腳手架,對于一個具體問題,可以套用現成的解決方案加以擴展。使用腳手架的應用,僅需通過簡單的注解和配置就可以具備健康狀態檢查、生產環境就緒、可觀測等基本服務能力。對于一個業務邏輯問題,可以復用已有的邏輯,一步步迭代,敏捷開發。環境腳手架如圖3所示。

圖3 環境腳手架

3.4 云編程

教學平臺提供云端開發環境,學生教師無需安裝任何軟件,隨時隨地打開瀏覽器就能使用,平臺同時兼容PYTHON、JAVA、PHP等熱門編程語言開發環境,滿足不同計算機學科專業教師的教學需求,省去復雜的配置工作,直接進入開發狀態,包含代碼高亮、自動補全、Git集成、終端等IDE的基礎功能。同時支持實時調試、插件擴展等,可以幫助學生、教師快速完成各種應用的開發、編譯與部署工作。在實際教學過程中,教師只需一鍵開啟編程環境,創新教學模式,邊講課邊編程,學生根據步驟查看課件,跟隨編程,開發過程中會提示錯誤類型與錯誤詳情,可快速復制查詢解決方法,輔助教師批改作業,提高學生學習訓練代碼的規范性,代碼完成后支持實時查看運行結果。根據在校學生的日常學習情況,教師可隨時查看學生軟件代碼的提交情況,從研發效率、代碼質量、執行效率、編碼規范等維度綜合觀察考評,有效管控代碼質量,經過不斷的實踐練習,提高學生代碼開發能力。

3.5 直播授課

在遇到特殊時期或授課需要,遠程直播授課對于教師和學生來說更加方便,教師可將需要分享給學員的畫面通過平臺配置好,比如教學現場、電腦屏幕、PPT等;學員在規定時間內進入直播間,即可觀看實時的直播內容。講師與學員可進行文字、圖片、語音的交流互動,解決學生在日常作業以及課程中留下的問題,最大化地還原線下授課的場景。教師可以很好地把控學生上課的狀態,并且做到實時監督,隨時切換到學生編輯器環境查看。支持直播回放,學生可實現隨時隨地學習,不會因為場地、時間、設備的問題導致學生無法參加課程,給學員提供一個低延時、高清的線上直播課堂體驗。

3.6 項目發布中心

教學平臺支持多人協作開發,教師創建教學項目,將不同班的學生分班/分團隊管理。教師作為項目的負責人,對學生的學習任務進行及時有效督促,添加團隊成員,指定組長。教師可對學生進行任務分配,以便學生明確自己要做的事情。由學生分別在各自的分支中開發,開發完成后將代碼合并到組長主干中,測試主干后對發布的版本標注一個版本號,教師可隨時查看學生提交的項目代碼,完成項目需求管理、項目計劃管理、成員管理、代碼托管,實現項目持續集成、持續交付、持續部署。教師可以將優秀學生項目發布到平臺展示,有利于相互交流學習。

3.7 平臺特點和優勢

基于云原生技術設計的軟件教學平臺具備如下特點及優勢:(1)平臺是標準的DevOps交付模式,過程透明開放,服務之間的耦合關聯清晰可見(傳統軟件封裝加密好的項目包不可管控);(2)平臺采用微服務化,師生可以同步迭代完善平臺,實現平臺的自成長性;(3)平臺上開發的項目具備實戰性,基于容器化可以一鍵安裝部署到一個新的環境,獨立上線運行;(4)平臺支持自建開發語言腳手架,可以支持很多常見開發語言,從而真正實現學校教師統一共建服務和課程。

4 云原生教學平臺的應用實踐

南京財經高等職業技術學校已經將云原生軟件教學平臺引入課程實踐教學,基于PHP、JAVA、PYTHON等主流工具語言開設了Java開發入門、WEB高級開發、微信小程序開發、Python網絡爬蟲、CSS初級課程、Bootstrap基礎入門等課程。在教學過程中,全校3個校區十幾名教師統一通過平臺備課,制作課件,引導學生們在教學平臺中完成課程預習、課中練習、課后作業、考試,引導學生們學會使用平臺協同開發,增強學生的創新意識與編程能力,對每個同學的編程完成情況,教師也積極使用教學平臺實時跟蹤,與學生展開討論,并認真解答學生遇到的各種問題,并順利開展了兩次編程考試,在近一年的教學實踐過程中,逐步形成了較為完善的課程資源及教學方案,為日后的教學復用提供參考。

5 結束語

教育部《2019年教育信息化和網絡安全工作要點》通知中提出,推動在中小學階段設置人工智能相關課程,逐步推廣編程教育。由此可見軟件編程教育將從高等教育的專業階段往低齡的普及階段拓展,軟件研發教學變得更加任重道遠,目前市面上的編程課程良莠不齊,教學工具的專業性和持續性非常欠缺,本軟件教學平臺的設計初衷是希望在垂直領域進行探索,本著拋磚引玉的精神為國家教育事業獻上綿薄之力。

猜你喜歡
代碼編程軟件
禪宗軟件
編程,是一種態度
元征X-431實測:奔馳發動機編程
編程小能手
紡織機上誕生的編程
軟件對對碰
創世代碼
創世代碼
創世代碼
創世代碼
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合