基于建构主义的软件工程专业实践教学模式改革 ——以Java程序设计为例
易文龙 王映龙 何火娇 王洋
软件工程专业是一门发展迅速、实践性强的学科,它的办学模式、培养目标较之其他学科有着鲜明的特点,主要培养的是软件开发和软件工程管理人才,它的就业前景比较好。但是随着我国信息技术的不断发展,核心竞争力的逐步提升,市场对软件人才的能力要求越来越高,对软件人才的需求也越来越大,而高校对软件人才的培养还停留在原来的水平上,由此便引发了软件人才的供求矛盾。为了激励和指导软件相关产业又好又快的发展,国务院制订了《进一步鼓励软件产业和集成电路产业发展的若干政策》,在该政策中明确提出高校要进一步深化改革,加强软件工程和微电子专业建设,紧密结合产业发展需求,及时调整课程设置、教学计划和教学方式,努力培养国际化、复合型、实用性人才。软件工程专业作为软件人才培养的主要渠道之一,要进一步改革与创新软件人才的培养模式。在《国家中长期教育改革和发展规划纲要(2010—2020年)》中也提出了我们要强化实践教学环节。
Java作为软件工程专业的主干课程之一,在教学过程中要着力培养学生的软件开发能力和独立思考能力。在传统的行为主义教学中,强调的是“教师的教、学生的学”,教师是知识的灌输者,学生是知识的被灌输对象,由此形成了教师是知识的权威,学生在今后碰到问题的时候会以教师考虑问题的模式去处理,如果遇到一个新的问题,学生就会缺少分析、解决问题的能力,可能无从下手。所以说,按照这种行为主义教学方式来培养的学生,并不能适应社会对软件人才的需求[1]。针对这个问题,本文提出了基于建构主义的Java程序设计实践教学模式,增加学生对知识的全面分析和掌握能力,提高学生的动手能力,提升学生升学、就业的核心竞争力。
一、建构主义
建构主义源于瑞士著名心理学家皮亚杰提出来的儿童认知是与外部知识相互作用从而使自身认知结构得到发展理论,随后科尔伯格、斯腾伯格和卡茨等人在此基础上作了进一步的研究,他们提出个体的认识发展在建构认知结构过程中起到重要作用,在建构主义中知识是个体与外部环境相互作用主动建构而成的,而不是由外部环境灌输形成的[2]。
在传统的教学模式中,教师、媒体、教材及学生的关系是:教师是主体,是知识的传播者;媒体是教师传播知识的手段、工具;教材是教师传播的主要内容;学生是被传播的对象。建构主义教学模式颠覆了四者之间的关系,重新定义了其含义。建构主义强调的是“以学生为主体,以教师为主导”的教学模式,即学生是知识的主动学习者、探索者,教师是教学过程的设计者、组织者、学生学习的帮助者,媒体是用来创建相应的学习情境,帮助学生自主学习的工具,教材是学生自主学习的对象。学生在相应的情境下,通过和教师以及同学之间的协作、交流,把自己原有的认知进行图式的扩充与改变,最终达到意义建构[2]。
建构主义的教学设计原则应强调:①“以学生为中心”,学生是教学中的主体,教师是帮助学生向意义建构的引导者。②充分利用多媒体技术及互联网资源给学生创建一个相对合适的情景。③通过相互间的协作与交流把新的认识进行共享。④学生对知识的意义建构是教学的目标。
二、建构主义在实践教学中的应用
江西农业大学软件学院对软件工程专业实践课程进行了创新与改革,并把建构主义比较好地运用于教改之中。教学改革的对象主要是软件工程2008级学生,他们在大一、大二主修过Java语言基础编程、数据库技术等专业课程,笔者作为专业教师也有幸参与到我院教学改革中。实践表明,把建构主义理论和我院人才培养模式的实际情况相结合,能够提高学生对Java编程的进一步认知,得到了同学们的一致好评,采用的教学方法主要是“任务分解法”和“提问法”[2]。具体实施过程如下:
我们将分散的教学学时稍微集中起来,统一安排在多媒体机房进行讲课,给每位学生分配一台计算机。教师首先对教学任务及学生原有的知识结构进行了全面的分析,确定教学内容,再把内容进一步分解,用各个小项目进行支撑,然后再化零为整,把所有知识点再一次运用到一个综合项目中。
例如我们将“仿QQ聊天程序”这个主要任务分解成五个小任务。教学任务一:利用Swing创建窗口界面程序。教师利用投影仪把一些已做好的窗口程序演示给学生,如:“画王八”、“满天星星”等,直观的界面激发了学生学习的兴趣。接下来学生自主利用原有的Java知识把它们编写出来,在编写程序过程中学生碰到问题,主要的解决方法是让他们之间相互协作与交流,如果确实需要求助教师,教师并不直接告诉学生答案,而是积极引导学生向正确的方向思考。从实际教学看来,基础好的学生能够很快把案例设计出来。在此基础上,教师再提出新的要求:能不能把王八设计成爬行状态,这又进一步激发学生的认知欲望。教学任务二:Socket编程。利用Socket、Swing窗口技术编写一个简单的聊天程序,实现计算机机房即时点对点的聊天。教学任务三:把任务二的聊天程序改写成多用户版的聊天程序,从而引入了多线程技术。教学任务四:JDBC操作数据库。Java利用JDBC操作数据库大致可以分为:①加载驱动程序。②创建连接。③创建Statement或PreparedStatement对象。④传送SQL语句并执行。在这几步过程中,教师将每一步设计成若干个问题,例如:加载驱动程序为什么是Class.forName(“包.类名”)?在创建连接时为什么里面是ip地址和端口号?虽然有时候学生的答案五花八门,讨论的结果也并不一致,但是这种基于问题的协作、讨论对于学生而言非常重要,此时只要教师向学生提供相关的材料与相应的引导,学生就能对原有正确的认知进行图式扩充,错误的认知进行图式的改变。教学任务五:文件流操作。利用字节流、字符流和缓冲流对文件的操作引申到对XML操作。问题设计:利用JDBC、文件流把数据库表的数据导入到XML文件中。教学任务一至五都是基于问题式的教学,教师为学生创建特定的情境,一起分析出核心内容,由学生自主完成。从表面看来。这五个任务之间没有太直接的联系,但其实它们都是为了一个主要任务的实现做准备的。当教师和学生一起讨论主要任务“仿QQ登录程序”如何实现,需要哪些技术与功能时,学生们自然而然地会回想到前面教学的五个分任务的知识点:任务一的知识点是用来创建QQ客户端与服务器端界面程序;任务二、任务三和任务四是利用Socket、JDBC、多线程技术来实现多用户登陆客户端程序,进行连接QQ服务器,实现多人在线聊天;任务五的技术是来保存QQ程序的聊天记录。这样就把一个相对较难的“仿QQ聊天程序”所牵涉到的知识点,分解成若干个小知识点,由学生自己逐个攻破,最后贯穿到整个“仿QQ聊天程序”中来。教师在教学过程中的职责是创建情景、布置任务以及积极引导,教师要不断地提升学生的最近发展区。“最近发展区理论”是由维果斯基提来的,这个区域是指学生现在独立解决问题的能力发展到学生通过教学获得的潜力。
通过将以上一个整体项目分解成若干个子项目,能够很好地激发学生的学习兴趣,提高了学生的编程水平。为了更好地把建构主义移植到其他相关课程中,我们把教学设计进一步概括为以下图示过程:
图1是基于建构主义理论学习的实际教学运用,明确了教学任务后,首先制定合理的教学目标,分析学生的知识结构及认识能力,判断出学生的最近发展区,再确定与之相适应的教学内容,选择一个实际运用的项目来进行支撑教学,该项目综合了教学内容的所有知识点,再把该项目按照相近的知识点进行分解,分解成不同的子项目,不同的子项目又分别对应于不同的分解内容。当学生将每个分项目完成后,已经初步学习了主要的知识点,此时就可以开始实现一个综合项目。最后,综合项目完成后,师生一起进行教学效果评价,如果学生对教学内容仍然不懂,教学效果并不理想,那么教师需要回到起点,对教学目标进行修改,重新设定相应的教学内容。在整个教学过程中,教师只起到学生认知的支架作用,采用的授课方法以“提问法”为主,激发学生的主动性。除了“提问法”之外,教师也可以采用一定手段来辅助学生理解授课内容,例如教师可以针对难点问题,即时编写代码进行讲授,运行成功后,让学生自己尝试重新编写一次,这样可以加深学生的理解。总而言之,建构主义教学的终极目标是加强学生对知识的意义建构。(www.xing528.com)
图1 建构主义教学设计
三、改革效果分析
自从将建构主义引入到Java实践教学中,该课程的教学效果得到了显著提升。学生的认知能力、动手编程能力也有着明显的提高。为了验证教学改革的效果,我们要求所有参加Java实训的学生都写一份心得,并且随机抽取了十名同学与Java授课教师进行座谈,最后发现这种建构主义教学模式还是得到了学生的充分肯定,甚至还有部分学生在课余时间自觉对自己的知识结构进行扩充。通过这种新型教学,教师从一个高高在上的权威知识灌输者,转变成一位辅助学生意义建构者,学生由绝对服从教师,转变成与教师平等对话,大大提高了学生积极参加教学的积极性。从这次考核的结果来看,99%的学生都能完成项目要求和学习内容,30%的学生对项目进行了进一步的提高,有个别同学的学习能力发生了质的转变,能够自觉删掉游戏账号,自己回归学习轨道。教学改革效果表明:知识是由学生主动与外部环境相互作用建构的,这种建构能更好地发挥个体的能动性、提升个体的参与热情。教师与学生的角色要重新定位,由以教师的“教”为主的教学转变成以学生的“学”为主的教学,充分利用现在的媒体技术、互联网技术,在教师的指导下通过创建特定的情境,认知个体之间的交流与协作,不断地提高“学生的最近发展区”。
四、结束语
建构主义教学比传统的行为主义教学有明显的优势,也受到大部学生的青睐,实现了师生间的角色转变,提升了学生在教学中的主导权。但它也是有局限性的,它实施起来受很多外部条件限制,如:课时编排、考核体系与学生认知层次差别不相符。作为软件工程专业教师,我们不但要及时补充、更新自己的专业水平,还要大胆地在教学方面进行改革与探索,借鉴国内外成功的建构主义教学案例,并结合本专业的实际情况,不断地进行修改与运应,充分发挥学生的认知能力,不断地提高学生的最近发展区,增强学生的动手能力、思考能力与团队协作能力,培养出符合市场需求的优秀软件人才。
[1]Boghossian,Peter.Behaviorism,Constructivism,and Socratic Pedagogy[J].Educational Philosophy and Theory,2006,38(6):713-722
[2]高文,徐斌艳,吴刚.建构主义教育研究[M].北京:教育科学出版社,2008
[3]Powell,Katherine C.,Kalina,et al.Cognitive and Social Constructivism:Developing Tools for An i Effective Classroom[J].Education,2009,130(2):241-250
[4]刘细发,夏家莉.基于建构主义指导下的“项目牵引式”教学模式初探[J].电化教育研究,2007,172(8):65-79
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。