close
本文來源:計算機教育 作者:張亮

「金課」建設背景

2018 年 8 月 27 日,教育部印發了《關於狠抓新時代全國高等學校本科教育工作會議精神落實的通知》,提出[1]「各高校要全面梳理各門課程的教學內容,淘汰『水課』、打造『金課』,合理提升學業挑戰度、增加課程難度、拓展課程深度,切實提高課程教學質量」。教育部高等教育司司長吳岩系統闡述了「金課」,並將其歸結為「兩性一度」:高階性、創新性和挑戰度[2]。在「金課」提出的短短几個月時間裡,全國有 1 000多所高校積極響應,掀起了一股建設「金課」的熱潮。同時,隨着 4G 網絡的大規模鋪開,移動互聯網進入全面發展階段。移動互聯網的快速發展,大眾創新、萬眾創業的快速推進,使其成為社會發展的新動力之一,這些都對相關專業人才產生了巨大需求[3]。國內很多高校都將移動開發人才培養作為計算機類相關專業的培養特色[4]。


「金課」建設思路

目前,程序設計公共課的主要教學語言 C、Visual Basic 等只能講授基本的編程方法,無法直接求解複雜專業問題,課程知識與學生應用需求脫節,學生對課程的滿意度低[5]。「淘汰水課,打造金課」[1]是開設課程的基本要求。

Swift 程序設計實踐是一門實踐性很強的課程,為課程實驗環節設計一系列具備高階性、創新性和挑戰度的綜合實驗,是進行「金課」建設的關鍵環節。那麼應該如何設計基於「兩性一度」的綜合實驗呢?

移動應用開發是當前軟件開發的主流和熱點。在 App Store 中湧現出了大量優秀的創新App。這些成熟的產品為課程提供了大量優秀素材,但是這些 App 的工程開發量較大,系統設計也較為複雜,大部分會綜合運用多個成熟技術。要將這些 App 搬進課堂並非易事。需要根據課程的具體教學目的,適當地裁剪和修改 App的功能,減少重複性的工程開發量。對於複雜系統,還需要重新設計,簡化系統架構,從而適合課堂教學。另外,對於 App 涉及的課程以外的理論或技術,需要編寫補充材料,幫助學生快速掃除障礙。


綜合實驗實例:

iOS App「2048」設計與實現

本實驗要求學生綜合運用所學知識來解決實際的工程實現問題,實驗中融合了以下知識點:本課程講授的 Swift 程序設計語言和 iOS 可視化開發技術、軟件工程類課程講授的基於 UML 的系統功能分析和詳細設計方法以及單元測試和功能測試技術、課前要求預習的補充材料中的MVC 系統架構、 Cocoa Touch 開發框架和相關的可復用軟件設計模式。

1 實驗內容

本實驗以開發實現AppStore中經典App「2048」為目標,學生根據實驗任務要求,在功能分析、系統詳細設計、編碼實現、系統測試與 App 發布的整個 App 工程實現流程中,熟悉並掌握 iOS App 的設計開發方法和技術,開拓創新思維,加強知識在實際工程實現中的分析和運用能力,提升複雜工程項目的實現能力。實驗內容主要分為以下 4 個階段任務。

(1) App 功能分析。根據項目的設計要求,詳細分析 App 功能,並通過統一建模語言 UML分析和定義 App 功能。

(2) App 詳細設計。在功能分析的基礎上,設計系統架構,確定數據結構、視圖組合以及邏輯執行流程和相關算法,並通過 UML 類圖詳細刻畫系統。

(3) App 編程實現。根據 App 詳細設計,在Xcode 開發環境下,通過 Storyboard 可視化技術搭建用戶交互界面,用 Swift 語言編寫模型層、視圖層以及控制層的相關代碼。對 App 進行單元測試和全面的系統測試,修復系統中存在的 bug,完成 App 的全部功能。

(4) App 發布上線。完成 App 的項目收尾工作,包括 App 的國際化,使 App 至少支持中英兩種語言的顯示;製作 App 的圖標和 App 啟動頁。完成 App 發布的相關流程,包括申請開發者證書、創建描述文件、設置產品的標識和部署信息、提交 App。

2 實驗過程

本實驗過程大致分為 4 個階段,包括課前預習(課餘時間)、理論課精講(2 學時)、上機實驗(8 學時)、課後提交驗收(課餘時間)。

課前預習環節,教師在線發布實驗相關的教學資料(設計模式相關理論講義、 UML 2.0 規範相關文檔和手冊、 Cocoa Touch 參考手冊等),學生利用課餘時間學習並掌握相關理論知識、開發技術,能夠熟練使用相關工具軟件。

理論課精講環節,教師講解本項目開發中的要點和難點,並掃除學生在預習過程中遇到的障礙。

上機實驗環節,學生在教師的指導下完成項目的需求分析、系統設計,確保項目朝着正確的方向開展。學生獨立完成架構設計、 MVC 詳細設計、編碼實現、系統單元測試與功能測試、App 發布上線。具體來講,上機實驗環節由 4 個實驗組成。

實驗1為App功能分析,要求學生對App「2048」進行詳細的系統功能設計,並繪製App 主界面草圖;再通過 UML 活動圖描述系統的主要功能及功能之間的約束關係。根據 2048遊戲規則的特點,僅通過活動圖就可以將其定義清楚,並不需要用例圖、順序圖、狀態圖等描述。活動圖是 UML 中一種重要的用於表達系統動態特性的圖,用來描述一系列具體動態過程的執行邏輯,展現活動和活動之間轉移的控制流。App「2048」的 UML 活動圖如圖 1 所示,對App「2048」系統執行的動態過程進行描述。

實驗2為App系統設計,要求學生基於MVC模式,完成App「2048」的系統架構設計以及 MVC 中每一層的詳細設計。在模型層,要將 App 中的相關對象抽象成具體的模型類,並通過 UML 類圖對模型類進行建模。在視圖層,要根據設計的 App 界面草圖,將其分解為若干子視圖部件,並通過 UML 類圖對子視圖類進行建模。在控制層,要根據模型層和視圖層的設計,定義相應的控制層邏輯,並通過 UML 類圖對視圖控制類進行建模。

App「2048」模型層的 UML 類圖如圖 2 所示,給出了模型層類圖的完整定義。在實驗指導過程中,不需要提供完整的類圖定義,可以根據學生的實際水平,給出模型層的類圖框架和部分關鍵接口定義(例如:模型層主要的類及其約束關係,類中主要屬性和方法),其餘部分由學生根據自己的設計參考完成。

實驗3為 App 編程實現,要求基於 App 架構設計,根據 MVC 各層的類圖詳細定義,在Xcode 中用 Swift 語言編碼實現所有類,實現前面定義的全部App功能。通過Simulator進行單元測試和功能測試。對於發現的錯誤,通過Xcode調試技術定位,並完成修復。

實驗4為App發布上線,要求完成App「2048」的項目收尾工作,包括App國際化,實現App至少支持中英兩種語言顯示;製作 App圖標和 App 啟動頁,提升用戶體驗。完成 App 發布的相關流程,包括:申請開發者證書、創建描述文件、設置產品的標識和部署信息、提交 App。課後提交驗收環節,學生利用課餘時間整理項目相關文檔、總結工程開發經驗,提交實驗報告和源代碼。教師在線評閱實驗報告,線下驗收項目,最後組織優秀作業完成者演示作品和分享經驗。

3 實驗報告

實驗報告主要分為預習報告和實驗報告兩部分。

預習報告由一套根據預習資料編寫的測試題構成,用來檢驗學生的預習成效,為順利開展後續工作做好準備。課前預習環節,教師在線發布實驗相關的教學資料(UML統一建模語言、MVC系統架構、Cocoa Touch框架等),學生利用課餘時間學習並掌握相關的理論知識、開發技術,能夠熟練使用相關工具軟件。

實驗報告由實驗過程中產生的文檔組成,包括:App功能分析階段的App界面設計草圖和UML活動圖模型;App詳細設計階段的模型層、視圖層以及控制層的 UML 類圖等。除了需提交預習報告和實驗報告以外,還要提交實驗中的原型系統建模文件和項目工程代碼。優秀作業還需要提交作品分享與總結的 PPT(含真機演示的視頻)。

4 實驗考核

本實驗分為 3 個考核節點。

(1)課前:自學預習資料,並完成實驗預習報告。

(2)課中:完成實驗 4 個階段的任務,包括:App 功能分析、 App 詳細設計、 App 編程實現以及 App 發布上線。其中, App 功能分析階段,要求提交界面設計草圖和 UML 活動圖模型;App詳細設計階段,要求提交 MVC 各層的 UML 類圖;App 編程實現階段,要求提交工程源代碼;App 發布上線階段,要求提交真機演示視頻。

(3)課後:整理和完善課堂上完成的文檔,匯總實驗過程中遇到的問題和採取的解決方案,總結實驗中獲取的寶貴經驗,一併編寫到實驗報告中,並與源代碼一起提交。

另外,申請優秀的作品還需要製作 PPT 介紹設計方案,併線下進行作品分享和現場演示。

5 實驗設計

本實驗是圍繞「兩性一度」標準設計的。

1)高階性

實驗有機融合了軟件開發中的軟件系統建模、軟件設計模式、移動應用開發、軟件測試等理論知識和技術。學生需要綜合運用這些知識才能順利解決實驗中的複雜工程問題。實驗教學過程有利於培養學生解決複雜問題的綜合能力和高級思維。

2)創新性

iOS App「2048」本身就是蘋果應用商店的一款非常成功的創新產品,設計開發具有較大難度。為了引導學生順利地完成複雜度高、難度大的工業級 app,開發過程被分解為四個階段。每個階段通過運用特定的工程化方法來解決相對簡單和容易的問題,從而大幅度提升了實驗教學效果、鼓舞了學生獨立從事創新性開發的信心。在實驗設計上也具有一定的創新性。

3)挑戰度

實驗取材於 App Store 的工業級產品,具有較大的實現難度。實驗過程中,對學生進行有針對性的工程化方法指導,並提供必要的配套教學資料。最終,通過教師和學生在課上課下的共同努力,幾乎每個學生都能完成實驗的基本內容。實驗既有一定的挑戰度,學生跳一跳又能夠得到。


教學效果

從2019 年開始,綜合實驗 iOS App「2048」已經應用於 2019—2020 年 2 輪教學實踐中。統計 2018、 2019、 2020 這 3 年的教學數據並提取出 4 個關鍵指標,匯總數據後如圖 3 所示。

從選課人數可以發現, 2019 年開始增加了綜合實驗 iOS App「2048」後,學生對這門課程的興趣不斷升溫。理論考試平均分和總成績平均分逐年提升,而理論知識點和考試難度變化很小,這就說明融合了大量知識點的綜合實驗對於鞏固和加強理論知識點的掌握具有較大的貢獻。課程大作業是學生自主命題設計 iOS App,難度要高於綜合實驗。優秀大作業的數量從 2019 年開始逐年提升,說明在經過綜合實驗的充分工程化訓練後,越來越多的學生已經初步掌握了複雜系統的設計方法和流程,能夠熟練運用相關方法和技術來自主設計和實現系統,具備了解決技術難題的自信和強烈的創新意識。


結 語

自從 2014 年蘋果推出 Swift 1.0 以來,經歷了大大小小几十次的版本更新,目前最新版為Swift 5.5。Swift 語言在如此高速迭代過程中不斷完善和發展,已經成為iOS App 的主流開發語言,但是這一點對於講授移動應用開發類課程的教師來說,則是極富挑戰性的,不僅要盯緊科技發展動態並及時更新已有教學內容,還要結合新技術設計出更多達到「金課」建設要求的綜合實驗。只有開拓思路、持續探索、迭代改進,才能不斷提高教學質量、豐富教學內容,才能確保課程達到「兩性一度」標準,真正將「立德樹人」這個根本任務落到實處。


參考文獻:

[1] 中華人民共和國教育部. 教育部關於狠抓新時代全國高等學校本科教育工作會議精神落實的通知[EB/OL]. [2018-08-27]. http:

//www.moe.gov.cn/srcsite/A08/s7056/201809/t20180903_347079.html.

[2] 吳岩. 建設中國「金課」 [J]. 中國大學教學, 2018(12): 4-9.

[3] 蔣宗禮. 新工科建設背景下的計算機類專業改革[J]. 中國大學教學, 2017(8): 34-39.

[4] 倪紅軍, 李霞, 周巧扣, 等. 新工科背景下移動應用開發類課程實踐教學體系構建[J]. 計算機教育, 2020(4): 32-35.

[5] 趙廣輝, 李屾, 秦珀石. 以賦能為目標的Python程序設計線下「金課」建設[J]. 計算機教育, 2019(11): 28-32.



《Swift從入門到精通》

ISBN:9787302543312

作者:張亮

掃碼京東優惠購書

《iOS應用開發基礎教程》

ISBN:9787302507529

作者:張亮

掃碼京東優惠購書

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()