论文部分内容阅读
摘要:根据C语言课程特点和高职学生的特点,文章论述了在C语言课程教学中,采用灵活多变的教学方法能进一步提高教学质量和水平。
关键词:C语言;教学方法
中图分类号:TP301文献标识码:A 文章编号:1009-3044(2008)35-2373-01
Vocational "C Language" Courses Teaching Methods
GUO Xiao-chen
(Chenzhou Vocational Technical College, Chenzhou 423000,China)
Abstract: According to C-language courses and features the characteristics of higher vocational students,The article discussed in the C language teaching, using flexible teaching methods to further improve the quality of teaching and level.
Key words: C language; teaching methods
《C语言》是广泛流行的、很有发展前途的计算机高级语言,是高职院校计算机与电子信息专业的编程基础课,属于必修课,但它也是一门难学难教的课程。面对高职学生基础知识差,底子薄,自主学习能力相对薄弱,逻辑思维能力较欠缺的现状。如何激发学生积极性和自动性,增强学生的动手能力和学习信心,以适应高职院校高技能人才的培养目标,是目前摆在我们面前的一个难题。多年来,笔者和同事经过摸索研究和教学实践,总结出以下几点教学方法:
1 采用“模拟真实项目开发过程”组织教学
培养技能型人才职业院校的教学目标。针对这一目标,该课程的目的就是要培养一批对程序设计有基本了解,并初步掌握一定的编程技能的技能型人才,能用计算机解决一般实际问题的能力。基于此,笔者在C语言的教学过程中,采用“模拟真实项目开发过程”组织教学,以一个具有代表性的项目的开发过程为主线,构建完整的教学设计,对教学内容进行了大胆取舍和重新组合,突破原有知识的逻辑结构。对基础知识的介绍做到以满足项目开发的需要为度,够有即可,对于一时用不到的知识不讲或让学生自学,以项目进展引导知识扩展,满足社会的需要和学生个人的职业生涯实际需要。
为了突出能力教育这一职业教育的重点,笔者在教学上,以学生实训为主,教师讲解为辅,让学生在练中形成概念,在练中构建知识,在练中训练技能,在练中获得自信,在练中产生兴趣,在练中迸发学习激情,最终达到课程教学的目的。
2 采用“启发式 互动式”教学方法,培养学生自主学习能力
1) 巧妙设计课堂教学环节
为了充分利用有限的课堂教学时间,教师应巧妙地合理设计课堂教学环节。笔者认为:首先,教师可以展示范例,并通过对范例的剖析和问题的归纳,让学生想到某些知识的使用,激活他们的灵感,使他们能够触类旁通地解决所遇到的问题,又能让学生明确自己通过本次课的学习能达成什么目标,怎样去达成这些目标;在明确本学习目的后,教师可以提出尝试性问题,让学生进入问题情境,主动去学习,去查找解决问题的方法,充分发挥学生在课堂教学中的主体作用,这样,学生不是被动地接受教师的灌输,而是在教师的指导下,能动自主地学习。
2) 精心准备课外作业
同时教师不可能在有限的时间内将C语言程序设计中所需的知识点全部传授给学生,否则只会让学生囫囵吞枣,一知半解。为了加深学生对知识的理解,提高学习兴趣和积极性,教师可以精心准备课外作业,在课堂教学结束时布置给学生。这样既提高了教学效率,又培养学生自主学习能力。
3) 预设问题,引导学生思考、讨论
教师应改变以往灌输式的教学方法,又增强与学生的互动,允许学生在课堂中随时提出疑问,根据具体情况教师或当堂解答,或引导学生讨论。在讨论中,教师以点评为辅,也可适时地引导学生,或提示,或发问,或故设疑问,引起争论,把讨论不断引向深处,营造一种热烈的讨论氛围,诱导学生大胆发表自己的见解,以收到更好的效果。
3 建立畅通的信息交换渠道,使学生的学习不受时空的限制
善用 E-main、QQ、MSN等网络工具,使师生之间可以随时地进行交流,提供了不受时空限制的学习平台,将课程的学习延伸到课堂之外、校园之外,将教师的答疑空间延伸到教室之外。
4 设计灵活的实训任务,实现因材施教,引导学生的创新意识
操作实践是学生消化、吸收知识,培养实践能力和创新意识的重要阶段。因此,教师在充分考虑高职学生的基础和学习能力前提下,精心选择既突出所学理论知识的重点难点,又接近实际、激发学生的兴趣的实践任务,并可以采用多种形式的灵活的编程任务,来引导学生的创新意识。这样,不但培养了学生分析问题和解决问题的能力,而且还可以弥补课堂教学的不足之处。
规定任务:主要是一些基本技能训练,一般是验证性题目,这是所有学生必须完成的。为了避免学生只是对原程序原样输入,调试,验证结果,教师应对这些任务适当地修改后再让学生去做。比如,如对数组一章的冒泡排序问题,书中例题是对固定的10个数升序排序,上机时则可让学生对数目不定的N个数降序排序,这样既验证了重点算法,又有设计性的扩展,重要的是避免了学生盲目照抄照搬,启发了学生编程思维。
自选任务:是第二部分编程任务。为了激发那些不满足现有知识学生继续学习的兴趣和热情,教师应在完成规定任务的基础上,安排给学生一些自选任务,以进一步巩固学过的知识与技能,提高编程能力。
能力训练模块:若干单元教学完成时,布置一两个趣味性和生活化的题目给学生,以此来引导学生的自主创新能力。任务的题目、内容、所含的知识量、难度、算法均由学生自主决定。诚然,或许能设计出优秀作品的可能只有少数学生,但少数人的成功,不仅可以培养优秀编程手,而且,他们的学习热情和激情一定会传染给其他同学,使课堂呈现良好的学习氛围。
综合设计任务:为了提高学生的综合编程能力,将所学知识融会贯通,需安排1-2周时间来组织学生进行综合的设计,每个学期安排一个综合性的任务,任务选题可以是“规定的”和“自选的”相结合。对于学习能力较强的学生,鼓励自主选题,自主搜集素材,自主设计完成任务;对于学习能力一般或较差的学生,教师则提供素材、做必要的辅导,规定任务。除此之外,还应将一个班的学生分成几个小组,给每个小组布置一个大型项目,如将图书管理系统,学生成绩管理系统,一些小游戏等作为课程设计题目,并且在布置项目之前,先列举一个案例给学生讲解开发一个项目的基本过程,比如设计一个学生信息管理系统包括几个步骤:①、对问题进行分析描述;②、进行需求分析,把开发的程序要实现哪些功能描述出来;③、根据问题分析进行系统设计,采用自顶向下,逐步细化的方法,把系统分解成若下个子功能模块;④对使用的数据选择其数据结构和数据类型;⑤对各个模块设计出详细的算法并描述出来;⑥根据设计的算法进行代码设计。这样通过一个完整项目的实施,不但让学生熟悉了项目开发流程,培养其对项目管理、风险控制和流程开发意识,同时还培养了学生的组织能力和团队合作精神。在整个学生课程设计过程,教师始终以“导师”的身份出现,为学生提供技术支持,侧重检查项目完成情况并要适时为学生进行归纳,总结编程技巧和语法知识。
5 “形成性考核 过程化考核”的考核方式对学生综合评价
能力是如何进行评价?根据新的职教观念,应以体现能力为核心、理论与操作并重的课程考核方式对学生应全面考核、综合评价。既课程终结性考核(期末考试)之外,还应重视过程性考核,将学生在学习过程中的主观表现,如学习态度、组织能力、团队精神、规范意识、表达能力、创新意识等也列入考核的内容。总之,要让课程考核成为学习行为引导和调动学生参与职业能力训练的积极性的重要杠杆。
总而言之,教学有法,教无定法,教学得法,就能使学生在有限的课堂学习时间内熟练掌握所学课程,适应社会的需要。
参考文献:
[1] 谭浩强.C语言程序设计[M].3版.北京:清华大学出版社,2005.
[2] 纪滨.非理工类专业C语言课程教学措施[J].安徽工业大学学报(社会科学版),2007(4):98-99.
[3] 孔婷.C语言程序设计教学方法探讨[J].南昌教育学院学报,2006(3):47-48.
关键词:C语言;教学方法
中图分类号:TP301文献标识码:A 文章编号:1009-3044(2008)35-2373-01
Vocational "C Language" Courses Teaching Methods
GUO Xiao-chen
(Chenzhou Vocational Technical College, Chenzhou 423000,China)
Abstract: According to C-language courses and features the characteristics of higher vocational students,The article discussed in the C language teaching, using flexible teaching methods to further improve the quality of teaching and level.
Key words: C language; teaching methods
《C语言》是广泛流行的、很有发展前途的计算机高级语言,是高职院校计算机与电子信息专业的编程基础课,属于必修课,但它也是一门难学难教的课程。面对高职学生基础知识差,底子薄,自主学习能力相对薄弱,逻辑思维能力较欠缺的现状。如何激发学生积极性和自动性,增强学生的动手能力和学习信心,以适应高职院校高技能人才的培养目标,是目前摆在我们面前的一个难题。多年来,笔者和同事经过摸索研究和教学实践,总结出以下几点教学方法:
1 采用“模拟真实项目开发过程”组织教学
培养技能型人才职业院校的教学目标。针对这一目标,该课程的目的就是要培养一批对程序设计有基本了解,并初步掌握一定的编程技能的技能型人才,能用计算机解决一般实际问题的能力。基于此,笔者在C语言的教学过程中,采用“模拟真实项目开发过程”组织教学,以一个具有代表性的项目的开发过程为主线,构建完整的教学设计,对教学内容进行了大胆取舍和重新组合,突破原有知识的逻辑结构。对基础知识的介绍做到以满足项目开发的需要为度,够有即可,对于一时用不到的知识不讲或让学生自学,以项目进展引导知识扩展,满足社会的需要和学生个人的职业生涯实际需要。
为了突出能力教育这一职业教育的重点,笔者在教学上,以学生实训为主,教师讲解为辅,让学生在练中形成概念,在练中构建知识,在练中训练技能,在练中获得自信,在练中产生兴趣,在练中迸发学习激情,最终达到课程教学的目的。
2 采用“启发式 互动式”教学方法,培养学生自主学习能力
1) 巧妙设计课堂教学环节
为了充分利用有限的课堂教学时间,教师应巧妙地合理设计课堂教学环节。笔者认为:首先,教师可以展示范例,并通过对范例的剖析和问题的归纳,让学生想到某些知识的使用,激活他们的灵感,使他们能够触类旁通地解决所遇到的问题,又能让学生明确自己通过本次课的学习能达成什么目标,怎样去达成这些目标;在明确本学习目的后,教师可以提出尝试性问题,让学生进入问题情境,主动去学习,去查找解决问题的方法,充分发挥学生在课堂教学中的主体作用,这样,学生不是被动地接受教师的灌输,而是在教师的指导下,能动自主地学习。
2) 精心准备课外作业
同时教师不可能在有限的时间内将C语言程序设计中所需的知识点全部传授给学生,否则只会让学生囫囵吞枣,一知半解。为了加深学生对知识的理解,提高学习兴趣和积极性,教师可以精心准备课外作业,在课堂教学结束时布置给学生。这样既提高了教学效率,又培养学生自主学习能力。
3) 预设问题,引导学生思考、讨论
教师应改变以往灌输式的教学方法,又增强与学生的互动,允许学生在课堂中随时提出疑问,根据具体情况教师或当堂解答,或引导学生讨论。在讨论中,教师以点评为辅,也可适时地引导学生,或提示,或发问,或故设疑问,引起争论,把讨论不断引向深处,营造一种热烈的讨论氛围,诱导学生大胆发表自己的见解,以收到更好的效果。
3 建立畅通的信息交换渠道,使学生的学习不受时空的限制
善用 E-main、QQ、MSN等网络工具,使师生之间可以随时地进行交流,提供了不受时空限制的学习平台,将课程的学习延伸到课堂之外、校园之外,将教师的答疑空间延伸到教室之外。
4 设计灵活的实训任务,实现因材施教,引导学生的创新意识
操作实践是学生消化、吸收知识,培养实践能力和创新意识的重要阶段。因此,教师在充分考虑高职学生的基础和学习能力前提下,精心选择既突出所学理论知识的重点难点,又接近实际、激发学生的兴趣的实践任务,并可以采用多种形式的灵活的编程任务,来引导学生的创新意识。这样,不但培养了学生分析问题和解决问题的能力,而且还可以弥补课堂教学的不足之处。
规定任务:主要是一些基本技能训练,一般是验证性题目,这是所有学生必须完成的。为了避免学生只是对原程序原样输入,调试,验证结果,教师应对这些任务适当地修改后再让学生去做。比如,如对数组一章的冒泡排序问题,书中例题是对固定的10个数升序排序,上机时则可让学生对数目不定的N个数降序排序,这样既验证了重点算法,又有设计性的扩展,重要的是避免了学生盲目照抄照搬,启发了学生编程思维。
自选任务:是第二部分编程任务。为了激发那些不满足现有知识学生继续学习的兴趣和热情,教师应在完成规定任务的基础上,安排给学生一些自选任务,以进一步巩固学过的知识与技能,提高编程能力。
能力训练模块:若干单元教学完成时,布置一两个趣味性和生活化的题目给学生,以此来引导学生的自主创新能力。任务的题目、内容、所含的知识量、难度、算法均由学生自主决定。诚然,或许能设计出优秀作品的可能只有少数学生,但少数人的成功,不仅可以培养优秀编程手,而且,他们的学习热情和激情一定会传染给其他同学,使课堂呈现良好的学习氛围。
综合设计任务:为了提高学生的综合编程能力,将所学知识融会贯通,需安排1-2周时间来组织学生进行综合的设计,每个学期安排一个综合性的任务,任务选题可以是“规定的”和“自选的”相结合。对于学习能力较强的学生,鼓励自主选题,自主搜集素材,自主设计完成任务;对于学习能力一般或较差的学生,教师则提供素材、做必要的辅导,规定任务。除此之外,还应将一个班的学生分成几个小组,给每个小组布置一个大型项目,如将图书管理系统,学生成绩管理系统,一些小游戏等作为课程设计题目,并且在布置项目之前,先列举一个案例给学生讲解开发一个项目的基本过程,比如设计一个学生信息管理系统包括几个步骤:①、对问题进行分析描述;②、进行需求分析,把开发的程序要实现哪些功能描述出来;③、根据问题分析进行系统设计,采用自顶向下,逐步细化的方法,把系统分解成若下个子功能模块;④对使用的数据选择其数据结构和数据类型;⑤对各个模块设计出详细的算法并描述出来;⑥根据设计的算法进行代码设计。这样通过一个完整项目的实施,不但让学生熟悉了项目开发流程,培养其对项目管理、风险控制和流程开发意识,同时还培养了学生的组织能力和团队合作精神。在整个学生课程设计过程,教师始终以“导师”的身份出现,为学生提供技术支持,侧重检查项目完成情况并要适时为学生进行归纳,总结编程技巧和语法知识。
5 “形成性考核 过程化考核”的考核方式对学生综合评价
能力是如何进行评价?根据新的职教观念,应以体现能力为核心、理论与操作并重的课程考核方式对学生应全面考核、综合评价。既课程终结性考核(期末考试)之外,还应重视过程性考核,将学生在学习过程中的主观表现,如学习态度、组织能力、团队精神、规范意识、表达能力、创新意识等也列入考核的内容。总之,要让课程考核成为学习行为引导和调动学生参与职业能力训练的积极性的重要杠杆。
总而言之,教学有法,教无定法,教学得法,就能使学生在有限的课堂学习时间内熟练掌握所学课程,适应社会的需要。
参考文献:
[1] 谭浩强.C语言程序设计[M].3版.北京:清华大学出版社,2005.
[2] 纪滨.非理工类专业C语言课程教学措施[J].安徽工业大学学报(社会科学版),2007(4):98-99.
[3] 孔婷.C语言程序设计教学方法探讨[J].南昌教育学院学报,2006(3):47-48.