王曉亮 吳春梅
(廣西科技師范學院 廣西來賓 546100)
Android操作系統是由谷歌公司開發的一個開源的,基于Linux系統的,移動設備操作系統。截至2019年9月,在手機領域,Android已遠遠超越 iOS,占據手機端操作系統70% 左右的市場份額[1]。在未來,隨著物聯網技術的發展,Android操作系統也會在物聯網領域大放異彩。現在本科院校開設的《Android應用開發》課程可以為社會培養大量的Android工程師人才。我校作為應用型本科院校,也開設了這門課程。為服務地方,培養應用型人才盡一份力。
《Android應用開發》課程是一門綜合性很強的課程,通常在大三學年開設。這時學生已經具備一定的開發基礎。在《Android應用開發》的教學過程中,除了Android基礎編程的教學外,也還涉及很多網絡編程、數據庫開發應用等知識。在教學過程中涉及的計算機相關知識體系繁多,對于教學的要求很高。作為一門本科教育階段的新增課程,其內容體系和教學模式尚處于探索階段[2]。為了更好地培養應用型人才,在當前這個移動互聯網時代,我們不能局限于傳統教學模式,需要有教學上的創新,才能跟上時代的發展,為社會培養有用的人才。
《Android應用開發》課程是屬于軟件工程專業的課程,在教學過程中,理論學時占比為三分之二,實驗教學占比為三分之一。在傳統教學模式下,任課老師會根據教學大綱安排,針對各個知識點進行理論講解,然后通過實驗環節來鞏固理論知識點。在這種傳統模式下,我們發現,由于涉及的知識點非常多,學生通常對于單個的知識點能夠掌握理解,但是面對復雜一些的項目,會比較茫然,難以入手,不能從工程角度來整合知識、解決問題。作為未來的軟件開發工程師,這是能力上還存在缺陷,不能把所學知識很好地轉化為應用。學生學習效果沒有達到預期效果,作為教師我們需要反思,《Android應用開發》這門本科課程,我認為是傳統教學模式中會存在以下幾個問題:
(1)傳統教學法往往是將一個任務分為多個階段,分階段完成任務,任務之間相對獨立[3]。所以學生在學習的過程中比較難以理解各個知識點之間的關系,在完成綜合性項目的時候會摸不著頭腦。實驗教學部分也是圍繞各個階段學習的知識點來設計的,學生很難全面了解所學內容,學習過程中會感到枯燥,部分學生會喪失學習興趣。最終教學效果不理想。
(2)在5G時代,我們身處移動互聯網中。Android項目開發的App更重要的是作為前端界面,在開發的過程中,我們還需要考慮與服務端、數據庫等之間的關系。導致了《Android應用開發》課程涉及的知識點繁雜,使用的技術也抽象難學[4]。如果教學過程中沒有考慮各個模塊之間復雜的關系,僅僅從離線、獨立的App的角度教學,沒有綜合考慮規劃合理的教學方案。這樣將極大地限制學生的發揮空間,跟不上時代腳步。
(3)本科階段的《Android應用開發》課程是一門實踐性很強的課程[5],需要學生通過編寫大量代碼的來作為日常練習。通過大量編寫程序才能夠達到練習編程技能的效果。對于老師來說,我們要檢驗學生的學習效果,傳統方式就是布置作業,然后學生提交作業或者實驗報告等。這種方式學生很容易通過復制粘貼的方式來應付任務,對于老師來說批改作業工作量也很大,不利于實時跟蹤學生學習狀態。特別是從2020年新冠疫情開始,網課開始逐漸流行,老師對于學生學習狀態的跟蹤更加困難。
綜上所述,《Android應用開發》課程使用傳統教學和考核方式的話,會導致學生實踐與理論割裂,無法提起學習興趣,學習效果不好。而且缺少軟件工程項目開發的綜合素質,不能很好應用所學內容。老師也不能很好監控學生學習狀態,教學效果不是很理想。
通過在教學過程中的不斷總結,以及和企業深入交流過程中,我們總結了一套以成果為導向的項目教學模式。具體內容為以下幾點:
(1)基于項目綜合考慮設計教學大綱
新的教學模式中,教學大綱強調以成果為導向,設計綜合性的實驗項目來幫助學生學習課程內容。設計的實驗項目通常基于實際的成熟的項目,通過反向設計,逐步把項目分解成為考核要求和知識點,詳見圖1。這樣在教學過程中,不僅要講解項目中各個模塊涉及到知識點,還要讓學生能夠理解各個模塊在項目中發揮的作用,理解整個項目架構設計的目的和意義。在教學過程中也不應局限于教材內容,嘗試在教學過程中,把知識點放在實際的、成熟的項目中去講解,積極組織學生課后討論。這樣基于實際項目的學習,能夠更好地幫助學生把學習到的知識點和理解記憶的內容轉化為具體的項目成果。同時,引導學生在不斷實踐過程中,培養項目思維,理解軟件項目組織架構,理解各個模塊的原理和方法。

圖1 項目架構和課程體系之間的關系
(2)增加實踐教學環節,加強與其他課程的聯系
為了提升學生學習興趣,增加學生實踐能力。在教學過程中,我們要以學生為中心,要讓每個學生都要能發揮自己的特點,做出自己的項目作品。這就要求課程要更加重視實踐,在教學過程中實踐和理論要緊密結合起來。而且《Android應用開發》本身就是一門實踐性很強的課程,更加需要通過增加實踐教學環節來培養學生。
通過不斷嘗試,我們認為課程可以直接安排在計算機機房上課,增加的實踐教學環節可以嘗試在每節理論課后都留下幾分鐘的時間,給學生自己動手嘗試。讓學生不是單純的對知識點進行理解記憶,而是在理解記憶知識點后可以馬上通過動手實踐加深印象。因此這些更多的實踐教學環節,可以讓學生將理論與實踐相結合的程度更深。
《Android應用開發》課程,我們設計為項目式的教學。而項目教學的關鍵是要給出明確的項目要求,進而確立項目架構,強調項目中各個模塊之間的互動,制定合理的教學策略。這門課程本身就需要先熟練使用java語言,培養的目標是讓學生能夠具備開發互聯網App應用項目的基本能力,所以還需要加強與后臺服務端開發、數據庫開發等課程的聯系,可以和其他課程授課老師進行溝通,融合這些課程的課后作業,要求學生能夠給出一套融合解決方案,來完成作業。從而達到教學目標。
為了不斷提升教學效果,我們要進行課堂教學行為分析,讓老師更了解學生,從而因材施教。課堂教學行為分析有助于教師發現教學中存在的問題,并促進教學反思和教師專業發展[6]。現在,我們在智慧課堂環境下,教師可以利用信息技術開展教學。這是教師信息技術應用能力的外化表現。具體在這門課程,我們選擇使用了Gitee這款國產代碼托管服務。Gitee在國內使用相對于GitHub來說更加穩定,高效,雖然開源軟件不如GitHub多,但是對于構建智慧課堂來說,我們能夠用Gitee實現代碼的托管、項目的管理、團隊協作開發,已經完全能夠滿足使用了。
為了提升教學效果,讓理論和實踐能夠相互結合。在嘗試使用Gitee實現迭代式項目驅動教學后,我們發現以下好處:(1)可以構建小粒度教學課堂,讓理論與實踐聯系更加緊密。(2)學生能夠更好地將課堂未完成的練習放到課外繼續,實現無縫鏈接。(3)老師可以通過網絡隨時監控學生項目進度。(4)讓學生自主的學習。
根據學生注意力集中曲線,理論學習的時間最好控制在13 分鐘以內,以減少注意力失焦現象的發生[7]。Gitee實現迭代式項目驅動教學過程中,可以從理論教學中更加頻繁地切換到實踐教學之中,這樣頻繁切換可以使得一次課堂教學的覆蓋更多的知識點。而《Android應用開發》這門課程的特點,就是知識點特別多,通過這個教學過程理論與實際能很好結合,使得各個知識點更易掌握。
使用 Gitee 構建的《Android應用開發》小粒度課堂中,我們基于項目綜合考慮構建了相應的理論案例庫和實踐案例庫。具體的案例庫分為2個部分,(1)理論知識點案例庫;(2)基于項目構建迭代式實踐項目庫;
《Android應用開發》課程教學我們選用的是在線聊天App開發項目。依據項目需要的知識點的能力要求,設計對應的理論教學環節的案例庫。教師在理論教學環節授課過程中,利用設計好的案例庫講解項目開發過程中涉及的知識點,接著學生馬上可以根據案例庫模仿驗證。驗證完成后上傳Gitee,作為整個課程項目的一個小模塊,方便以后調用,和老師檢查完成情況。
在講解案例庫的過程中,需要對案例庫的知識點進一步細化。根據案例庫代碼順序再細分成更小的版本,不斷迭代。以編寫聊天界面為例,細分迭代項目庫的構建設計見表1。根據App的開發步驟,將頁面內容開發項目細分為6個迭代步驟。

表1 細分迭代項目庫
各個迭代步驟都能對應課程知識點,每完成一個迭代步驟學生都能上傳Gitee,做到理論實踐相結合。
通常《Android應用開發》課程考核分為平時分和考核分數,重點還是在期末那一次的分數考核,這樣以一次考核決定成績的方式存在弊端,不能很好監控學生學習狀態,督促學生學習,需要建立一個新的課程評價體系了。
我們以項目為導向建立新的全過程課程評價體系。在這個課程評價體系中需要跟高效的師生協同教學,通常由老師講解完案例的每個迭代步驟后都發布對應實驗任務項目,讓學生緊跟教學進行實驗,完成后提交到Gitee中。這樣可以記錄學生提交的各個迭代步驟的作業,用來記錄學生完成項目的全過程。老師也可以通過學生上傳到Gitee的項目案例,分析提交的案例代碼,在這個作業項目從無到有的完整的過程中,老師可以通過Gitee實時查看學生編程步驟,判斷學生項目完成情況、完成時間和完成質量。還能夠通過分析學生作業完成時間,減少作業項目的抄襲現象。最后通過綜合權值來計算出最終評價。
在課后的項目擴展作業中,也能夠充分利用Gitee項目分享的便捷性,可以為課后編程實踐提供參考,實現課內編程與課外編程無縫銜接,實現編程思路的無間斷,達到培養學生良好編程習慣和學習知識技能的目的。
作為應用型高校,在課程建設的過程中,我們始終以學生為中心,通過加強校企合作,不斷改進課程體系,研究項目化教學在《Android應用開發》課程中的應用,通過多種信息化工具構建智慧課堂,實現多元化考核,提高學生工程實踐的能力。后續我們也將繼續努力,不斷完善和探索教學內容,為社會培養更多應用型人才。