论文部分内容阅读
摘要:C语言作为计算机类专业的基础编程课程,在后续的高級语言、数据结构以及算法的学习中起到了重要的铺垫作用。然而,在实际的教学过程中,作者以及其他同课程的教师在教学中发现了一系列的难题。该文针对地方高校C语言教学中存在的问题,根据学生的课程反馈信息和教师的课堂教学中所发现的现象加以分析,并提出一些卓有成效的解决方法,使得学生能够较为轻松的学习C语言,并且能够促进对计算机工作原理的深层次理解。
关键词:C语言;计算机;教学
中图分类号:TP312 文献标识码:A 文章编号:1009-3044(2017)32-0171-02
C Language Teaching Problems and Solutions in Local Colleges
GE Geng-yu
(School of Information Engineering,Zunyi Normal College, Zunyi 563006,China)
Abstract:As the basic course of computer science specialty, C language is so important to the subsequent courses like high-level programming language, data structure and algorithm. But, a series of problems are found by author and teaching team in the actual teaching process.According to the feedback of students at class and phenomenon found by teachers, some effective solutions are put forward to make students learn C language more easily and promote the deep understanding of the principle of computer science.
Key words: C language; computer; teaching
1 概述
C语言程序设计基础(以下简称C语言)是高校理工科尤其是计算机类专业教学的入门课,对后续的很多专业核心课程起到了重要的铺垫作用。C语言作为既接近高级语言又贴近底层硬件的编程语言,有其独特的优势,如C语言可以用来开发操作系统(Linux的大部分代码用的就是C语言)、多数外围设备接口的硬件驱动程序、数据库、应用软件(office等)、嵌入式系统、工业机器人等[1],最主要的是C语言可以为学习其他计算机语言奠定坚实的基础。因此,在教学中如何让学生学好C语言课程对于后续的课程意义重大。
C语言课程的参考书有成千上百本,但是基本上都是集中讲解以下核心内容:C语言的基本框架案例、数据类型、变量和常量、运算符、表达式、语句、顺序结构、选择结构或分支结构、循环结构、转向语句、函数、预处理、数组、地址、指针、动态内存(存储)分配、结构体、共用体、文件等内容[2-4]。
2 C语言教学中存在的问题及解决方法
2.1 生源问题分析
中西部的地方院校高考生源大部分来自于各个乡镇或县城中学,大部分学生在大学入学前没有过多地接触过计算机深层次的知识和操作,加上很多师范类的院校存在女生较多,被调剂的比重较大,因此学生入学后难以对专业课程和方向感兴趣,因而缺乏学习的动力和热情。
针对以上问题,该课程教学团队考虑从吸引学生的兴趣入手,在课堂中给学生们演示四轴飞行器、人形机器人、轮式和履带式机器人等基于嵌入式控制的智能作品,告诉学生这些基于STM32系列单片机的智能体都是用C语言开发的程序,因此学好C语言后大家也可以做出此类的作品,对以后的学科竞赛,创新创业起到很好的铺垫作用。目前国家很重视创新创业教育,未来的主流技术包括物联网、大数据、机器人等,C语言是其中最基础的课程之一。经过一番教育之后,学生的学习热情明显高涨,学习兴趣浓厚。
2.2 先导课程问题
全国很多院校也都将C语言程序设计基础课程放在大一学年上学期开设,这其中存在着一些问题,如操作系统、计算机组成原理等计算机核心课程还没有学习,因此学生并不能理解内存以及存储器存储变量或者数据的概念,因此难以理解变量、数组连续存储单元、地址和指针内容的本质。
针对以上问题,课程组讨论的结果是在课程的最初几节课中给学生做一些计算机软硬件基本组成部分和工作原理的知识铺垫,并且拆卸了一些老旧主机上的CPU芯片、内存条、硬盘和主板给学生演示,让学生知道很多主板上的设备都有配套的接口芯片,内存也是一种芯片,内部存储的是高低电平,这种物理电路特征可以抽象成二进制数据的0和1。
关于机器语言是0和1的组合问题,作者觉得有些争议,容易让学生误解。高级语言往底层的一级为汇编语言,相当于英文单词的缩记符,再往底层的一级为0和1的组合语言。很多教科书将0和1作为机器语言来定义和阐述,如果这里面存在一个共识,即0和1是相对于硬件抽象出来的语言,则是正确的,但是机器硬件根本识别不了0和1,只能识别出高低电平。因此,作者认为,底层的机器语言应该是高低电平或者电路的通和断,0和1是抽象出来的机器语言。
2.3 微机操作问题
很多学生刚入学的时候没有笔记本或者台式机电脑,根据课堂调查,新生入学后购买笔记本的人数不足10%。加上现在智能手机的普及,学生练习打字都是在屏幕较小的手机触屏上用单个手指敲字,因此使用实验室的标准键盘后打字速度很慢,对键盘的各个按键分布不熟悉。平时练习C语言程序的时候缺乏创造性,大部分同学都是根据书上的例程来,先是看着书上代码的几个字符,然后看着键盘上的相应按键敲击,再看着显示屏上的字符有没有敲错,整个过程耽误课堂时间,效率低下,甚至很多学生不知道如何切换中英文输入法,字母大小写等。 针对以上问题,作者对学生讲解标准键盘的大概按键分布,然后联合教学团队其他教师向院系申请每周固定时间开放计算机实验机房,在电脑上安装金山打字等软件,让学生利用课余时间熟悉键盘分布和提高打字速度。经过几周的实践,学生的打字速度和准确率明显得到了提升,在正常实验课堂教学中节约了时间。
2.4 编程软件问题
目前国内主流的操作系统依然是微软的Windows系列,新生刚从电脑城买的电脑大多数预装的都是Windows 10,并且不知道如何重装操作系统,因此需要考虑到很多编程软件的兼容性问题。主流的C语言IDE开发环境有Microsoft Visual C 6.0、Turbo C、VS studio、C-Free、Dev C 等。由于全国计算机等级考试二级C语言机试环境用的就是Microsoft Visual C 6.0软件,因此学校机房云平台上预装的就是该软件,在Windows 7操作系统使用很少会出问题,但是Win7 64位、Win8 和Win10上会出现很多兼容性的问题。
针对这些问题,建议学生在不熟悉重装操作系统的步骤前,先下载其他的C语言编程环境安装使用。VS studio虽然功能强大,但是安装包太大,因此不建议学生使用;Turbo C小巧方便,但是鼠标在里面难以使用,初学者使用不方便,耽误时间,建议熟悉其中的环境和熟练使用键盘后再使用;C-Free软件是国内自主开发的一个中文版IDE,学生使用起来特别是英语功底太差的同学也能很容易看懂菜单和工具栏上的功能按钮,在win10上兼容性较好,并且C-Free 4.0版是功能比较齐全的免费版,很适合初学者;Dev C 是NOI(全国青少年信息学奥林匹克竞赛)和NOIP(全国青少年信息学奥林匹克联赛)等比赛的指定工具,使用起来快捷方便,是一款自由软件,遵守GPL许可协议分发源代码。除此之外,如果学生时间充裕,可以尝试使用CodeBlocks、Codelite等,扩展一下视野,总结多种IDE的共同点,促进更好的学习。
2.5 初学者常犯的错误
由于学生刚从高中的应试教育转向大学的开放、自由、创新和应用型本科教育转变,很多惯性思维和学习方法还未转变,并且C语言教学中很注重实验和实践操作,因此很多学生在初步学习经常会犯一些基本错误。经典的错误类型和排错方法有:新建工程时位置(存储路径)不更改,默认路径在C盘的某个目录下,这样后面修改或者调用该工程文件时就很难找到,因此需要更改工程存储位置在自己新建的某个文件夹下;新建工程时只需要工程名,扩展名系统自动生成,工程名中不能包含特殊字符如“.”,否则文件类型就变了;编译代码后,发现错误不知道从何下手,应根据debug框的提示信息排错;函数名后面不加(),scanf内部取变量值忘加
关键词:C语言;计算机;教学
中图分类号:TP312 文献标识码:A 文章编号:1009-3044(2017)32-0171-02
C Language Teaching Problems and Solutions in Local Colleges
GE Geng-yu
(School of Information Engineering,Zunyi Normal College, Zunyi 563006,China)
Abstract:As the basic course of computer science specialty, C language is so important to the subsequent courses like high-level programming language, data structure and algorithm. But, a series of problems are found by author and teaching team in the actual teaching process.According to the feedback of students at class and phenomenon found by teachers, some effective solutions are put forward to make students learn C language more easily and promote the deep understanding of the principle of computer science.
Key words: C language; computer; teaching
1 概述
C语言程序设计基础(以下简称C语言)是高校理工科尤其是计算机类专业教学的入门课,对后续的很多专业核心课程起到了重要的铺垫作用。C语言作为既接近高级语言又贴近底层硬件的编程语言,有其独特的优势,如C语言可以用来开发操作系统(Linux的大部分代码用的就是C语言)、多数外围设备接口的硬件驱动程序、数据库、应用软件(office等)、嵌入式系统、工业机器人等[1],最主要的是C语言可以为学习其他计算机语言奠定坚实的基础。因此,在教学中如何让学生学好C语言课程对于后续的课程意义重大。
C语言课程的参考书有成千上百本,但是基本上都是集中讲解以下核心内容:C语言的基本框架案例、数据类型、变量和常量、运算符、表达式、语句、顺序结构、选择结构或分支结构、循环结构、转向语句、函数、预处理、数组、地址、指针、动态内存(存储)分配、结构体、共用体、文件等内容[2-4]。
2 C语言教学中存在的问题及解决方法
2.1 生源问题分析
中西部的地方院校高考生源大部分来自于各个乡镇或县城中学,大部分学生在大学入学前没有过多地接触过计算机深层次的知识和操作,加上很多师范类的院校存在女生较多,被调剂的比重较大,因此学生入学后难以对专业课程和方向感兴趣,因而缺乏学习的动力和热情。
针对以上问题,该课程教学团队考虑从吸引学生的兴趣入手,在课堂中给学生们演示四轴飞行器、人形机器人、轮式和履带式机器人等基于嵌入式控制的智能作品,告诉学生这些基于STM32系列单片机的智能体都是用C语言开发的程序,因此学好C语言后大家也可以做出此类的作品,对以后的学科竞赛,创新创业起到很好的铺垫作用。目前国家很重视创新创业教育,未来的主流技术包括物联网、大数据、机器人等,C语言是其中最基础的课程之一。经过一番教育之后,学生的学习热情明显高涨,学习兴趣浓厚。
2.2 先导课程问题
全国很多院校也都将C语言程序设计基础课程放在大一学年上学期开设,这其中存在着一些问题,如操作系统、计算机组成原理等计算机核心课程还没有学习,因此学生并不能理解内存以及存储器存储变量或者数据的概念,因此难以理解变量、数组连续存储单元、地址和指针内容的本质。
针对以上问题,课程组讨论的结果是在课程的最初几节课中给学生做一些计算机软硬件基本组成部分和工作原理的知识铺垫,并且拆卸了一些老旧主机上的CPU芯片、内存条、硬盘和主板给学生演示,让学生知道很多主板上的设备都有配套的接口芯片,内存也是一种芯片,内部存储的是高低电平,这种物理电路特征可以抽象成二进制数据的0和1。
关于机器语言是0和1的组合问题,作者觉得有些争议,容易让学生误解。高级语言往底层的一级为汇编语言,相当于英文单词的缩记符,再往底层的一级为0和1的组合语言。很多教科书将0和1作为机器语言来定义和阐述,如果这里面存在一个共识,即0和1是相对于硬件抽象出来的语言,则是正确的,但是机器硬件根本识别不了0和1,只能识别出高低电平。因此,作者认为,底层的机器语言应该是高低电平或者电路的通和断,0和1是抽象出来的机器语言。
2.3 微机操作问题
很多学生刚入学的时候没有笔记本或者台式机电脑,根据课堂调查,新生入学后购买笔记本的人数不足10%。加上现在智能手机的普及,学生练习打字都是在屏幕较小的手机触屏上用单个手指敲字,因此使用实验室的标准键盘后打字速度很慢,对键盘的各个按键分布不熟悉。平时练习C语言程序的时候缺乏创造性,大部分同学都是根据书上的例程来,先是看着书上代码的几个字符,然后看着键盘上的相应按键敲击,再看着显示屏上的字符有没有敲错,整个过程耽误课堂时间,效率低下,甚至很多学生不知道如何切换中英文输入法,字母大小写等。 针对以上问题,作者对学生讲解标准键盘的大概按键分布,然后联合教学团队其他教师向院系申请每周固定时间开放计算机实验机房,在电脑上安装金山打字等软件,让学生利用课余时间熟悉键盘分布和提高打字速度。经过几周的实践,学生的打字速度和准确率明显得到了提升,在正常实验课堂教学中节约了时间。
2.4 编程软件问题
目前国内主流的操作系统依然是微软的Windows系列,新生刚从电脑城买的电脑大多数预装的都是Windows 10,并且不知道如何重装操作系统,因此需要考虑到很多编程软件的兼容性问题。主流的C语言IDE开发环境有Microsoft Visual C 6.0、Turbo C、VS studio、C-Free、Dev C 等。由于全国计算机等级考试二级C语言机试环境用的就是Microsoft Visual C 6.0软件,因此学校机房云平台上预装的就是该软件,在Windows 7操作系统使用很少会出问题,但是Win7 64位、Win8 和Win10上会出现很多兼容性的问题。
针对这些问题,建议学生在不熟悉重装操作系统的步骤前,先下载其他的C语言编程环境安装使用。VS studio虽然功能强大,但是安装包太大,因此不建议学生使用;Turbo C小巧方便,但是鼠标在里面难以使用,初学者使用不方便,耽误时间,建议熟悉其中的环境和熟练使用键盘后再使用;C-Free软件是国内自主开发的一个中文版IDE,学生使用起来特别是英语功底太差的同学也能很容易看懂菜单和工具栏上的功能按钮,在win10上兼容性较好,并且C-Free 4.0版是功能比较齐全的免费版,很适合初学者;Dev C 是NOI(全国青少年信息学奥林匹克竞赛)和NOIP(全国青少年信息学奥林匹克联赛)等比赛的指定工具,使用起来快捷方便,是一款自由软件,遵守GPL许可协议分发源代码。除此之外,如果学生时间充裕,可以尝试使用CodeBlocks、Codelite等,扩展一下视野,总结多种IDE的共同点,促进更好的学习。
2.5 初学者常犯的错误
由于学生刚从高中的应试教育转向大学的开放、自由、创新和应用型本科教育转变,很多惯性思维和学习方法还未转变,并且C语言教学中很注重实验和实践操作,因此很多学生在初步学习经常会犯一些基本错误。经典的错误类型和排错方法有:新建工程时位置(存储路径)不更改,默认路径在C盘的某个目录下,这样后面修改或者调用该工程文件时就很难找到,因此需要更改工程存储位置在自己新建的某个文件夹下;新建工程时只需要工程名,扩展名系统自动生成,工程名中不能包含特殊字符如“.”,否则文件类型就变了;编译代码后,发现错误不知道从何下手,应根据debug框的提示信息排错;函数名后面不加(),scanf内部取变量值忘加