王琦
【摘要】簡(jiǎn)要介紹了英國(guó)A-LEVEL計(jì)算機(jī)科學(xué)課程內(nèi)容及考核方式。通過(guò)對(duì)一道典型試題的分析,歸納了英國(guó)A-LEVEL程序設(shè)計(jì)教育評(píng)價(jià)方式的特點(diǎn),及對(duì)中國(guó)高中程序設(shè)計(jì)教育的啟發(fā)。
【關(guān)鍵詞】高中 ?程序設(shè)計(jì) ?評(píng)價(jià)方式
【中圖分類號(hào)】G63 ?【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2019)47-0012-02
一、一道A-LEVEL計(jì)算機(jī)科學(xué)程序設(shè)計(jì)試題及評(píng)析
1.試題(9608/22 May/June 2017 Question 6)
A computerised vehicle licensing system stores details about vehicles and their registration marks(number plates or license plates).
To be valid, a vehicle registration must comply with the following rules:
?誗It must be between six and nine characters long.
?誗Characters 1 to 3 are upper case alphabetic characters.
?誗Characters 4 to 5 are numeric characters.
?誗Remaining characters are upper case alphabetic.
A function, Validate Registration is needed to check that a given registration mark follows these rules. This function takes a string, Registration as a parameter and returns a Boolean value:
TRUE if it is a valid registration
FALSE otherwise.
(a)Write program code to implement the new function, Validate Registration.
Visual Basic and Pascal: You should include the declaration statements for variables.
Python: You should show a comment statement for each variable used with its data type.
(b)The function is to be tested.
Give a valid string that could be used to check that the function returns TRUE under the correct conditions. Modify your valid String1 to test each rule separately. Explain your choice in each case.
2.試題評(píng)析
這是一道字符串處理題。在該題中涉及的測(cè)試要點(diǎn)包括:
(1)自定義函數(shù)
自定義函數(shù)是模塊化程序設(shè)計(jì)思想的重要體現(xiàn)形式。本道題開(kāi)宗明義,在a小題中要求學(xué)生編寫一個(gè)自定義函數(shù)實(shí)現(xiàn)字符串合法性的判斷。測(cè)試重點(diǎn)是學(xué)生實(shí)際編寫代碼的能力,對(duì)于自定義函數(shù)編寫要點(diǎn)的掌握情況。函數(shù)頭的定義是否正確,是否理解形式參數(shù)與返回值的作用,能不能在函數(shù)體中實(shí)現(xiàn)正確的功能,并通過(guò)返回值獲得正確的判斷。
(2)字符串的基本概念
字符串問(wèn)題的處理離不開(kāi)對(duì)于字符串基本概念的理解。比如,字符串的長(zhǎng)度、字符串的子串、單個(gè)字符與子串的關(guān)系。在本道題中,需要從原始串中逐個(gè)分離出字符才能界定字符類型。沒(méi)有字符串的基本概念,判斷就無(wú)從談起。
(3)字符與ASCII碼
在該題中,組成串的合法字符包括大寫英文字母與數(shù)字。考生必須有基本的ASCII碼知識(shí),了解英文字母與數(shù)字在計(jì)算機(jī)內(nèi)部的表示方法,才可以通過(guò)正確的關(guān)系與邏輯表達(dá)式描述合法字符的范圍。
(4)算法與程序的三種基本結(jié)構(gòu)
考生在設(shè)計(jì)算法時(shí),需要使用自頂向下、由粗到精的方法來(lái)思考問(wèn)題。
第1步:判斷字符串的長(zhǎng)度。如果字符串的長(zhǎng)度在6-9之間,進(jìn)入第2步。否則,這是一個(gè)非法字符串,跳到第5步。
第2步:判斷字符串的1-3位是否全部為大寫字母。如果全部是大寫字母,進(jìn)入第3步。否則,這是一個(gè)非法字符串,跳到第5步。
2.1:分離出一個(gè)字符。
2.2:如果不是大寫字母,標(biāo)記為非法字符串
2.3:2.1與2.2循環(huán)執(zhí)行3次
第3步:判斷字符串的4-5位是否全部為數(shù)字。如果全部是數(shù)字,進(jìn)入第4步。否則,這是一個(gè)非法字符串,跳到第5步。
3.1:分離出一個(gè)字符。
3.2:如果不是數(shù)字,標(biāo)記為非法字符串
3.3:3.1與3.2循環(huán)執(zhí)行2次
第4步:判斷字符串的剩于字符是否全部為大寫字母。如果全部是大寫字母,這是一個(gè)合法的字符串。否則,這是一個(gè)非法的字符串。
4.1:分離出一個(gè)字符。
4.2:如果不是大寫字母,標(biāo)記為非法字符串
4.3:4.1與4.2循環(huán)執(zhí)行1-3次
第5步:返回判斷結(jié)果。
很容易發(fā)現(xiàn),程序的三種基本結(jié)構(gòu)——順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),都要在這道題中使用到。
(5)內(nèi)部函數(shù)
字符串長(zhǎng)度的判斷需要使用內(nèi)部函數(shù),比如VB中的length( ? ?)。從字符串中分離出單個(gè)字符,需要使用取子串函數(shù),比如VB中的mid( ? ?)。
(6)程序的測(cè)試
b小題考查的就是程序的測(cè)試。在這小題中,需要學(xué)生設(shè)計(jì)5個(gè)測(cè)試數(shù)據(jù),其中第1個(gè)是正確的測(cè)試數(shù)據(jù),第2-5個(gè)均為錯(cuò)誤的測(cè)試數(shù)據(jù)。對(duì)于錯(cuò)誤的測(cè)試數(shù)據(jù),要求學(xué)生解釋錯(cuò)誤原因。按照正確串的描述,錯(cuò)誤類型就包括:
串長(zhǎng)不對(duì)
?誗1-3位中包含非大寫字母的字符
?誗4-5位中包含非數(shù)字的字符
?誗6-9位中包含非大寫字母的字符
程序測(cè)試是代碼編寫、軟件設(shè)計(jì)中的重要環(huán)節(jié)。只有掌握正確的程序測(cè)試方法,才能在編寫程序的過(guò)程中,調(diào)試錯(cuò)誤,設(shè)計(jì)出正確的算法,從而真正實(shí)現(xiàn)程序。
二、英國(guó)A-LEVEL程序設(shè)計(jì)教育評(píng)價(jià)方式的特點(diǎn)
以A-LEVEL計(jì)算機(jī)科學(xué)PAPER 2為例,一般整張?jiān)嚲碛?-6題上文這樣的試題組成,每一題包含2-3個(gè)小題。通過(guò)對(duì)上文試題的分析,我們可以發(fā)現(xiàn)英國(guó)高中程序設(shè)計(jì)教育考核評(píng)價(jià)方式呈現(xiàn)以下特點(diǎn):
1.聯(lián)系實(shí)際生活
試題背景通常取材于真實(shí)生活場(chǎng)景,比如上題的應(yīng)用場(chǎng)景是車輛信息管理。學(xué)習(xí)程序設(shè)計(jì)的目的是在信息化社會(huì)中使用計(jì)算思維分析并解決問(wèn)題,設(shè)計(jì)程序來(lái)實(shí)現(xiàn)信息的加工、表達(dá)與管理。在生活中取材可以讓枯燥的理論與操作落在真實(shí)的生活土壤之中,讓學(xué)習(xí)與評(píng)價(jià)服務(wù)于生活,考查的不僅僅是學(xué)生閱讀書本與做題的能力,也是學(xué)生在真實(shí)生活場(chǎng)景中分析問(wèn)題、解決問(wèn)題的能力。
2.重視學(xué)科思維
試卷沒(méi)有指定具體的程序設(shè)計(jì)語(yǔ)言,凡是涉及代碼的試題,學(xué)生需先填寫代碼名稱,再用語(yǔ)言寫代碼。又或者讀代碼的試題,試卷統(tǒng)一用偽代碼進(jìn)行算法描述。這樣一來(lái),模糊了語(yǔ)言與語(yǔ)言之間的差別,突出了在高中階段用程序設(shè)計(jì)對(duì)學(xué)生進(jìn)行計(jì)算思維訓(xùn)練的基本功能。考核評(píng)價(jià)的關(guān)鍵在于看學(xué)生怎樣用計(jì)算思維思考并解決問(wèn)題,而不僅僅是強(qiáng)調(diào)學(xué)生對(duì)于某一種語(yǔ)言性能的掌握。既尊重了語(yǔ)言的多樣性,又尊重了個(gè)體選擇的多樣性。
3.強(qiáng)調(diào)工具方法
從變量規(guī)劃表(identifier table)、算法結(jié)構(gòu)圖(structure chart)到測(cè)試數(shù)據(jù)的設(shè)計(jì),評(píng)價(jià)的是學(xué)生學(xué)習(xí)程序設(shè)計(jì)過(guò)程中各類工具與方法的掌握情況,也是通過(guò)工具與方法考查學(xué)生分析問(wèn)題的能力。分析問(wèn)題是解決問(wèn)題的基礎(chǔ)步驟,分析問(wèn)題的過(guò)程是展示學(xué)科思維的過(guò)程。也就是說(shuō),工具與方法使用能力的評(píng)價(jià)即是學(xué)科思維能力的評(píng)價(jià)。
4.融合過(guò)程評(píng)價(jià)
正因?yàn)樵u(píng)價(jià)過(guò)程強(qiáng)調(diào)了工具與方法的使用,原本在一張紙質(zhì)試卷上不易實(shí)現(xiàn)的過(guò)程評(píng)價(jià),可以通過(guò)這些工具與方法體現(xiàn)出來(lái)了。同時(shí),整張?jiān)嚲頉](méi)有選擇題這種題型,學(xué)生很難通過(guò)背題、背答案這種機(jī)械押寶的方式應(yīng)付考試。試卷測(cè)試結(jié)果展現(xiàn)的是學(xué)生對(duì)于知識(shí)理解的程度,知識(shí)遷移的能力。這種理解與遷移來(lái)源于扎實(shí)的學(xué)習(xí)過(guò)程,任何生搬硬套的學(xué)習(xí)方式很難促成這種理解與遷移,所以這是一種隱含了真實(shí)學(xué)習(xí)過(guò)程的評(píng)價(jià)方式。
三、英國(guó)A-LEVEL程序設(shè)計(jì)教育評(píng)價(jià)方式的啟發(fā)
程序設(shè)計(jì)教育在我國(guó)普通高中的開(kāi)展有基礎(chǔ)卻又充滿了困難。作為一種具有生涯規(guī)劃作用與專業(yè)引領(lǐng)的高中階段基礎(chǔ)教學(xué),除了勵(lì)志于進(jìn)入大學(xué)學(xué)習(xí)計(jì)算機(jī)相關(guān)專業(yè)的學(xué)生以外,其他學(xué)生應(yīng)該如何對(duì)待程序設(shè)計(jì)的學(xué)習(xí)是一個(gè)有意思的問(wèn)題。程序設(shè)計(jì)語(yǔ)言是一種工具,程序設(shè)計(jì)方法卻體現(xiàn)了一種學(xué)科思維,即計(jì)算思維。學(xué)習(xí)程序設(shè)計(jì)不僅僅是學(xué)習(xí)一種技能,更重要的是掌握一種專門的學(xué)科思維方法。那么,無(wú)論是否要把計(jì)算機(jī)專業(yè)作為未來(lái)大學(xué)的主修方向,掌握這種學(xué)科思維方法永遠(yuǎn)不會(huì)浪費(fèi)。同時(shí),使用計(jì)算思維解決實(shí)際問(wèn)題是每一個(gè)生活在信息時(shí)代的人必備的生存技能。那么,我們有理由相信我們的程序設(shè)計(jì)教學(xué)不應(yīng)該拘泥于某一種語(yǔ)言,或者計(jì)算幾道數(shù)學(xué)題,或者進(jìn)行炫技似的表演,而應(yīng)該通過(guò)思維的訓(xùn)練,讓學(xué)生學(xué)會(huì)使用專業(yè)的眼光去看待生活中的實(shí)際問(wèn)題,學(xué)習(xí)使用正確的工具與方法分析問(wèn)題并解決問(wèn)題。從而,讓更多人不懼怕程序設(shè)計(jì),反過(guò)來(lái)讓程序設(shè)計(jì)服務(wù)于人、服務(wù)于生活。
參考文獻(xiàn):
[1]CIE 9608 paper2 May/June 2015
[2]CIE 9608 paper2 October/November 2015
[3]CIE 9608 paper2 May/June 2016
[4]CIE 9608 paper2 October/November 2016
[5]CIE 9608 paper2 May/June 2017
[6]CIE 9608 paper2 October/November 2017