APP下载

运用五星教学法实现从C语言到Java语言过渡性教学设计

2020-09-28周雪芹

电脑知识与技术 2020年16期
关键词:Java语言C语言教学设计

周雪芹

摘要:《C语言》是《Java语言》的前导课程,对于两种编程语言中所涉及的语法规则中的差异性,运用五星教学法进行教学方法设计,分析从C语言语法规则(激活旧知),顺利过渡到Java语言的语法规则和知识点(示证新知);在课前、课中和课后引导学生尝试应用,达到融会贯通。多年的教学实践证明,只有教师科学地进行教学设计并在教学实践中合理布置实验和练习任务,学生才能够顺利掌握Java面向对象的程序设计思想,解决现实世界的问题。

关键词: 五星教学法;C语言;Java语言;教学设计

中图分类号:G64     文献标识码:A

文章编号:1009-3044(2020)16-0161-02

1 《C语言》与《Java语言》关系

Java语言可用于开发桌面应用程序、网络应用程序,也可以用于移动软件开发,嵌入式软件开发、微信小程序开发。它不仅仅是一门开发语言,更是一个开发平台。它拥有庞大的类库,功能非常强大,作为一门彻底的、完全的、面向对象的编程语言,应用非常广泛。它与C语言是一脉相承的,吸收了C的许多优点,而摒弃了C里的goto语句、指针和多继承等概念,在语法上比C更严格,使用起来更健壮。

C语言和Java语言都具有很强的实践姓,强调学生的动手操作和编程能力。在高校里,一般先学C语言,然后学习Java语言。二者具有先后关系,教师如何做好教学设计,引导学生自然而然地从C语言过渡到Java语言,边比较边学习,学生印象深刻,基础打得牢。

2五星教学法概述

戴维梅里尔于2003年提出的五星教学法是近年来教育领域非常推崇的教学理论,适合培养学生实际操作技能为重点。五星教学模式的核心主张是:在“聚焦解决问题”的宗旨下,教学应该由不断重复的四阶段循环圈:“激活旧知”、“示证新知”“尝试应用”和“融会贯通”等构成。[1]

教师运用这个理论进行教学设计,通过深度揭示学习发生和教学设计的底层逻辑,可以让课堂以学生产生为导向,授课效果好、效率高,参与度高。

3 运用五星教学法,顺利实现从C语言到Java语言学习的过渡

“激活旧知”是老师带学生回忆已经学过的知识。即:要完成一个任务,用C语言如何实现。“示证新知”是引导学生将新知识和原有知识相关联,用Java语言怎么实现,与原先用C语言实现起来有什么不同,重在给学生交代二者实现起来的差异,使学生印象深刻,即复习了C语言的规则,又学会了Java语言的规则。“尝试应用”是老师引导学生运用新的开发工具——Java语言来完成编程任务的功能。“融会贯通”是教师引导学生多加练习、不断重复、举一反三,直到熟能生巧的过程。

利用五星教学法上面的所介绍的4个步骤,重点应用在Java基本语法部分的教学上。因为《C语言》中《Java语言》的前导课,二者在基本语法上是很相似的。教师在教授Java语言语法的时候,不必从零起点开始授课,而在C语言的基础上,重点比较差异,练习语法上的不同之处,可以节省Java基本语法部分的2/3的课时。如果学生基本语法掌握得比较扎实,有了学习兴趣,相当于入了一个门槛,在学习后面的Java面向对象、Java应用的时候,就比较顺利了。

4 从“激活旧知”到“示范新知”

下面以几个案例来说明五星教学法在从C语言至Java语言的从“激活旧知”到“示范新知”、循序渐进、进行逐步过渡的教学设计过程。重点分析知识点之间的关联与差异,使学生在比较中进行学习。

(1)条件语句if

C语言中的if语句的条件表达式或逻辑表达式,非0即为真。而Java语言中的表达式运算结果必须是布尔类型的值,这一点是不同的。程序举例如下。

教师示范:判断奇数(偶数);学生练习:判断闰年、给某个成绩确定等级(优、良、中、及格、不及格)。

(2)基本数据类型

C语言中的数据类型包括:有符号和无符号两大类,数据在内存中占据的字节长度依据编译系统的不同而有所不同,在一个编译系统下编辑的程序移植到另一种编译系统下运行,可能会产生严重的问题;Java的基本数据类型的数据在不同的操作系统都是确定的位数,正是由于这个原因,才使得Java程序移植性好,能够一次编写,处处运行;另外,Java语言中的数值型数据均为有符号数。

(3)标准输入和输出

C语言中使用标准库函数scanf()函数和printf函数完成数据的输入、输出操作。Java语言是面向对象的语言,所有的功能都是由对象来调用,初学者可以用Java标准类库中的java.util.Scanner类首先生成一个键盘输入的工具对象reader:Scanner reader=new Scanner(System.in);下一步利用reader来调用next()、nextInt()、nextFloat()、nextDouble()等方法来完成从键盘输入字符串、整数、浮点类型、双精度类型等数据,输入完成,再利用reader对象调用close()方法释放系统资源。

此处学生初次使用类和对象,教师可以示范1-2种数据类型的输入,然后由学生练习其他类型数据的输入练习。在此基础上,教师需要提醒学生next()方法和nextLine()方法的区别,前者数据的输入以空格、TAB键、回车(換行)作为结束标志,后者只识别回车(换行)结束标记。

这样,可以形成“激活旧知”(C语言scanf和printf函数)—“示范新知”(Scanner类对象next…)—“尝试应用”(学生实操)—“融会贯通”(学生反复练习)的一个技能训练的完整过程。

(4)C语言的结构体、函数与类的属性与方法

C语言中,将一个目标的组成部分定义为结构体类型(struct),它是一个复合类型;将需要完成的功能的一组代码定义为函数,函数的设计体现了面向过程的程序设计思想。面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

Java语言是面向对象的。将一个对象的静态属性和动态的行为属性抽取出来,定义为类。用类生成对象,每个对象的属性值是不同的。类是抽象的,对象是具体的。用对象调用方法(动态属性,或者函数),来完成功能。面向对象是把构成问题的任务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

两种编程语言都能描述静态属性和动态行为,但是Java语言实现了静态属性和动态行为的封装,比C语言要更灵活,易维护、易复用、易扩展。另外,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护。

在类的封装的概念上,教师可以利用以下教学设计,方便学生理解面向对象的好处。教师可以示范如下程序案例:

1.求取直角坐标系下的2个点之间的距离,在C语言中通常写一个函数:

(5)Java语言的优势在于它强大的类库,教师可以根据教学进度,在不同的章节设计如下案例让学生进行体验,以便于学生有切身体会,增加学生学习动力和学习积极性。

1.将一个整数值aInt变成其二进制形式,并输出。

以C语言中通常按如下形式实现:将aInt除2取余,余0结束,然后将余数按逆序依次记录下来,即是它的二进制数值;而在Java语言中利用Integer类的一个静态方法:toBinaryString(aInt)即可得到它的二进制字符串。

2.字符及字符串处理

在C语言中,对于字符串的处理方式是比较原生态的,对其中的字符进行变换和查询,通常采用循环方式,逐个对每个字符进行处理;而在Java中有String类对字符串对象进行查询和管理,同时还有StringBuffer(StringBuilder)类非常方便地对字符串进行增、删除、改操作。

3.数组的处理和操作

C语言中,数组的初始化为:int a[N]; N为常量;直接分配个整数类型且连续存放的内存空间, a作为该数组的首地址, 不可变。二维数组必须是行列的方阵。

Java语言中的数组,初始化形式:int a[]=new int[n];n是变量。a在栈内存空间的一个引用变量, 保存了该数组的首地址,该数组的n个元素处于堆内存空间。二维数组被看成是一维数组的数组,一维数组可以不等长。在Java类库中,有一个工具类Arrays,能够对一维数组、多维数组进行各种操作,如:批量填充元素值、排序、二分查找、快速输出数组元素值等等。

5 “尝试应用”和“融会贯通”

学院建立了山东理工大学程序在线检测平台SDUTOJ(https://acm.sdut.edu.cn/),其中有3762个题目可供学生练习和考试,平台支持Java语言提交程序代码。经过多年的教学实践,本课程准备了300余题目,对众多的知识点,如:Java基本语法的语句、运算符和表达式、数据类型、类和对象、继承和多态、异常处理、常用类(字符串、日期类、数学类等)、集合框架之数据结构(List、Set和Map)等都有大量的题目供学生练习。计算机科学与技术和软件工程专业的《Java语言程序设计》课程均用此平台布置作业、安排实验和课堂练习。该平台配备专用考试服务器,在中期安排2次在线检测。

SDUTOJ平台的题目均有一定的应用场景,需要学生从现实问题中分析、抽取其中的数据,建立模型,然后编程实现功能,解决实际问题。在学生反复练习的过程中,就训练了“尝试应用”。该门课程的最大特点在于应用性,只有进行大量的、扎实的练习和编程实践,才能做到“融会贯通”。教师在教学中,要做好这方面的要求和引导,使学生顺利从C语言到Java语言的过渡,熟练掌握各知识点,建立面向对象的程序设计思想,解决生活实际和生产实际中的问题。

6 小结

Java类库的功能非常强大,我们基于Java语言进行编程,相当于站在巨人的肩膀上进行操作。只有教师加强教学设计,合理引导,学生能够从C語言的语法顺利过渡到Java语言的学习上来,学生能够温故而知新,以旧知激活新知,保持了较强的学习动力和学习兴趣,才能达到良好的教学效果。

参考文献:

[1]百度百科:五星教学模式.https://baike.baidu.com/item/%E4%BA%94%E6%98%9F%E6%95%99%E5%AD%A6 %E6%A8%A1%E5%BC%8F/3089195?fr=aladdin

【通联编辑:光文玲】

猜你喜欢

Java语言C语言教学设计
基于Visual Studio Code的C语言程序设计实践教学探索
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
高中数学一元二次含参不等式的解法探讨
“仿真物理实验室” 在微课制作中的应用
翻转课堂在高职公共英语教学中的应用现状分析及改善建议
论子函数在C语言数据格式输出中的应用