从一道试题看英国A-LEVEL程序设计教育的评价方式

2019-01-03 02:00王琦
课程教育研究 2019年47期
关键词:评价方式程序设计高中

王琦

【摘要】简要介绍了英国A-LEVEL计算机科学课程内容及考核方式。通过对一道典型试题的分析,归纳了英国A-LEVEL程序设计教育评价方式的特点,及对中国高中程序设计教育的启发。

【关键词】高中  程序设计  评价方式

【中图分类号】G63  【文献标识码】A 【文章编号】2095-3089(2019)47-0012-02

一、一道A-LEVEL计算机科学程序设计试题及评析

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)自定义函数

自定义函数是模块化程序设计思想的重要体现形式。本道题开宗明义,在a小题中要求学生编写一个自定义函数实现字符串合法性的判断。测试重点是学生实际编写代码的能力,对于自定义函数编写要点的掌握情况。函数头的定义是否正确,是否理解形式参数与返回值的作用,能不能在函数体中实现正确的功能,并通过返回值获得正确的判断。

(2)字符串的基本概念

字符串问题的处理离不开对于字符串基本概念的理解。比如,字符串的长度、字符串的子串、单个字符与子串的关系。在本道题中,需要从原始串中逐个分离出字符才能界定字符类型。没有字符串的基本概念,判断就无从谈起。

(3)字符与ASCII码

在该题中,组成串的合法字符包括大写英文字母与数字。考生必须有基本的ASCII码知识,了解英文字母与数字在计算机内部的表示方法,才可以通过正确的关系与逻辑表达式描述合法字符的范围。

(4)算法与程序的三种基本结构

考生在设计算法时,需要使用自顶向下、由粗到精的方法来思考问题。

第1步:判断字符串的长度。如果字符串的长度在6-9之间,进入第2步。否则,这是一个非法字符串,跳到第5步。

第2步:判断字符串的1-3位是否全部为大写字母。如果全部是大写字母,进入第3步。否则,这是一个非法字符串,跳到第5步。

2.1:分離出一个字符。

2.2:如果不是大写字母,标记为非法字符串

2.3:2.1与2.2循环执行3次

第3步:判断字符串的4-5位是否全部为数字。如果全部是数字,进入第4步。否则,这是一个非法字符串,跳到第5步。

3.1:分离出一个字符。

3.2:如果不是数字,标记为非法字符串

3.3:3.1与3.2循环执行2次

第4步:判断字符串的剩于字符是否全部为大写字母。如果全部是大写字母,这是一个合法的字符串。否则,这是一个非法的字符串。

4.1:分离出一个字符。

4.2:如果不是大写字母,标记为非法字符串

4.3:4.1与4.2循环执行1-3次

第5步:返回判断结果。

很容易发现,程序的三种基本结构——顺序结构、选择结构和循环结构,都要在这道题中使用到。

(5)内部函数

字符串长度的判断需要使用内部函数,比如VB中的length(    )。从字符串中分离出单个字符,需要使用取子串函数,比如VB中的mid(    )。

(6)程序的测试

b小题考查的就是程序的测试。在这小题中,需要学生设计5个测试数据,其中第1个是正确的测试数据,第2-5个均为错误的测试数据。对于错误的测试数据,要求学生解释错误原因。按照正确串的描述,错误类型就包括:

串长不对

?誗1-3位中包含非大写字母的字符

?誗4-5位中包含非数字的字符

?誗6-9位中包含非大写字母的字符

程序测试是代码编写、软件设计中的重要环节。只有掌握正确的程序测试方法,才能在编写程序的过程中,调试错误,设计出正确的算法,从而真正实现程序。

二、英国A-LEVEL程序设计教育评价方式的特点

以A-LEVEL计算机科学PAPER 2为例,一般整张试卷由5-6题上文这样的试题组成,每一题包含2-3个小题。通过对上文试题的分析,我们可以发现英国高中程序设计教育考核评价方式呈现以下特点:

1.联系实际生活

试题背景通常取材于真实生活场景,比如上题的应用场景是车辆信息管理。学习程序设计的目的是在信息化社会中使用计算思维分析并解决问题,设计程序来实现信息的加工、表达与管理。在生活中取材可以让枯燥的理论与操作落在真实的生活土壤之中,让学习与评价服务于生活,考查的不仅仅是学生阅读书本与做题的能力,也是学生在真实生活场景中分析问题、解决问题的能力。

2.重视学科思维

试卷没有指定具体的程序设计语言,凡是涉及代码的试题,学生需先填写代码名称,再用语言写代码。又或者读代码的试题,试卷统一用伪代码进行算法描述。这样一来,模糊了语言与语言之间的差别,突出了在高中阶段用程序设计对学生进行计算思维训练的基本功能。考核评价的关键在于看学生怎样用计算思维思考并解决问题,而不仅仅是强调学生对于某一种语言性能的掌握。既尊重了语言的多样性,又尊重了个体选择的多样性。

3.强调工具方法

从变量规划表(identifier table)、算法结构图(structure chart)到测试数据的設计,评价的是学生学习程序设计过程中各类工具与方法的掌握情况,也是通过工具与方法考查学生分析问题的能力。分析问题是解决问题的基础步骤,分析问题的过程是展示学科思维的过程。也就是说,工具与方法使用能力的评价即是学科思维能力的评价。

4.融合过程评价

正因为评价过程强调了工具与方法的使用,原本在一张纸质试卷上不易实现的过程评价,可以通过这些工具与方法体现出来了。同时,整张试卷没有选择题这种题型,学生很难通过背题、背答案这种机械押宝的方式应付考试。试卷测试结果展现的是学生对于知识理解的程度,知识迁移的能力。这种理解与迁移来源于扎实的学习过程,任何生搬硬套的学习方式很难促成这种理解与迁移,所以这是一种隐含了真实学习过程的评价方式。

三、英国A-LEVEL程序设计教育评价方式的启发

程序设计教育在我国普通高中的开展有基础却又充满了困难。作为一种具有生涯规划作用与专业引领的高中阶段基础教学,除了励志于进入大学学习计算机相关专业的学生以外,其他学生应该如何对待程序设计的学习是一个有意思的问题。程序设计语言是一种工具,程序设计方法却体现了一种学科思维,即计算思维。学习程序设计不仅仅是学习一种技能,更重要的是掌握一种专门的学科思维方法。那么,无论是否要把计算机专业作为未来大学的主修方向,掌握这种学科思维方法永远不会浪费。同时,使用计算思维解决实际问题是每一个生活在信息时代的人必备的生存技能。那么,我们有理由相信我们的程序设计教学不应该拘泥于某一种语言,或者计算几道数学题,或者进行炫技似的表演,而应该通过思维的训练,让学生学会使用专业的眼光去看待生活中的实际问题,学习使用正确的工具与方法分析问题并解决问题。从而,让更多人不惧怕程序设计,反过来让程序设计服务于人、服务于生活。

参考文献:

[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

猜你喜欢
评价方式程序设计高中
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
美国化学课堂多样化学习评价方式带来的新思路
PLC梯形图程序设计技巧及应用