程序员培养

2025-02-11|版权声明|我要投稿

程序员培养(精选12篇)

程序员培养 篇1

高职院校在师资方面与普通高等院校相比有一些弱势,在高深的理论与前沿技术的研究方面都有些劣势。但高职院校如果能以明确的“职业”导向培养目标,建立自己的培养体系结构,在计算机软件开发专业还是有好的作为的。

1 课程设置

以就业为导向应该是高职院校课程最根本、核心的特征。高职院校是职业教育,不是纯学历教育,而职业教育的本质就是就业教育,学习的目标就是为了就业,有助于就业的就学,无助于就业的就暂时不学。以后用得着的时候再学。

为了满足就业的需求,课程设置就应该贴近社会需求,特别是贴近企业的需求,企业要什么知识结构的人才,就培养什么样的人才,这类似于前几年职业院校提出的“订单式”培养模式。但是IT的企业是多方面需要的,需要的就是招聘信息上要求的。对此,作为专业指导委员会的教师,就应该重点跟踪一些著名企业,收集招聘信息,最好能实地接触和深入访谈,通过掌握的信息,在专业指导委员会的会议中认真分析研究,从而掌握企业用人的需要。以此来设置专业的课程。因为企业的需求在不断的变化,所以,课程设置也不能一劳永逸。

2 课程内容

课程设置好了,接下来就应该选择课程内容了。众所周知,软件开发领域涉及的技术内容是非常多的,不同的行业会使用不同的技术,不同的项目也会使用不同的技术,在技术选择上应遵循实用原则、够用原则和成熟原则。

实用原则:所选择的技术一定是能够解决实际工作中实际问题的技术。比如,学习Java程序语言,只需要知道用Eclipse平台如何编写和编译源代码,从而得到结果。不需要知道这个平台是如何编译,中间经过了哪些过程。所以,课程内容选择上也应集中在如何解决软件开发项目中所涉及的技术工具、技术框架、开发流程和编码调试经验等方面。

够用原则:内容应是企业大部分在使用的少数核心技术,而那些大量的不常用的核心技术就弱化,或者只作为学生课外阅读知识。要求学生用大部分精力去学习哪些以后在工作中要用到的核心技术。

以用为本,学以致用,不用不学,学了就用,这应是课程内容选择的最终标准。

成熟原则:职业教育的特点应该是引入成熟的技术,不应该是一味的追求潮流,大量的引入新的技术,因为一项新技术的研发都有一个成长过程,职业教育,要求的教师都应是资深的双师型老师,理论和技术并重。新技术的引入要求对师资力量进行重新培养,设备进行重新配置或改装等。多种技术都可以实现一个功能,所以课程内容的选择上应选择成熟的技术而不是前沿技术。

3 教学

课程内容选择好了,接下来就是教学,学生的掌握情况是检验的唯一标准。教师讲授的过程及知识点的组织将直接影响到学生的掌握结果。如何组织好教学过程,这就要教师在备课时要充分准备。程序设计课程不同于其他课程,程序员这个职业也不同于其他职业,经常在招聘信息中会注意到这一条:“要求有一年的实际软件项目开发经验”,但学生毕业就要就业,怎么给学生们一年的工作经验。这就只能在教学中完成了。所以,在程序员教学的每一门课程中,都采用一个实际开发案例来组织技术内容,理论教学中教师用一个完整项目的讲解来引导技术内容的讲解,而上机课也要求学生自己逐步完成一个类似的项目。学以致用。

这就要求课程内容和教师讲授的案例要考虑到实用性和趣味性,并涉及到一些企业实际的案例。通过这些案例,会让学生具备更多的行业知识和项目经验。教学过程控制中要注意职业素养培养和规范化培养。

现代企业要求合作,代码规范是程序团队开发的基础,没有人能看懂的代码,不管自己觉得写得如何漂亮,最终也会被视为“垃圾代码”。所以编写遵守行业规范的代码是衡量一个程序员是否优秀的标准。所以,在教学过程中,教师要时刻注意学生编写代码的规范化问题。

如一段简单的Java程序如下:

在这里,教学时就要强调以下规范:

(1)规范要求类名必须用public修饰。

(2)一行只写一条语句。

(3)用邀妖括起来的部分通常表示程序的某一层次结构。“邀”一般放在这一结构开始行的最末,“妖”与该结构的第一个字母对齐,并单独占一行。

(4)低一层次的语句或注释应该比高一层次的语句或注释缩进若干格后书写,使程序更加清晰,增加程序的可读性。

摘要:高职院校的计算机软件开发专业是以培养程序员这个职业为目标。本文以就业为导向对这个专业的课程设置、内容及教学方法体系结构做一些探索。

关键词:课程设置,课程内容,教学方法

参考文献

[1]余川祥,张光建.数学教育与程序员培养[J].无锡:机械职业教育,2010(4):23-24.

[2]肖睿.使用Java语言理解程序逻辑[M].北京:科学技术文献出版社,2008.

[3]张光建.深入浅析面向对象编程四大原则[J].哈尔滨:电脑学习,2010(1):132-133.

程序员培养 篇2

千锋PHP课程引领行业标准 培养架构级程序员

PHP自诞生之日起,就因其开源、免费、支持多种不同操作系统的优良性能被各大公司青睐。随着移动互联网的发展,PHP所拥有的生态群愈发强大,很多人加入PHP行列。由PHP入手,进入到未来互联网技术的顶端序列——PHP架构师,绝对称得上是最佳选择。千锋PHP课程引领行业标准,培养架构级程序员,是国内首家全面采用PHP7.0课程体系的机构。

什么是PHP架构师?目前百科对于PHP架构师并没有明确的定义,先看一下公司对于PHP架构师的招聘要求:PHP架构师要有优秀的编码能力、解决开发人员无法解决的问题;对系统的大数据容量性能高且并发高容错的网站有架构设计和开发经验;对操作系统、数据库、服务器各种软件使用的配置比较了解;对软件开发过程有明确清晰的认识、学习能力强、善于沟通。由此可以推断出,PHP架构

千锋教育

千锋教育-中国IT职业教育领先品牌

师是一个统筹全局的人才,是当前PHP工程师职业生涯中重要的一步。

千锋PHP课程如何引领行业标准,培养架构级工程师?

一、千锋PHP课程七大优势

千锋PHP7.0版本课程,致力培养架构级程序员,让学生学到最新、最牛的技术。7.0版本课程体系中与当前市面上需求的大数据课程相结合,让学生能够在大数据时代中抓住趋势,为成为架构师、成功创业积蓄力量。

1)优先高薪行业,项目实训紧跟市场,每三个月优化高薪课程;

2)开发自己的框架,不仅是只会用框架;

3)大数据、集群让技术更先进,不同学习阶段使用不同架构;

4)紧贴BAT等大公司要求实施;

5)敢独立完成四个项目,真实项目案例让学生了解项目;

6)强化训练,4小时精讲、8小时强化训练;7)持续学习,关注学生情况,阶段考试督促学员进步。

千锋教育

千锋教育-中国IT职业教育领先品牌

二、专业师资团队精心授课、实战项目最多最全

不同于其他机构的培训讲师资历不足,千锋PHP课程的讲师全部是来自于央企及上市公司的大牛,平均从业经验在5年以上。千锋PHP课程教学总监李老师曾任缤纷生活首席技术官(CTO),负责过国内知名上市企业三一重工等企业级PHP培训和信息架构技术咨询,担任国内最大的新媒体内容管理系统——CmsTop产品研发部经理、必趣产品技术顾问、并担任自考在线项目总监,成功收购中国自考网并改版。李老师层主持完成社交平台、O2O系统、社交系统、CMS、商城和即时通信等多种不同系统的研发;参与国内使用最多的千锋教育

千锋教育-中国IT职业教育领先品牌

PHP框架,ThinkPHP的贡献和ThinkPHP视频录制,下载量高达100万;微信公众号开发视频,高达20万的下载量。

千锋PHP课程学习分为三个阶段,约五个月,每个学习阶段都有相应的项目需要学员去完成。第一阶段学习初中级知识,学生学完能够完成一个真实的贴吧、论坛、小型商城项目。第二阶段前半部分学习独立书写框架,真实的项目是一个技术博客;后半部份学习企业级框架,ThinkPHP5.0,框架核心源代码分析,前端等,git,分组完成一个大型自行选题项目。第三阶段学习大并发架构,linux,服务器集群等技术,完成千万级并发的秒杀系统。

三、千锋名企双选会是学员就业的坚实后盾

千锋每年至少12场名企双选会,为学员就业创造机会。目前千锋的合作企业10000多家,每年为企业输送人才超过20000人,涉及9大学科,12个分校,确保每个地区的学员可就近学习。千锋就业体系依据企业需求、关注企业技术动态、及时调整课程体系。千锋与学员签订就业协议,明确学员毕业薪资水平,不推诿扯皮。

除双选会外,千锋积极与企业合作。日前,千锋教育跨界牵手猎聘网,围绕IT高级人才(高技能、高学历)与之相关职位精准匹配,搭建优秀人才培养和人才输送的全新互联网求职生态架构。其学员将免费

千锋教育

千锋教育-中国IT职业教育领先品牌

获得一个月简历置顶资格,以优化学员择业路径为出发点,尝试构建新的人才生态。

千锋教育作为IT职业教育的领先品牌,自创办之日起就秉承着“用良心做教育”的理念,培养了一批又一批的高薪技术人才。一家可靠的培训机构是学生学习和就业的转折点,走进千锋学校免费试听,你的未来由你掌控。

程序员培养 篇3

[关键词]能力培养;程序设计;递进式案例教学;形象教学法;小组协作

[中图分类号] C961 [文献标识码] A [文章编号] 2095-3437(2016)08-0077-02

一、引言

作为大学计算机公共基础课程的程序设计课程,重点要培养学生利用计算机分析问题、解决问题的能力,自主学习能力,协作能力和创新能力,提高学生计算机素质,为将来应用计算机知识与技术解决本专业的实际问题夯实基础。因而,程序设计课程教学应紧密围绕能力培养目标展开。

二、大一程序设计课程目前存在的不足

从目前教学情况看,大一程序设计课程教学中尚存在以下一些问题,阻碍了对学生能力的培养。

(一)教学内容过于注重琐碎的语法现象,教学结构设计仍沿用传统教学思维

程序设计涉及很多繁缛的语法,花大量时间解释不常见的语法现象,会限制学生视野,误导学习方向和学习目标,使学生兴趣消耗殆尽、疲于应付,不利于培养学生分析问题的能力。

(二)教学中过多的思维跳跃可能导致学生弃学

一些教师由于其对问题的认识高度和深度达到了一定程度,教学时可能忽视听课对象是几乎从未接触过程序设计语言的学生,易产生思维跳跃,加上有些概念抽象不易理解,导致学生难以跟上教师思路而厌学甚至弃学,不利于学生自主学习能力的培养。

(三)易出现重理论、轻实践现象,背离能力培养目标

很多学生忽视本门课程的特点,像学其他课程一样,宁愿捧着书学习语法,也不愿上机调试,忽略了整体的编程思想,偏离了课程的设置初衷。部分学生死记硬背知识点和程序,但实际上,学生真正的编程水平、解决问题能力及创新能力都还相对较弱。

(四)学生学习时习惯各自为政

大学的学习特点是上课来、下课散,互相间学习交流甚少。而设计规模较大的程序时,往往需要集体合作,共同完成,所以对程序设计类课程来说,协作式学习显得尤为重要。

三、教学改革措施及相应主要能力培养目标

(一)精简内容、推行递进式案例教学模式——主要培养学生分析问题能力和解决问题能力

在程序设计课程教学中,应在传统授课顺序的基础上做适度调整,引入案例教学法。案例教学法是以案例为基础的教学法,在教学过程中,以学生为主体、教师为主导、案例为主线。[1]通过设计基本案例、综合案例和应用案例的递进式案例模式展开教学。基本案例主要体现基本语法规则,综合案例反应诸多语法知识的融合,应用案例则侧重知识点的整合与应用,是最能体现算法分析与设计的部分,有利于激发创新思维。笔者对三种案例教学做了分析对比,如表1所示。

(二)教师多“换位”思考,多采用形象教学法——主要培养学生自主学习能力

教师备课时应时刻注意培养自己的“换位”意识,也就是说,时刻站在学生的立场上,思考到底该如何进入这门课,如何理解每一个概念、语法,特别是如何理解算法。要在有限的课堂教学时间内不仅阐述清楚教学内容本身,还要交代清楚来龙去脉,这就要求教师要高度提炼语言,特别是对于抽象难理解的内容,能找到形象的例子或类比进行恰到好处的说明,即采用形象教学法。所谓形象教学法,是一种在教学过程中,教师有目的地引入生动具体的场景等以形象为特征的手段,以引起学生的兴趣和注意力,从而帮助学生理解抽象概念和理论的教学方法。[2]当然,形象教学法并不局限于场景,还包括肢体语言、图示、多媒体等能帮助学生快速理解的任何手段。[3]形象教学法能起到事半功倍的作用,让学生“乐学”、“爱学”,调动学习积极性,继而将学习热忱延伸到课外的自学中,从而提高自主学习能力。

(三)加强实践教学,引入小组协作学习模式——主要培养学生解决问题能力、自主学习能力、创新能力和协作能力

实验是程序设计课程教学的一个重要环节,可以帮助学生加深对理论的理解和掌握,对于拓展学生的思维空间,培养学生的分析能力、解决问题能力、实践能力与创新精神,提高学生的综合素质具有极其重要的作用。[4]为切实加强实践教学效果,可从以下几方面做出有益尝试:

1.优化实验内容,采用不同层次程序案例组织实验教学

为保障实验教学效果最大化,教师有必要优化实验内容、对实验内容予以充分设计,引入既符合教学内容和目标又能激发学生学习兴趣的实验题目。同时针对不同层次不同特点的学生设置不同难度的实验题目,既保证基础薄弱的学生跟得上、积极性不减,又保障充分挖掘学生的最大潜力、激发创新意识、开拓创新思维。

2.针对大型程序案例,引入小组协作学习模式

大型程序案例往往需要团队合作,可采用小组协作式学习模式,培养团队协作能力。通过教师实施组织、管理、监控、评价等方式完成大型任务开发,使教师与学生、学生与学生之间互相交流、相互促进、共同进步。[5]

(1)分组原则

为克服部分学生的思维惰性,分组时每组人数不能过多,既要保证案例规模与小组人数的匹配,又要兼顾成员间层次的搭配。为了让每个学生得到全方位的锻炼,每次分组时不必拘泥于固定人数和固化的角色分配,可以经常变换小组成员构成。

(2)分组实施

上机实践前,教师要依据教学进度和教学目标拟定好程序案例,根据案例规模和难易程度进行分组,每组自行推选组长,组长组织大家进行组内分工、自查资料并在上机课前尽可能完成各自任务,以节省上机时间。

上机课时,教师要结合案例阐明重点、难点和教学目的,帮助学生分析问题、引导学生积极思考如何解决、需要用到哪些知识点来解决。因学生提前自主学习已经有了自己的见解,经教师点拨,对问题会有更深层的理解,此时,通过小组讨论,容易得出最优解决方案。接下来,小组成员要修改、完善自己的任务。最后,教师要结合程序案例归纳总结。教师要对优秀作品予以展示,增加学生的自豪感。

上机课后,教师要给学生布置课外任务或学生自行拟题,继续以小组为单位开展研究、培养团队精神,增强自主学习能力、创新能力和协作能力。

3.强化实践教学过程管理

(1)学生上机易“开小差”,需加强引导

目前计算机已相当普及,其通用性和娱乐性决定了学生上机课时难免分心,经常会玩玩游戏、看看视频。这就需要教师不断加强引导,一是布置足够数量和一定难度的实验内容充实课堂,让学生没有闲暇时间顾及其他;二是检查实验任务的完成情况,增加学生完成实验内容的紧迫感。

(2)积极深入学生,鼓励好的程序设计思路

由于性格等原因,相当一部分学生不愿发问,结果问题越攒越多,导致课堂效率低下。为改善这种局面,教师不妨更加积极地深入到学生中,及时发现问题、主动引导排除问题,既保护学生的自尊心又能敦促学生赶上教学进度。同时,如果学生有更好的程序设计思路,还可通过多媒体教学软件让学生示范给全班同学看,学生本人受到极大鼓舞的同时,其他学生也拓展了思维,有利于创新能力的培养。

四、结语

教学改革不是一蹴而就的,计算机基础教师应根据社会发展需求和学生特点,不断努力将学生培养成为能熟练运用程序设计思想解决本专业问题的社会需求的复合型人才,将程序设计课程建设成为培养人才知识结构和综合能力的独具特色的基础课程。

[ 参 考 文 献 ]

[1] 付百文.强化案例教学的程序设计类课程体系改革[J].计算机教育,2015(16):18-19.

[2] 宋体忠.形象教学法在技校电工电子教学中的应用[J].职业,2012(9):18-19.

[3] 孙继红.关于形象教学法的教学应用课题设置略议[J].大众文艺,2013(7):247-248.

[4] 吴永芬,陈卫卫,李志刚,李清.面向创新实践能力培养的C语言程序设计实践教学改革[J].计算机教育,2014(3):88-91,96.

[5] 蔡彬彬.协作学习理论在Java语言程序设计教学中的应用研究[J].商丘职业技术学院学报,2013(5):42-44.

程序设计与创新人才培养 篇4

1 从ACM/ICPC看程序设计的本质

ACM/ICPC是ACM国际大学生程序设计竞赛的简称,它由国际计算机界权威组织ACM学会主办,旨在让大学生运用计算机来充分展示自己分析问题和解决问题的能力。此项每年一届的全球性高校之间的赛事始于970年,它荟萃了世界知名大学的计算机精英,自1998年以来一直受到IBM公司赞助,并且备受包括Microsoft和Google在内的世界各著名计算机公司的高度关注,是目前世界公认的最具影响力和规模最大的国际计算机顶级赛事,其所颁发的获奖证书也为世界各著名IT公司、各知名大学所认可。在2009年举办的第33届ACM/ICPC世界大赛上,来自88个国家和地区的1838所大学,总计7109支队伍参加了预赛,达到了空前的规模。

ACM/ICPC作为规模最大的学科世界赛事,其赛题具有如下特点:

1)有实际背景,趣味性和实用性较强。很多赛题也许被出题者描述成一个有趣的故事,但它很可能就是最近一个计算机科学技术领域的成果,也有的问题就原样以操作系统或是编译原理中模型的形式给出。这使得一次竞赛不仅有趣和充满挑战性也具有更加深远的意义。

2)考查的知识范围很广且层次性好。ACM的赛题涉及数学、物理、电子学、计算机科学等多种学科,有不同水平的题,与大学计算机系本科以及研究生如程序设计、离散数学、数据结构、人工智能、算法分析与设计等相关课程直接关联,另外,由于采用英文命题及3人合作参赛的方式、因而对英语要求较高,同时也很强调团队协作精神。

3)灵活、新颖,难度很大。由于要用到图论、计算机图形学、组合数学、人工智能、离散数学等知识,且大多数试题都没有成型的算法,要求每一个参赛队发挥自己的创造力,现场的审题建模并设计出高效简洁的算法,挑战性极强。尽管已是能够打入决赛圈的队,11道赛题有的队也只能解对两至三道。

由ACM赛题的特点,参赛队员在比赛过程中,使用计算机求解现实问题时必须从计算机的角度构造问题的模型,并编程求出其解决方案。从这种意义上说,程序设计其本质就是把分析问题和解决问题的思维过程转化成可控制的有序步骤,用计算机所能理解的某种语言表达成程序,最终交给计算机具体实施。程序设计的过程重在设计,设计的关键是寻找求解问题的算法。从静态观点看,算法是指令的有限序列,从动态角度看,算法是求解问题的操作过程,从本质特征看,算法是思维活动程序化的描述[3]。

2 程序设计与创新能力的培养

随着计算机应用的广泛普及和用户越来越高的应用需求,使得用计算机解决问题的复杂性和困难性不断增加。尽管对不同领域、不同应用和不同用户要求的实际问题,很难找到统一的求解规律,更没有现成的方法可用,但是在程序设计中,仍然有一些具有普遍适用价值的原则性思想方法,对问题解决具有重要的指导意义,可以提炼成相对稳定的框架。一般来说,在程序设计中的问题解决模式主要由以下几个步骤组成:

确定问题→理出思路→建立模型→设计算法→编写程序→程序测试

从这几个步骤中,不难看出,除了程序测试过程中运行程序是由计算机来执行外,其它步骤都是由人来完成的,人仍然起着关键的作用。可以说,解题的过程就是人把自己的聪明才智转化为计算机程序的过程,解题的每一个步骤,在提高学生分析问题、解决问题的能力,增强学生的创新意识,培养学生创新能力方面都起着积极的作用。

2.1 通过确定问题并理出思路来培养学生分析问题的能力

在确定问题、理出思路阶段,学生根据所描述的问题,通过分析、理解,找出问题的具体要求,然后理清思路,明确问题要求做什么,进而在发现问题、提出问题、寻找问题、定义问题的过程中训练学生思维的广阔性和独立性,这非常有利于提高学生灵活运用所学知识去解决问题的能力。

2.2 通过建立模型来培养学生的抽象思维和概括能力

计算机的功能虽然强大,但是它却不能直接解决具体领域中的实际问题,而要想将实际问题转化成一些计算机可以求解的问题模型,学生就必须对实际问题进行抽象和概括,使之表示成一些可以求解的数学公式。在建立模型过程中,学生必须从实际问题出发做出合理的假设,从而得到可以执行的、合理的数学模型,然后再求解模型中出现的数学问题并进一步验证模型结论的合理性、正确性及可行性。而要很好地完成这一过程,学生就必须全面思考、分析题意、归纳总结规律,从而逐步增强他们的抽象思维和概括能力。

2.3 通过设计算法来培养学生的创新能力

算法是求解问题的具体方法,算法设计作为程序设计中的关键一步,被称为程序的灵魂,算法的好坏直接决定了整个程序的优劣。而在现实世界中,绝大多数实际问题都没有现成的求解方法,而且其解决方案还呈现多样性的特点,要想使算法经过“对→好→巧→妙→绝”的算法设计优化之路[4],从“对”到“绝”,就需要我们自己去努力探索,追求创新。设计令人叫“绝”的算法的过程就是一个发现、发明和创新的思维过程。

2.4 通过编写、测试程序来培养学生的实践能力

程序设计是一项实践性极强的技能,它不是听会的,也不是看会的,而是自己上机练会的,如果只偏重于理论的演算,而忽略了实现的可能,程序设计就失去了实践的意义。学生通过编写、测试程序,求出问题模型的解决方案,将之付之于应用,从而完成从理论到实践的转换,学生在这一过程中增强自己动手实践能力的同时,也通过实践提升了自己分析问题和解决问题的能力。

3 改革程序设计教学方法,培养创新型IT人才

为了突出计算机教育的实践性,培养创新型IT人才,清华大学、中山大学等许多高校已将ACM/ICPC的模式引入到程序设计教学中,对程序设计的教材及教学方法进行了改革,并取得显著的效果。

3.1 改革授课方式,激发学生兴趣,调动学生学习的积极性

“有实际背景,趣味性和实用性较强”是ACM/ICPC赛题的主要特点,这一特点也进一步说明了程序设计类课程具有很强的实践性,因而该课程非常适合采用问题驱动式的教学方法。具体可借助现代化的教学环境和教学手段,通过选择贴近生活的实际问题,创设令人喜闻乐见的问题情景,恰当地呈现问题,引起学生对问题的兴趣,激发讨论、解决问题的欲望,从而启发学生思维,调动学生学习的积极性,为学生进一步学习打下一个坚实的基础。

3.2 以培养解题思路为重点,改革程序设计教材内容

传统的程序设计类教材,尤其是语言类教材,过于注重语句、语法和一些细节,基本上是以设计语言语法描述为主线展开的,没有把逻辑与编程解题思路放在主体的地位上,对如何分析问题和解决问题讲得不够。而从ACM/ICPC的竞赛规则之一———参赛者可任意选用C、C++、Java或Pascal程序语言解决问题,可以看出,程序设计语言只是一种工具,最重要还是解题思路和算法,这就需要我们在教学过程中,以培养学生利用程序设计语言解决实际问题的能力为导向,以提高学生的思维能力和动手能力为重点,将教材内容和教学重点由学习语句、语法转换到学习思维方法上。

3.3 借鉴ACM/ICPC竞赛平台,改革程序设计的实验教学和考试方式

在传统的程序设计实验教学模式下,教师很难掌握学生的实验过程,也很难逐一考证实验的结果,因而也就无法保证实验的效果。而在实验教学中引入ACM/ICPC的方式,如利用OJ系统来布置作业或要求学生完成指定的某些习题,一方面,老师可以通过系统很方便地检查学生完成作业的情况,减轻老师逐一检查实验报告的工作量;另一方面,ACM/ICPC习题严格的数据测试能更好的检测学生对知识的掌握程度,而且,系统允许多样化的解决方案以及系统对解决方案最优化的要求,能激发学生努力探索的热情,充分挖掘他们的创新能力。

在传统的笔试为主的考试形式下,对程序设计这些实践性很高的课程,很难考核到学生真正的水平和能力,普遍存在着“高分低能(不会编程)”的情况。而将ACM/ICPC竞赛平台引入程序设计考试,将其考试方式由笔试改为上机解题,成绩评定也由系统完成,一方面可以发挥考试的指挥棒作用,引导学生由传统的死记硬背,纸上谈兵,逐步向理论联系实际,注重动手能力,注重实践的方向发展;另一方面,ACM竞赛平台的科学可靠性使得上机考试变得简单可行,保证了考核结果的客观公正性(对就是对,错就是错),这对于打消部分学生的侥幸心理,督促其平时动手动脑,培养其求真务实的科学态度将将起到很大的作用,同时也将会使计算机专业学生不会编程的现象成为历史。

3.4 开展ACM活动,弥补实验教学的不足

程序设计是高强度的脑力劳动,实践性极强,没有大量的机时用于动手编程,就没有程序设计能力的提高,仅靠正常实验教学的课时显然不能满足程序设计的实践需求。而利用ACM竞赛平台,定期开展ACM活动,就能够有效地弥补这方面的不足。通过定期开展ACM活动能够创造一个环境、一个氛围,学生在准备ACM竞赛的过程中,需要自学大量的算法知识,需要上机通过OJ系统(online judge system)完成大量的题目,从而将有限的实验教学时间延续到课外,使学生的程序设计能力得以充分锻炼和提高。

另外,由于ACM采用3人合作、共用一台电脑的方式进行竞赛,团队成员的协作能力在很大程度上也决定了比赛的成败。通过定期开展ACM活动,对于培养学生的沟通能力,增强其团队意识,无疑会起到积极的促进作用。

4 结束语

程序设计是一门实践性极强的重要基础课程,程序设计的过程非常有助于培养学生分析问题、解决问题的创新能力。将ACM模式引入程序设计日常教学,一方面可以使程序设计教学更加科学化、规范化,另一方面可以激发学生兴趣,调动学生学习的积极性,使学生的编程能力和解题思维能力在大量的自学实践中得到有效训练,从而促进创新型IT人才的培养,提高学生的就业竞争力。

参考文献

[1]吴文虎.程序设计基础[M].3版.北京:清华大学出版社,2010.

[2]郭嵩山,王磊,张子臻.ACM/ICPC与创新型IT人才培养[J].实验室研究与探索,2007(12):181-185.

[3]谭浩强.C程序设计[M].2版.北京:清华大学出版社,2002.

对入党积极分子的培养、教育程序 篇5

由入党积极分子到符合党员条件的发展对象,需要有一个对入党积极分子的培养教育阶段。这是提高新党员质量的重要环节。要坚持从实际出发,注重实效。

一、指定培养联系人

对入党积极分子,党支部要及时指定一至二名经过一定时间党内生活的锻炼,能够用党员标准严格要求自己,先锋模范作用发挥得较好的正式党员,做他们的培养联系人。培养联系人的主要任务是:

(1)经常了解入党积极分子的思想、工作、学习等情况和存在的问题,鼓励和帮助他们发扬优点,克服缺点,积极上进,端正入党动机;(2)经常向党小组、党支部汇报入党积极分子的有关情况,提出加强培养、教育的意见和建议;(3)在入党积极分子符合入党条件时,向党小组、党支部提出将其列为发展对象的建议。

指定培养联系人的工作,由支部书记具体负责,先提出人选,经支委会(不设支委会的支部大会)讨论同意后通知培养联系人和入党积极分子本人。

二、经常性的培养教育

1.基层党组织对入党积极分子的培养教育工作要有组织,有计划地进行,并针对每个入党积极分子的不同特点,采取易于接受的形式和切实可行的方法。要针对入党积极分子的思想和工作实际,结合党的中心任务,对他们进行马克思列宁主义、毛泽东思想、邓小平理论和“三个代表”重要思想、党的基本知识、党的基本路线、党的优良传统和作风以及怎样争取做一名合格的共产党员等内容的教育,使他们懂得党的性质、纲领、指导思想、宗旨、任务、组织原则和纪律,懂得党员的义务和权利,帮助他们端正入党动机,确立为共产主义事业奋斗终身的信念。教育途径有:

(1)培养联系人负责经常性地对入党积极分子进行个别帮助和指导。

(2)吸收入党积极分子听党课,列席接收新党员的支部大会,参加新党员入党宣誓仪式以及参加党内其他有关活动。

(3)给入党积极分子分配一定的工作任务,检查他们完成工作的情况。(4)根据实际情况对入党积极分子进行政治理论和党的基本知识培训。

2.要求入党积极分子经常地向党组织进行思想汇报。思想汇报主要是个人向组织汇报自己在一段时间里或重大事件活动中的行为和思想表现,学习重要文件所受的启发教育及体会,个人利益同国家、集体利益发生矛盾时的认识和态度,当前的工作情况和存在的问题,以及其他需要向党组织汇报的问题。通过向组织汇报,使组织能够及时地了解自己的情况,得到组织的帮助、指导。思想汇报一般应形成书面材料,可以一文一事,也可以一文多事,有话则长,无话则短。其形式可以“我的思想汇报”、“近期我的思想状况”或以“思想小结”等为题,直接写给党小组或党支部。正文的开头,一般要写明汇报什么,如“现将我在xx活动中思想情况向组织作一汇报”,或“现将我半年来的思想状况汇报如下”等。向党组织汇报思想要真实,要抓住重点,切忌空话、套话连篇的表面文章。正文写完后,写上自己的姓名和时间。

范例 我的思想汇报

自参加院党校的党课学习以来,我更深地认识到一个共产党员所需具备的素质及一个共产党员应该怎样严格要求自己,同时也了解了许多党的知识,所学的东西使我更多地了解了我国的国情和国家的方针、政策和路线。。。。(略)

在今后的日子里,我还会继续加强思想政治学习,提高自己的修养。

汇报人:xxx xxxx年x月x日

3、定期考察

党支部对入党积极分子的表现情况每半年要进行一次考察,主要由培养联系人负责。党小组要协助党支部考察入党积极分子,并及时向党支部汇报。考察的主要内容是:入党积极分子的政治觉悟、思想品德、入党动机、工作学习和社会表现等情况。特别要注意从动态的角度,考察入党积极分子在上述这些方面的变化情况,有什么进步提高。考察的方法可以多种多样,例如通过谈话,听取入党积极分子汇报,召开座谈会听取群众的意见和反映等。

每考察一次,党支部都要根据培养联系人的意见对入党积极分子进行具体分析,针对存在的问题,提出进一步培养教育的意见和措施,并通过培养联系人,向入党积极分子指出缺点和不足,提出需加以改进的具体要求,教育积极分子正确对待组织的考察,以实际行动表明自觉接受考察的态度。

每次考察后,培养联系人都要及时将考察结果形成文字材料,如实反映考察对象在政治思想、工作学习、社会生活、作风纪律等方面的表现,填入《入党积极分子培养考察登记表》相关栏目内,并由培养联系人和支部书记签名。由于篇幅限制,考察意见要写得简明扼要,符合本人的真实情况,内容要具体,分析要深刻,不能只报喜不报忧,简单地提出希望,或对缺点轻描淡写。

4.党总支要经常研究分析入党积极分子队伍的状况。一般每半年进行一次,认真进行必要的调整,把新涌现出来的积极分子吸收进来,把不能继续作为入党积极分子的人及时调整出去。在滚动管理入党积极分子队伍的过程中,一方面要坚持条件,不能把不具备条件的人留在这支队伍中;另一方面,又要历史地、全面地、发展地看待那些基本素质好,但还有一些缺点和毛病的人,力争通过教育使他们克服不足,提高素质。

5.入党积极分子工作变动和毕业离校时,要及时做好衔接工作。原单位党总支应将他们的入党申请书、考察材料、培养教育情况和组织意见等有关材料,及时转送调入单位党组织。对于外单位转来的入党积极分子,党总支要及时进行研究,指定专人同其谈话,了解其思想和各方面的情况,并通知支部指定正式党员作为其培养联系人。党支部如未收到原单位党组织或上级有关部门转来的有关材料,应及时催要。

三、党校集中培训

入党积极分子在发展入党前,要进行短期集中培训,使他们懂得党的性质、纲领、指导思想、宗旨、任务、组织原则和纪律,懂得党员的权利和义务,端正入党动机,树立为共产主义事业奋斗终身的信念。集中培训由党委组织部会同党校负责组织实施。

1.培训时间,一般为5-7天,或不少于40个学时。

2.培训主要内容:邓小平理论、“三个代表”重要思想、《中国共产党章程》以及党的基本知识,以及怎样争取做一名共产党员等内容。

3.培训效果的考核。集中培训结束时,要求培训对象联系思想实际,做好个人总结,并组织进行综合考试。要把学习成绩和培训后的发展变化情况作为考察对象是否具备入党条件的重要内容之一。未能获得入党积极分子培训班结业证书的,不能列为发展对象。

四、团组织“推优”

党支部吸收28周岁以下青年入党,一般应是共青团员。发展团员入党,一般应经团组织推荐。推荐优秀团员作党的发展对象,是党赋予共青团组织的一项光荣职责。既有利于保证发展新党员的质量,也有助于加强团的思想建设和组织建设,增强共青团组织的凝聚力和战斗力。1.“推优”的基本条件

推荐对象应是优秀共青团员,其基本标准是:(1)具有坚定的共产主义信念和坚持走社会主义道路的信心,坚决拥护并自觉执行党的基本路线,在政治上同中央保持高度一致。

(2)认真学习马列主义、毛泽东思想、邓小平理论和“三个代表”重要思想,学习科技文化知识,自觉参加“党章学习小组”的学习。

(3)自觉地把党和人民的利益放在首位,个人利益服从党和人民的利益,克己奉公,不怕牺牲,乐于奉献。

(4)模范遵守国家法规和团的纪律,坚持真理,勇于开展批评与自我批评,敢于同违法乱纪行为作斗争。

(5)出色完成党团组织交给的各项任务,在学校及班级建设中做出贡献,在社会生活中发挥了积极作用。(6)学生学习目的明确,态度端正,成绩优良,德智体全面发展。教职工具有高度的事业心和强烈的责任感,工作认真负责,并做出明显成绩。

(7)参加过业余团校、业余党校的培训,并获得结业证书。2.推荐基本程序如下:

(1)团支部召开团员大会,介绍考察期满的团员情况。团员进行民主评议,提出推荐对象。

(2)团总支对推荐对象进行认真考察,征求党支部的意见,讨论确定推荐名单,填写《优秀团员入党推荐表》,报系分团委。

(3)分团委报院团委进一步审核,签署意见后由院团委送组织部备案,再正式向党支部推荐发展对象,同时向团总支反馈结果。

(4)团总支书记、分团委成员、系学生会成员,由分团委在认真听取团员青年意见基础上,提出推荐名单,征求总支(直属支部)意见并报院团委审核后,直接向所在单位党总支推荐。

(5)院团委委员,院学生会成员、系学生会主席、副主席由院团委在认真听取团员青年意见基础上直接向所在单位党总支推荐。28周岁以下的青年教工团员的发展推荐工作由所在系青年教工团支部负责,并参照以上程序办理推荐手续。3.“推优”工作的原则

(1)自下而上的原则。推荐工作一般应按照团支部---团总支---分团委---团委的顺序进行。团支部是“推优”的基本单位,一般应从受各级团组织表彰的优秀团员中确定推荐对象,并广泛征求团员青年意见。团委(分团委)应以支部的推荐意见为依据,在对推荐对象作进一步考察的基础上作出推荐决定。

(2)坚持民主集中制原则。团支部和基层团委在形成推荐意见和作出推荐决定时,都必须经过集体讨论。对推荐对象一时不能形成一致意见,不要匆忙作决定,待对推荐对象作进一步培养考察后再行讨论。

(3)党团组织衔接的原则。团组织要及时了解党组织对发展党员工作的意见和要求,经常向党组织汇报申请入党的团员培养考察情况,在确定推荐对象时,应事先征求有关党组织的意见。党组织对团组织的推荐意见应予以重视。接到团组织报来的《推荐表》后,党支部应在一个月内讨论研究,建立一定的档案资料,研究结果应及时反馈给团总支,团总支应将推荐情况在团总支团员大会上宣布,并与推荐对象谈话。党总支对被推荐对象条件成熟的可以确定为发展对象,需要进一步培养教育的可以列为重点培养对象,并建立必要的联系制度。

五、确定发展对象

要求入党的积极分子,学生经过一年以上、教职工经过两年以上培养教育后,按下列程序确定发展对象:

(1)培养联系人向党支部汇报对入党积极分子培养考察情况,提出可否列为发展对象的意见。

(2)党支部应以班或年级为单位,召开入党积极分子会议,民主推荐发展对象。并召开党外群众座谈会,征求对民主推荐发展对象中得票相对较多的入党积极分子的意见。对群众反映的问题,党支部要进行调查核实,并把有关情况向群众反馈。

(3)入党积极分子所在单位的党小组要认真负责地对其进行评议,向党支部提出意见。党支部广泛征求其他党小组的意见,并召集全体党员,采取无记名方式进行同意列为发展对象和不同意列为发展对象的测评。

(4)支委会(不设支委会的支部大会)讨论。党支部在听取党小组、培养联系人汇报和广泛征求党内外群众意见的基础上,召开支委会(不设支委会的支部大会),讨论入党积极分子可否列为发展对象。(5)总支委员会汇总所属支部上报的发展对象名单,并在一定范围内进行公示。总支委员会在广泛征求党内外群众的意见包括公示的基础上,经集体讨论提出可否列为发展对象的意见。

六、政治审查

入党积极分子确认为发展对象后要进行政治审查。政治审查一般由党总支会同支部负责。处级干部和具有正高职称的专业技术人员入党,其政审由党委组织部负责进行。

1.党组织对发展对象进行政治审查的主要内容是:对党的路线、方针、政策的态度;本人的政治历史和在重大政治斗争中的表现;直系亲属和与本人关系密切的主要社会关系的政治情况等。

2.直系亲属和主要社会关系的政治情况,主要是指父母、爱人、子女和抚养人,以及联系密切的主要社会关系(如岳父母、公婆、伯叔姑舅姨)的政治面貌、职业、政治表现及其与本人的关系等。对于同本人没有或很少联系,影响不大的非直系亲属,可不列入政治审查的范畴。

3.政治审查的基本方法主要是:同本人谈话;查阅有关档案材料和其他有关材料;找有关单位有关人员了解。如通过以上方法仍有某些重要情况不清的,应由总支派人或发函到有关单位党委调查、索取证明材料。函调或外调的问题必须是与发展对象能否入党密切相关的。没有多大关系的问题不必进行调查。凡函调能解决的,就不要派人外出调查。索取或提供证明材料是一件十分严肃的事情,任何个人不得私自索取或提供证明材料。

4.形成政审材料。党组织对发展对象进行政治审查后,要形成综合性政审材料。综合性政审材料一般包括如下内容:

(1)本人简历。

(2)政审中提出的问题。包括问题发生的时间、地点和主要情节。同时说明是本人交待的还是被组织查出的或别人检举的,组织上曾否作过结论或进行过处理,(3)调查的结果。写明已调查清楚的问题,以及悬而未定的问题和疑虑。

(4)结论意见。经对查证结果综合分析后,认定查证问题的事实、性质、程度及本人认识,提出是否影响其入党的意见。

程序员培养 篇6

【摘 要】分析当前C语言程序设计教学存在的问题,以及该课程的特点,找出问题症结的所在,提出以能力培养的为导向的C语言程序设计教学改革研究。

【关键词】能力培养 C语言程序设计 教学改革 项目导向 自主学习

【中图分类号】G 【文献标识码】A

【文章编号】0450-9889(2016)07C-0139-02

C语言具有功能丰富、表达能力强、方便使用、应用面广、目标程序效率高、可移植性好的特点,因此很多高校的理工科专业都将其作为计算机程序设计类课程的通识基础课,同时也是计算机专业的必修专业基础课,是后续数据结构、面向对象程序编程、软件工程等课程的基础。通过对本门课程的学习,学生可以掌握程序设计中分析问题、解决问题的能力,提高计算机应用能力和综合能力。但是,教学实际中存在不少的问题,导致难以培养学生的程序设计能力与创新能力,造成毕业后难以适应工作岗位。对此,笔者所在的教研室以应用型技能人才培养为教学目的,分析学生的现状以及C语言程序设计课程的特点,提出以能力培养为导向的C语言程序设计的教学模式。

一、C语言程序设计教学现状

(一)教学内容多而散。C语言知识点多,使用灵活,一般的教材前面几章都是介绍概念、名词、语法等,而这些又是该课程的基础,任课教师通常采用“先理论,后实例,再习题”的传统教学模式,先详细介绍C语言中的数据类型、运算符、函数语句等基本内容,而这些内容往往是比较枯燥无味的。当教师一节又一节地讲述着枯燥的基本概念,难以理解的语法等后,学生感受不到C语言的强大功能和魅力所在,相反容易产生枯燥乏味、疲倦的心理,学习激情大打折扣,给他们的学习带来了困惑。

(二)课时太少。桂林航天工业学院本科学生的C语言程序课程为48课时,理论30课时,实践18课时。对于首次接触计算机程序设计语言课的学生而言,他们缺乏计算机语言思维能力,难以在有限的课时内学好。教师通常为了完成教学大纲规定的知识点,一直赶教学进度,一堂课下来,讲授大量的知识点。“填鸭子式”的教学,学生被动地接受,而学生因赶不上教师的进度,出现即使想听也听不明白的状况。久而久之,出现部分学生因听不懂而不想听,越不想听就越跟不上进度而越学不懂的恶性循环,最终以睡觉、玩手机来打发上课时间。

(三)实验课时得不到充分使用。由于学生课堂上所学的内容没有得到充分的消化,加之学生学习缺乏积极主动性,没有课前预习课后复习,学生普遍存在“重课堂,轻实验”的态度,课前没有充分准备,到了机房才开始读题,然后再着手写程序,只能对教材上的简单例子进行验证,需要独立完成程序编写常常是一头雾水,不知如何下手。另外,程序出错提示为英文,部分学生英语基础差,一旦碰到程度调试出错,就不知从何解决,缺乏刻苦钻研的精神,甚至出现畏惧英文的反应,实验课上依赖性强,一遇见错误就问老师,等待老师解决问题,从不想办法自己解决,不培养解决问题的能力。即使老师讲解完了,下次碰到类似的问题一样解决不了,达不到举一反三的效果。这样的实验课下来,部分学生一道题都做不完,白白浪费了上机的时间。

(四)考核方式单一。C语言课程大多还是采用传统的笔试形式,笔试主要采用选择、填空及简单的程序设计题。甚至有部分老师以笔试一锤定音,很多学生为了不挂科,沿用中学阶段应试性的学习,只注重基本语法、概念等相关知识,而忽视了程序设计能力的培养,学生缺乏分析问题、解决问题的逻辑思维能力,从而失去了学习C语言程序设计课程的本意,严重偏离了应用型人才培养的目标。

二、以能力培养为主导的教学改革

针对上述问题,笔者所在的教研室经过长期的教学探索,提出了以培养能力为导向的教学模式,打破常规的“先理论后实践”的教学模式,由“重课堂、轻实践”转变为“课堂实践双管齐下”。在整个C语言程序设计课程的教学过程中,从教师的教与学生的学两方面下工夫,将培养学生逻辑思维能力、分析问题能力、解决问题能力作为主线,在培养能力的过程当中逐步引入语言知识,提高语言应用能力。

(一)项目驱动的教学方式。任课教师综合考虑学生的基础与该课程的课时数,结合专业特点,对授课内容进行精心设计。课前教师吃透课本,对课本内容进行调整,围绕教学任务精心设置教学内容,避免照本宣科。任课教师以程序设计为主线,以能力培养为导向,采用项目驱动的教学方式,设计环环相扣的具体案例,将零散的知识点融入具体的实例讲解中,打破“先基础后实例”的教学模式,避免“纯理论”的教学。通过设计一个具体的实例贯穿整个教学内容,采用循序渐进、由简单到难的方式,通过问题的深化和功能的扩展,拓宽知识的广度和深度。比如,学生成绩处理系统的实现。首先通过简单的给定一个学生的两科成绩,计算出其平均分。通过分析,需要将学生的成绩保存在计算机中,从而引出变量的定义、数据类型、数据表达式、输入输出语句等。等学生熟悉简单的顺序结构程序的编写之后,将问题深化,以学生的成绩来评定其等级,从而引出选择结构。再将问题进一步深化,以评价多个学生的成绩等级来引出循环结构。为方便多名学生成绩的存储统计,引出数组及指针的相关内容,最后可以通过结构体类型来实现优化等。整个教学内容融合为一体,由简单到复杂,以解决具体问题为导向,通过培养学生的分析能力、解决问题的能力,达到“学用结合”,最后能运用计算机语言解决具体的实际问题。

(二)提高学生的自主学习性,激发学生学习兴趣。教学过程中,教师应该以学生为中心,以学生为主导。教师在课前做好充分的准备工作,结合其专业特点,努力抓住学生的兴趣点来选择实例。第一堂课教师先演示生动形象的实例,通过实例来展示C语言的无穷魅力,吸引学生的眼球,让学生一开始就对该课程产生浓厚的学习兴趣,实现“要我学”到“我要学”的蜕变,由“被动学”变为“主动学”和“乐意学”。然后教师再进一步阐述学习该课程的目的——通过该课程的学习来达到使用计算机解决问题,引出以能力培养为导向的目的,凸显出学生的主导地位。在教学过程中,教师应该根据学生的基础来设计教案,按照学生学的规律进行教学,即学生如何学,老师就该如何教,力争达到教与学的统一。教师可以考虑将教材中的实例用贴近生活形象生动的比喻来讲解,让难以理解的知识点变得通俗易懂,激发学生的学习兴趣。比如在讲授将两个变量a和b实现交换时,学生可能一下想不到解决的方法,但如果我们先举一个生活的小例子:假定现在有两杯饮料,一杯橙汁和一杯可乐,现在需要对两个杯子中饮料进行交换,如何实现?学生立刻会联想到借助于一个空杯就可以实现了。教师顺着学生的思路讲解,C语言中变量的交换原理也跟饮料的交换一样,假定用一个中间变量t来相替代一个空杯,则使用语句:t=a;a=b;b=t来实现。这样学生很快就明白了,而且会给学生留下深刻的印象,不易忘记。

(三)紧抓上机,注重学生动手能力的提高。计算机的课程具有很强的实践性,通常计算机知识的掌握是“百看不如一练”,C语言更是如此。很多学生在课堂上老师讲解能够听懂,课本中的例题也能看懂,可一到机房碰到实际问题就是一头雾水。究其原因,就是练得太少,程序写得太少。上机可以很好地验证学生对知识掌握程度,锻炼学生的编程能力。桂林航天工业学院目前该课程的课时有限,理论30课时,实践18课时。如何在有限的时间里完成更多的任务,这要求教师从实验设计与实验辅导两方面进行改进:一是要求教师和学生实验前做好充分准备,明确每次实验的目的。教师合理设计实验内容,可以根据学生能力的差异,设计不同难度的实验题,即基本题和挑战题。基本题为必做题,是对基本知识的巩固与强化,要求大家独立编写程序,调试程序。挑战题为选做题,综合性高,供学有余力的同学选做,可以单独完成,也可以小组合作,编程能力强的同学可以带动基础差的同学。设置奖励机制,完成挑战题的学生可以加分,这样既能调动学生的积极性、创新性,也能培养学生的团队合作能力。二是实验辅导方面,目前上机的环境为Visual C++,所有的提示都是英文的,为方便学生快速找到程序出错的原因,教师可将常见的出错提示编成讲义或做成课件发给学生。一旦学生遇到问题,可以先自行对照讲义找到出错的原因,从而快速解决问题。另外,教师也应该对学生上机操作中遇到的问题和常犯的操作错误进行归纳总结,及时有效地清除学生学习过程中的障碍。端正学生的上机态度,正确引导其上机兴趣,充分调动其积极性,坚决杜绝学生利用上机时间上网、游戏、娱乐等情况的发生,从而达到事半功倍的效果。

此外,教师应该检查每个同学的编写程序,并对好的程序给予表扬与展示,指出其优缺点,并提出改进的思路。

(四)构建网络教学资源,提供课外学习环境。在注重传统教学的同时,应重视网络教学的辅助作用。针对本课程教学的特点,教师应建设立体化的教学资源,将课本知识与网络资源优化整合,将所用教材、实验、电子教案、网络课件和网络教学支撑平台等教学资源形成一体,通过文本、图形、图像、动画、交互、仿真、视频等多种媒体方式展现各个知识点,充分强调各自的特点。任何学生在任何时候、任何地方都能借助网络自主学习,将课堂教学延伸到课外,突破“时间空间”的限制。通过课程论坛实现教师与学生、学生与学生互动讨论,及时解决学生学习过程中遇到的问题。

(五)改变传统的考核机制,建立以能力为主的考核方式。课程考核是检验学生学习效果、评价学生学习成绩的重要环节,而考试则是检验学生对知识掌握的常用手段。传统的教学都是采用笔试,一张试卷定高低,从而导致采用应试型学习,学与用出现分离,学生靠死记硬背来争取高分,忽视学生编程能力的培养。为解决“会考试”和“会编程”不一致的矛盾,需要建立以培养学生编程能力为本的考试方式。教师在上第一堂课时就明确告诉学生该课程采用的考核方式,基础知识与编程能力的结合,建议笔试成绩占40%,上机实验成绩占40%,平时成绩占20%。笔试主要是考核一些最基本、关键的概念为主,题型主要包括填空、选择、读程序写结果、程序改错、编写程序等。

另外,还可以鼓励学生参加科目竞赛与全国计算机等级二级考试,学生通过备战二级考试可以加深对该课程的学习,同时也可以为以后的就业增加一个砝码。

【参考文献】

[1]叶健华,黎峰.“项目驱动+案例教学”模式在C语言教学中的应用[J].济南职业学院学报,2009(6)

[2]李翠玉,刘彤,周勇.应用型工科院校C语言程序设计课程教学改革的探讨[J].福建电脑,2014(8)

[3]陈莲君,朱晴婷.培养能力为主线的C语言程序设计教学研究[J].计算机教育,2011(7)

[4]胡春安.基于信息技术的公共基础课辅助教学模式的研究[J].江西理工大学学报,2011(6)

[5]罗强,铁治欣.C程序设计成绩与编程时间关系分析研究[J].浙江理工大学学报,2013(1)

【基金项目】桂林航天工业学院2016年度教学改革研究项目基金资助(2016JB08)

程序员培养 篇7

美国教育家布卢姆将思维过程化为六个教学目标, 记忆、理解、应用、分析、综合、评价和创造, 其中记忆、理解、应用是低阶思维, 主要用于学习事实性知识或完成简单任务的能力;分析、综合、评价和创造为高阶思维, 是较高认知水平层次上的心智活动或认知能力。高阶思维是高阶能力的核心, 主要指创新能力、问题求解能力、决策力和批判性思维能力。

二、如何在程序设计课堂搭建平台, 发展学生高阶思维

程序设计语言不同于学生以往所接触的人类自然语言和数学公式等, 它有很强的抽象和逻辑性, 是理论与实际紧密结合的课程。所以程序设计语言课对培养学生思维有一定的作用。教学中有意识地启发、鼓励学生自主地探索和实践, 将极大地发挥学生潜能。

程序设计课堂教学由“难题和疑问”或“一些困惑、混淆或怀疑”引发的学生的思维火花, 也引发了高阶思维。高阶思维的发生就是反思———问题生成———探究、批判———解决问题的过程, 可见问题是开启高阶思维的最大动力。所以坚持把问题作为思维主线。每堂课以问题开始, 按问题展开, 以问题终结, 把问题作为思维主线, 用问题来激发高阶思维。教学问题主要有两类, 一类是课上生成的问题 (往往具有不确定性) , 另一类是教师课前预设的问题, 具有可掌控性。那么教师预设出什么样的问题才能够牵引学生的高阶思维呢, 这类问题往往具有以下三个特点:第一, 问题要具有“挑战性”, 也就是说“要能抓人”, 对于直白或索然无味的问题, 即学生可以用“是”或“不是”就可以回答的问题, 学生会不屑一顾;难度过大的问题会使学生无处下手, 从而放弃尝试思考。第二, 问题要有“开放性”。没有现成答案的问题对学生更具有吸引性, 更具有挑战性, 学生的思维不易受到限制, 其思考的过程才更能锻炼学生的高阶思维。第三, 问题要有“层次性”, 要为学生提供适当的台阶。“高立意, 小步问”, 这样有利于学生找到思考问题的切入点和思维的连续性, 这样的问题对学生吸引性极强。层层递进, 步步深入, 使学生在分析问题、解决问题的过程中训练了自已的高阶思维。

程序设计课堂中教师也要有意识地引导学生从多视角进行编程思考, 会使高阶思维能力得到跳跃式发展。程序设计课语言内容多、语法规则繁杂、使用灵活。程序设计传统的教学模式是:以语言的语句体系、语法规范为脉络展开教学, 只注重表层知识的灌输, 而忽视学生知识的内化过程。学生常会感到枯燥乏味, 学习积极性不高, 学完之后编程能力和分析、解决实际问题的能力仍然较差。解决这一问题, 只有转变教学内容, 以讲授解决问题的方法和思路为主, 使学生一开始就产生学习的好奇心, 认识到编写程序是一项极具挑战性和创造性的劳动。可以将抽象的概念形象化, 并引入若干简单有趣、学生又较熟悉的问题作为例子。通过实例使学生了解高级语言编程能解决什么样的问题, 然后再深入浅出地介绍一些重要的抽象概念。另外在教学中可以补充讲解“程序设计的思想”、“如何提高编程能力”等方面的内容, 解决学生在程序设计过程中所遇到的方法、思路上的障碍。例如, 在学生开始编写第一个程序之前, 首先可以向学生介绍什么是良好的编码习惯, 编写代码在形式上应该注意什么哪些问题, 确保程序的可读性;在学习了函数之后, 可以介绍一些程序设计中“模块化”思想的应用。这些知识将有助于学生编写高质量的程序。

注重算法设计的指导, 能更加激活学生的高阶思维。计算机程序在结构上有一定的稳定性和不变性, 但程序的特征更明显地表现为程序算法上的灵活性。有效的利用思维特征, 使学生对程序设计语言有全面、深入的了解, 可从以下两方面进行尝试: (1) 利用思维定势的积极作用, 使学生掌握程序的基本流程和结构。思维定势的积极作用是指人们一旦形成某种思维定势后, 在条件不变时, 就能迅速地感知对象, 产生联想。在遇到同类问题时, 人们会用某种固定的思维模式去分析和解决问题。遇到新问题时, 人们就会想起已经学过的知识, 利用已有的方法、经验来解决新问题。可通过实例让学生明白:程序一般都分若干模块, 模块通过函数实现;一个程序可分为多个文件, 文件之间可以相互访问的。学生在编写程序解决问题时, 就容易设计出程序的框架结构。 (2) 打破思维定势的局限, 激发学生从多角度考虑问题。引导学生理解程序设计语言的特征, 让学生明白自然语言和计算机语言的差异。算法在程序设计中占了核心的位置, 在讲解程序实例时应把重点放在对算法的分析和设计上, 让学生体验使用简洁的数学模型和算法实现所带来的好处, 并积极鼓励他们大胆地对传统算法进行改造。这对学生的开拓精神和发散思维能力的培养是十分有效的。让学生理解程序设计语言作为一种工具, 必须不断追求更好的使用效果, 而不能仅以解决当前问题为目标。

参考文献

[1]文笪.王帅.国外高阶思维及其教学方式.上海教育科研, 2011.09.

中职生程序设计能力的培养与探究 篇8

1 学情现状

学生普遍反映对于抽象的程序设计语言学习起来很困难,枯燥无味。根据多年的教学经验,大部分的中职学生对学习程序语言课都是一知半解,有的甚至完全听不懂,很少有人能够学得好,慢慢地就对这类课程失去学习兴趣。造成这种情况的原因是多方面的,除了学生的基础薄弱外,其中很重要的一个原因就是程序设计课过多强调语言细节和表达细节,忽视了程序设计的本质,忽略了算法设计。另外,由于上机实践教学学时偏少,仍然以教师讲授为主,学生学习该科目目的不明确,没有针对性,缺乏兴趣,教学方法过于传统和死板等因素,从而造成中职生一提起学习程序设计语言课程,就“谈虎色变”。这样就对后续的继续学习产生不利影响,教师教学效果就可想而知了。当前,由于社会需求不断变化,教学理念的不断更新,“就业导向”等因素,对程序设计语言课的教学理念和教学方法有了很大的影响。

2 教学理念

1)采用多样化的教学模式,培养学生的程序设计初步知识。

教师要在“教”上面下功夫,首先要打破沉闷的教学气氛,增加教师和学生之间的互动,避免“一言堂”的尴尬局面,让课堂气氛活跃起来,打消学生的厌学情绪,然后适时地引入正题,特别是提出与程序设计密切相关的常用算法及设计内容,如:求最大(小)值、求和、求积、求圆的面积、最大公约数等,学生对这些算法有一定的基础,然后采用结构化程序设计中三种基本结构给出流程图,学生也相对容易理解,逐步培养学生的程序设计初步知识。

2)选择合适的教材,践行“做中学、做中教”的教学理念,在实践中持续不断培养学生程序设计能力。

当前,学历文凭和职业资格“双认证”教育是职业教育的特色之一,中职学校有一部分学生是要参加高职单招升学考试,也可以说是学历文凭考试。对报考计算机类课程的学生来说,程序设计语言课在高考中是占据非常大的分值,专业科目考试是选择“VB语言程序设计”。考试方式还是笔试形式,选用教材多数还是倾向于理论性较强的VB教程,如全国计算机等级考试二级VB教程等。但从去年开始增加了实践操作考试,尽管所占分值并不高,却对学生的编程能力是个很大的考验。因此,在尽可能地情况下,要求教师设计好与编程相关的实验操作,让学生在实践操作中不断地进行程序设计训练,使学生的程序设计能力得到进一步培养和提升。而大部分没参加高职考试的学生,可参加职业资格认证考试,上课教材可以选择偏向于操作类的实训教材来加强程序设计能力的训练和培养,此类教材以实例为先,应用为目的,围绕应用讲理论,取舍适度,不追求理论的完整性。有效地贯彻了“做中学、做中教”的教学理念,在实践中真正地培养学生程序设计能力。

3 教学方法

3.1 面向专业应用的分类教学

以就业为导向,不同专业的学生,有不同的教学要求,目前,本校开设程序语言类的课程,主要是C语言和VB程序设计等语言类相关课程。目的是普及程序设计的基础知识,并能够进行简单程序设计,为就业或继续深造打基础。不同专业学生选用难度不同的教材。

3.2 贯彻“案例驱动”,或“项目驱动”教学法

我们推行的是“提出问题——分析问题——引入新知识——解决问题——总结提高”这样一个循序渐进、交叉进行、螺旋式上升的教学模式。将课程内容分为若干个主题、或若干个任务,通过每一个典型的、针对性强的案例程序设计作为贯穿各任务的主线,使得学生真正体会到编程的乐趣。

比如:在上C语言程序设计课中讲到二维数组时,为了加深学生的理解,举了一个著名的“杨辉三角形”的案例进行教学。

首先,提出问题,让学生先想想这些数字之间的关系,提问学生回答,一般来说学生只要有认真思考,都能回答出部分规律,然后教师总结找到如下规律:

1)行号与列数相等;

2)各行第一个数都是1,各行最后一个数都是1;

3)从第三行起,除上面指出的第一个数和最后一个数外,其余各数是上一行同列和前一列两个数之和。

其次,让学生把上面规律写成算法,这是编写程序关键也是较难的一步,关系到后续的程序设计。算法如下:

1)j<=i

2)a[i][1]=1 a[i][i]=1

3)a[i][j]=a[i-1][j]+a[i-1][j-1]其中i为行数,j为列数

这样,程序设计就算成功一半了。最后,让学生试着写出整个完整的程序来。

然后,学生进行上机调试,同时教师在学生调试操作过程中给予适当的启发和辅导,从中发现问题,并学会解决问题。最后老师总结此道程序题,主要是二维数组和For循环结构语句的综合应用,然后再把二维数组的概念和循环结构语句格式重复一遍,加深学生对这些知识点的理解和运用。由此,学生也体会到了编程的乐趣,课堂学习气氛相当融洽,学生的程序设计能力也得到了提高。

3.3 强化实训,培养技能

学生的程序设计能力主要是依靠上机实践逐步培养出来的。编程不是看会的,也不是听老师讲课听会的,而是学生自己通过上机实践练会的,由此可见其实验教学的重要性。首先,强化实训,调整理论和实验课时的比例,应该至少1:1或实验课时占到更高的比例;其次,做好课前准备,教师应该提前下发实践操作作业,告知学生下次课要上机操作的内容,要求学生提前准备好,并检查学生准备情况,再次,每一次上机实践任务要明确,要求学生参照案例模仿编写程序,并进行分组讨论,查找错误的原因等,大大促进了学生的编程能力。

3.4 借助于立体化网站资源营造多样化的学习氛围

让学生登录一些先进的课程网站教学平台,其中资源相当丰富,许多经典算法的动画课件,使学生对编程有了直观的了解,有利于学生理解重点和难点内容。借助于立体化网站资源营造多样化的学习氛围,有力地提高了学生自主学习的能力,增强了编程的信心。

3.5 鼓励学生参加各种竞赛,以促进学生的求知欲

目前,据我了解,中职生参加程序设计竞赛项目只有全国ITAT就业技能大赛,没有完全针对中职生的比赛,而若与大学生来比拼编程,则差距较大,明显竞争力不够,故学生参与的积极性并不高,只能靠学校举办的科技节程序设计比赛项目来激励学生。即使这样,我们还是从中发现出一些学生的编程天赋和能力。

4 考试评价方式多样化

4.1 分段考核学生,强调过程积累

编程技能是需要连续不断训练的一种能力,不可能速成的,若按期末考试的方式来定学生的成绩是不可取和不奏效的。为了督促学生重视平时的积累,可对所学知识进行分段考试,如两个关键知识“循环”、“函数”学完后,设置两次考试,并且只考编程题目。另外,每一次实训课程就是一次上机考试,在规定的时间内完成作业,作为成绩评定的一部分。

4.2 增加作业权重,考核学生的综合应用能力

可适当地布置一些综合性的程序设计作业,由5~7名学生组成小组完成,教师提出问题,学生确定解决方案和实现方法,最后学生上台讲解,这样既锻炼了学生分析问题和解决问题的能力,又锻炼了学生的口头表达能力,并且通过团结合作,也培养了学生的团队精神。

4.3 科学公平的成绩评定方式,相对评分制度激励学习竞争

最终的成绩不是由期末考试一张试卷来确定的,而是包括多种评价因素。结合学生平时的学习态度和表现,上机实训成绩,平时考试成绩、作业完成情况等综合评定学生最终的成绩,激励学生学习。

5 结束语

综上所述,在教师教学过程中应不断更新教学理念,以就业为导向,利用行之有效的教学方法和教学评价,敢于创新,充分发挥学生的主观能动性,让学生从案例中学到编程技巧,从实训中得到锻炼,那么,中职生程序设计能力就能得到较大的提高。

参考文献

[1]马海英.培养程序设计能力的研究[J].电脑知识与技术,2008(31).

[2]陆剑锋.Visual Basic程序设计实训教程[M].北京:科学出版社,2010.

程序员培养 篇9

1 学时较少情况下的教学安排

我校大学理工科本科的教学改革较大幅度地压缩了公共基础课的总课时,以提高专业课程、选修课程和实践性课程的课时,这就导致计算机应用基础课程总学时数相应减少。为此,负责全校低年级计算机基础课程的教师多次进行研讨,特别是近几年来,笔者一直在这方面进行改革探索,努力使学生在较短的学时里掌握程序设计的知识,并能够根据自己的学科特点进行应用和扩展,且使得在以后的学习和工作中根据需要能够进行自学提高。

程序设计课程安排在大学一年级第二学期,共72学时,其中36学时进行程序设计语言理论的学习,主要内容为程序设计语言的概念和语法及相应的典型算法。同时每周同步安排2学时的上机教学,共36学时的上机实践。多年来,计算机语言课程有C语言,C++,VisualFoxPro和VisualBasic等多种语言可供选择。随着面向对象编程思想的普及,教学也需要转向面向对象的编程。但是,典型的面向对象程序设计语言如C++和Java等,对于非专业的学生来说在较短的时间内难以掌握。因此我们选择了Visual Basic这种易于掌握,又渗透了面向对象的编程思想,功能也很强大的程序设计语言。

在上机实践的教学环节,除了完成必要的典型题目,在学生较为熟悉VisualBasic程序设计环境后,后半学期(教学周第9周以后),将学生分成小组,每组由3~4人组成,以VisualBasic语言为编程环境,以教师指定或学生有兴趣的小软件项目为背景,进行的训练包括:需求分析、算法设计、模块设计、编写程序和软件测试等环节,最后以编写的软件文档和源代码作为上机实践课成绩的依据。实践表明,经过这样的全过程实践,学生可以初步掌握可视化编程,了解软件的一般性开发方法。比较过去的教学学生虽然学完了程序设计课程,也通过了全国计算机二级考试,但对于软件开发所知甚少,有了很大的提高。

2 精心选择教材

目前VisualBasic程序设计课程教材有很多种,内容差别很大,笔者在选择教材时本着以下原则:

(1)重视概念和算法的学习,内容简明扼要,对于语法细节不深究,操作部分的指导要清晰明确。

(2)教材内容的组织上有助于尽早在学生头脑中建立起面向编程的思维模式。

(3)有详细的实验指导书,能够训练学生综合运用计算机的能力。

(4)教材中的各章节提供有针对性的典型案例,通过案例步骤的讲解而引出理论知识具体运用,能够结合学生的学科内容,能够综合教材中的前后知识点。

(5)将程序设计语言及软件的进展融入教材中。

由于各种版本的教材各有特色。教师在选择时还可根据学生的计算机水平,所在学科的特点、本专业的教学目标以及不同层次的教学要求进行权衡。对于程序设计要求较低的专业可以选择较为浅显的教材,而对于要求计算机实践能力较强的专业,如电子技术等专业,应选择更接近工程实训的教材。

3 认真组织课堂教学

在实施教学活动时,要考虑学生的学习基础、认知能力、兴趣和习惯。在经过了一个学期的计算机应用基础的学习后,学生一般都具备计算机的使用能力,对于常用的一些软件如O f f i c e套件等都较为熟悉。也有部分学生在中学学过程序设计语言,具有一定的编程基础。但据笔者在教学中对学生的了解,对于程序设计而言,学生已具有的程序设计知识是很少且模糊的。因此,在教学时需要告诫部分学生不要因为已学过一点程序设计而自满。教师在教学中也要引导学生更深入地学习计算机专业知识,在教学中融入数据结构、操作系统及软硬件环境等相关知识。并在教学后期用综合性的有工程应用背景的题目来训练学生。这些补充内容能够帮助非专业的理工科学生快速建立起计算机的知识结构框架。

课堂教学中直观生动的讲解是提高学习效率的重要手段,特别是在教学时教师进行现场的编程和调试,对学生的学习有很大的帮助,但耗时较多,教师需要精心选择题目并“制造”典型错误。另外,教师需注意培养学生良好的编程风格,如规范的变量命名,加入适当的注释,锯齿形的缩进要求等。学生的模仿是学习程序设计的第一步,要让学生切身感受编程的整个过程培养学生良好的习惯。

4 编程与调试能力的培养

在教学中要注重训练学生用程序设计语言进行数据计算和逻辑分析的基本功,主要有数据结构的设计、算法的选择、模块功能的划分等。具体语法的教学要融入到编程过程中,通过大量实际应用的讲解和练习来巩固知识点,建立知识间的联系,最终牢固地掌握程序设计语言。

程序的调试既是学习程序设计的重点又是难点。数十行代码就会引起很多错误和警告,应该在教学中有意识地培养学生调试程序的能力,向学生介绍常见的错误类型和调试方法。因为教材中对此一般都是泛泛一说,所以教师需要对此着重补充。不会调试程序就谈不上程序设计。

程序中出现的错误通常可分为两类,“语法错误”和“逻辑错误”。“语法错误”指程序代码不符合该种程序设计语言的语法要求,程序调试出现错误时,一般都会在屏幕上提示出错信息,调试者能否看懂这些信息是修改错误的关键,教师在教学初始阶段需要较多的讲解,此种错误相对容易查找。学生比较困难的是“逻辑错误”,教师在讲解时需要综合运用多种调试手段,如查看程序结构、输出关键变量值、黑箱模块测试等。不论何种错误,这种程序调试能力的获得都需要大量的训练。在教学的开始就需要将调试程序列入计划,从编写最简单的程序就需要逐步地强调程序调试的方法。比如在学习流程控制语句时,就可以引入F8单步执行,Shift+F8逐过程执行,Ctrl+F8运行到光标处,通过监视窗口观察变量值等方法;在讲解循环时引入断点的设置方法;在讲解过程、函数时运用过程的调用和进入函数执行或者跳过函数执行的调试方法。在教学的后期引入其他一些高级的程序调试方法(如函数调用栈等)。

典型的题目可以帮助学生更好更快地掌握程序设计的知识和方法。在讲解新的知识点时所使用的示例要简短精炼,并且能够和学生所学的专业相结合,这样做能够极大地提高学生的学习兴趣。

5 结束语

本文结合自身的教学体会,介绍了VisualBasic程序设计课程在学时较少的条件下教学的安排、教材的选择、课堂教学的组织、程序调试能力的培养等。在实际的教学中证明这些方法是成功有效的。

摘要:VisualBasic程序设计语言是我们学校开设的全校性理工科学生必修的计算机公共基础课程。探讨了在我们学校教改中,计算机课程学时减少的情况下教学的组织,提出了教学方法的建议。重点讨论了备课过程和课堂教学中多种教学方法的融合,及课后通过让学生完成具有一定实用性的题目来提高学生的编程和调试能力,为学生在各自的专业中应用和扩展编程知识并解决本专业的问题打下良好的基础。

关键词:VisualBasic程序设计,教学,编程与调试

参考文献

[1]李进霞,常军锋.高职院校程序设计一体化教学探讨[J].中国现代教育装备,2010,9

程序员培养 篇10

程序设计基础课程属于高校非计算机专业必修的公共课,旨在培训学生的基本编程能力、逻辑思维和抽象思维能力。程序设计对于大学生来说不仅是职业技能的培养,也体现着创造性思维的信息素质培养过程。程序设计也是有形表达抽象思维的方法,在程序设计过程中如何贯穿阅读判断、分析思考、工具利用、抽象表达、综合创造等多项技能就显得至关重要。如何培养学生的程序设计和计算思维能力,是需要在教学中思考的一个重要问题。

目前大部分高校在程序设计课程中多采用传统的教学方法:先进行课堂讲授,再结合上机实践操作来巩固和熟悉课堂上灌输的知识点,是一种注入式的方法,偏重于理论的讲解,使得大多数学生对于实际应用程序的开发完全没有概念,在一定程度上束缚了学生思维的发展,综合分析能力、创新能力和程序设计实践能力都有所欠缺,无法满足社会的需要。

2 计算思维与程序设计课程教学

2.1 计算思维

计算思维一词由美国卡内基·梅隆大学计算机学院主任Jeannette M.Wing(周以真教授)于2006年提出,其定义是:运用计算机科学的基础概念去求解问题、设计系统和理解人类行为。它包括了涵盖计算机科学之广度的一系列思维活动。周教授认为,计算思维是每个人的基本技能,不仅仅属于计算机科学家。周以真的观点中,计算思维包含如下内容:(1)计算思维是通过约简、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐释成一个知道怎样解决的问题;(2)计算思维是一种递归思维,它是并行处理;(3)计算思维采用了抽象和分解来迎接庞杂的任务或者设计巨大复杂的系统,它是关注的分离(Separation of Concerns,简称SOC方法);(4)计算思维是按照预防、保护及通过冗余、容错、纠错的方式从最坏情形恢复的一种思维;(5)计算思维就是学习在同步相互会合时如何避免“竞争条件”(亦称“竞态条件”)的情形;(6)计算思维利用启发式推理来寻求解答,就是在不确定情况下的规划、学习和调度;(7)计算思维利用海量数据来加快计算,在时间和空间之间,在处理能力和存储容量之间进行权衡。

在此基础上,周以真教授给出计算思维具有以下几个方面的特征:概念化,不是程序化;根本的,不是刻板的技能;是人的,不是计算机的思维方式;数学和工程思维的互补与融合;是思想,不是人造物;面向所有的人,所有地方。

2.2 计算思维能力培养与程序设计课程教学

计算思维最本质的内容是抽象与自动化,而这两个内容恰好反映了计算的根本问题,即什么能被有效地自动进行。为了培养学生的计算思维能力,最为关键的是要抓住这两个核心内容。

程序设计课程是训练学生思维能力的一个最直接最重要的平台,前面介绍过,传统的教学模式会大大限制学生自主发现问题的思维能力,而计算思维则提供了重新审视程序设计教学的视角,将计算思维融入到程序设计教学中会大大提高学生的思维方式和解决实际问题的能力。对于程序设计课程来说,学生需要掌握的编程能力是计算思维和技能化知识的综合体现,因此需要强化学生计算思维能力的培养,而计算思维能力在较大程度上是以思维方式的数学化为支撑的。在程序设计课程中如何培养学生的计算思维能力,加大学生抽象思维能力和逻辑思维方法的训练力度是教学的重点。计算思维的结果是否正确必须要经过实践的检验。对于程序设计课程本身来说,实践操作是对计算思维能力结果的一种验证,是动手又动脑的过程,不去上机就没有能力的提高。因此,必须强化实践环节;提出理性思维和理性实践。上机编写程序去解决题目中的问题,体现了知识运用的综合性、灵活性与探索性。如教师不引导动手,学生会很快感到乏味,很快知难而退。要想提高学生程序设计的能力,需要激发学生的兴趣。因此,能力的提高应该是训练的结果。因此需有目的地训练学生如下能力:抽象思维、算法设计、编写代码、调试程序、运行和分析程序结果。

3 面向计算思维的程序设计课程教学

对于非计算机专业的学生来说,学习程序设计的目的是学会用计算机去分析问题和解决问题的思维方法,因此计算思维可以贯穿于程序设计课程的整个教学过程。下面以程序设计基础(C语言)为例探讨如何将程序设计课程教学与计算思维培养有机地结合起来。

3.1 算法与计算思维

在C语言教学中除了要让学生掌握基本的语法知识,用机器“看得懂”的语言去解决问题,最重要的是算法的设计,而算法的设计又是计算思维的体现。

算法是描述某一问题的具体求解步骤,根据图灵奖得主D.E.Knuth的定义:一个算法就是一个有穷规则的集合,其中规则规定一个解决某一特定类型问题的操作序列。学生在学习程序设计课程时,将通过算法设计并由计算机语言实现来体验问题求解的思维训练。算法的操作时序性确保问题求解过程是按步骤进行的,这种执行规则非常简单机械。所以,教学过程中要使学生经历算法化过程并体验计算思维,它有利于培养学生的理性思维和形式逻辑能力,从而培养学生通过计算机编程,最终领会计算思维。

陈杰华老师将算法分为3种形式:(1)生活算法:即完成某一项工作的方法和步骤,例如一天的学习计划、安排或打算;(2)数学算法:即对一类计算问题的机械的、统一的求解方法,例如一个二元一次方程组的解;(3)计算机算法:即问题求解的精确描述,它具有明显的自动化特征,数据计算准度高并具有严格的操作时序,这是与计算机系统本身紧密相关的,所以用计算机实现问题求解,需要充分利用计算机的速度和存储优势,尽量发挥计算机与计算思维的威力。

3.2 结合计算思维的课程教学

为了让学生领会计算思维的本质,培养学生的计算思维能力,以C语言的“循环结构”为例来探究如何让学生既掌握了C语言的循环结构这个知识点,又培养了学生的计算思维。

3.2.1 提出问题

作为任课教师首先要提出问题,该问题要吸引学生的注意力,并要仔细分析问题的代表性、应用性和兴趣性。对于循环结构,可选用“猴子吃桃问题”:

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,见只剩一个桃子了,求第一天一共摘了多少个桃子?

这个问题具有计算思维的显著特征,而且对于学生而言,非常有趣,这会使学生在兴趣中主动学习,从思想层面接受这个新知识,以此培养学生的递归思维意识。

3.2.2 启发学生用计算思维的方法分析问题

面对感兴趣的问题,学生会陷入积极的思考和热烈的讨论,并考虑各种解决问题的方法。

此时发挥主导作用的教师正确地引导学生,适时为学生提供帮助,运用计算思维的各种方法启发学生。

对于“猴子吃桃问题”,根据计算思维的特征和高效,引导学生是否可以用计算思维的递归方法求解。学生根据教师的引导,运用计算思维的递归方法,逆向思维,从后往前推断。用NS流程图(如图1所示)表示如下:

(1)首先分析需要哪些变量:day表示天数,t1表示第n天的桃子数,t2为n+1天的桃子数。

(2)讨论采用什么结构:循环的逻辑条件当day>0时语句执行。

(3)运用计算思维的递归思维得到:“第n天的桃子数是第n+1天桃子数加1后的2倍”,即是t1=(t2+1)*2。

(4)根据循环得知,把求得的t1的值赋给t2,即是x2=x1。

(5)每往前回推一天,时间将减少一天,即是day--。

(6)输出答案。

该案例在(3)~(5)步采用计算思维递归的方法发现并解决问题。通过这样的例子,将递归算法执行过程中的两个阶段递推和回归完全展现在学生面前。在递推阶段,把较复杂的问题(规模为n)的求解推到比原问题简单一些的问题(规模小于n)的求解。第n天的桃子数等于n+1天桃子数加1个后的两倍。同时在递推阶段,必须要有终止递归的情况,比如到第10天时桃子数就为1个了。在回归阶段,当获得最简单情况的解后,逐级返回,依次得到稍复杂问题的解。第10天的桃子数为1个,即是后一天的桃子数加上1后的2倍就是前一天的桃子数,那么t1=(t2+1)*2。

在此例中,教师引导学生以递归算法的逆向思维求解问题,在学习过程中体会递归算法的思想过程。学生在思考中学习,并掌握递归方法,当遇到类似问题时就会想到用类似的办法去解决问题。

3.2.3 启发学生用计算思维的方法自主学习

在学生掌握了前面所学的基本技巧和方法之后,对该类问题已经能够灵活运用所学知识进行求解。此时,教师应该在些基础上继续启发学生思维,让他们主动、积极地进行自主学习,使其能举一反三,在“学中做”。对此,我们可以继续“猴子吃桃问题”:

NS流程图(如图2所示)如下:

(1)分析程序中的变量:i为桃子所吃天数,sum为桃子总数。

(2)for循环控制变量i的值。

(3)运用计算思维递归方法得到sum=2*(sum+1)。

(4)求出sum的值。

(5)for循环控制变量i的值。

(6)再次运用递归思维求出每天所剩桃子数s um=s um2-1。

(7)输出i,sum的值。

该题中,第(6)步骤采用的递归方法是迁移了第(3)步骤递归方法的结果。通过这样的思维训练,让学生在思考中学习,在学习中运用新的方法破解难题,培养学生分析问题、解决问题的能力,锻炼学生数学建模能力,巩固知识的同时拓展技能和技巧。

4 结语

将程序设计课程教学与计算思维培养结合起来,一方面可以从计算思维的角度重新审视和组织程序设计基础的课堂教学,取得更好的教学效果;另一方面可以加强对计算思维能力的培养,使学生能够更好地应用计算思维来解决问题。计算思维的培养不是通过一两门课程的教学就能解决的问题,这就需要教师能够从计算思维的层面看待所教授的课程,能够对这些课程中含有的计算思维的基本概念、方法和思想进行提炼,以及能够从计算思维的角度对这些课程进行重新梳理和建设等,当然这是一个长期的过程,需要我们不断探索,努力实践。

参考文献

[1]周以真.计算思维.中国计算机学会通讯,2007.

[2]臧劲松.培养学生计算思维的程序设计课程教学[J].计算机教育,2012(2):78-80.

[3]常亮,徐周波,等.离散数学教学中的计算思维培养.[J].计算机教育,2011.7.

[4]吴绍兵.计算思维和程序设计能力的培养[J].计算机教育,2011(16).

程序员培养 篇11

关键词:课程体系;计算机;程序设计

基金项目:成都学院重点教改项目,项目编号:2013020

TP311-4

随着计算机应用的普及,几乎所有理工科专业都要设置程序设计类课程,对于计算机专业而言,程序设计类课程的设置更是必不可少。在计算机专业的人才培养方案和课程体系的建设中,如何把握程序设计及其相关课程的地位和作用,如何根据专业应用领域的不同,设置相关课程,构建课程体系,培养应用型人才是教学管理人员和全体教师必须仔细研究和探索的问题[1]。

一、计算机专业人才需求现状

随着社会从“工业化”向“信息化”的转型,社会对高校人才培养的规格、标准和类型不断提出新的要求。通过对人才招聘市场的调研表明,企事业单位对于计算机专业岗位应聘要求一般为:掌握一到两门高级程序语言,具有软件开发设计能力,能熟练掌握计算机网络编程、数据库编程等相应能力,具有1-2个软件项目开发设计经验,并具有一定的创新意识和团队精神,同时,对应聘者的自主学习能力、创新能力、团队协作能力也提出相关要求。

二、计算机专业课程体系设置现状及问题分析

高等院校在计算机专业的人才培养方案构建中,大多强调以学科体系为课程构架的基础,强调学科体系的系统性、连贯性和完整性,课程设置按照基础课、专业基础课、专业课三段式建构,采用“知识输入导向”的课程体系构建模式[2]。这种课程体系结构有利于同类知识的沟通与迁移,为学生在学科专业上进一步深造和发展奠定基础,但对于实践能力、应用能力、创新能力培养具有一定欠缺,已不太适应现代社会快速发展和企事业单位对高校毕业人才的需要。

对于面向企事业单位培养应用型人才的高校而言,其课程体系的建构应不再过分追求专业知识的深度和难度,而应更多关注专业知识的广度及其交叉融合,突出综合应用能力培养,构建以“知识传授和能力培养”为本位的人才培养方案,并将此贯穿到人才培养方案的指导思想、培养目标、培养内容、教学方法等各个环节。

针对计算机专业学生的课程体系设置现状调研发现,较多高校的课程设置具有以下特点:

1.高级语言课程设置繁多,包括C、C++、JAVA、C#等。这些语言具有一定的相似性,学生学好用好其中1-2门编程语言为主就已足够。其余语言可视学生个人发展需要,利用网络教学平台或MOOCs课程平台,由学生利用课余时间自主选择学习和掌握,没有必要一定设置在讲授课程中。

2.数据库系统、计算机网络等课程一般在第4学期甚或以后学期中开设。现代软件开发实际现状是数据库、计算机网络与程序设计紧密关联,这些课程过于后置,不利于程序综合设计的能力培养和提高。

3.课程设计主要针对每一门具体课程设置,综合多门课程的课程设计设置较少,课程设计间的衔接度较低,综合性课程设计基本均以毕业设计的方式体现,而依靠毕业设计这一个环节的综合训练并不能满足培养学生的程序设计综合能力的需要。

三、计算机课程体系建设改革思路

根据计算机专业的应用型人才培养要求和课程设置原则,在构建专业课程体系结构时应充分体现大类招生、阶段化教学、分层分类培养的教学理念,贯彻“加强基础、突出核心、注重实践、整体优化”的设计思路[3],突出程序设计在课程体系中的作用,培养学生软件开发综合能力,实现“知识传授与能力培养”的教学目标,注重学生个性化发展的需要和创新创业意识培养的需要,我们对课程体系进行了重构,重构后的计算机专业核心课程体系如图所示。

此课程体系设置的核心思想是:调整课程结构,打造核心课程群,明确阶段教学目标,分阶段实施课程教学,强化综合课程设计,采用渐进式方式培养学生综合能力。整个课程体系分四个阶段设计,每个阶段均有明确的课程教学任务和能力培养目标。

第一阶段,实施学期为第1、2学期。课程设置以程序设计、数据库系统、计算机网络等为核心,建设核心基础课程群,通过基本理论和基本知识的学习,掌握计算机编程的核心要素,掌握基本的程序设计技术。通过本阶段的学习和培养,要求学生能基本完成简单的综合程序设计。

第二阶段,实施学期为第3、4学期。课程设置以操作系统、编译原理、数据结构与算法、数值计算、软件工程等为核心,建设专业基础课程群,通过这些课程的讲授和学习,掌握计算机的系统结构和组成原理,掌握软件系统开发的基本理论和基本方法。通过本阶段的学习和培养,要求学生能初步掌握和应用软件工程开发的模型和思想,完成较为复杂的应用程序开发,并能逐步优化程序代码,提高代码的复用度和执行效率。

第三阶段,实施学期为第5学期。现代社会是一个经济社会,软件开发是一个系统工程,在这个系统工程的实施过程中,需要对软件开发周期、经费、分工进行全面策划和管理。根据以往的经验,很多学生有很好的创意,但由于缺乏管理学、经济学等方面基本理论和知识的支撑,缺乏创新创业的指导,创意仅仅停留在萌芽阶段,不能将创意转化为项目去具体实践。因此,有必要在此阶段设置管理学、经济学、创新创业等方面的课程。通过本阶段的学习和培养,要求学生深入理解和掌握软件开发的思想和方法,使其提出问题、分析问题和解决问题的能力得以加强;同时,本阶段结合创新创业开展项目实训,将学生的创意转化为具体项目进行培养和孵化,培养和提高学生的创新能力、组织能力、协调能力。项目实训实施周期根据研究和推进情况可扩展至第7学期。

第四阶段,实施学期为第6、7、8学期。通过前三个阶段的学习,特别是综合课程设计与创新创业项目实训的培养和锻炼,学生基本具备了软件开发的知识和能力,逐步建立了自己的职业发展规划。本阶段为专业深入学习和发展阶段,课程设置以专业方向课程为主。学生根据自己的职业发展规划,选定专业发展方向,深入专业领域,開展自主性学习和个性化学习,选定毕业设计题目和内容,按照专业培养要求完成毕业设计与毕业论文。

四、课程教学实施中的注意要点

1.改革课堂教学模式,提高自主学习能力

对传统的讲授式课堂教学进行改革,大力推行启发式、研讨式结合的课堂教学模式,实行翻转课堂教学。对基本定义等概念性知识以学生自学为主,要求学生在课前查询自主学习这些基本知识,在课堂上将这些知识点以问题的方式进行抛出,教师和学生共同研讨学习。对于算法、数据结构、数值计算等逻輯性较强的知识,课堂主要针对经典问题,以案例为主讨论其核心思想及分析方法,课后作业尽量与实际应用接轨,采用小组方式共同完成。

2.改革考核评价方法,考察综合应用能力

在课程考核中,改变以往以一纸试卷评定学生学习水平的考核模式,注重过程考核、能力应用考核。在实际执行中,将课堂讨论情况记录、实验报告及作业完成情况、方案设计报告、试卷成绩等元素结合进行综合考评,最终成绩也将百分制改为等级制评价,便于激发学生学习动力和研究兴趣,注重知识的积累和能力的培养。

3.加强师资队伍建设,保障教学实施效果

学生工程能力的强弱,与教师的工程能力密切相关。为实现师资从教学型向工程型的转变,采用“走出去”和“引进来”的方式,提高教师的工程项目实践能力。安排专业教师到企业中“挂职”锻炼,使教师参与企业的工程与管理实践;邀请企业派工程师进学校、进课堂,为专业教师举行专题讲座,开展多种形式的师资培训;在课程设计以及毕业设计阶段,实行“双导师制”,从企业聘请经验丰富的工程师和专业老师共同指导学生开展项目设计。

结束语

高校现行的课程体系是在长期的教育实践过程中依据社会需求、学科建设和教育规律逐步建立和完善起来的,具有一定的历史继承性和稳定性。然而,当代科技的发展日新月异,社会的需求也具有鲜明的时代性,学生不再是被动的受教育对象,教师不再是唯一的知识来源,课堂也不再是唯一的学习场所,这促使我们必须不断进行课程体系的改革与创新。

在课程体系建设中,应实现从“知识输入导向”向“知识传授与能力培养”的转变,引导学生进入学科专业领域,构建学科专业的认知模型,激发学生的自主学习能力,掌握学习和发展个人特长的能力。教学建设是一个需要不断研究的课题,只有不断与时俱进,改革创新,在课程体系、教学模式、教学方法上积极探索,才能真正实现高等教育培养优秀人才的目的。

参考文献:

[1] 尹朝庆等.信息类专业课程体系和实践教学体系模块化设计研究[J].计算机教育.2013(9)

[2] 蔡敬民.基于能力导向的模块模块化教学体系构建[M].中国科学技术大学出版社.2012

[3] 孙西朝.地方高校应用型计算机专业人才培养策略[J]. 中国教育信息化.2011(11)

[4] 邹金安等.计算机专业课程体系建设的研究与实践[J].高教论坛.2009(1)

程序员培养 篇12

●基于图形化编程的学习工具选择

目前,各中学开设的程序设计课主要有信息学奥赛培训课与国家课程标准选修课《算法与程序设计》两种形式,它们采用的编程语言前者为C语言或PASCAL语言,后者为VB语言,因此,这两种形式均需要学习程序代码且面向数学解决问题。这样的形式不仅使学习活动缺乏生动性,而且在面对各类问题时,也不利于对学生进行识别、分析、抽象、建模并设计系统解决方案的计算思维的培养。

基于以上分析,笔者所在学校在高一年级开设了面向全体学生的程序设计常态课,采用图形化编程软件Scratch和图形化编程平台App Inventor作为学习工具。这两种工具均是采用鼠标拖动模块到程序编辑栏的搭积木式的工作方式,是带图形界面的可视化编程语言,其操作难度低,适合各能力层次的学生。利用Scratch可以创建故事、动画、游戏、音乐、视频,适合模拟各种现实生活场景,创设各种虚拟任务。App Inventor则是一个完全在线开发的Android编程环境,它可以用于设计安卓手机应用的外观及行为,设计完成的应用程序既可以在计算机模拟器中运行,也可以直接安装在手机上运行,它为学生探索并创新如何利用程序满足真实的学习、工作或生活需求提供了强有力的计算设计平台和更宽阔的思维发展空间。值得一提的是,Scratch的程序编写界面和App Inventor有相似之处,学生能够很方便地从Scratch这一较为简单的工具过渡到比较复杂的App Inventor,从而很好地从解决虚拟问题过渡到对真实问题的解决和现实应用的设计中来。

●基于程序设计思想的课程结构设置

笔者观摩了不少程序设计选修课,教师为了便于开展教学、提高学习活动的可操作性,大多都以面向对象程序设计工具的应用为主线设计教学,如“制作一个计算器”“制作成绩排序软件”等,或花费许多精力在程序界面的设计上。在这些课堂中,虽有程序设计的知识,但工具的学习和应用的主线过于分明,其结果是学生对程序设计课的印象,就是在记忆一个个应用程序的名称。

培养学生的计算思维,关键在于使其形成面对问题时能分析如何利用计算机科学知识获得最佳策略的意识和能力,懂得如何合理组织数据,能够运用最优算法设计解决问题的方案等。因此,选择正确的程序结构、使用合理的数据结构、优化解决问题的算法等程序设计思想的学习和锻炼是培养计算思维最关键有效的方法。

笔者所在学校的程序设计常态课是以程序设计思想为线索进行课程结构规划的(如左上表),与课程中各个教学专题对应的则是以“大话西游”为创作大主题而设计的若干个课堂实践案例及课堂导学案,其中课堂导学案的内容组织便是以程序结构、数据结构和算法等知识目标为导向。例如,在教学专题“选择结构”时,笔者安排了一个设计捕捉游戏的任务,让学生依次经历“发现任务中的分支选择—认识计算机程序的选择结构及其表达方式—选择编程工具中的恰当指令实现选择结构—编程实现任务”这一思维过程(如图1)。在这个过程中,学生不是一开始就投入到工具的学习中,而是先学会分析问题可以用什么策略或步骤,再思考如何用计算机的方式进行表达,最后以合理、有效的方式解决问题。

因为计算思维是运用计算机科学相关思想方法形成问题解决方案的过程中产生的一系列思维活动,因此“问题”是培养计算思维的基本立足点。基于问题,才能引发关于问题的界定、问题特征的抽象、为解决问题而建立数据模型等一系列计算思维活动;基于问题,也才能发挥计算思维的最大效益,即培养学生分析和解决现实问题的能力。

笔者所在学校以“大话西游”作为整个程序设计课程的创作大主题,并根据该主题设计了许多生动有趣的学习活动及任务,如制作一个孙悟空变脸的动画剧场,制作悟空抓妖怪的追捕游戏,开发一个关于中国名著《西游记》知识测验的手机APP等。在课堂导学案中,每一个学习活动首先都由若干个问题引起,即称之为“前置问题”;每个学习活动后期也都会有问题引发学习延伸,则称之为“拓展问题”。

例如,在教学专题“循环结构”中,学生要完成一个制作迷宫游戏的学习任务(如上页图2)。为了完成该任务,学生需要学习“循环结构”的相关知识,也需要运用已学过的“选择结构”的相关知识。在学习活动的开始环节,教师提出前置问题:打开走迷宫的示例程序,尝试用键盘控制对象从起点走到终点,并思考以下几个问题。

(1)这个程序和你玩过的哪类游戏相似,它们具备什么功能(或特征)?(2)要使对象受键盘控制,并在碰到迷宫的黑线时做出反应,需要做哪些判断或选择?实现这些判断或选择可以使用哪种程序结构和Scratch指令?(3)要让对象一直受键盘的控制,需要怎么做?(4)要让对象一直受键盘的控制,直到遇到某个条件,就结束键盘控制,需要怎么做?

前置问题的设计重在帮助学生抽象出解决问题的数据模型。问题(1)在于引导学生找出迷宫游戏的典型特征,完成问题的界定及问题特征的提取;问题(2)引导学生发现可以利用所学习过的程序设计知识“选择结构”来实现判断和选择功能;问题(3)~(4)启发学生寻找实现持续执行或持续执行直到实现某条件的办法,进而学习程序设计新知识“循环结构”。对问题(2)~(4)的思考,有助于学生建立解决问题的结构模型。

又如,在教学专题“应用系统的程序设计”的第一个学习活动“悟空学艺——72变”中,要求学生在App Inventor中综合应用前面学习的程序设计基本知识,设计一个带画板功能的手机App程序,其中有一个功能是设置画笔为粗线条或细线条(画笔宽度固定)。课堂导学案中提供现成的程序参考,教师在学习活动后期提出拓展问题:根据人对应用工具的操作习惯,画板应该可提供画笔的逐步调节粗细的功能(而不是固定粗细),请你利用学过的程序设计知识,结合App Inventor中相关的组件及其属性,实现这一功能。

拓展问题的设计在于引导学生实现课内知识到现实应用的迁移,以上问题将引导学生思考并发现可以通过定义全局变量,并利用变量的数值递增或递减进而赋值给画笔的宽度属性来实现所需功能(如图3)。

再如,在教学专题“应用系统的程序设计”的另一个学习活动“西游回忆录”中,笔者通过让学生制作一个关于中国名著《西游记》的知识学习与测试手机App程序,学习应用“列表”这一静态存储结构。在学习活动后期,笔者同样提出拓展问题:思考可能出现的用户需求,并尝试改良答题程序,提高其使用价值。

图3“应用系统的程序设计”制作画板App学习任务的App Inventor设计界面及程序实现(含部分参考程序及学生改良程序)

图4“应用系统的程序设计”制作试卷答题App学习任务的学生改良后App Inventor设计界面及部分程序

为此,有学习小组利用“列表”在原来答题程序上增加提示功能,这一来可以提高用户的答题率,二来还可以让用户学习更多拓展知识(如P41图4)。

●结束语

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:iwenmi@163.com

上一篇:儒家文化与中国式官场下一篇:体育小游戏

付费复制
期刊天下网10年专业运营,值得您的信赖

限时特价:7.98元/篇

原价:20元
微信支付
已付款请点这里联系客服
欢迎使用微信支付
扫一扫微信支付
微信支付:
支付成功
已获得文章复制权限
确定
常见问题