胡 科
(电子科技大学 数学科学学院,四川 成都 611731)
C是近年来国内外得到迅速推广使用的一种计算机语言,它功能丰富,表达能力强,使用灵活、方便,应用面广,目标程序效率高,可移植性好。C既具有高级语言的优点,又具有低级语言的特点;既适用于应用软件的开发,又适用于系统软件的编写[1]。“C程序设计”是计算机相关专业的基础课程,也是“数据结构”、“面向对象程序设计”等后续专业课的先修课程,它涵盖基础理论与程序设计方法,内容涉及数据类型、三大结构(顺序、分支、循环)、函数与指针等核心知识点。通过对C的基本特点、语法规则、程序设计等内容的学习,使学生在掌握程序设计基础知识和面向过程的结构化程序设计方法的基础上,具备一定的编程能力,能够运用所学知识解决实际问题,为进一步学习计算机相关课程或从事软件开发奠定基础。
(1) 理论与实践相结合。从实际需要出发,结合项目案例进行研究性教学,并让学生参与项目课题,及时将最新教研成果和学科发展成果引入教学。在教学内容和环节中加大对学生程序设计和调试能力的培养,教学内容的确定、教学方法的选择、评价方式的设计,都要有助于学生自主学习、合作探究学习方式的形成,并以此激发学生的创新潜能[2]。
(2) 讲解与演示相结合。在每个教学环节上精心设计,借助多媒体系统进行教学,将课程内容有机地整合、匹配到电子课件中,既要重视基础知识的传授,也要重视科学思维和抽象能力的培养,促进师生互动,充分调动学生的学习积极性,提高课堂教学效率。
(3) 教师讲授与学生讨论相结合。改变传统的“灌输式”教学方法,探索运用案例式、启发式、讨论式的教学方法[3],关注学生的个体差异和不同的学习需求,根据讲授内容的重点和难点布置与实际问题有关的思考题,开设专题Blog与BBS,组织学生进行讨论,对问题定期进行讲解。
(4) 传统课堂与网络课堂相结合。在教室授课的基础上,采用现代教育技术,开发CAI软件[4],例如多媒体教学演示系统、考试模拟系统等,供学生自主学习和检测。
(5) 面对面答疑与网上答疑相结合。作为传统答疑的有益补充,利用网络资源,开发网上答疑系统,随时解决学生在学习中遇到的疑难问题,巩固教学效果。通过上述形式,构成集多媒体、网络环境和教师讲授于一体的立体化教学模式。
此外,还应及时修订和完善教学与实验大纲,突出“教学相长,理论与实践互补,继承与创新并重”的特色[5],体现基础理论、实践环节以及理论与实践相结合的创新应用。结合课程特点和实际需要,自编讲义或教材以及配套的习题集和实验指导书,在体系结构、内容深度和题目配置上,力求达到教学难度与学生接受能力的最佳平衡。尝试引进并使用国外原版教材,如《The C Programming Language》(Brian W.Kernighan,Dennis M.Ritchie),并为学生的研究性学习提供必要的网络资源和国内外最新文献,以拓展学生的知识视野。
针对课程实践性强这一特点,进行“两个整合”。一是对理论讲授和实验内容进行整合,即充分利用现代教学设备和手段,借助多媒体系统将实验教学融入到理论教学中,强调实验教学的重要性,解决教学内容和实验内容脱节的问题;二是对理论课和习题课进行整合,在理论课上结合典型习题和具体案例组织教学,解决教学内容和习题讲解脱节的问题。在教学设计上应充分体现实验教学的理念,注重对学生创新能力的培养[6]。强调理论与实践的密切结合,精讲多练,加大对实验教学的投入力度,增加上机学时的比例。设计大量与教学内容同步、内容新颖的思考题和与实际问题有关的实训题,通过实践环节,加深学生对教学内容的理解,培养学生发现、分析和解决问题的能力。具体措施包括:
(1) 强化实践能力训练。根据教学内容,结合实际应用设置多个实验题目,让学生体验建模-算法-编程-调试的全过程。算法是程序的灵魂,在程序设计中占据核心地位[7],要求学生掌握问题求解策略和算法设计的基本思路,独立完成算法设计、程序编写与调试,写出实验报告[8]。学期末布置多个综合性实验题目,要求对所学知识进行灵活运用,检验学生独立解决问题的能力。就实验中遇到的问题,组织学生专门讨论,教师全程指导。
(2) 注重学科交叉渗透。在实验中有意识地设置一些实例,体现课程内容与多门学科的关联,为学习后续课程奠定基础。例如:利用指针与结构体表达动态数据结构,实现“数据结构”中的链表与树的操作;利用自定义头文件表现“面向对象程序设计”的继承特征,实现代码重用。对学有余力的学生,还可在课外适当安排涉及“计算机图形学”的图形处理、“操作系统原理”的进程调度等实验内容。
(3) 营造良好学术氛围。引导学生积极参加定期组织的学术研讨活动,培养学生良好的学习习惯和科研兴趣。研讨的内容或是教学重点,或是课题研究中的重要问题,或是学术界中研究的前沿[9]。由主讲教师举办与课程有关的学术报告或专题讲座,就学生遇到的较重要或有一定代表性的问题展开专题讨论。选派优秀学生参与教师的科研项目和课题研究,培养学生在实际课题中的创新意识和能力。
(4) 开展课外科技活动。课外活动是课内教学的重要补充以及课内课外的有机结合,可以取得良好教学效果。课后组织专题讨论班、科研小组,有利于形成师生双向交流、教学相长的教学气氛。积极支持和指导学生的课外实践活动以及国内外学术交流。根据企事业需求,按“软件工程”方法[10],组织学生进行软件开发,学以致用,在实践中锻炼学生的创新思维能力。鼓励学生踊跃参加程序设计竞赛和ACM大赛,提高学生的程序设计水平。
为科学客观地评价学习效果,应当积极进行考核方式的改革。为此,可建立试题量大、覆盖面全、难易比例合理的笔试和上机试题库,注重对学生基础理论掌握程度,尤其是分析和解决问题能力的考查。开发笔试和上机考试系统,利用计算机自动命题组卷,避免人工出题的随意性和片面性。打破传统的考核方式,实行“一个分解”,即将考核分解为平时实验、期中笔试与期末考试。平时实验根据实验题目进行程序设计,写出实验报告,利用多媒体系统演示讲解,重在考核学生的语言表达能力和上机实践能力。期中笔试涉及阶段性的知识点,重在考查学生对基础理论的掌握程度。期末考试包括基础知识和实践能力2个方面,分为识记、理解、应用3个层次。“识记”层次要求学生对一般知识有相应程度的认知;“理解”层次要求学生对规定内容能够清晰掌握;“应用”层次要求学生熟练掌握核心内容并能灵活应用[11]。
此外,还应注重教学效果的评价,组建一流的师资队伍,建立畅通的师生沟通机制。根据评教情况,加强对教学质量的考核;坚持相互听课制度,注重推广研究性教学方法;开展多种形式的教学研讨活动,课题小组就1~2个专题进行讨论,以提高整体教学水平[12];形成由学生反馈评教、领导及同行听课评教、教师自身评估相结合的立体化教学评价系统。
21世纪是知识经济的时代,知识经济的发展依靠创新,创新的实现取决于人的创新精神、创新意识和创新能力[13]。人才培养的质量是检验教学效果的标准,也是教育的生命线。在深化教育改革、全面推进素质教育的过程中,教师应以培养学生的创新精神与实践能力为己任,教书育人,担负从思想、道德、知识、能力等各方面培养学生的任务。随着高校教育和教学改革的不断深入,课程建设也应迈上新的台阶。只要勇于探索和实践,突破传统教育模式,运用科学的教育理念、先进的教学方法和手段,以精品课程建设带动和促进教学科研工作,就一定能够提高“C程序设计”课程教学质量,培养和造就适应我国现代化建设需要的具有创新能力的高素质人才。
[1] 谭浩强.C程序设计 [M].3版.北京:清华大学出版社,2005:5-7.
[2] 安江英,田慧云.我国高校创新型人才培养模式的探索和实践[J].中国电力教育,2006 (1):29-32.
[3] 刘军,刘金江.高校计算机专业基础课教学模式研究[J].教育与职业,2005 (7):71-75.
[4] 安江英,田慧云.我国高校创新型人才培养模式的探索和实践[J].中国电力教育,2006(1):29-32.
[5] 潘建广,何彗星.试论新形势下大学生创新能力的培养[J].陕西师范大学学报:哲学社会科学版,2005 (1):225-227.
[6] 黄春林.基于创新人才培养的高校教学管理体制创新研究[D].长沙: 湖南大学,2005.
[7] 苏德富,钟诚.计算机算法设计与分析.[M].2版.北京:电子工业出版社,2005:31-46.
[8] 谭浩强.C程序设计题解与上机指导 [M].3版.北京:清华大学出版社,2005:229-235.
[9] 潘建广,何彗星.试论新形势下大学生创新能力的培养[J].陕西师范大学学报:哲学社会科学版,2005(1):225-227.
[10] 郑人杰.实用软件工程[M].2版.北京:清华大学出版社,2003:51-53.
[11] 何克抗,李文光.教育技术学[M].北京:北京师范大学出版社,2002:72-86.
[12] 黄春林.基于创新人才培养的高校教学管理体制创新研究[D].长沙:湖南大学,2005.
[13] 王辉,程建军.浅谈高校大学生创新能力的培养[J].东北农业大学学报:社会科学版,2006 (1):62-67.