新工科背景下计算机程序设计类课程案例教学改革研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:keioy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:新工科教育改革的背景下,非计算机专业的计算机C语言程序设计课程如何融入专业知识,合理选择案例教学是计算机基础教学的改革重点。该文从单片机C语言编程作为切入点,优化课程案例教学,提高學生的动手能力和编程思想,为后续专业课程提供良好的支撑。
  关键词:新工科;程序设计;单片机;C语言编程
  中图分类号:G424 文献标识码:A 文章编号:1009-3044(2018)15-0158-02
  1 引言
  随着人工智能的发展,嵌入式技术和单片机系统也优势凸显。单机片堪称是一块芯片的微型计算机,特别是flash的运用使单片机进入一个崭新的时代。由于具有集成度高,性能可靠,操作简便,功能强大,体积小、功耗低、性价比高等特点为其学习、开发和应用提供了便捷的条件,使其渗透到各个领域,现在生活中很难找到没有单片机的存在领域。单片机是学习计算机原理与结构的理想选择,面向单片机的编程目前使用最多的是汇编语言和C语言。
  汇编语言是一种用文字助记符来表示机器指令的符号语言,是面向机器的语言,和机器语言最为接近。其主要优点是对机器控制清晰、调试方便、占用ROM资源少、程序执行效率高。但是不同单片机指令系统是不同的,可移植性差,学习难度相对较大,而且如果一个大型的应用程序的开发如果全都使用汇编语言编写就特别复杂,特别是一些算法问题,汇编语言就显得力不从心了。
  C语言是一种编译型程序设计语言,它是介于高级语言和低级语言之间的语言。既具有高级语言的可读性强、可移植性高等特点,同时又具备低级语言运行速度快、效率高、可直接对硬件进行控制的功能。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。C语言程序具有模块化程序设计思想,是软件系统开发中模块化程序设计方法的基础保障,现在使用C语言进行单片机程序设计已成为一个趋势。用C语言来编写目标系统软件,开发周期短,程序可读性强,便于改进和扩充,从而研制出规模更大、性能更完备的系统。其缺点是占用资源多,执行效率没有汇编语言高。根据不同的情况,很多工程通常采用C语言和汇编语言结合二者的优势进行混合编程。随着单片机技术的发展,在速率和存储空间上都有了很大的提高,由最初的4位、8位,到现在已有300M的高速单片机,C语言的优势也就越来越明显。
  C语言虽然是嵌入式和单片机系统的首选语言,但是很多专业在单片机编程部分并没有开设专门的课程,所以很多学生都采用自学。如何充分发挥高校非计算机专业C语言程序设计通识课程的作用,与专业结合更需要教育工作者深入思考。
  2 发挥C语言通识课程优势,更好地为相关专业服务
  C语言程序设计作为大学通识课程普遍面向大一新生开设的第一门程序设计类课程,很多与嵌入式和单片机系统相关专业的学生在还没有学习更多的相关专业知识。如何让C语言教学更贴近专业,还要让学生零硬件基础的前提下,体验到C语言在将来专业学习的重要性和趣味性,精选硬件系统结构简单实现容易的案例,生动课堂教学的同时还能增加学生的编程自信和专业探究渴望,同时对后期专业编程打下坚实的基础。
  2.1 合理的案例选择
  对于电学专业的学生的C语言教学重点是案例的合理选择,既要和专业有相关性,同时还要摆脱专业知识的束缚,让硬件基础相对薄弱的大一学生体会到硬件编程的效果的同时更能感受到C语言的灵魂和魅力。
  选择原型简单结构清晰的案例,使学生无需在硬件上做多过的研究,如流水LED灯的电路设计,电路图如图1所示。此电路只有一个按钮开关和多个LED灯,可以采用多分支选择、循环结构来实现多路灯的循环点亮,学生可以充分理解和实践C语言的分支选择和循环结构。同时还可以调用延时函数,让学生提升函数概念和结构化程序设计思想。同时也可以采用数组和指针的方式,可以对数组和指针的认知和运用大幅度加强。教师可以提前做好实验准备,在案例演示同时配合实验更生动形象,有说服力。同时本系统可以模拟实验或者有条件的话可以让学生自己动手组装,这样在提高学生动手能力的同时更能让学生感到学有所用、成就感倍增。
  2.2 同一案例学习对应不同知识结构
  虽然标准C与单片机C51在很多方面都非常一致,但是还有一些细节要加以区别。在讲解案例之前需要专题讲解,比如头文件的使用,输入输出的方式等等。本案例采用switch结构来实现LED1~LED8的循环点亮,设计电路的知识只需略点拨即可,可以从不同角度来着重介绍C语言的实现过程。例如当重点讲解switch与while循环的配合来实现功能时,程序设计如下:
  #include
  Sbit S=P1^4; //将S位定义为P1.4
  void delay100(void) //延时函数
  {
  unsigned int k;
  for(k=0;k<10000;k );//延时100μs
  }
  void main( )
  {
  unsigned char n;
  n=0;
  while (1) //永真循环
  {
  if(S==0)//采用轮询方式,不停地判断端口是否有变化
  {
  delay100();//调用延时函数
  if(S==0)//采用轮询方式,不停地判断端口是否有变化
  n ;
  if(n==9)
  n=1;//使n始终在1~8 之间轮转
  }
  switch(i) //switch结构来实现流水灯点亮控制
  {
  Case 1:P0=0xfe; break;//点亮LED1   Case 2:P0=0xfd; break; //点亮LED2
  Case 3:P0=0xfb; break; //点亮LED3
  Case 4:P0=0xf7; break; //点亮LED4
  Case 5:P0=0xef; break; //点亮LED5
  Case 6:P0=oxdf; break; //点亮LED6
  Case 7:P0=0xbf; break; //点亮LED7
  Case 8:P0=0x7f; break; //点亮LED8
  Default:P0=0xff;//全部熄灭
  }}}
  当讲解字符数组时,此程序还可以通过定义字符型数组来实现轮转简化程序。如果想要变换花样流水灯的顺序,只需改变字符型数组的流水灯控制码的顺序即可。通过此案例,学生能够对字符型数组的定义和引用更直观、深刻地理解。
  void main(void)
  {unsigned char n;
  unsigned char code x[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //定义无符号字符型数组
  while(1)
  {for(n=0;n<8;n )
  {P0=x[n];//引用字符数组的每一个元素送至P0口
  delay100();}}}
  指针是C语言的难点,如何化难为简,可以在采用同一案例,學生通过前面章节的学习,对此电路已有基础,这时就可以转移重心至指针的学习上。
  void main(void)
  {unsigned char code x[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//定义无符号字符型数组并初始化位各个端口值
  unsigned char *pp[ ]={
其他文献
宜兴精陶历史悠久,誉满海内外,是宜兴陶都五朵金花之一。由于其独特的造型工艺和技术要求,精美绝伦的产品不仅满足中国人的艺术品位,而且很受外国人的青睐,大量地外销欧美市场,使精
摘要:教学资源共享平台云存储功能是基于Hadoop框架而设计,教学资源具有文件数量庞大,小容量文件占比较高的特点,Hadoop HDFS文件系统对小文件访问效率较低,通过构建小文件合并存储的索引结构及合并算法,解决小文件存储效率问题,实现对云存储性能的优化。  关键词:教学资源;共享平台;优化设计  中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)33-0018-0
针对本科毕业论文质量评价中等级划分边界信息具有模糊性和随机性,综合可拓学中物元理论可融合定量与定性分析的特点和云模型处理双重不确定性的优势,提出了一种基于可拓云模
摘要:应用性本科是国家高等教育的一个新生事物,具有鲜明的技术应用特征。C语言对于我校应用性本科水保专业非计算机专业的学生学习起来具有一定的难度,而循环结构又是三大基本结构中最重要、最复杂、最广泛的一种结构。该文从C语言的课程性质入手,介绍了循环结构的重要作用,分析了教学对象及传统教学存在的问题,创新了教学模式,以For循环结构教学为例,采用“七步法”组织教学,开展C语言循环结构教学实践。  关键词
我国的民间吉祥题材源远流长。早在商、周时期的甲骨文中就出现有“吉利、康祥”、“羊”(祥)、“鹿”(乐)、“龙”等文字。在汉代的青铜镜上出现“大乐贵富”、“千秋万岁”、“
紫砂文化,源远流长。千百年来,紫砂文化和茶文化一起融入人们的生活,并与之息息相关,历史上各时期的人文精神也借此得以体现。历代文人关于紫砂的吟咏也不绝于史料记载,“小石冷泉
城市和谐文化建设是广东和谐文化建设的主战场,它既是构建社会主义和谐社会的内在要求,也是广东经济社会发展的理性选择。突出城市文化的岭南特色,强化城市文化的人文内涵,通过内