王琦
【摘要】簡要介紹了英國A-LEVEL計算機科學課程內(nèi)容及考核方式。通過對一道典型試題的分析,歸納了英國A-LEVEL程序設(shè)計教育評價方式的特點,及對中國高中程序設(shè)計教育的啟發(fā)。
【關(guān)鍵詞】高中 ?程序設(shè)計 ?評價方式
【中圖分類號】G63 ?【文獻標識碼】A 【文章編號】2095-3089(2019)47-0012-02
一、一道A-LEVEL計算機科學程序設(shè)計試題及評析
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.試題評析
這是一道字符串處理題。在該題中涉及的測試要點包括:
(1)自定義函數(shù)
自定義函數(shù)是模塊化程序設(shè)計思想的重要體現(xiàn)形式。本道題開宗明義,在a小題中要求學生編寫一個自定義函數(shù)實現(xiàn)字符串合法性的判斷。測試重點是學生實際編寫代碼的能力,對于自定義函數(shù)編寫要點的掌握情況。函數(shù)頭的定義是否正確,是否理解形式參數(shù)與返回值的作用,能不能在函數(shù)體中實現(xiàn)正確的功能,并通過返回值獲得正確的判斷。
(2)字符串的基本概念
字符串問題的處理離不開對于字符串基本概念的理解。比如,字符串的長度、字符串的子串、單個字符與子串的關(guān)系。在本道題中,需要從原始串中逐個分離出字符才能界定字符類型。沒有字符串的基本概念,判斷就無從談起。
(3)字符與ASCII碼
在該題中,組成串的合法字符包括大寫英文字母與數(shù)字??忌仨氂谢镜腁SCII碼知識,了解英文字母與數(shù)字在計算機內(nèi)部的表示方法,才可以通過正確的關(guān)系與邏輯表達式描述合法字符的范圍。
(4)算法與程序的三種基本結(jié)構(gòu)
考生在設(shè)計算法時,需要使用自頂向下、由粗到精的方法來思考問題。
第1步:判斷字符串的長度。如果字符串的長度在6-9之間,進入第2步。否則,這是一個非法字符串,跳到第5步。
第2步:判斷字符串的1-3位是否全部為大寫字母。如果全部是大寫字母,進入第3步。否則,這是一個非法字符串,跳到第5步。
2.1:分離出一個字符。
2.2:如果不是大寫字母,標記為非法字符串
2.3:2.1與2.2循環(huán)執(zhí)行3次
第3步:判斷字符串的4-5位是否全部為數(shù)字。如果全部是數(shù)字,進入第4步。否則,這是一個非法字符串,跳到第5步。
3.1:分離出一個字符。
3.2:如果不是數(shù)字,標記為非法字符串
3.3:3.1與3.2循環(huán)執(zhí)行2次
第4步:判斷字符串的剩于字符是否全部為大寫字母。如果全部是大寫字母,這是一個合法的字符串。否則,這是一個非法的字符串。
4.1:分離出一個字符。
4.2:如果不是大寫字母,標記為非法字符串
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ù)
字符串長度的判斷需要使用內(nèi)部函數(shù),比如VB中的length( ? ?)。從字符串中分離出單個字符,需要使用取子串函數(shù),比如VB中的mid( ? ?)。
(6)程序的測試
b小題考查的就是程序的測試。在這小題中,需要學生設(shè)計5個測試數(shù)據(jù),其中第1個是正確的測試數(shù)據(jù),第2-5個均為錯誤的測試數(shù)據(jù)。對于錯誤的測試數(shù)據(jù),要求學生解釋錯誤原因。按照正確串的描述,錯誤類型就包括:
串長不對
?誗1-3位中包含非大寫字母的字符
?誗4-5位中包含非數(shù)字的字符
?誗6-9位中包含非大寫字母的字符
程序測試是代碼編寫、軟件設(shè)計中的重要環(huán)節(jié)。只有掌握正確的程序測試方法,才能在編寫程序的過程中,調(diào)試錯誤,設(shè)計出正確的算法,從而真正實現(xiàn)程序。
二、英國A-LEVEL程序設(shè)計教育評價方式的特點
以A-LEVEL計算機科學PAPER 2為例,一般整張試卷由5-6題上文這樣的試題組成,每一題包含2-3個小題。通過對上文試題的分析,我們可以發(fā)現(xiàn)英國高中程序設(shè)計教育考核評價方式呈現(xiàn)以下特點:
1.聯(lián)系實際生活
試題背景通常取材于真實生活場景,比如上題的應(yīng)用場景是車輛信息管理。學習程序設(shè)計的目的是在信息化社會中使用計算思維分析并解決問題,設(shè)計程序來實現(xiàn)信息的加工、表達與管理。在生活中取材可以讓枯燥的理論與操作落在真實的生活土壤之中,讓學習與評價服務(wù)于生活,考查的不僅僅是學生閱讀書本與做題的能力,也是學生在真實生活場景中分析問題、解決問題的能力。
2.重視學科思維
試卷沒有指定具體的程序設(shè)計語言,凡是涉及代碼的試題,學生需先填寫代碼名稱,再用語言寫代碼。又或者讀代碼的試題,試卷統(tǒng)一用偽代碼進行算法描述。這樣一來,模糊了語言與語言之間的差別,突出了在高中階段用程序設(shè)計對學生進行計算思維訓練的基本功能。考核評價的關(guān)鍵在于看學生怎樣用計算思維思考并解決問題,而不僅僅是強調(diào)學生對于某一種語言性能的掌握。既尊重了語言的多樣性,又尊重了個體選擇的多樣性。
3.強調(diào)工具方法
從變量規(guī)劃表(identifier table)、算法結(jié)構(gòu)圖(structure chart)到測試數(shù)據(jù)的設(shè)計,評價的是學生學習程序設(shè)計過程中各類工具與方法的掌握情況,也是通過工具與方法考查學生分析問題的能力。分析問題是解決問題的基礎(chǔ)步驟,分析問題的過程是展示學科思維的過程。也就是說,工具與方法使用能力的評價即是學科思維能力的評價。
4.融合過程評價
正因為評價過程強調(diào)了工具與方法的使用,原本在一張紙質(zhì)試卷上不易實現(xiàn)的過程評價,可以通過這些工具與方法體現(xiàn)出來了。同時,整張試卷沒有選擇題這種題型,學生很難通過背題、背答案這種機械押寶的方式應(yīng)付考試。試卷測試結(jié)果展現(xiàn)的是學生對于知識理解的程度,知識遷移的能力。這種理解與遷移來源于扎實的學習過程,任何生搬硬套的學習方式很難促成這種理解與遷移,所以這是一種隱含了真實學習過程的評價方式。
三、英國A-LEVEL程序設(shè)計教育評價方式的啟發(fā)
程序設(shè)計教育在我國普通高中的開展有基礎(chǔ)卻又充滿了困難。作為一種具有生涯規(guī)劃作用與專業(yè)引領(lǐng)的高中階段基礎(chǔ)教學,除了勵志于進入大學學習計算機相關(guān)專業(yè)的學生以外,其他學生應(yīng)該如何對待程序設(shè)計的學習是一個有意思的問題。程序設(shè)計語言是一種工具,程序設(shè)計方法卻體現(xiàn)了一種學科思維,即計算思維。學習程序設(shè)計不僅僅是學習一種技能,更重要的是掌握一種專門的學科思維方法。那么,無論是否要把計算機專業(yè)作為未來大學的主修方向,掌握這種學科思維方法永遠不會浪費。同時,使用計算思維解決實際問題是每一個生活在信息時代的人必備的生存技能。那么,我們有理由相信我們的程序設(shè)計教學不應(yīng)該拘泥于某一種語言,或者計算幾道數(shù)學題,或者進行炫技似的表演,而應(yīng)該通過思維的訓練,讓學生學會使用專業(yè)的眼光去看待生活中的實際問題,學習使用正確的工具與方法分析問題并解決問題。從而,讓更多人不懼怕程序設(shè)計,反過來讓程序設(shè)計服務(wù)于人、服務(wù)于生活。
參考文獻:
[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