首页范文计算机程序设计基础十篇计算机程序设计基础十篇

计算机程序设计基础十篇

发布时间:2024-04-25 18:17:07

计算机程序设计基础篇1

关键词:精品课程课程建设教学模式

1.课程定位及历史沿革

程序设计基础是高等学校一门重要的计算机基础课程,是计算机基础教育的基础与重点,高级语言程序设计课程是继大学计算机基础之后的一门必修基础课,属于校级平台的必修课程。

我校的程序设计课程由一系列课程组成,包含了C语言程序设计、VisualBasic程序设计、算法与程序设计、面向对象程序设计以及高级程序设计等五门课程。其中,前两种程序设计语言类课程面向我校广大非计算机专业学生开设,后三种程序设计语言类课程是我校计算机专业学生的专业基础课程。虽然高级语言种类不同,但程序的基本思想都是相同的。并且,程序设计的基本理论及思想不仅仅在计算机科学各领域使用,在其他非计算机专业的计算机辅助教学中也大量运用。它所讨论的知识内容和提倡的技术方法,不仅为计算机专业后续课程如操作系统、数据库系统、编译原理等课程提供了必要的知识基础,同时,对从事软件开发与设计也有着不可替代的作用,而且为广大非计算机学生,诸如电子控制类、机电类、信息管理类学生提供了必要的基础知识和技能训练。

1997年以前,该课程只是小规模在学校部分专业开设,内容以Basic为主。1997年成立计算机基础教研室,负责面向全校的计算机基础课程,这时该课程授课语言改为pascal。从2001年后,我们以学生专业需求为导向,选择不同的高级语言,以便为后续相关课程服务。理工类非计算机专业学生学习C语言,文科类学生学习VisualBasic,计算机相关专业采用能支持面向过程方式和面向对象方式的C++语言,计算机专业高年级学生学习Java语言。至此,按照不同专业需求及不同学生层次设置课程,课程内容不断更新,逐步形成比较完整的系列课程体系。丰富的程序设计语言及分专业、按层次教学,使得程序设计课程能够适应当前市场实际需求,在实际教学中受到学生的欢迎,也深得后续课程教师的肯定。

2001年程序设计课程被计算机学院列为院级重点建设课程,2005年成为我校重点建设课程,2006年被评为校级精品课程。

2.贯彻教学+应用型教学模式,抓好各个教学环节

(1)更新教学内容,改革教学方法和手段,提高教学效果。

为了适应计算机技术快速发展的新形势,从1999年开始,我们对教学内容适时做了根本性调整,具体来说有四次较大规模的调整:1999年以前讲授语言以Basic为主;1999年-2001年转换成pascal语言;2001年-2004年为C语言,2004年至今,按不同专业及学生层次不同,在不同阶段开设不同语言,大致可分为文科类、理工类、计算机专业高年级三大类,分别讲授VisualBasic、C语言、面向对象程序设计C++及Java。

在不断更新教学内容的同时,在教学方式和手段上也尝试进行改革。从2001年起开始针对不同层次学生实行分级教学,做到因材施教,使基础好的学生能更上新台阶,而基础较差的学生能够掌握程序设计最基本的要求。为了适应程序设计基础系列课程操作实践性强的特点,课堂教学全部在多媒体教室通过大屏幕结合黑板在计算机上边讲边演示。2003年开始实行双语教学,针对数学和英语成绩非常优秀的学生开设纯英文环境的计算机教学。2004年建立了课程网站,将有关课件、教案、习题及答案等放在校园网上,并实现局域网内的在线考试,利用网络技术实现多媒体教学。促进教学手段多样化,为帮助学生自主学习提供了有利条件。

(2)构建完整的实验体系,培养应用型人才。

程序设计系列课程是理论和实践要求都相当高的课程,而我校各专业的人才培养目标是培养能够从事科学、技术和应用各领域中有关教学、科研、开发和应用的复合型人才。因而在程序设计系列课程中,培养学生获取知识的能力和分析、解决问题的能力,从而为将来实际应用打好坚实的基础是我们一直在努力探索的问题。全面的实验内容、实验过程全程指导,是保证课程目标实现的基础[1]。

加强上机实验环节是该系列课程主要的实践教学手段,通过对计算机语言的实践,使学生掌握程序设计的基本思想、基本方法[2]。实验教学时学生在教师的指导下进行上机操作,保证一人一机。每位教师指导一个自然班,要求学生每个实验项目都要按规范格式填写实验报告。为进一步加强实践性教学环节,我们根据实际情况及时调整了理论教学与上机学时的学时分配,例如,C语言的实验学时从原来20学时增加为30学时。

在实验内容方面,课程的实验分为基础性实验和鼓励学生创新的综合设计性实验两部分。基础性实验主要是一些预先设计好的实验。学生通过实际操作,能够加深对课程所讲授的基本原理、技术和方法等知识点的理解。在系列课程中,根据不同语言课程的特点,制定了各具特色的基础性实验,以全面强化学生对基础知识的掌握。但是这种实验只能称之为验证性实验,而要想让学生把本课程的知识融会贯通,还需要通过综合性实验的锻炼。不同程序设计语言都根据各自特点,设计出有一定难度又与科学研究相关的综合性实验。这些措施提高了学生的学习兴趣,达到了很好的教学效果,受到学生的普遍欢迎。此外,为提高实验教学效果,我们紧跟学科发展的步伐,动态更新实验教学内容,及时加入反映学科领域的最新科技成果,保证教学内容的先进性。除了不定期更新实验内容,修订实验大纲外,我们还有针对性地编写了适合我校学生实际情况的实验指导书。现在,程序设计基础系列课程所涉及的每门课程都有规范、翔实的实验指导书。

针对有课程设计的“算法与程序设计”和“面向对象程序设计”,课程组教师组织有专题学生选题讨论会,要求教师开题必须从学生学习的实际情况出发,做到既有难度较大的题,又有较容易的题,供其自由选择以利于独立完成,同时改变以往的成绩评定方式,采用课程设计答辩方式,每位学生在设计完成后必须参加并通过答辩,才能拿到学分。

(3)精讲多练,改进考核方式。[3]

本着精讲多练的原则,改革了考试方式。由于程序设计系列课程的习题涉及的内容多、范围广,所以在考核上,我们从以往偏重于期末考试成绩改变为注重阶段性考试,在学期中间增加了两次平时上机考核。这一措施使学生在平时就注重每一部分的知识学习,增强了对学生程序设计基本素质的培养力度。

(4)加强教材及教学辅助资料建设。

基于课程目标不断更新的要求和计算机技术不断发展的实际情况,我们不断改进使用教材的质量。在使用国内外先进教材的基础上,根据本校学生的实际情况,编写了教学急需的内容新、覆盖面宽且简明扼要的优秀教材和实验指导书,以满足不同课程类型教学的需要。到目前为止,课程组已经正式出版教材4部。在实施双语教学过程中,积极引进原版教材,采用由Brianw.Kernighan和Dennism.Ritchie编写并由prenticeHall出版的影印版教材。此外,我们根据实际需要不定期修订教学大纲和实验大纲,每年更新电子教案,使得教学内容能反映实际需求和技术最新发展。

(5)加快现代化教学,方便学生自主学习。

我们不断加快Cai辅助教学课件、网络课件和录像教材等的配置和研制,从多方面创造条件方便学生自主学习,激发学生学习积极性。从2002年开始,教师自制多媒体教学课件多套,全面实行了Cai教学。2004年开通了课程网站,将教学课件、实验安排、教学文件、教学辅助资料等静态资料和辅导、答疑、课程通知等与学生动态交流的诸多工作放置到校园网上,从而为教师和学生学习提供了信息共享的平台。教师通过课程网站论坛,及时了解学生对课程的建议和意见,动态调整教学手段和方法。现在程序设计基础系列课程的网上论坛已经成为我校学生与教师学习、讨论的热点论坛之一,以此为载体极大地提高了学生学习积极性,同时为我校“一校两区”进行教学提供了较好的范例。

在课程网站开通的同时,我们进一步完善了自主开发的网上通用考试系统,使之具有强大的题库管理功能,能实现自动组卷、审卷与发卷、答题与交卷、试卷评阅和成绩管理与统计分析,且对个人课后练习将提供全面支持。学生通过网上练习系统和考试模拟系统,可以对学习过的知识进行自我考核和评价。

3.教学队伍建设

优秀的教师队伍是保证课程建设质量的关键所在[4]。经过多年建设,现在程序设计系列课程已经形成了老、中、青相结合,教授、副教授、讲师俱全的教学梯队。现有专职教师17名,平均年龄37岁,其士3人,硕士以上学历占教师总数的比例为90%。教学团队制定了中青年教师培养制度,有计划、有目标地对教师进行培养,先后送出5人攻读博士学位,5人攻读硕士学位。

经过有计划、系统的培养,这些青年教师取得了可喜的成绩。在学校、学院组织的青年教师教学基本功竞赛中,有2人次获得学校二等奖,2人次获得学院一等奖,3人次获得学院二等奖。同时,这些青年教师还参加了不同的科研项目组,在实践中提高了自身的专业素养。课程任课教师年终考核都在良好以上,并有6人次年终考核为优秀。

小结

经过多年积累,程序设计系列课程在教学模式、方法与手段、教学内容、考核方式、网络化教学和实践环节等各个方面不断完善和改进,逐步形成了有较高水平的教学团队;采用课堂授课、计算机演示、网络学习相结合的多种媒体相结合的教学手段。通过一系列改进措施,课程达到新层次。但与国内重点院校相比,本课程的教学尚有许多不足,主要集中在如下几点:授课教师的职称结构与重点院校尚有距离,课程教学的研究立项还不够,部分学生由于自主学习能力不足,学习效果低于预期结果,这些都是在以后的教学研究中需要重点讨论的问题。另外,课程网站资源还有待进一步充实,因此要达到全方位的网络化教学还有待加强与改进。

参考文献:

[1]尚利宏.北京航空航天大学“嵌入式系统设计”精品课程建设[J].计算机教育,2006,(8):7-9.

[2]殷人昆,邓俊辉.清华大学“数据结构”精品课程建设[J].计算机教育,2006,(8):20-22.

[3]朱莉,顾保磊.当前高校计算机系列课程建设初探[J].中国地质大学学报(社会科学版),2002年9月,2,(3):70-71.

[4]杨宪泽.高校计算机基础教学探讨[J].西南民族大学学报(自然科学版),2005,(6):1015-1017.

该文为武汉工程大学2006年教学研究项目。

课题名称:计算机基础教学精品课程建设内容及模式探讨

计算机程序设计基础篇2

(海军航空工程学院基础部,山东烟台264000)

摘要:针对军队院校非计算机专业学生计算机程序设计课程存在的学生自觉学习意识差、教学成效低等问题,结合军队院校新的人才培养目标,提出将课堂趣味案例教学作为主体、赛课结合作为助推剂,以合理的考评机制补充教改方案,对方案的应用过程、趣味案例进行详细分析。

关键词:计算机程序设计;自觉意识;教学改革;趣味案例;赛课结合

第一作者简介:杜晶,女,讲师,研究方向为计算机基础课程教育改革,dujingyt@163.com。

1背景

课程改革是学习方式和教学方式的转变,要从过于注重知识传授向强调形成积极主动的学习态度进行转变,即从传统学习方式的“被动性、依赖性”向现代学习方式的“主动性、独立性”转变。

人们在改造世界时,意识的能动作用主要表现在使人们从客观现实中引出概念、思想、计划等指导行动,使行动具有目的性、方向性、预见性,并通过实践把观念的东西变成物质力量。因此,列宁说:“人的意识不仅反映客观世界,并且创造客观世界[1]”。意识对物质的反作用具有层次性,这是因为人的意识不同于一般动物的心理活动,它具有自觉性,是一种自觉的心理活动,所以,也可以把意识称为自觉意识[2]。自觉学习意识是指学生把自己置于主人的地位去学习,把学习当成享受的事情,成为一种生活乐趣。我国著名教育家陶行知曾经说过:“生活、工作、学习倘使都能自动,则教育之收效定能事半功倍。所以我们特别注意自动力之培养,使它关注于全部的生活工作学习之中。自动是自觉的行动,而不是自发的行动。自觉的行动,需要适当的培养而后可以实现”。

如何对学生进行适当的培养使之自觉地进行程序设计课程的学习,一直是学术界和教育界关注的热点问题。计算机程序设计课程是学生进入大学后接触的第一门计算机专业基础课,对于培养学生良好的程序设计素养和对计算机科学的浓厚兴趣,对学生后续专业知识的掌握都起着重要的基础作用。学院目前开设的计算机程序设计课程为C语言程序设计,所有专业均为非计算机专业,学生初学积极性都比较高,但由于C语言具有大量的概念、术语、语法规则,传统的教学方法侧重逐个知识点讲授基本语法,所选案例大多用于语法规则的验证和说明。这种教学方法往往使学生“只见树木不见森林”,吃不透、用不活所学的语言知识[3],导致教学效果越来越差,课堂效率低下,学生自觉性越来越低,厌学情绪越来越重。

2自觉意识培养思路

在军队院校“向实战聚焦,向部队靠拢”的新人才培养模式下,培养大学生的自觉学习意识是一个长期的工作,需要一系列教学活动支撑。笔者提出将“课堂调动、课后助推、考评保障”3种手段结合起来,最大限度地调动学生的学习自觉性,使学生由传统学习方式的“被动性、依赖性”向现代学习方式的“主动性、独立性”转变。

2.1基于趣味案例教学的课程奠基石

趣味案例教学关键在于“趣味”。在学生的学习活动中,兴趣存在于动机之中,是学习动机中最活跃、最现实的成分,它可以推动学生积极行动,对于开发智力、丰富知识具有重要意义。浓厚的兴趣能有效地诱发学生的学习动机,调动学习积极性,启动有关器官处于最活跃状态;能发动和强化学生内在的动力,促使学生积极主动、自强不息地学习[4]。美国“总统国家艺术奖”“全美杰出教师奖”获得者,被誉为“美国最伟大教师”的雷夫艾斯奎斯说:“最好的班级管理就是使你的课堂教学变得非常有趣,如果学生对老师的教学真正感兴趣的话,那些不良的表现就会消失。所谓管理,也就变得容易多了”。所以,教师要充分利用趣味教学的强大力量,在案例中充分融入趣味性。

2.1.1实施要点

以趣味案例充当课堂教学的奠基石,具体实施过程如下。

(1)课堂讨论。这个环节教师要设计好趣味教学案例,然后学生分组对案例进行讨论。讨论要按照每个案例中知识点阶梯式增长的方式设计,前后贯穿,既交叉起来,又各自独立,达到将难点化解的目的。设计出来的案例和知识点的比喻尽量带有趣味性。

(2)趣味案例模拟。根据前面分组讨论的结果,让学生自己模拟趣味案例执行程序并分析结果,根据源程序和运行结果分析其程序中包含的语法知识点及程序结构、具体实现的功能。

(3)程序扩展。教师对所给案例进行讲解,并在已给案例的基础上,提出具体的程序扩展要求,学生通过已模拟案例的相关知识修改相应语法及结构,完成程序扩展要求。

2.1.2趣味案例分析

该题目以广东卫视的一档节目“活动大冲关”为背景。“活动大冲关”第六关是智力加法,为了公正公平,减少人为的干预,智力加法的出题由电脑随机出现两个数,再由选手做答。

活动一:模拟活动大冲关现场,学生分组并计时讨论。

活动二:教师采用启发式方法给出程序,主要讲解①变量没有定义时,把intx,y,sum注释掉,看看有什么错;②关于随机函数编写简单程序,让学生明白如下问题,没有randomize()会怎么样?Random(100)真的随机生成0到99的数吗?

活动三:让学生修改程序,拓展知识点为①把随机函数的值改大一点,数据类型改成浮点型;②根据随机函数的意义,改写一些实现简单功能的程序。

活动四:根据上述提示,要求学生互评。

对于趣味案例教学过程中出现的抽象知识点,可以采用喜闻乐见的通俗比喻提高学习的趣味性,增进理解。现例举其中几个具体知识点,如表1所示。

2.2赛课合一的课程助推剂

早在二十世纪,很多学校就利用竞赛培养学生的竞争意识,很多外国学者认为,竞赛是激发学生努力学习和渴望成功的强大动机,被认为是有助于提高工作效率、克服困难、完成任务的强烈诱因。在竞赛过程中,学生获得成就和声誉的动机表现得更为强烈,学习兴趣和克服困难的毅力增强,使学习积极性得到充分发挥[5]。1994年,教育部与信产部创办全国高校电子设计大赛,旨在选拔优秀学生,锻炼和考察其短时间内软硬件设计制作与解决特定问题的能力。清华大学电子设计大赛是一项普及型赛事,每届有上百支队伍参赛,比赛类似于机器人设计大赛,难度大,观赏性强,对参赛选手的软硬件素质要求更高。竞赛可以使参赛者加足马力、提高效率,激起他们的学习兴趣,大大增加自觉学习意识。

2.2.1实施方案

实施要点:竞赛以趣味性、刺激性、竞争性为原则,重在结果;以激发学习兴趣,培养学生自觉学习意识为终极目标。

实施难点:竞赛内容的选择、过程监控、成果评价。

实施过程:竞赛的组织范围可以从班级内部的竞赛、学校范围的竞赛到全国范围的竞赛,一级一级逐步扩大。随着竞赛范围大小的变化,竞赛内容、难度、参加学生数量、分组情况也随之变化。

2.2.2竞赛评价方案

(1)要求与考核是指挥棒,不同类型的竞赛,制定不同的要求和评价标准。

(2)基础型竞赛在于实验验证,要求实验结果与理论结果之间的误差小,即实验与理论分析相符合。

(3)设计型竞赛旨在考查学生的综合设计与实现能力,根据竞赛结果达到的技术指标评定成绩。重结果,淡化过程,淡化报告。

(4)研究型竞赛提倡竞赛过程中的探索和研究,鼓励学生尽可能多地尝试各种方案,在摸索与研究中得到启发、锻炼、提高。轻结果,重过程,不以成败论英雄。

竞赛应体现鼓励进步和团结互助,要把比学赶帮的良好学风纳入竞赛之中,不仅“先进更先进、后进变先进”应受到鼓励,那些有了进步的后进者也应得到表彰。教学实践证明,竞赛能有效地引发学生进入活跃和兴奋状态,强化学习动机,培养学生积极的心态,充分调动学生的学习积极性。

2.3教改考评手段

考试成绩是决定学生能否真正自觉主动学习的指挥棒,所以如何设计考评成绩至关重要。传统的笔试成绩缺陷明显,笔者设计“课上表现、竞赛成绩、考试成绩”三者合一的考评模式,具体为:上课按照完成案例设计程度计分,占30%;对于不同类型、不同程度的竞赛按照前面设计的竞赛评价标准进行计分,比例占30%;最后考试成绩占40%。在这样的考评激励下,学生每次都能看到自己阶段性的成果,学习热情得到最大程度的鼓舞。

3结语

教学改革的研究和实践是一项长期的、渐进的过程。笔者密切关注新教改,在前人教学经验的基础上,通过两年的课题实施取得了不错的成绩,主要表现在以下方面:建立了一套理论教学和实践教学的方法;完善了趣味案例教学的教学评价方法和手段;积累了比较丰富的问题自查与改进的经验。由于受到诸多客观因素的影响,教改有待进一步研究:教材需要在教学中不断修订,吸取更好的趣味案例;课堂安排很关键,还需要教师不断探索和改进;竞赛实施过程及教学评价手段还需要不断创新。希望在今后的教学实践中能够通过不懈探索、大胆尝试,进一步修改完善,在教学效果上更上一层楼。

参考文献:

[1]列宁.列宁全集[m].北京:人民出版社,1959:228.

[2]赵光武.自觉意识能动作用新探[J].哲学与时代,2010(7):26-28.

[3]陈婷.C语言程序设计实验教学改革探究[J].2010(10):182-184.

[4]周雪峰.高校课程改革与教师角色自觉论略[J].中国大学教学,2012(6):11-13.

计算机程序设计基础篇3

关键词:工程计算能力;计算基础教育;理工类

中图分类号:G642文献标识码:B

1问题的提出

我国大学计算机基础教育经过了三十几年的发展历程,几代教育工作者为此付出了辛勤劳动。他们针对我国理工类大学生的特点和中国国情,在当时的历史条件下提出了一系列培养大学生计算机操作技能的教学方法,形成了具有中国特色的计算机基础教育理念和体系。但是,大学计算机基础教育发展到今天如果仍然停留在以计算机基本操作为主体的教学模式上,那将与社会发展对大学生的要求很不适应。今天我们更应该强调培养大学生尤其是理工类大学生以计算机为工具的工程计算能力,并将这种能力与各自的专业结合起来,真正起到为专业服务的作用。由此我国的大学计算机基础教育应该转变为大学计算基础教育。

八十年代初期以来,我国计算机基础教育成为大学里的公共教育,面向全体大学生开设计算机基础教育公共课,并由专门的教学小组(教研室或计算中心)组织教学,依不同专业确定教学内容,因此理工类大学生计算机基础教育的教学内容基本统一。教育部教学指导委员会和全国高等学校计算机基础教学研究会相继出台一些教学指导性意见,如2004年教育部高等学校非计算机专业计算机基础课程教学指导分委员会出台的《关于进一步加强高校计算机基础教学的几点意见》(简称《白皮书》)以及1997年教育部高教司颁发的《加强非计算机专业计算机基础教学工作的几点意见》(简称155号文件),虽然针对不同学科和专业有不同的教学要求,但是培养目标和内容主要以教导学生如何操作好计算机或者说如何提高大学生计算机操作技能为主体,没有强调大学生工程计算能力的培养。以典型的理工类大学生为例,大学期间的计算机基础教育主要开设“大学计算机基础”和“程序设计”两门课程,在“大学计算机基础”课程中,主要介绍计算机的基本组成、环境以及常用软件平台,在“程序设计”课程中也只是讲解编程的基本方法,其他课程更趋向于计算机专业类学生的课程。笔者认为,开设这些课程对于提高大学生计算机操作技能和计算机应用能力起到了重要作用,但是在计算机基础教育的教学体系中没有涉及工程计算能力培养的内容,没有阐明工程计算能力与计算机基本知识和应用能力之间的关系,实际上没有认识到计算机基础教育的根本问题是要以培养大学生现代工程计算能力为目标。

随着计算机技术的迅速发展和广泛应用,作为我国高层次人才――大学生的培养,尤其是规模最大的理工类大学生的培养,应培养他们具有将计算机应用与自己专业知识密切结合的能力,这种结合实质上就是要增强大学生以计算机为基本工具的工程计算能力,而不是简单地操作计算机或使用某一个软件。回顾我国近三十年来的计算机基础教育,大部分精力花在教大学生如何提高计算机操作技能上,如:windows基本操作、office软件的使用等,没

作者简介:邹北骥(1961-),男,江西南昌人,博士,教授,博士生导师,研究方向为计算机教育、计算机图形学与数字图像处理。

有涉及工程计算能力的培养。造成这种结果的主要原因有以下几个方面:(1)计算机技术虽然发展很快,但历史不长,对于以计算机为工具的工程计算能力的培养没有深刻的认识。(2)存在误区,误以为培养大学生的操作技能就能提高学生应用计算机的能力。(3)师资问题。大部分从事计算机基础教育课程的教师都是学计算机专业出生的,对于计算机与其它专业的融合问题缺乏了解。(4)大部分从事计算机基础教育的教师很少参与实际科研项目的开发,缺乏软件开发经验,不能体会计算机软件开发中的计算问题和工程计算能力之间的关系。

如果说这种现象的出现是由于历史造成的,或者说是历史发展的必经之路,那么从现在开始,我们就应该高度重视大学生工程计算能力的培养,真正提高他们运用计算机的能力,发挥计算机技术在其它各专业领域的作用。

2工程计算能力培养

什么是工程计算能力?本文所述的工程计算能力是以现代计算机为工具的工程计算能力,也就是以计算机为工具的计算方法的掌握和运用能力。多年以来,“计算方法”或“数值分析”课程是理工类大学生一门重要的基础课,它教给学生用数值求解方法解决工程问题,其中涉及到基本的以计算机为工具的计算方法,如:递归求解等。然而计算机技术发展到今天,特别是软件开发技术和方法的发展,使得以计算机为工具的计算方法变得更加丰富和神奇,非计算机专业,尤其是理工类专业的大学生应该尽可能多地掌握这些方法,以便他们能更好地融入到自己的专业领域。笔者认为,理工类大学生工程计算能力培养应包含以下几个方面。

2.1建模能力

建模能力实质上就是数学建模的应用能力。在理工类大学计算机基础教育中,应该大力加强数学建模方法的学习,大力加强数学建模训练。理工类大学生面临不同领域工程问题,应用计算机求解这些问题的基础是数学建模。在过去几十年的计算机基础教育中,我们忽略了这一方面的培养,使得大学生的计算机应用能力受到限制。因此从培养大学生尤其是理工类大学生工程计算能力的角度出发,应普遍开设数学建模课程。

2.2数据组织能力

工程计算能力培养的第二个方面是数据的组织能力。在计算机专业人才的培养中,是通过“数据结构”课程来教学生基本的数据组织方法。笔者认为,对于非计算机专业尤其是理工类专业的大学生,应该为他们开设“数据结构”课程。我们应该认识到,“数据结构”课程中介绍的数据组织方法,如:堆栈、队列这些基本结构和树、链表等这些复杂结构绝不只是计算机专业学生需要学习的,非计算机专业尤其是理工类计算机专业学生同样需要学习,而且对于他们来讲,这门课程更为重要。有一种观点认为:“数据结构”课程有较大难度,一般理工类学生学习起来比较困难。其实不然,历届研究生入学考试成绩表明,理工类大学生大多通过自学学习“数据结构”课程,而且相当一部分学生成绩优异。

数据结构是程序设计的基础,没有掌握好数据的组织方法,不会运用数据结构表达工程问题中的数据,又怎么可能学好程序设计课程?又怎么能编写好程序?几十年来的计算机基础教育强调了程序设计能力的培养,但没有开设“数据结构”课程,实际上像一座空中楼阁,基础很不牢固。

2.3算法设计能力

算法是计算机计算的步骤描述,是实现计算机求解问题的关键。培养理工类大学生的工程计算能力,需要教给他们基本的算法思想和常用的算法。例如:基本的算法包括排序、递归、查找等。设想一个理工类大学毕业生,如果大学期间对于计算机常用算法理解得比较深刻,应用得比较好,对于他在实际工作中利用计算机解决问题就会变得轻而易举。反之,如果对基本算法一无所知,如:不知道什么是递归算法,不知道什么是排序算法,那么对一些基本的工程问题他都会一筹莫展,甚至无法求解。因此基本算法的学习对于理工类大学生而言是非常重要的。

2.4程序设计能力

工程计算能力培养的第四个方面是程序设计能力,它是工程计算能力的实际载体,用计算机解决实际工程问题最终要落实到计算机程序的开发,也就是人们常说的编程。在学习和掌握数学建模、数据结构和算法设计的基础上,以一门具体的程序设计语言为模板,学习程序设计的基本方法,学习程序的基本结构和运行规律,掌握顺序结构、分支结构和循环结构等对于理工类大学生工程计算能力的提高是极其重要的。

3计算机基础教育与计算基础教育

面向非计算机专业大学生的计算机教育一直沿用“计算机基础教育”这个名称。笔者认为:“计算机基础教育”是围绕计算机本身的计算机科学与技术方面的专业基础教育,面向非计算机专业学生的计算机教育应该用“计算基础教育”这个名称,其本质是要培养非计算机专业大学生以现代计算机为基本工具的工程计算能力,而不是关于计算机本身的科学与技术。长期以来,我国从事非计算机专业计算机教学的教师忽视了这一细节,有意或无意地将非计算机专业大学生的计算机教育引向了计算机科学与技术专业教育的道路,越来越多的课程设置与计算机科学与技术专业的核心课程一致了,如:“计算机网络技术”、“微机接口原理”、“多媒体技术”等。如此下去不仅大大增加了理工类大学生课程学习的负担,而且没有提高理工类大学生工程计算能力。因此我们需要从观念和教学理念上转变,要清楚地认识理工类大学生工程计算能力的培养并不需要为计算机专业类学生开设的那些课程内容,只是需要围绕“数学建模”、“数据结构”、“算法设计”和“程序设计”四个方面的基础课程。

4实施方案建议

综上所述,面向理工类大学生以计算机为工具的工程计算能力培养需要从数学建模、数据结构、算法基础和程序设计四个方面进行,所有的教学要求、内容和目标都应该围绕这四个问题展开。笔者建议,针对理工类大学生的计算基础教育课程体系可以有两个方案,一个方案是紧缩方案,开设的课程概括上述四方面内容,设置两门课程,分别为“大学计算基础”和“大学计算机程序设计”;另一个方案是扩展方案,开设四门课程,分别对应上述四个方面的内容,即“大学数学建模方法”、“数据结构基础”、“算法基础”和“程序设计基础”。两种方案的内容、要求和课时见表1和表2。

表1方案1(压缩型)

课程名称主要内容要求与目标学时建议

大学计算基础1.计算机的基本知识掌握计算机基础知识80

2.数学建模方法介绍掌握基本的数学建模方法

3.数据结构基础掌握常用的数据结构

4.算法基础掌握常用的算法

大学计算机程序设计1.程序的基本概念

2.C语言程序设计掌握计算机程序的原理和运行方式

掌握C语言编程方法48

表2方案2(扩展型)

课程名称主要内容要求与目标学时建议

大学数学建模方法1.计算机的基本知识掌握计算机基础知识80

2.数学建模方法介绍掌握基本的数学建模方法

数据结构基础1.数据的组织方法掌握数据的组织方式48

2.基本的数据结构及其应用掌握队列、堆栈、链表等基本数据结构的应该

算法基础1.算法的基本概念掌握算法的思想、流程、表达方式及其与程序之间的关系48

2.基本算法及其应用掌握常用的算法

程序设计基础1.程序的基本概念

2.C语言程序设计掌握计算机程序的原理和运行方式

掌握C语言编程方法48

5结束语

教育理念和观念的转变需要全体教育工作者形成共识,提出的方案需要通过论证和实践检验,建议相关部门

组织一部分长期从事非计算机专业计算机基础教育的教师、学者进行研讨,针对理工类大学生计算机基础教育和计算基础教育的内涵进行讨论,明确理工类大学生计算机基础教育因面向工程计算能力培养,文中提出的实施方案可在高水平大学试点。

参考文献:

计算机程序设计基础篇4

一、如何应对全国计算机二级等级考试的公共基础知识大纲

计算机二级考试大纲中关于基础知识的有数据结构与算法、程序设计基础、软件工程基础、数据库设计基础四部分,下面笔者分别介绍一下这些部分的学习重点和方法:

1.数据结构与算法。

本章内容在计算机专业基础课中相对较复杂,考生对本章的内容必须理解,死记硬背是无效的。在二级等级考试中本章考核的重点和难点为二叉树的相关知识,其考核的形式主要为二叉树的遍历问题(如给图求遍历序列,给前序、中序遍历求后序遍历等)、二叉树的结点问题(如给出一些条件然后求叶子结点个数)、排序和查找。排序主要以计算时间复杂度的形式考核,查找主要以计算最佳、最坏比较次数的方式考核,其余的知识点主要以概念的形式考核,考生需要仔细看书并理解。

2.程序设计基础与软件工程基础。

这两章以概述的形式简介了规范化开发软件的方法。与数据结构不同,这两章内容主要是记忆性的知识点。程序设计基础这章在原大纲的基础上添加了面向对象程序设计的内容,考生对这部分知识了解即可;软件工程基础这章主要考核结构化分析、结构化设计方法(即Sa及SD,约占50%)、软件测试(约占20%),考生需熟记相关的概念及规则。

3.数据库设计基础。

数据库是当前软件处理的信息核心,目前大部分软件是基于数据库的,因此,考生学习数据库的知识对程序开发是大有裨益的。本章主要的考点是关系模型、关系代数及数据库系统的基本概念,考生对其余的知识点了解即可。对于数据库的设计和管理,考生结合软件工程来看,会发现这两者有很多相似之处。本章内容除了关系代数会考一些简单的计算问题外,其余的都以概念题的形式出现,考生需要有针对性地进行复习。

二、二级公共基础知识的特点

大纲对全国计算机二级等级考试作了重大的调整:在取消了过时的考试科目和调整了一些科目的考试之外,新增加了目前比较流行的计算机语言C++、Java和access数据库。公共基础知识的考核方式为笔试,与C语言程序设计、C++语言程序设计、Java语言程序设计、VisualBasic语言程序设计、VisualFoxpro数据库程序设计或access数据库程序设计的笔试部分合为一张试卷,共有10道选择题和5道填空题,占全国计算机二级等级考试笔试总分的30%。公共基础知识部分的试题具有如下特点:

1.涉及面广,但难度小。

全国计算机二级等级考试中有关公共基础知识部分涉及的内容,从整体上分析,考核内容的难度不大,考点也相对比较集中。

2.考核重点为基本概念、基本方法和基本运算。

考试中涉及的题目都是基本概念、基本方法和基本运算,考核以概念和认识性内容为主,理解性、应用性内容极少。

3.考核重点是数据结构和算法。

数据结构和算法、程序设计基础、软件工程基础、数据库设计基础部分各占公共基础知识部分题目的百分比分别为:50%、12.5%、18.75%、18.75%,可见在全国计算机二级考试中,数据结构和算法是重点。

三、学习方法

1.考生的复习必须遵守“80/20的原则”。

全国计算机二级等级考试的公共基础知识部分覆盖面广,它至少涵盖了计算机应用专业的四门核心课程:数据结构与算法、程序设计基础、软件工程基础、数据库设计基础。事实上,这些课程本身的涉及面就很广,难度系数较大。所以,考生应把80%的时间用在20%的重点知识点上,争取用20%的重点知识点来答对80%的考题,这是考生复习全国计算机二级等级考试的公共知识部分的总体思路。

2.复习的关键是考生必须准确判断和掌握常见的考点。

考生必须准确判断和掌握常见考点,例如:算法部分主要考查算法的概念及算法的复杂度,数据结构部分主要考查最基本的概念、最典型的数据结构和最常见的操作,程序设计部分主要考查程序设计风格的基本要求、结构化程序设计的最基本知识和面向对象程序设计的最常见概念,软件工程基础部分主要考查软件工程的基本概念和软件生命周期的各个阶段的基础知识,数据库设计基础部分主要考查数据库基本概念、数据模型、关系代数基础知识、数据库设计方法和步骤。考生对常见考点的准确把握能避免盲目地复习,从而轻松面对考试。

3.基础知识的掌握方法。

很多考生在复习公共基础部分时都会发现内容零散,知识点之间的跳跃性大,似乎没有连续性。所以掌握起来很困难,似懂非懂,对知识点处于模糊认知状态。因此,考生必须在准确把握知识点的基础上,学会把“知识点”连成“知识链”,并把“知识链”织成“知识网”。

4.做题技巧。

考生切勿采取题海战术。对全国计算机二级等级考试公共知识部分,学生没有必要做大量的题目,更不能为了应付考试记一大堆错误答案。

5.非“灵活”地掌握知识点。

考生在掌握知识点时最好经历一个“先死后活、熟能生巧”的过程。全国计算机二级等级考试要求的知识点都是最基本的、最简单的,真正需要“灵活”掌握的考点极少。很多考生在考试过程中发现,该部分的题目“会做就是不懂”。所以笔者建议考生在复习过程中不要急于“灵活”,其实考生只要掌握基本的知识点,自然就“灵活”了。

6.答题技巧。

考生在遇到难题时要考虑成本和效果的关系,公共知识部分仅占30分,题目相对简单。因此,考生在答题过程中,对这部分内容要争取速度快、准确度高。在全国计算机二级等级考试中常常出现这样的情景:有些考生为了一道小题花费很长时间仍没有找到任何线索。一般来说,公共知识部分的考题难度不大,没有一道题目需要考虑很长时间。所以,考生如果做一道公共基础题在两分钟内没有任何思路时,就应该跳过此题,把时间留给后面的题目。

参考文献:

[1]全国计算机等级考试二级教程――公共基础.2008.

计算机程序设计基础篇5

关键词:计算机教育;程序设计;计算思维;创新能力

c++程序设计是计算机、软件工程等专业的一门重要的专业基础课,在整个课程体系中起到承上启下的连接作用,是对c语言程序设计的延伸与拓展,同时又为后期程序设计类课程的学习奠定了坚实的理论基础和技能储备。目前的c++程序设计课程教学模式,由原来注重基础语法及理论的教学转向了理论与编程能力并重的教学模式,对学生编程能力的提高具有很大的促进作用。此教学模式在语法上强调短期的强化记忆,在程序设计上强调语法的运用和理解,基础语法知识是出发点和最终的归宿。教学的初衷是好的,但最后的结果常常是学生思维的固化,仅能熟练使用c++语言的语法规则去进行简单的编码而已。作为一门承上启下的程序设计专业基础课,其教学目的不能仅仅局限于语言本身的语法语义和使用规则的传授,而应该首先教授一种面向对象的思想和基于该思想分析问题、解决问题的思维方法,其次才是语言的语法和语义,应为以后的程序设计及其相关课程提供学习的思想和方法,提高学生从计算机的视角分析问题、解决问题的能力。

计算思维(computationalthinking)是目前计算机教育界最为广泛关注和认可的一种教学理念,它不是一种具体的解决问题的方法或模式,也不是机械的计算机式思考,而是强调计算思维的一种延伸应用,是一种具有广泛普适性的思维方式。它是一种发散式的教学模式,其所提倡的抽象与分解、关注与分离、启发推理、并行处理等理念对传统的关注具体技能和概念的点式教学模式具有好的改善作用。c++程序设计的语法规则多、抽象程度高、应用灵活,同时对后续的程序设计类课程的学习具有很好的启发和引导作用,其教学内容和目的与计算思维具有很好的一致性。将计算思维引入c++程序设计课程教学,对原有的点式教学进行发散扩充,可以激发学生的学习积极性,提高教学效果,并能进一步提升学生的计算思维能力。

1计算思维

周以真教授于2006年在CommunicationsoftheaCm期刊上首次提出了计算思维,并给出了基本概念:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。为便于理解,周教授又将计算思维具体为关注分离、启发推理、约简、嵌入、转化、仿真、保护、冗余、容错、纠错和恢复、启发式、折衷等基本概念和思维方法。它是在吸取了一般的数学思维方法、巨系统的设计与评估的一般工程思想、计算机思维方法、复杂性、智能、心理、人类行为理解等思维方式的基础上而形成的一种具有广泛普适性的思维方法。计算机科学的基础概念是计算思维的基石,直接影响构建于其上的问题的理解、分析和解决方法,同时它也是理解基于计算思维的人类行为基础。作为一种思维活动,它不是僵化的一种具体问题的解决方法,而是具有很好普适性的思考方式,提供的是一种方法论。所以,诸多学者强调计算思维应该与3R一样,作为所有人(而不仅是计算机科学家)的一种思维方式。

计算思维的本质是抽象(abstraction)和自动化(automation)。计算思维中的抽象体现在从现实世界到计算机世界的一种映射,现实世界中对象、度量、求解问题的方法映射到计算机世界中的对象表达,如标示符、变量、数组、算法、类等。与数学思维相比,计算思维是基于计算机概念的一种抽象,在抽象的同时还要考虑其在计算机世界表达的可行性。计算思维中的自动化体现在计算机世界中动作执行的自主性,虽然这种自主是一种机械性的重复,是在计算机程序控制下的自主,但也是计算思维在计算机世界中的具体表现形式。计算思维的三大特征如下:

(1)计算思维是一种抽象的思维理念,不是具体的技能或程序。计算思维是一种思维模式,是能进行多抽象层次的思维方法,不是具体的、人造的计算机软件或硬件,也不能将其等同于具体的编程或机械的重复。

(2)计算思维的主体是人,不是计算机。计算思维是人类求解问题的一种途径,其实现是由计算机来完成,而不是把人的思维固化到计算机思维的机械模式中。

(3)计算思维与工程思维具有互补性。计算思维的形式化表达构筑于数学思维基础之上,同时在解决现实问题时,又必须借鉴工程思维。在运用计算机去解决问题时,必须融合计算思维与工程思维进行综合思考。

2基于计算思绯的教学内容梳理

c++是介于c语言与面向对象程序设计语言之间的一种兼有面向过程和面向对象特性的程序设计语言,其主要内容可以分成面向过程的程序设计和面向对象的程序设计两个部分。不同高校和专业的要求存在一定的差异,因此在实施计算思维教学过程中,教师应根据学生的专业和基础知识的掌握情况对教学内容进行适当的裁剪。

面向过程的程序设计部分主要介绍c++程序语言的基本语法规则,涉及变量类型、基本运算符、程序结构控制、作用域等,教学强调基于计算机基础概念对现实世界的抽象与表达,以强化记忆为主;面向对象程序设计部分主要介绍面向对象程序设计的内容,主要包括类、继承、多态等,强调面向对象程序语法,更强调从现实世界业务逻辑到计算机世界的抽象表达。此过程不仅仅是程序语言语法规则的教学,更重要的是抽象思维能力的培养。从课程教学内容的分析可见,c++程序设计课程的教学表面上是语法规则的学习与应用,深层次则是计算思维的训练和基于该思维的分析问题、解决问题等创新能力的培养。

3计算思维的教学应用

计算思维的外在表现是多维的,c++程序设计的教学内容所涉及的计算思维表达也是多元的,因此在对教学内容梳理的基础上对具有代表意义的计算思维教学模式构建和教学实施过程进行详细介绍,可以对其他内容的计算思维教学起到示范和借鉴的作用。

3.1面向过程程序设计的计算思维教学

面向过程程序设计的教学内容很大一部分是c++程序设计语言的语法和程序结构,这部分内容涉及面广、难度较大。因此记忆是基础,在记忆的基础上对学生开展计算思维的引导与启发,使其在理解语法规则的基础上,知其所以然,从而培养学生的思维能力和自、学能力。

3.1.1数据表达、存储与处理的计算思维教学

数据的类型表达、存储与处理是任何一种程序设计语苦最为重要的基础组成部分,理解起来较为困难。我们可以通过构建现实世界与计算机世界双过程的思维模式来加深学生对数据及相关概念的理解,增强记忆效果。图1表明了数据表达、存储与处理的计算思维教学。

现实世界中的数据处理、表达与计算机世界的信息处理、表达是平行的。在教学过程中,首先,以计算机世界的信息表达与处理为基础,在记忆的基础上强调理解;其次,在理解计算世界的数据表达与处理的基础上,从计算机世界出发,来对现实世界对象进行分析,运用计算思维中的抽象、关注点分离、自动化的思维方法来分析现实世界信息的计算机表达与处理。

以现实世界中一个学生的描述为例,首先,对其进行抽象,将一个具体的对象抽象成一个虚拟对象,在此过程中运用关注点分离,分离出与所研究对象相关的特征,其他无关特征可以丢弃;从计算机概念的角度对特征进行表达,学号为字符类型,年龄为短整数型,入学时间为日期型,性别为字符型等,从而将信息保存到计算机中,并通过程序对信息进行自动化处理。

3.1.2程序控制结构的计算思维教学

cH程序设计语言中的程序控制结构主要有顺序结构、选择结构、循环结构、转向语句4种类型,属于易学但灵活运用较难的课程内容。在设计教学模式时,要在掌握基本语法规则和原理的基础上,加强启发式教学,引导学生在不同层次上进行抽象,从不同的视角来思考问题,在保证目标的前提下,启发学生通过不同的实现方式来解决问题。

例如,对于循环控制可以启发学生通过for(){},while(){},do{}while()等结构来实现,并在实现预设目标的前提下,引导学生寻找各种结构的差异性和优缺点。

3.2面向对象的计算思维教学

对于尚未接触过面向对象思想的学生来说,面向对象程序设计理解起来较为困难。此部分教学目的不仅是教会学生类、多态、重载是如何定义的,更重要的是教会学生面向对象的思维方式,面对一个实际问题时如何进行抽象、分离,进而将复杂的问题转化成计算机可以处理的问题。此部分计算思维训练,要与传统的教学方法相结合,在开始的时候以传统教学方法为主,在有一定基础后以计算思维方法为主。

3.2.1类与对象的计算思维教学

类和对象是面向对象程序设计中最为重要的两个概念,也是后续学习重要的基础,对其理解的透彻程度将直接影响后期的学习效果。同时它们也是进行计算思维训练较好的案例。图2展示了一个类与对象的计算思维教学案例。

类与对象定义的理解是进行类与对象的计算思维教学的基础和起点,可以采用传统的教学方法进行教学。在学生掌握了类与对象的基本概念和构造方法后,就可以启用计算思维教学。对现实世界中的事物对象系统进行边界划分,分析每个事物的特征和相应的动作,构建其描述属性指标和操作方法,如学生由学号、姓名、性别、班级等属性指标描述,有查看成绩、班级等动作:教师由工号、姓名、代课班级等属性指标描述,有批准假条、设置课程等动作。依据类的概念对学生1、学生2、学生3、教师1、教师2分别进行抽象,生成学生类和教师类,并基于前面的分析确定类的数据成员和操作方法,用c++程序语言进行描述,将其转化成计算机解决问题的描述元素,通过类的实例化,生成计算机世界的对象:学生对象1、学生对象2、学生对象3、教师对象1、教师对象2,从而通过面向对象的方法对问题进行描述和解答。为了加深计算思维思考方式的理解,还可以结合逆向思维进行教学,提升学生运用计算思维解决问题的能力。

3.2.2继承与派生的计算思维教学

继承与派生是面向对象程序设计的核心思想之一。在类与对象教学完成后,此项内容的教学要相对容易一些。运用计算思维的问题分解、分层抽象、恰当建模的方法对派生与继承的思想、分析问题的方法等进行讲授。代码重用是面向对象程序设计的一个重要目的之一,通过继承与派生,各个类之间既独立又相互联系,独立体现在每个抽象层次上的类可以单独创建对象;联系体现在父类和子类之间存在派生与继承关系,父类的数据和方法成员可以被多个子类共享,实现了代码的重用。在实际的教学过程中,可以通过实例分析来实施教学。图3展示了一个派生与继承的计算思维过程案例。

图3所示是一个小型诊所类构建的计算思维过程。诊所中有不同专业的医生和不同的患者,每个医生和患者都是一个独一无二的个体,在具体对象层面上他们是不同的,将他们向e泛化一层,不同专业的医生均属于医生的一个具体实例,不同的患者也仅仅是患者的一个具体实例,这样就能抽象出Doctor类和patient类;而医生和患者都是人,具有某些相同的特性,如姓名、年龄、性别、身份证号等。因此可以在概念上对二者进一步向上泛化,从而抽象出person类,作为Doctor和patient类的父类,进而构建小型诊所的类之间的继承派生关系。这个计算思维教学过程是基于c++程序设计中类的概念。通过这种思维的训练,可以提高学生在面对复杂系统时,基于面向对象思想的分析、抽象、构建类及其关系的能力。

4实施计算思维教学应注意的问题

4.1更新教学理念、转变教学思维

教师要充分认识到计算思维在计算机教育中的重要地位以及它对提高学生基于计算机视角思考问题、分析问题、解决问题能力的重要性。在日常的教学过程中,尽可能地将学生的计算思维培养穿插于各种教学方法中,尽可能地提高学生的计算思维能力和水平。

4.2分清计算思维培养的主从关系

计算思维是一种思维方式,不是某一具体的技能或事物,因此在教学过程中应分清计算思维培养的主从关系。学生是计算思维培养的思维主体,具有主观能动性;教师是计算思维的引导者,具有设计具体思维情境、引导启发的作用。在教学过程中,应该把握好引导的度,既要做到不代替学生思维进行灌输式教学,又要防止学生简单机械地重复已有思维内容,要在引导的同时没置好思维情境和问题,启发学生积极主动地运用计算思维去分析问题和解决问题。

4.3尊重思维方式的多样性

思维方式具有多样性,在计算思维培养的教学过程中,教师对学生思维方式的多样化要持有一定的宽容态度,并适时地加以引导,启发学生对问题进行多视角的分析,提升思维的灵活性和创造性。

4.4遵循可接受教学原则

计算思维培养是一项长期的过程,目的是在传授知识的同时,训练学生基于计算机概念分析问题和解决问题的能力。因此,在具体的教学过程中,要做到因人、因材、因情境施教,不应为了计算思维而计算思维,要与其他的教学方法相结合,依据学生的思维认知规律,遵循可接受原则,使学生的计算思维能力在学习知识的同时自然地形成。

5结语

计算机程序设计基础篇6

关键词:程序设计基础;数据结构;计算思维;教学衔接

0、引言

程序设计基础与数据结构是计算机类专业的两门专业基础课,在计算机类专业教学中具有举足轻重的作用,都旨在培养学生的编程能力和计算思维能力,并为后续课程打下坚实的专业基础,但在这两门课程的教学过程中,存在一系列问题,严重影响课程的教学效果。笔者分析和研究产生这些实际问题的原因,对这两门课程的知识融合、内容衔接以及教学实践等进行探讨,提出切实可行的解决方案,更好地实现两门课程的教学目标。

1、课程教学内容和教学目标

程序设计基础课程是学生接触的第一门专业基础课,也是进行计算机编程的入门课程。课程的教学目标是使学生掌握程序设计的基本方法,培养其拥有良好的程序设计风格、较强的软件开发能力以及一定的计算思维能力,为后续课程打下良好的基础。

数据结构是继程序设计基础课程之后的一门综合专业基础课,是计算机类专业的核心课程之一,具有举足轻重的作用。它是程序设计基础课程所讲知识的自然延伸和具体应用。对数据结构的理解、掌握和应用拓展,将对学生解决具体实际问题时的数据分析、数据组织、数据处理和编程能力有着深远的影响。课程的教学目标是培养学生缜密的逻辑思维和数据抽象能力以及学生在软件设计领域中科学的计算思维能力,帮助学生将数据结构和算法与具体的编程实现相结合并灵活地应用到实践和工程实际中。

2、两门课程间的关系

从程序与数据结构本身的关系来说,一个好的程序离不开合适的数据结构,而数据结构中算法的实现离不开具体的程序设计。在计算机类专业的课程体系中,数据结构和程序设计基础课程虽然独立开设,但是它们之间的联系是紧密的。在课程设置上,程序设计基础是数据结构的前导课程,两门课程一脉相承,不可分割。

学生对程序设计基础课程的掌握程度、具备的计算思维和编程能力,直接关系到以程序设计语言实现算法的数据结构课程的教学效果。数据结构课程通过创造性思维的训练,重点突出数据抽象与程序抽象能力的培养,从而进一步提升学生的计算思维能力和编程能力,但两门课程在实际教学中存在一些问题,主要原因是课程设置、教学内容、教学方法和教学实践方式等多方面存在缺陷。经分析,对程序设计基础和数据结构课程进行知识整合和内容衔接,采用适当的教学方式,改进教学实践是探讨和研究的主要内容。

3、两门课程在实际教学中存在的衔接问题

3.1两门课程教学内容的脱离

目前,在实际教学中,程序设计基础和数据结构课程虽然关系紧密,但是一直被设定为两门完全独立的课程,而且教师在制订教学大纲和教学目标时容易忽视两门课程问的联系,在教学过程中出现一些盲区,要么两门课程在教学内容上出现不同程度的交叉,要么出现知识衔接的断层,令学生对两门课程的内在联系没有整体概念和认识,从而导致不能深入系统地学习相关知识。尤其是先行课程序设计基础的教学内容和课程案例完全脱离了数据结构课程,使数据结构中最频繁使用的知识和内容在程序设计基础课程中甚少提及,不能为数据结构课程的讲解打下扎实的程序设计基础。

3.2程序设计编程语言与数据结构实现语言不一致

程序设计基础课程所教授的编程语言与数据结构教材或实验所使用的实现语言不一致,如将C++语言作为程序设计基础的教授语言,而在数据结构的实现上选择c语言或Java语言,以至于数据结构的理论教学与具体上机编程实现脱节,严重影响了上机实验和课程设计环节。

3.3程序设计方法与数据结构实现方法不一致

程序设计基础课程中或注重面向过程的程序设计方法,或注重面向对象的程序设计方法,但在数据结构课程中却很难利用前导课程中学到的程序设计方法实现相关的数据结构和算法,从而影响了学生对数据结构课程知识的应用与实现。另一方面,学生在学习过程中没有充分理解数据结构课程的作用和实际意义,以至于在实际项目和问题中不知使用什么方法(面向过程或面向对象)分析解决问题,不知如何运用数据结构知识解决实际问题。

3.4前导课程对后续课程实践环节的影响

数据结构实验环节相对课堂理论环节较薄弱。此问题的存在多半是因为数据结构具体实现的关键技术在程序设计基础课中未被讲解或强调,在进行数据结构算法从理论到伪代码、再由伪代码到真代码转换的过程中难以真正编程实现,使学生对数据结构的理解和掌握仅停留在抽象层、概念层、理论层,难以上升到实现层,从而影响学生的学习兴趣和积极性。同时,课程中的实践项目过于单一且相对独立,使实践环节与实际项目的联系过于松散,学生运用所学知识解决实际问题的能力和实际工程能力很难得以锻炼。

3.5缺少计算思维能力的培养,缺乏理论知识与实际应用的联系

提高学生计算思维能力是程序设计基础和数据结构课程共同的目标。计算思维是抽象的多个层次上的思维,而抽象是表达实际的方法。然而,现行教学方法过多关注程序设计和数据结构知识点的讲解,缺乏对学生思维能力的培养。

如果缺乏理论联系实际,那么将影响学生计算思维的培养。数据结构中的知识又太抽象,如果缺乏相应的实际案例对抽象知识加以应用,那么就会导致学生不知道怎样将所学的知识应用到实际中,缺乏具体问题具体分析和解决的能力。

3.6教师本身知识结构欠缺,上机实践指导教师数量不足

授课教师知识结构的缺乏将导致一些现实问题:如果程序设计基础的教师不懂数据结构,那么其自然不会将相关知识引入课堂,同时也缺乏用所教授的语言具体实现数据结构中结构和算法的能力;如果数据结构的教师缺乏相关编程语言知识,那么就会给上机辅导带来困难。同时,两门课程具有很强的实践性,若上机实践辅导教师不足,将不利于学生编程能力的提升以及相关软件大赛学生的培养和辅导。

针对以上实际教学中存在的问题,可知为提高程序设计基础与数据结构课程的教学效果,根据计算机类专业这两门课程教学内容和目标,对两门课程进行知识整合和内容衔接的必要性,对课程衔接的方法和思路等进行探讨势在必行。同时,课程教学不仅要关注知识的传授,还要培养学生主动获取知识并综合已有知识创造新知识的能力。

4、程序设计基础和数据结构课程衔接的新方法和思路

4.1做好两门课程教学内容的融合和衔接

教师需紧密结合计算机类专业的培养目标,精心设计程序设计基础和数据结构课程的教学内容,既要满足课程的专业基础性,又要满足后续课程学习的需要,严密制订教学大纲,做好程序设计基础与数据结构教学内容的衔接以及相关教材的选定。

在程序设计基础课程教学中,教师需要关注学生计算思维能力的培养,将重点放在讲解思路上,教学生如何对问题进行抽象,还要介绍一些简单的基础算法和数据结构。程序设计与数据结构的联系过程必须做到循序渐进,若引入的数据结构相关知识过难,会打击学生的学习积极性。例如,教师讲数组时可引入几种数据结构中简单的排序算法冒泡排序、选择排序等;讲完指针和结构体后可引入最基本的数据结构――链表;讲完嵌套函数调用后可引入“递归”,它是数据结构中解决问题的常见思想和算法,可以通过简单的递归函数帮助学生理解递归思想和递归调用过程,这些是理解数据结构中复杂递归函数的基础。在程序设计基础教学中,只讲递归函数的简单应用,而在数据结构教学中,需要介绍递归函数的复杂应用:栈、树、八皇后问题、n个数的全排列等。围绕“递归”这一重要知识点,从易到难并结合课程本身特点进行理论分析,将有益于整合课程教学内容,引导学生循序渐进地学习和思考。

针对在程序设计基础课程中不重要但在数据结构及算法中被广泛使用的知识点,教师需要在讲解程序设计课程时将其点出并告诉学生此知识在后续数据结构课中的重要性,引起学生对该知识点的兴趣和重视,如指针的灵活使用、结构体类型的复杂应用、类型重命名、类的拷贝构造函数(深拷贝)、函数模板、类模版等。

同时,教师要对程序设计基础课程内容进行适当补充和扩充,如增加c++函数模板、类模板的相关知识,为将泛型程序设计、c++的StL引人数据结构课程奠定知识基础,缩小教学知识与实际运用的距离,提高学生的动手编程能力和知识运用能力。

4.2保证程序设计编程语言与数据结构实现语言的一致

程序设计基础课程所教授的编程语言要与数据结构教材或实验所使用的编程语言一致,这样不仅能大大提高学生的编程能力,还有利于数据结构课程的上机实现。

4.3将面向对象思想引入程序设计与数据结构中

随着程序设计方法从传统的结构化程序设计演化到面向对象程序设计,数据结构在面向对象程序设计中也将成为面向对象的数据结构,且将随着程序设计理论和技术的发展而不断变化发展。在程序设计基础课程中讲授面向对象的编程语言如c++语言,既可以实现面向过程的数据结构,又能实现面向对象的数据结构。数据结构课程采用面向对象的观点讲授并以C++语言作为算法的描述工具,从而强化数据结构基本知识和面向对象高级程序设计基本能力的双基训练以及实际动手能力培养。在设计数据结构实践项目时,将面向对象的程序设计思想、面向对象的程序设计语言和数据结构课程教学内容恰当地融合,有效整合两门课程中的重叠部分,突出各自的侧重点,符合当前软件设计思想和软件开发趋势。

4.4加强课程中计算思维能力的培养

在程序设计和数据结构的教学方法上,将面向语法为中心的教学逐渐转变为面向问题求解的教学,从问题出发采用适当的数据结构,将其抽象成解决问题的算法描述,用程序设计语言实现问题求解,使课程从过去的仅讲授孤立的知识点,转变为讲授计算思维和问题求解的过程,从而达到突出思维方法训练的目的。在程序设计基础和数据结构授课时尽量将理论联系实际,将知识点解释和应用为身边容易理解的真实案例。例如,讲“图”时,可以把现在流行的复杂网络、社交网络引入其中;讲解“队列”时,可将春节买票引入其中,让学生从身边的例子理解理论知识的具体应用。对有些案例可以提倡“一题多解”,不局限于一种数据结构、解题思路和实现方法,通过一题多问、一题多解带动学生探索、比较、寻求更好的解决途径,达到学生分析解决问题能力的提高和计算思维能力的培养。

4.5提升教师能力,配备充足的上机辅导教师

学校要加强程序设计基础与数据结构课程相关授课教师整体能力的提升。教师不仅要掌握自己所教授课程的知识,还要对该课程的前续及后续课程内容有所了解,便于维护教学的整体秩序和融合学生的知识体系。同时,教师要积极参与各种软件大赛和企业培训,将教授的理论知识和实际项目相结合,达到应用知识解决复杂问题的目的。此外,两门课程的上机实践环节要配备足量的辅导教师,不让学生输在编程入门的起跑线上。

4.6依托程序设计竞赛,提高学生的编程能力

依托全国软件大赛、aCm大赛等程序设计竞赛,将竞赛题目引入程序设计基础和数据结构课堂中。此类题目强调考查学生对各种算法的应用能力,综合性较强,非常适合辅助学生学习和体会数据结构的妙用,提升学生分析和解决实际问题的能力,引导学生将所学知识准确而灵活地运用到实际生活中,大大提高学生的实践动手和程序设计能力,促进其知识的融会贯通。另外,通过竞赛等多种活动可以为学生提供展现程序设计能力的舞台,激发学生学习的主动性,培养其计算思维能力。

例如,在教授程序设计基础时,讲完逻辑表达式和多重循环结构后,可以将大赛中的逻辑推理题目引入教学中并引出常见的解题方法和思路一枚举法,从而加深对枚举法的认识。通过采用数据结构中的双向链表和线性数组两种方式实现大赛中常见的约瑟夫环问题。

4.7引入oJ平台。加强课程实践环节

引人在线判题(onlineJudge,oJ)系统,提高学生的实践能力。能力需要以丰富的知识作为支撑,而实践是能力赖以生长的土壤。在oJ系统中,学生可以在线提交程序源代码,系统对源代码进行编译和执行并通过预先设计的测试数据检验程序源代码的正确性。引入0J系统不仅可以辅助教师批改作业,减轻教师工作压力,还可以促使学生加强平时上机编程练习,通过编程排名方式提高学生的学习兴趣。oJ系统中拥有大量题库,可以让学生进行上机实践,培养自身的计算思维能力,提高编程能力。0J系统不仅可以作为程序设计基础课程的实践平台,还可作为数据结构课程的实践平台。

计算机程序设计基础篇7

一、主要结构介绍

(一)知识结构

1、通用知识。通用知识是学习和掌握专业基础理论、专业知识的基础和工具,并对今后从事的计算机应用工作起辅助和支持作用。通用知识包括扎实的文化、社会科学和法律知识,以及计算机数学基础、计算机应用基础、C语言程序设计、计算机网络基础、操作系统原理等专业必备的基础理论知识。

2、专业知识。专业知识是从事计算机应用技术工作的根基。专业知识包括VisualFoxpro程序设计、VisualBasic.net程序设计、JaVa程序设计、图形图像处理、FLaSH动画制作、网页制作等。

(二)能力结构

1、基础能力:计算机相关高等数学的应用能力;基本程序设计能力;计算机系统管理和维护能力;外语应用能力;汽车驾驶能力。

2、专业能力:使用高级语言进行程序的设计、调试和维护能力;熟练使用办公自动化系列软件的能力;运用关系型数据库VisualFoxpro设计和应用管理信息系统的能力;利用VisualBasic语言编制一般视窗应用软件的能力;计算机多媒体素材的处理能力;综合性网页设计与制作能力。

3、综合能力:社会适应能力;学习能力;竞争能力;组织与管理能力;创新与创业能力。

(三)素质结构

1、思想道德素质。具有科学的世界观、人生观和道德观,有明确的是非观念;具有爱国主义、集体主义精神,有良好的敬业、创新意识。

2、文化素质。具有高等数学、程序设计、数据处理等理工科知识,有一定的科学素养;具有必要的哲学、法律、职业道德等人文社科知识,有一定的文化素养。

3、业务素质。掌握计算机的基本知识,能够熟练操作各种常用应用软件;具有常用应用软件的安装、调试、使用和管理、维护能力;具有一般应用程序和数据库系统的编写和使用能力;具有以业务知识为基础,专业操作能力、创新能力为标志的较高的业务素质。

4、身心素质。具有强壮的体魄、旺盛的精力,掌握基本的擒拿格斗方法。养成科学的强身健体的习惯,具有良好的心理素质。

二、主要课程介绍

马克思主义哲学原理、高等数学、基础英语、C语言、汇编语言、数据结构、操作系统基础、离散数学基础、数据库原理及应用、微机原理与接口技术、邓小平理论理论、数字电路、线性代数、计算机导论、计算机组织与结构、马克思主义政治经济学基本原理概论、中国近代史纲要、英语二、物理(工)、离散数学、工程经济、操作系统、软件工程、数据结构、数据库原理、高等数学(工本)、计算机系统结构、计算机网络与通信、面向对象程序设计、概论论与数理统计(二)、课程设计、毕业设计。

三、应获得的职业资格证书

计算机硬件工程师、计算机二级三级、计算机国家二级三级、LinUX管理、平面设计师、网站设计师等。

计算机程序设计基础篇8

关键词:nCRe程序设计数据结构软件工程数据库设计

引言

全国计算机等级考试(nationalComputerRankexamination,简称nCRe),1994年由教育部考试中心开始主办,至今已有20多年,是最早面向全社会的部级计算机应用能力考试机制,是经国家教育部批准,面向全国的非学历教育的证书考试,专门用于考查应试人员的计算机应用理论知识水平及实际操作能力。以应用能力为主,并进行等级划分,分类别、级别进行考核,可提供最具权威性的资质证明。由于它具有客观、公平、公正的考核标准,因此现已成为全国最具权威性和影响力的一种证书,在全社会得到广泛认同。

目前,全国各高校理工科新生的计算机课程,基本上第一期是计算机基础,第二期是C语言程序设计。很多普通高校要求理工科学生参加全国计算机二级考试,并将计算机二级证、英语四级证与学位证挂钩,像我校理工科学生如果没有获得计算机二级和英语四级这两个证,毕业时就很难获得学位证,所以计算机二级考试对理工科学生来说是一门重要的考试,所有理工科学生都要重视。从2013年下半年起,二级C采用无纸化考试,时量120分钟,考试内容除了C语言知识外,还包括计算机公共基础知识,其中公共基础知识又包含基本数据结构与算法、程序设计基础、软件工程基础、数据库设计基础等四方面内容。考试内容以选择题形式出现,共10分,占10%。虽然只有10分,但对于那些想考高分(90分以上优秀)的同学来说,这些内容是非常重要的。由于内容繁多,课时有限,有必要严格按照考试大纲进行相应的教学改革。

1.基本数据结构与算法部分教学分析

基本要求:掌握算法的基本概念、基本数据结构及操作、基本排序与查找算法等。

算法部分教学重点主要在于使学生了解算法的基本概念。首先介绍算法是解决某个特定问题的有限步骤的描述;介绍算法的控制结构可分为顺序、选择和重复三种;采用用程序流程图形式、n-S结构化流程图及算法描述语言等其他描述方式进行描述;向学生讲解流程图时穿插算法的特性介绍;说明即使是同一个问题,由于算法不同,效率可能有很大区别,从而进一步引出算法时间、空间复杂度。对于数据结构,教学重点是让学生掌握数据的逻辑结构、存储结构及数据运算。掌握像线性表、堆栈和队列等线性逻辑结构及树、图非线性逻辑结构;掌握数据的顺序存储结构与链式存储结构的优缺点。展示其在不同存储方式下进行查找、排序、插入与删除操作的灵活性,从而使学生掌握这两种不同存储方式的区别,了解二叉树的不同遍历方式。通过历年试题分析,算法与数据结构部分在等级考试公共基础知识考题中约占50%,因此,教师应侧重对这部分内容进行详细讲解。

2.程序设计基础部分教学分析

基本要求:掌握逐步求精的结构化程序设计方法,了解面向对象程序设计中的对象、方法、属性等概念。

程序设计方法是程序设计基础部分的重点,概念是该部分考核的主要内容,考点份额较小。相对于专业学生,非计算机专业的学生完全理解面向对象程序设计方法中的很多概念比较困难,因而,对这些知识只能要求学生加强记忆。教师只需对所有概念进行相应总结和归纳,无需过多深入探讨,以免学生愈加迷惑,效果反而适得其反。结构化程序设计中的三种基本程序结构(顺序、选择、循环)和程序设计基本原则(自顶向下、逐步求精、模块化、限制使用goto语句);模块化程序设计原则(高内聚、低耦合);面向对象程序设计方法中的基本概念(如:对象、属性、类、方法、封装、继承、多态性)等在考试中经常出现,教师在讲解时应强调概念。

3.软件工程基础部分教学分析

基本要求:了解软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。

该部分内容相对抽象,考点比较多,因此历年考试中多是考生失分较多的地方。考点主要包括:软件工程的基本概念和目的;软件工程的三个要素(包括方法、工具和过程);软件生命周期阶段(包括可行性研究、需求分析、软件设计、编码、测试、运行维护)及各个阶段的目标及文档设计、工具、方法(例如:软件测试方法包括白盒测试和黑盒测试)和步骤(例如:软件测试步骤为单元测试、组装测试、确认测试和系统测试等)。根据计算机等级考试题库统计,以上知识点在考试中的出现频率较高,所以教师应重点讲解。

4.数据库设计基础部分教学

基本要求:掌握数据库基本知识,了解关系数据库的设计。

数据库设计基础部分知识点比较抽象,等级考试中常考的知识点包括:数据库、数据库系统、数据库管理系统、数据库管理系统提供的数据语言(DDL、DmL、DCL);数据的三种基本模型(层次、网状和关系);数据库系统的三级模式(外模式、概念模式、内模式);数据库设计阶段(需求分析、概念设计、逻辑设计、物理设计)及各阶段的基本任务;e-R图中实体、属性、联系的表示方法及三种联系(一对一、一对多、多对多联系);传统集合运算与专门关系运算(选择、投影、笛卡尔积)等。根据总结统计发现以上这些知识点在二级考试中出现频繁很高,因此教学中应当作为重点内容突出讲解。

计算机程序设计基础篇9

关键词:高职;程序设计;教学

中图分类号:tp311.1-4文献标识码:a文章编号:1674-7712(2012)14-0175-01

计算机程序设计基础不好学,好多学生学不好,且很容易掉队,有的学生甚至学了一个学期,看着书上例题可以编写程序,离开书就不行。出现这种情况与高职院校的学生的特点有一定的关系,程序设计需要有一定的逻辑思维能力,高职院校学生一般形象思维较好,逻辑思维较差;高职学生的数学基础一般较薄弱,学习程序设计就更难;好多同学在初高中考试成绩不算太理想,没有养成好的学习习惯,学习缺乏耐心和恒心,钻研精神不够,遇到困难不是勇往直前,而是打退堂鼓。

为了提高高职院校学生的计算机程序设计能力,老师必须在教学上下功夫,提高学生的学习兴趣,通过多练提高学生的能力,通过合作学习提高综合素质。

一、课程概述开好头

第一次课除了介绍课程的教学目标,课程在整个培养方案中所处的位置等内容外,重点介绍计算机程序设计是怎么回事,怎么设计计算机程序。程序设计简单点说就是把我们用脑袋解决问题的步骤用计算机语言告诉给计算机,让计算机根据指令帮我们解决具体问题,用一实际程序设计实例(如以“求一个数的绝对值”为例)进行说明,先要求学生把用脑袋解决此问题的步骤描述出来,一定要写出来,能把步骤描述清楚的的不多,一般都写成下面两步:判断此数是否大于等于零;大于等于零,它的绝对值为原数,否则它的绝对值是它本身的相反数;缺少了很重要的两步:数据输入和输出。借此强调描述步骤不完整,用脑袋都没有办法解决,把步骤补充完整后,根据步骤写出对应的程序设计语句,最后得到所设计的程序。通过这次课,一定要学生弄清楚如何进行编写程序,并消除学生对程序设计的恐惧心理,让学生认识到编写计算机程序是很容易的,关键是理清解决问题的步骤。

二、以应用为目的提高兴趣

学习程序设计的目的是为了编写程序,是为了解决问题,学习程序设计基础,要以应用为目的,一切为解决问题服务,真正学以致用。不管解决的问题是大是小,是复杂是简单,只要能用所学知识解决实际问题,学生就会有一种满足感和自豪感,可以大大提高学习积极性,更有兴趣地进行学习。例如,学习程序设计语言中的数据类型,为什么要把数据分成不同的类型?由于在现实生活和工作中,数据有各种类型,并且不同的类型的数据在计算机中的存储和处理方式不同,有的占据空间大、有的占据空间小、有的复杂、有的简单,如果使用相同的存储和处理,可能会导致两种情况,一种是所有的都用小空间、简单处理,对一些需要大空间且需要复杂处理的数据来说,不能满足要求,会导致处理错误;另一种情况,把所有的数据都用大的空间存放,用复杂的处理方式进行处理,倒是不会出错,但会浪费资源,使数据处理速度变慢,所以计算机程序设计语言把数据分成不同的数据类型,在进行程序设计时要根据存放不同的数据,选择不同的数据类型。

三、精讲多练培养能力

程序设计基础是一门实践性很强的课程,在学习过程中,要培养这样的学习理念,能力是做出来的,不是教师教出来的,强调在掌握理论基础的前提下动手做的作用;经常会遇到这样的事情,听别人说时头头是道,觉得没什么难的,但真正自己做时,就不是那回事了,学生听讲时可能觉得什么都会,导致有时不够专心,他们自己做时,总要动手动脑,遇到问题他会动脑进行思考,从而对所学内容进一步理解。在学习程序设计过程中,利用日常生活和学习中的实例引入课程内容,让学生了解此处解决什么样的问题,由学生整理出在实际生活或学习过程中解决此问题的方法和步骤,在此基础上引入利用程序设计解决问题的方法和步骤,讲解需要什么样的基本结构、语句结构的功能、结构的执行过程。在理解基本理论的基础上,举一个通俗易懂的实例,让学生了解此类问题的程序设计过程。最后给学生多个由简单到复杂实例进行练习,并加以指导,引导学生通过“练”,达到理解、巩固所学知识和培养学生分析、解决问题的能力。

四、注重思路设计提高能力

在学习程序设计的过程中,有的学生从头到尾都学得糊糊涂涂,在教师的指导下或看着书上的例子可以完成,完成后到底怎么完成的,完成得怎么样心里没数。出现这样的问题是由于学生没有理清程序设计的基本思路,在整个教学过程中,一定要通过要求学生画流程图或描述设计思路,加强学生设计思路的培养,只有理清了程序设计的思路,学生才能真正知道自己在做什么,应该怎么做,做得怎么样,做好后才能有完成任务的成就感,也可以进一步提高学生的信心和学习兴趣。说实在话,培养学生的设计思路并不容易,学生一般都是为了先完成任务,拿到题目就做,遇到问题再翻书或问题老师,很少会主动去分析设计思路,作教师的要强制学生首先进行思路分析,然后才准许编写程序代码,让学生真正认清设计思路对学习的好处。

五、合作学习提高素质

在教学过程中,提倡同学们合作学习,互帮互助,共同进步。合作学习有下面几个方面的作用,首先,学习快的同学可以帮助学习慢的同学,弥补了教师一人力量不足。在练习的过程中,可能有好多同学出现问题,特别是练习的后期,出现的问题较多,教师一人不能全部顾到,同组做得快的同学帮助做得慢的同学,可以使他们快速解决问题,继续学习,节省等待老师的时间;其次,通过帮助其他同学,可以检验自己是否真正把所学知识掌握好了。大家都知道,自己会做与教给其他人是两回事,如果能给别人讲清楚,那才是真正把所学知识理解好了,如果不能教给他人,说明自己没有真正理解所学知识,需要进一步努力;另外,培养了学生互帮互助的素质,提高职业素质。

计算机程序设计课程对高等职业院校学生来说是一门较难课程,只要能抓住下面几个方面,揭开程序设计的神秘面纱,让学生了解什么是程序设计;从应用入手,让学生解决实际问题,使学生产生成就感,提高学习的兴趣和学习主动性;精讲多练合作学习,培养学生的程序设计能力和职业素质。就一定能地完成程序设计基础的学习任务,为其它专业课程打下坚实的基础。

参考文献:

[1]姚晓玲.计算机程序设计教学新思路[J].山西财政税务专科学校学报.2005,4,3,72-74.

[2]郑瑶.十二字方针——程序设计基础课程教学体会[J].中国教育信息化.2008,08.

计算机程序设计基础篇10

我校通识课程的指导思想是培养学生具有多学科思维方式和多种分析问题的方法与能力。从这个意义上,计算机作为一个学科,也是一种独特的、新的思维方式,也是进行专业学习和研究的有力的方法和工具。因此如何把握计算机基础类课程体现出这种特点,是我们进行课程体系建设所要着力解决的关键问题。

1计算机基础类课程十年来的四次改革

1998年新浙江大学成立,我们整合了原各校的计算机基础课程,定位为全校本科的公共课程。整合的指导原则是根据当时国家教委有关计算机基础课程建设要求,划分了计算机基础类课程的三个层次:计算机文化课、程序设计基础和计算机应用,如表1所示。该课程体系持续到2001年。

计算机文化课的教学目的是要求掌握计算机的基本使用。教学内容为计算机技能性知识,如windows系统、office软件等。在这个阶段,我国的计算机无论其应用还是市场基本上处于起飞初期,普及程度还相当低,大多数中学还没有开设计算机操作课程。

进入21世纪,我国的中学阶段基本上已经开设了使用计算机的课程,因此大学计算机教学的形式和内容必须随着这一形势进行改革和建设。为此我们在2002年改革计算机文化课,其思路是把计算机文化课中的技能性操作部分改革为直接上机考试的“通过制”,即不再上课教学,但要求学生必须通过参加辅导课或直接参加上机考试取得学分。考试内容和形式与计算机等级考试类似。

作为基础性课程,计算机文化课改革后分设“计算机科学导论”和“网络应用技术基础”,学生根据自己的计算机水平选修。课程设置如表2所示。

“计算机科学导论”课程侧重于比较全面地介绍计算机系统知识,而“网络应用基础基础”侧重于网络技术及应用。前者适合于基础知识比较缺乏的学生,后者适合有一定基础的同学。

不可否认,计算机文化课的通过制考试的高通过率,一部分原因是学生的“考试能力”,再就是技能性知识并不能反映出学生的“计算机能力”。这在我们其后的教学实践中得到的反馈也验证了这一点。选修网络基础课程的同学往往在基础知识上表现得极为缺乏。经过两年的教学实践,我们从2004年开始,将计算机科学导论课和网络应用技术基础课重新合并,新开设的课程名称为“大学计算机基础”,如表3所示。

和文化课不同,在大学计算机基础课中,以知识性系统性为主,兼顾有关技能型知识,两者的比例大约为2:1。也就是说,大学计算机基础的定位是以知识性为主,技能型为辅。这是因为大学新生大多数具备了一定的计算机操作基础,也是为了使学生能够更加全面地理解和学习计算机,为后续课程如程序设计、专业课学习运用计算机奠定必要的基础。

2006年开始执行的06-08本科培养计划,计算机基础类课程被定位于“通识课程”。新的教学计划如表4所示。

到今年已经完成了这一轮(2006-2008)改革后课程的教学任务,我们将在前次实践的基础上制定更加符合课程建设目标的新的教学计划(2009-2011)。

十年间的四次课程改革,每次都是围绕两个问题进行的,一是如何适应教学对象计算机技能不断提高而缺乏理论知识的实际,而是不断探索作为基础类课程的大学计算机如何服务于整个学校人才培养计划,特别是在2006年以来,作为通识课程的大学计算机基础类课程需要把计算机能力、计算机方法学作为重点,是我们进行课程建设的重要任务。

2大学计算机基础课程的特点分析

进行课程建设,必须把握课程的基本属性,了解课程的特点。和大学中其他基础类课程,如数理化、人文类基础课不同,计算机基础受到计算机技术高速发展的影响,课程内容需要不断更新,知识结构需要不断调整,教学手段和方法需要不断改进。这也是我们不断进行课程建设和改革的源动力。我们的对课程特点的认识有以下几点。

2.1“变化”是计算机基础课程建设的主旋律

计算机科学与技术的一个重要特点是,技术的进步往往改变了传统的方法和思路,也改变了原来的知识组成及表达。一个直接的表现是微机的操作系统从DoS过渡到今天的windows,技术上的进步是人机交互从字符方式改变为图形界面,而产生的影响是计算机的操作和使用从难到易,极大地推进了计算机使用的普及。

不但是人机交互的改变,计算机系统结构也在迅速改变。单机的单核处理器模式开始被多核取代。更重要的改变是网络:延伸了计算机的功能,使信息交互、检索和运用的方式发生了变化,人们已经习惯于从网络上获取更多的、更及时的信息。

从程序的角度看,传统的面向过程的程序设计在许多方面被面向对象的设计方法取代,过去强调的程序优化等被应用到嵌入式系统,一般意义上的“计算”被“信息处理”替代。计算机不再是单纯地作为“计算”工具,而是作为事务处理的重要方法……

计算机基础课程的基础知识不断变化,因此需要在课程建设中反映这些变化,而课程建设必然滞后于技术本身的发展,这种矛盾就是进行课程建设的前提。有统计表明,在所有学科中,信息量和信息更替最为频繁和迅速的就是计算机。因此,作为基础课程的大学计算机基础需要,也必须能够反映计算机的这些基本特点。

2.2课程建设的重点从技能性转变为基础性

从科学的角度看,计算机具有本身的科学体系,这个体系本身也在不断的超越自我,更重要的是需要认识它的科学性和基础性。技术进步并没有改变计算机构成的基本元素,也没有改变它的二进制基础和处理器核心地位。因此单纯把技能性的知识作为课程教学的重点,既不符合计算机学科本身的特点,和我们的课程目标也完全背离。因此课程建设的重点定位在“基础性知识和理论”,是回归课程应该具有的属性。因此无论是计算机文化课、程序设计基础课,突出其知识型、系统性,理解计算机、理解程序原理,这是课程建设的任务和目标所在。

计算机作为科学的历程只有半个多世纪,但作为人类追求计算自动化的历程它是和人类文明进程同步的。早期的计算机是专业化的,而今天被称为“桌面时代”,pC机和以pC机为节点的网络已经成为《时代周刊》的封面“人物”。没有人怀疑计算机的重要性,而问题在于需要认识“计算机重要在什么地方”。这也是我们进行计算机基础课程建设需要需要明确和解决的问题,也就是说要反映出课程的基础属性,需要掌握基本知识、系统知识,进而理解计算机既是工具,也是分析问题处理问题的一种先进的方法学。

2.3大学计算机基础类课程适合于按知识点组织教学

无论是教师还是学生,对计算机繁多的名词大有难以应付的感觉。这些名词都有其特定的背景,要理解其意义实在是不容易,即使是计算机专业人员也未必能够应付自如。再如在程序设计课程中,理解计算机语言的抽象表达、形式化结构也是困难的。

实际上,知识之间的关联、交叉、按序渐进的传统的知识表达方法并不能很好地用于计算机基础类课程,因此需要寻找合适的组织方法满足课程本身特点,而知识点教学也许是一个好的选择,也被证明是成功的选择。

知识点教学既是计算机课程本身的特点所致,也是进行计算机系统知识学习的一个好的途径。我们需要解决的问题是采用何种方法组织这些知识点,使之和今天的教学对象的实际更好地结合。这也是大学计算机基础课程中需要不断实践的教学研究问题。

3培养计算机能力是课程建设的目的

非计算专业学习计算机的目的,已经从传统的“应用”进化到“基础理论与应用”。“学习计算机方法、培养计算机意识是大学计算机基础课程建设的根本目的”,这个提法并不是新的,也不是喊口号,问题在于理解什么是计算机方法以及什么是计算机意识,只有明确这些问题才能够有效指导我们开展课程建设。

计算机技能是重要的,但计算机技能不是,也不一定需要通过课程教学实现。已经有科学学研究观点认为,计算机不再单纯是一种工具,它更重要的是一种方法,计算机方法。因此,计算机方法也是重要的,它同样不能仅通过课程教学实现。

我们知道,科学的方法是发现问题并寻找解决问题的思路,这个过程可以通过数理分析、实验或通过大量的统计分析方法得到,也可以通过计算机方法得到,至少目前的许多科学研究和事务处理使用计算机,也离不开计算机,但并不意味着我们已经认识了计算机方法。

通过大学阶段的计算机基础类课程学习,基础课程是建立有关计算机系统的概念,了解计算机是如何处理问题的,计算机如何把对问题的求解归结为程序处理,进而理解程序处理是计算机所独有的方法,也是科学研究处理分析数据所依赖的方法。计算机具有一套完整的处理过程,理解它的处理过程对进一步使用计算机方法解决专业问题的重要性是显见的。即使不是直接去设计程序解决问题,但如何描述问题以使得计算机能够处理问题却是使用计算机的第一步。

计算机方法不能简单地使用语言加以描述,它的形式化表达和处理来自于设计者的思路,来自于设计者所具备的知识结构,特别是对知识的理解和认知结构。计算机本身不能理解和处理我们所理解和处理的问题,因此需要我们和计算机进行交互,这种交互过程本身就是计算机方法的一部分。

有了计算机方法,就有了计算机意识。有专家认为,“计算机意识”是指在解决专业问题过程中能够“知道”如何使用计算机。这是一个很大的问题,显然不能简单地理解“会使用”计算机就能够做到培养“计算机意识”。这不但需要计算机基础类课程,更需要在后续的专业课程与计算机结合。

4计算机基础课程建设未来之展望

显然我们把注着眼点放在“能力”上,并不是弱化计算机的技能,而是引导学生“通过计算机学习计算机”,即充分体现GUi系统的特点,安排适当的课外上机时间和布置相应的实验要求,让学生自己完成,带着问题学习和探究性学习,通过06课程计划中的一轮实践,效果也是预期的。

在程序设计课程中,引导学生从记忆语法到理解算法,通过编写程序理解计算机,这一思路已经得到成功的实践,何钦铭教授担纲的“C程序设计基础及实验”课程是部级精品课程,而且按照“案例驱动、算法为主”的国家“十一五”规划教材(高等教育出版社出版)也已经在国内许多高校广泛推广、使用。

我校的新一轮课程建设已经启动,对大学计算机基础类课程而言,将有新的机会进行更加深入的探索和实践,更好地把握课程的基础属性,围绕通识要求将是我们未来计算机基础类课程建设的主要任务。

参考文献

[1]教育部高等学校计算机科学与技术教学指导委员会《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求(试行)[m].北京:高等教育出版社,2006.

[2]陈小红.美国通识课程教学的发展趋势及启示[J].外国教学研究,2006,(1):37~39