面向大类工科专业的程序设计课程教学改革

来源 :中国大学教学 | 被引量 : 0次 | 上传用户:WAYA123456
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:程序设计能力是信息时代工科大学生的一项基本能力,传统的工科专业都会开设程序设计课。在大类招生背景下,如何有效开展大类工科专业的程序设计课程教学变得尤为重要。本文给出了大类工科专业程序设计课程教学中师资建设、教学规范、资源利用等问题的解决与实施办法。
  关键词:大类工科专业;程序设计课程;教学改革
  近年来许多大学陆续开始实施宽口径、强基础的大类专业招生和培养[1]。所谓大类专业培养,就是在大学的第一年或低年级,同一大类、不同专业的培养方案相同,课程设置和教学要求相同,比如计算机与信息类、文史类、理科类等。学生在低年级以接受基础教学和通识教育为主,在这个过程中学生对各个细分的专业逐步了解和认识,到一年级或二年级结束时根据自己的兴趣和爱好选择相应的专业,接受进一步的专业教育。
  程序设计能力是所有工科专业学生的必备基础,在信息时代,其基础性地位就跟数学、物理等基础学科一样,已不可或缺。对于工科专业学生,程序设计能力是其将来在科学研究、工程实践中进行逻辑推理、问题求解、方案设计、算法分析、信息处理、数据管理等方面的基本能力。因此,做好面向工科专业的程序设计教学工作是一项很重要的基础任务,一些高校对此进行了许多有益的探索[2, 3]。
  一、程序设计课程教学现状
  程序设计的基础工程能力训练是国内外高校共同关注的工程能力培养课程。国外高校的专业限制较弱,大多数程序设计类课程都是面向全校开设。例如,普林斯顿大学开设了Computer Science 217, Introduction to Programming
  Systems课程,主要介绍基于C语言的程序设计方法、软件工具等;麻省理工学院开设了6.S096 Introduction to C and C++课程,讲授C语言编程基础和面向对象编程。
  在国内,清华大学、复旦大学、南京大学、北京航空航天大学等均开设有必修的程序设计课程,大部分学校是在大一上学期或大一下学期开设程序设计课程,主要以C语言作为程序设计课的编程语言,课程名称为“C语言程序设计”。该课程是面向工科专业的基础技术课程,对后继各专业学院的必修课、专业课均有直接的支撑关系。但由于我国高校专业边界明显,通常各学院单独开设自己的程序设计课程。
  “C语言程序设计”课程的基础性地位跟数学、物理、英语等课程有所不同。数学、物理作为自然科学类基础课,在各高校都是公共课,基本由数学、物理专业学院集中承担。同样,公共英语课也多由外语专业学院承担。由于“C语言程序设计”是一门专业技术基础课,且由各专业学院自己的专业师资开设,导致该课程教学存在较大的差異。这种差异性不仅体现在不同专业教师的知识结构上,也体现在不同学院的教学规范和实施过程方面。笔者分析了北京航空航天大学(以下简称“北航”)10多个工科学院的“C语言程序设计”课程大纲,选了有代表性的6个学院,见表1所示。
  表中的符号与编号说明:
  C1—C6:指6个不同的学院;
  T1:期末考试;
  T2:上机实践(实验课)等;
  T3:作业(考勤)与实践(大作业)等;
  R1:《C程序设计(第四版)》(谭浩强,清华大学出版社);
  R2:《C程序设计(第四版)学习辅导》(谭浩强,清华大学出版社);
  R3:《C语言程序设计(第三版)》(夏宽理,中国铁道出版社);
  R4:《C++语言基础教程(第3版)》(吕凤翥,清华大学出版社);
  R5:《C Primer Plus(第6版)中文版》(Stephen Prata, 人民邮电出版社);
  R6:《C语言程序设计(第3版)》(谭浩强,清华大学出版社);
  R7:《A First Book of ANSI C, Third Edition》(Gary J. Bronson, 电子工业出版社);
  R8:《C程序设计上机实验指导书》, 课程组自编指导手册。
  从表1可以看出:同一门课,不同学院在学时、学分设置上存在较大差异,表1中就存在3个版本;学时与学分的对应关系也不规范,通常是16学时为1个学分,1个实践学时按1/2理论学时计算,但有的学院按1:1计算,有的学院则实践课不计学分;考核方法也各不相同;所用的教材基本相同,但教材版次、教学参考书等却有区别;一个学院的教师团队人数、构成等也都各有千秋。
  进一步分析,各学院的教学内容也都千差万别,即便学时相同,课程的组织方式也不一样。例如,C1和C3学院都是40学时,两者的理论学时和实践学时占比都很接近,但C1学院折算为2.5学分,C3学院则计算为2学分;C1在函数与指针部分占用13个学时(理论+实践),而C3则占用16学时;C1包括了位运算,C3则没有涉及,等等。
  可以看出,各工科专业开设的“C语言程序设计”课程的差异性很大,存在明显的教学孤岛现象(不同专业的教师缺少教学工作的相互交流)。即使是同一个学院讲授这门课的两个老师,彼此也不熟悉对方的教学工作,也不了解对方的授课情况。这不是一个好现象。诚然,教学是一门艺术,每个教师有自己的特色才能展现教学的艺术魅力。但是,作为一门基础课程,在一个学校内部统一教学体系、教学内容、教学要求则是非常必要的。如果仅凭老师的随意发挥,一定会造成教学质量和教学效果差异太大。遇到教学水平高的老师,则是学生的幸运,反之则不容乐观。因此,由各学院单独开设自己的程序设计课程的现状需要改变。
  二、程序设计大类课改革要解决的核心问题
  弱化专业限制,面向大类工科专业开展统一的程序设计课程教学,无疑是值得鼓励的。但是,程序设计课程作为各高校的大类课,如何进行改革却是一个新的问题。   在培养目标上,北航的“C语言程序设计”课程针对航空航天类10个工科专业的学生开设,着重培养学生分析问题、程序设计、数据处理与算法设计能力,为进一步科学研究与工程设计打下坚实的基础。
  在课程内容上,该课程涵盖了C语言的各种数据类型、表达式与运算、输入输出、程序的结构与逻辑、指针、文件等知识的语法、语义、抽象、表达与应用。训练学生从一开始就培养良好的程序设计风格,学会用结构化方法编写程序,熟练掌握编程工具与调试方法等,能进行基本的容错处理与分析,具备通过联机手册和互联网进行资料查找与问题求解的能力,等等。
  一是提高课程标准。在分析各专业的教学现状中,我们发现过去各工科专业的程序设计课程所采用的技术标准普遍比较老旧,教学内容比较简单,实践的难度和强度都不足,以至于不少学生一学期结束后还不会做基本的程序设计,这显然不能满足信息时代、新工业时代发展的要求。目前国家正在开展新工科建设,对人才的知识结构和能力结构都提出了新的要求,其中数理运算、工程知识、计算机能力、信息能力等是重要组成部分[4],而程序设计课程在讲授这些知识和训练这些能力方面具有基础性地位。因此,需要制定更高的课程标准,设计更丰富的课程内容,安排更充实的实践,以满足学生将来从事科学研究与工程任务的计算需要。
  二是提升教师队伍的教学水平。过去,各个工科专业都是自己开设该课程,老师也基本来自本专业,但这些老师大多数不是计算机相关专业科班出身,在程序设计的知识结构上难免会有些缺项和遗漏。另外,一个课程组的老师也不多,相互之间能互补互助的效果也不大。因此,老师的知识缺陷自然会造成教学效果打折扣。
  三是加强规范管理。从第一部分的分析可知,不同学院的教学在学时、学分、教材、教学内容、教师结构等方面都有较大差异,没有统一的标准和规范。而在大类专业招生的背景下,学生在第一学年结束后开始选专业,教学内容的一致性、学分的公平性等都很重要,统一的教学标准和规范就显得势在必行。
  四是有效利用教学资源。在大类招生和培养背景下,程序设计课程变成了学校的公选课,需要较多的教师、教务、教室、机房等教学资源,这些应由学校统一安排。如何统筹安排和利用好教学资源,也是学校需要考虑的一个重要问题。
  三、北航的具体探索
  为了解决固有问题,克服现有困难,达成预期的教学目标,北航教学部门对程序设计大类课建设开展了一系列探索。
  一是组长聘任制度。学校聘任了教学责任感强、教学经验丰富、教学效果优秀的教师担任课程组长。在学校教学部门领导下,课程建设实行组长负责制。组长负责团队组建、教学安排、教学质量控制、教学改革、教师考核等。
  二是教师遴选制度。2017年秋季,学校对程序设计任课教师进行公开招聘,全校40余名教师在各学院推荐下报名竞聘。首先进行上机编程测试,有20余名教师获得通过。接着,通过了机试的老师参加教学试讲。学校聘请校内外专家担任评委,最终确定了16名教师,组成首批教学团队。这些教师来自于全校各学院,其中信息大类(电子、计算机、軟件等)教师约占一半,另一半来自于其他工科专业。教学团队老师的知识结构呈现专业化和多元化,交叉融合特征明显。
  三是质量保障制度。课程组定期开展集体备课,平均每两周进行一次。老师分工负责各章节的讲义制作等教学设计。课程组统一教学标准,包括教学大纲、教学日历、讲义、习题等,所有教师都保持课程进度大致一致,但每位教师可以发挥自己的教学特色、展现自己的教学个性与教学艺术。
  课程组开展相互听课与互评(同行评议)活动,每位教师一学期至少听4次课,对听课情况进行总结记录,填写《听课记录表》并交给课程组长。同时,课程组还接受学校教学督导组专家的听课。对于教学效果反馈不好的教师,课程团队成员和专家采取多轮次听课方式,了解其教学情况,并进行问题诊断,给出改进意见。若改进效果仍旧难以达到要求,建议其退出本课程组。
  程序设计课程实行统一考试、教考分离。学校建立了任课教师动态准入准出制度,接受优秀教师加入课程组,对教学质量较低的老师进行劝退。
  四是利用在线编程平台开展实践教学。平台部署在腾讯云上,保证了商业级的安全性、稳定性和访问效率,有效地解决了学校资源紧张与学生实际需求较大的矛盾。
  四、改革成效
  我校围绕大类课建设目标,经过一轮教学改革探索,取得了较好的教学效果。
  一是教学团队在遴选任课教师时不考虑职称、学院等因素,只有一个标准,就是唯才是举。专家组选聘的标准就是看候选人是否有足够的教学热情,是否有较好的编程能力,是否有更好的教学效果。经过三个阶段(报名、上机测试、试讲)的遴选,任课教师的整体教学水平得到提高,为教学团队建设奠定了良好的基础。
  二是以教学大团队的形式开展大类课教学,每个教师有各自的任务分工,总体上降低了教师的工作量。具体分工表现为:制作讲义时,每个教师负责相应的章节;专人负责上机实践平台的运营与实践内容的管理;专人负责教学资料的管理;专人负责教学过程数据的分析与反馈,等等。教师工作负荷减少,可以将更多的精力投入到教学研究中。
  三是在集体备课中,教师们会围绕比较基础、重要、困难的问题进行分析,开展深入的讨论,从而对许多困难的问题形成了教师容易执行的教法和学生容易理解的解法。在相互听课、相互评价的实施过程中,教师之间相互学习、相互影响、相互带动,教师的教学热情得到了更大提高,教师的业务水平也不断提升。
  四是加强了教学规范性,包括教学大纲、教学日历、讲义、作业、上机实践、备课记录、听课记录、考试等各方面的资料都进行了循环检查,集中管理,使得教学运营更加安全可靠。
  参考文献:
  [1] 段莹莹. 大类招生培养模式实证分析及专业分流的思考[J]. 北京教育,2010(10): 75-76.
  [2] 尹辉,阮秋琦,等. 计算机与信息大类招生模式下多学科交叉创新人才培养改革与实践[J]. 计算机教育,2014(13): 10-14.
  [3] 汪红兵,姚琳,等. C 语言程序设计课程中的计算思维探析[J]. 中国大学教学,2014(9): 59-62.
  [4] 姜晓坤,朱泓,李志义. 面向新工业革命的新工科人才素质结构及培养[J]. 中国大学教学,2017(12): 13-17.
  [资助项目:中央高校教育教学改革专项“北航大类专业程序设计课程群建设”、腾讯—教育部产学合作新工科建设项目“面向新工科的计算机专业核心课程改革”(201702002005)]
  [责任编辑:夏鲁惠]
其他文献
【正】 (一) 人类怎样由猿进化为人?原始人又怎样一步步进化到今天的时代?这始终是人类学家们孜孜追求解决的问题。马克思主义从哲学的高度解决了“劳动”和“生产力”这两个
An adaptive output feedback neural network tracking controller is designed for a class of unknown output feedback nonlinear time-delay systems by using backstep