辛凌潔 賈玉寧 楊穎
摘要:根據(jù)現(xiàn)如今的大學(xué)生學(xué)習(xí)環(huán)境以及學(xué)習(xí)習(xí)慣來看,智能手機(jī)已經(jīng)是不可替代的學(xué)習(xí)工具之一,網(wǎng)絡(luò)課程,習(xí)題等都可以在移動(dòng)客戶端上解決,不僅方便,還有很高的效率。該文以“C語言程序設(shè)計(jì)”課程為例,開發(fā)基于Android的學(xué)習(xí)平臺。學(xué)生可利用這些功能來加強(qiáng)課堂學(xué)習(xí)的效果,也可利用討論區(qū)來和網(wǎng)友進(jìn)行學(xué)習(xí)上的交流。這樣保證了學(xué)習(xí)的即時(shí)性和求解問題的有效性。
關(guān)鍵詞:Android;C語言;學(xué)習(xí)平臺
中圖分類號:TN929 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)10-0089-03
1 背景
互聯(lián)網(wǎng)的發(fā)展使計(jì)算機(jī)技術(shù)在教育領(lǐng)域也得到了廣泛的應(yīng)用。隨著智能手機(jī)的普及,一種新型的學(xué)習(xí)方式出現(xiàn)在我們面前,并且越來越大眾化。這就是所謂的移動(dòng)學(xué)習(xí)——一種在是一種在移動(dòng)計(jì)算設(shè)備幫助下的能夠在任何時(shí)間任何地點(diǎn)發(fā)生的學(xué)習(xí),移動(dòng)學(xué)習(xí)所使用的移動(dòng)計(jì)算設(shè)備必須能夠有效的呈現(xiàn)學(xué)習(xí)內(nèi)容并且提供教師與學(xué)習(xí)者之間的雙向交流[1][2]。移動(dòng)學(xué)習(xí)可以隨時(shí)隨地進(jìn)行學(xué)習(xí),這種方式解決了傳統(tǒng)課堂模式不夠方便的問題,也使資源利用率更高。對于當(dāng)代大學(xué)生來說,手機(jī)和pad等移動(dòng)設(shè)備是生活中不可缺少的物品,而我們利用這些電子設(shè)備強(qiáng)大的功能來開發(fā)一款適合大學(xué)生學(xué)習(xí)“C語言程序設(shè)計(jì)”(下文都簡稱“C語言”)的學(xué)習(xí)平臺有明顯的實(shí)用價(jià)值。
2 移動(dòng)學(xué)習(xí)平臺的需求分析
2.1 用戶調(diào)查
要想學(xué)習(xí)平臺的學(xué)習(xí)內(nèi)容更加符合學(xué)生的期望以及學(xué)習(xí)效果更強(qiáng),在開發(fā)之前筆者進(jìn)行了一個(gè)用戶調(diào)查。調(diào)查內(nèi)容主要為學(xué)生對于移動(dòng)學(xué)習(xí)平臺的需求性以及學(xué)生在C語言學(xué)習(xí)中所遇到的困難??梢愿鶕?jù)這兩點(diǎn)研發(fā)最適合學(xué)生使用的平臺,這樣不僅能節(jié)省很多開發(fā)資源也可以節(jié)省用戶的時(shí)間、增強(qiáng)用戶體驗(yàn)。
2.2 需求分析
移動(dòng)學(xué)習(xí)平臺首先必須要保證學(xué)生學(xué)習(xí)的隨時(shí)隨地性,所以要保證在本地存儲學(xué)習(xí)資源。將數(shù)據(jù)資源都存儲在本地?cái)?shù)據(jù)庫里,用戶在進(jìn)行使用的時(shí)候不用花費(fèi)太多等待響應(yīng)的時(shí)間,這樣可以更加高效率的進(jìn)行學(xué)習(xí),也能夠更加發(fā)揮了移動(dòng)互聯(lián)網(wǎng)的優(yōu)勢。其次,要盡可能的提升用戶體驗(yàn),平臺提供的學(xué)習(xí)資料必須更加系統(tǒng)化并且能突出學(xué)習(xí)重點(diǎn),而不是像一些傳統(tǒng)的題庫一樣,只有題目以及答案,而是應(yīng)該從基礎(chǔ)到問題解析再到知識點(diǎn)的延伸,這樣可以讓學(xué)生對學(xué)習(xí)內(nèi)容掌握得更加牢靠。學(xué)生在使用的時(shí)候根據(jù)自身需求和學(xué)習(xí)進(jìn)度選擇適合自己的功能。
3 移動(dòng)學(xué)習(xí)平臺的系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)體系設(shè)計(jì)
移動(dòng)端目前主流系統(tǒng)有Android和IOS等,其中Android的更新快來越快,而且Android智能手機(jī)也因?yàn)樾詢r(jià)比較高而擁有大多的用戶,所以該平臺基于Android系統(tǒng)開發(fā)并且檢測[3]。該移動(dòng)平臺基于C/S架構(gòu),基本體系結(jié)構(gòu)如圖1所示:分為服務(wù)器端數(shù)據(jù)服務(wù)、服務(wù)器端功能模塊、客戶端數(shù)據(jù)服務(wù)、客戶端功能模塊。
3.2 數(shù)據(jù)庫的設(shè)計(jì)
該平臺主要是實(shí)現(xiàn)題庫功能,所以數(shù)據(jù)庫中表格比較簡單,所以會(huì)創(chuàng)建一個(gè)Exercises表格,表格中字段有題目編號(Exercise_id),該字段設(shè)為主鍵自增長;題目內(nèi)容(Exercise_content),類型為varchar;題目答案(Exercise_solve),類型為varchar。平臺模塊中不管是隨機(jī)練習(xí)還是模擬考試都將從該Exercise表中抽取題目。由于在進(jìn)入平臺的時(shí)候有登錄以及注冊功能,所以需要?jiǎng)?chuàng)建一個(gè)用戶表,用戶的賬號信息保存在用戶表中,登錄以及注冊功能在用戶表中查詢以及增加數(shù)據(jù)。表中有三個(gè)字段:用戶ID(userID),用戶名(user)以及密碼(password)。同樣,用戶ID設(shè)置主鍵自增長,并且用戶名設(shè)置為unique,防止出現(xiàn)用戶名相同的情況。
4 C語言學(xué)習(xí)移動(dòng)平臺的實(shí)現(xiàn)
4.1 歡迎界面
考慮到美觀的因素,該移動(dòng)平臺歡迎界面分為滑動(dòng)頁面,界面上有功能模塊的名稱,讓用戶在登錄之前就大概可以了解到該App的用途。該平臺設(shè)計(jì)的是三張滑動(dòng)頁面,所以要寫三個(gè).xml文件分別表示三個(gè)界面。某一頁的代碼如圖2所示,布局里放上你每頁滑動(dòng)所顯示的圖片,設(shè)置相關(guān)格式。如圖2。
布局寫好后,實(shí)現(xiàn)滑動(dòng)功能對應(yīng)的java文件核心代碼如表一所示。先將之前寫好的每個(gè)布局文件放在List里面,根據(jù)ArrayList的長度作為控制來循環(huán)滑動(dòng)的頁數(shù),根據(jù)索引下表來檢索出滑動(dòng)到的頁數(shù)。圖3為滑動(dòng)的其中一個(gè)頁面。因?yàn)榇颂幎x的滑動(dòng)頁數(shù)為3,在之前的布局文件中,第三頁定義了一個(gè)按鈕,用來進(jìn)入主界面。所以當(dāng)滑到第三頁的時(shí)候,如果點(diǎn)擊Enter按鈕,將跳轉(zhuǎn)到登錄和注冊頁面,界面如圖4所示。
4.2 注冊登錄的界面
為了更好的用戶體驗(yàn),該平臺將注冊和登錄放在一個(gè)頁面上,避免用戶使用時(shí)太麻煩,或者等待響應(yīng)的時(shí)間太長,從而影響用戶體驗(yàn),圖5為注冊和登錄的界面。部分登錄注冊頁面布局代碼如下所示,采用嵌套布局,分層次為注冊和登錄。
[<?xml version="1.0" encoding="utf-8"?>
android:background="@drawable/shot1" android:layout_width="match_parent" android:layout_height="match_parent"> android:id="@+id/tabHost" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00000000"
android:layout_marginTop="146dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp">
android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#e501aaff">
android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="80dp"> android:id="@+id/layout_login" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> android:id="@+id/et_login_username" android:hint="username" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="wrap_content" /> …… ……
[public class ProgrammingExercisesFragmentController {
……
private void initView() {
if (questions.get(index).getType().equals(QuestionType.SHORT)) {
binding.ProgramFragmentEt.setText("");
binding.btnCodeProgram.setVisibility(View.GONE);
} else {
binding.btnCodeProgram.setVisibility(View.GONE);
}
binding.ProgramFragmentTitle.setText("[" + (index + 1) + "/" + questions.size() + "]" + questions.get(index).getTitle());
}
public void btnOnProgram(View v) {
int on = clickListener.on(index);
index = on;
initView();
Log.e("TAG", index + "");
}
public void btnAnalyzeProgram(View v) {
clickListener.showdialog(index, clickListener.description(index));
}
public void btnCodeProgram(View v) {
clickListener.showdialog(index, clickListener.code(index));
}
public void btnUnderProgram(View v) {
int under = clickListener.under(index);
index = under;
initView();
Log.e("TAG", index + "");
}
} ]
隨機(jī)練習(xí)和模擬考試都是將數(shù)據(jù)庫里面的題目隨機(jī)抽取出來,代碼邏輯同上述相同,這就不再多做介紹。
5 結(jié)束語
在這個(gè)互聯(lián)網(wǎng)+時(shí)代,幾乎所有的學(xué)習(xí)資源都是可以更加便利的從網(wǎng)絡(luò)上獲取,而使用移動(dòng)端平臺這種學(xué)習(xí)方式則十分高效,也更加利用了碎片的時(shí)間進(jìn)行學(xué)習(xí)。隨著互聯(lián)網(wǎng)和軟件的不斷發(fā)展,網(wǎng)絡(luò)學(xué)習(xí)必將會(huì)更加便捷,更加展現(xiàn)得天獨(dú)厚的資源共享優(yōu)勢,高級程序的學(xué)習(xí)不僅僅限于書本,課堂以及學(xué)校機(jī)房。該文的研究旨在探索移動(dòng)端學(xué)習(xí)的優(yōu)勢和傳統(tǒng)可課堂學(xué)習(xí)的最佳結(jié)合點(diǎn),使得學(xué)生在學(xué)習(xí)高級程序語言的時(shí)候掌握更加適合自己的方法。通過測試以及短暫的使用,發(fā)現(xiàn)進(jìn)入主界面的時(shí)候沒有記住密碼的功能,在很大程度上不太方便,影響用戶體驗(yàn),后期將會(huì)繼續(xù)優(yōu)化。學(xué)習(xí)部分分目前只實(shí)現(xiàn)了題庫方面的功能,不能上傳視頻實(shí)現(xiàn)共享,平臺暫時(shí)無法 統(tǒng)計(jì)每個(gè)用戶的使用習(xí)慣以及大多數(shù)人學(xué)習(xí)的疑難點(diǎn)。想實(shí)現(xiàn)這個(gè)功能需要用到當(dāng)前的新技術(shù)大數(shù)據(jù)分析。雖然現(xiàn)在國內(nèi)仍然以傳統(tǒng)教學(xué)模式為主,少有將大數(shù)據(jù)用到教學(xué)和自主學(xué)習(xí)上,但是網(wǎng)絡(luò)教學(xué)和移動(dòng)端學(xué)習(xí)使學(xué)習(xí)這一件事成為全民化。相信隨著移動(dòng)技術(shù)的發(fā)展和軟件行業(yè)的發(fā)展,互聯(lián)網(wǎng)+學(xué)習(xí)會(huì)給更多的人帶來優(yōu)質(zhì)高效的學(xué)習(xí)成果。
參考文獻(xiàn);
[1] Aleksander Dyeetal:Mobile Education-A Glance at The Future[EB/OL].http://www.nettskolen.com/forskn-ing/ mobile education.pdf.
[2] 秦艷菲,魏慧琴. 基于 Android 的高級程序設(shè)計(jì)語言移動(dòng)學(xué)習(xí)平臺設(shè)計(jì)與實(shí)現(xiàn)[J]. 現(xiàn)代計(jì)算機(jī),2015(13).
[3] 郭霖.第一行代碼Android[M].2版.北京:人民郵電出版社,2016.
[4] 王凌燕,張仕東,王麗燕. 基于Android的英語口語移動(dòng)學(xué)習(xí)平臺的設(shè)計(jì)與實(shí)現(xiàn)[J]. 陜西科技大學(xué)學(xué)報(bào),2012,30(5):146-150.
[5] Satya Komatineni,Dave MacLean.精通Android[M].北京:人民郵電出版社,2013:76-78.