Java技术综合课程设计(精选十篇)
Java技术综合课程设计 篇1
1 主要改革的内容
本次课改主要从教学方案、课堂教学、考核方案等方面进行深入研究, 注重激发学生潜力, 注重能力培养, 能够应用java语言实现面向对象的编程, 掌握编写java程序所需要的面向对象知识、环境与配置、图形用户界面的设计、事件处理的机制、网络应用程序的开发等知识。以完成多个整数相加程序、设计产品信息录入界面、美化产品信息处理界面、利用applet加载图像和播放声音、验证所录产品信息的格式合法性、处理产品信息录入程序运行的异常情况、保存录入产品信息到指定数据库、查询所有产品的详细信息、实现产品信息处理界面的动态显示、实现用户远程登录模块的服务器和客户端等项目设计来激发学生学习java语言的兴趣, 从而提高对学生能力的培养。在学习的过程中一定要动手做、写代码, 而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己, 最好能参与一些实际的项目。从而构建属于自己的经验和知识体系, 使学生在实践中提高能力。
2 解决的主要问题及采取的研究方法和方案
2.1 解决的主要问题
课程体系的开发如果没有行业、企业人员的参与, 就等于闭门造车, 不适用。校内教师可以通过相关渠道反馈给课程开发小组, 为今后课程的调整和教学内容的更新铺垫。
2.2 采取的研究方法
1) 在教学设计方面拟采用的方法。教学设计我们应注意以下问题:a.教学设计要以学生的学为导向;b.设计人员应有较扎实的理论基础, 有一定的教学经验, 有熟练掌握教学设计的基本原理、方法和实际的操作技能, 有良好的逻辑思维能力和创造性思维能力, 有良好的人际关系技能和时间意识;c.善于运用教学设计过程模式。
2) 项目教学法的推广。教学方法以学生为中心的项目教学是在课堂教学中所使用的重要方法。项目教学法, 是师生通过共同实施一个完整的“项目”工作而进行的教学活动。本课程所设计的项目需要满足下面的条件:a.工作过程可用于学习一定的教学内容, 具有一定的应用价值;b.能将教学课程的理论知识和实际技能结合在一起;c.学生有独立进行计划工作的机会, 在一定的时间范围内可以自行组织、安排自己的学习行为;d.有明确而具体的成果展示;e.具有一定的难度, 不仅是已有知识、技能的应用, 而且还要求学生运用新学习的知识、技能, 解决过去从未遇到过的实际问题;f.学习结束时, 师生共同评价项目工作成果和工作学习方法。
2.3 改革方案
1) 课堂教学。在课程内容的学习中, 利用直观的界面显示效果, 学生将更容易掌握学习内容, 兴趣较浓厚, 同时课堂上设计的各种技能训练也体现真实、实用的原则。教学过程执行以下步骤:a.首先复习, 检查学生对已布置的内容预习效果, 提出课堂教学目的, 使学生明确学习和训练要点。b.展示项目, 提出疑问, 设置情境, 激发学生学习动机和兴趣, 让学生尽快进入。c.将项目拆分, 案例完成知识点讲解。让学生自己去思考研究, 激发学生探究、思考、提出问题。d.学生练习, 通过学生提出和反映的问题, 联系、检查教学和训练效果。e.反馈总结。f.学生再次练习, 此次为分层次教学, 动手能力强、理解力好的学生, 给予拓展项目, 基础差的学生重复基本练习。根据课程的特点及性质, 需要有不同的授课形式才能体现出课程的多样化特征, 达到课程的教学目标。课程的授课教师操作演示, 同学们则边看边学。教学时间设置上, 通盘考虑, 保证课堂结构紧凑有序, 一般情况下, 我们的活动时间可在三分一左右, 学生的活动时间约三分之二为左右, 我们的大量工作主要在课前或课后, 尽量保证学生对所学内容有足够时间进行训练, 操作水平得到提高。
2) 考核方案。在课程的考核方式上, 根据课程的特点进行考核模式改革, 设计考核方案。根据项目完成情况分优秀、良好、中等、及格、不及格五个级别来进行考核。这很好地体现了高等教育对学生素质教育的要求, 也体现了学生考核的多元评价。
3 改革的特色及效果
3.1 丰富的教学资源
在教学中采用了现代化教学手段, 帮助学生理解知识, 掌握技能并能举一反三, 灵活运用, 提高了教学效果。多媒体课件、电子教案的编制充分运用形象直观的素材, 寓教于乐、深入浅出。习题等辅助资料是教学体系中不可或缺的一部分, 起到了补充课堂教学内容的作用。主要从习题课前的准备、习题课的课堂教学方法和学生完成习题等几个方面来发挥习题作用, 以提高教学质量。
3.2 项目设计过程中提高学生能力的培养
《JAVA语言》课程设计设计 篇2
课程名称:面向对象程序设计JAVA 适用专业:计算机及计算机相关专业
学时数:20(上机实验)学 分: 1 配套教材:《JAVA语言与面向对象程序设计》印旻 编著 清华大学出版社 大纲编写者:周斌 编写日期:2008.2
一、课程设计目的
1、课程设计的教学任务是让学生通过动手动脑解决实际问题,是学生学完课程后进行 的一次全面的综合训练,是一个非常重要的教学环节,通过课程设计,使学生经受一次综合动用所学知识,解决实际问题的方法。
2、使学生掌握使用各种计算机资料和有关参考资料,提高学生的基本设计能力。
3、培养学生理论联系实际和独立思考的能力,并激发学生的实际开发创造的意识和能力。
二、课程设计要求
1、利用JAVA进行应用程序的设计。
2、必须熟悉课程设计的各项内容和要求,明确课程设计的目的、方法和步骤;
3、设计中必须独立地地完成每一阶段的设计任务,禁止抄袭他人的设计成果;
4、所设计的程序必须满足实际使用要求,编译出可执行的程序。
5、要求程序结构简单,功能齐全,使用方便。
三、课程设计内容
课程设计题目:
1、已知银行整存整取存款不同期限的年息利率分别为: 0.63% 期限一年
0.66% 期限二年
年息利率= 0.69% 期限三年 0.75% 期限五年
0.84% 期限八年
要求输入存钱的本金和期限,求到期时能从银行的到的利息与本金的合计。
程序如下:
import java.io.*;public class myWork1 { public static void main(String args[]){ try { int m,n;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));System.out.print(“请输入金额: ”);m=Integer.parseInt(br.readLine());System.out.print(“请输入年限: ”);n=Integer.parseInt(br.readLine());System.out.println();switch(n){ case 1: System.out.println(“得到的总额为 ”+m*(1+n*0.0063));break;case 2: System.out.println(“得到的总额为 ”+m*(1+0.0066*n));break;case 3: System.out.println(“得到的总额为 ”+m*(1+0.0069*n));break;case 5: System.out.println(“得到的总额为 ”+m*(1+0.0075*n));break;case 8: System.out.println(“得到的总额为 ”+m*(1+0.0084*n));break;} } catch(IOException e){ System.out.println(e);} } } 截图如下:
2、输入n值,打印边长为n的空心正六边形,其边由“*”组成。
3、编写一个类,这个类同时求出n个学生成绩的最高分、最低分、平均分以及超过平均分的人数,并编写主类完成:(1)输入n个学生的成绩;(2)调用此类进行统计;(3)输出统计结果。
4、编程实现实时动态运行的模拟时钟。以下题目选做:
5、编程实现约瑟夫问题。8个人站成一圈,从第1个人开始报数,报到5的人出圈,第6个人再从1开始报。依次类推,求出圈的序列。
6、编程实现俄罗斯方块游戏。
说明:可以自行选择其他设计题目
四、编写课程设计报告书
课程设计报告书要求:
1、文字叙述清楚,结构结构简洁明了,理论正确,程序功能完备。
2、设计说明书要求文字工整,书写整齐。
3、附参考资料名称说明。
4、课程设计报告主要内容: 1)题目 2)问题需求分析 3)总体设计 4)详细设计
5)测试数据和调试报告 6)小结
五、成绩评定方式
Java技术综合课程设计 篇3
[关键词]信息技术;项目驱动;JAVA教学
[中图分类号]G202 [文献标识码]A [文章编号]1672-5158(2013)06-0128-02
一、引言
随着科学技术的进步和教育改革的发展,现代化的教育以多媒体技术、计算机辅助教学、远程教学等众多手段迅速发展起来。因此,合理而适时地运用现代化信息技术进行教学,已成为深化教学质量、提高课堂效率的重要手段和有效举措。其中,“项目驱动”、“主动探索”、“情景创设”等多种新型教学方法的运用,使得在培养学生学习兴趣、提高学生自主学习能力,强化学生团队协作意识等多个方面有了显著的提高。
在此,本文针对计算机编程语言-JAVA在传统教学中所存在的弊端,提出如何在“信息技术环境”下运用“项目驱动”教学法进行JAVA语言的教学,并予以实施。
二、java语言与“项目驱动”教学法
1 JAVA语言
JAVA是目前应用广泛,功能强大的面向对象的网络编程语言之一。在JAVA的教学中,不仅要求学生对所学知识进行充分地理解和掌握,更要求学生对所学知识能学以致用,把知识融会贯通地应用到解决实际问题中去。这就要求教师要选择合理正确的JAVA教学方法进行教学。因此,对于Java课程的讲授,我们可充分利用信息技术平台,打破传统教学的局限性,将理论教学与实验教学进行有机的结合,教师运用多媒体手段进行辅助教学,运用“远程教学”和“网络教学”进行互助教学,从而充分调动学生的学习积极性,让学生“边做边学”,通过实践充分理解和运用JAVA面向对象的编程思想,巩固所学知识。
2 “项目驱动”教学法
“项目驱动”教学法是在建构主义学习理论下形成的一种“教”和“学”的模式,它集中关注于某一学科的中心概念和原则,旨在把学生融入到有意义的项目任务完成的过程中,让学生积极地学习,自主地进行知识的建构。学生在教师的引导下,紧紧围绕一个共同的任务活动中心,在强烈的问题动机驱动下,通过对学习资源的积极主动应用,进行自主探索和互动学习,并在完成既定任务的同时,引导学生产生一种学习实践活动,使学生带着真实的任务在探索中学习。
三、Java信息化教学中“项目驱动法”的实现
JAVA信息化教学中加入“项目驱动”教学法,可以让学生在信息化教学环境下,以一个个典型的编程项目为驱动展开教学活动,通过项目的参与,了解并把握项目整个过程及每一个环节的基本要求,随着项目的不断拓展和层层推进,带动学生理解和掌握项目中所涉及到的知识和技能,培养学生分析问题和解决问题的能力。因此,在实际教学活动中,教师可合理的选择一个项目贯穿整个教学过程,而学生将按照教师的引导和项目的具体要求来完成整个项目的设计、编码、测试等工作,使学生主动参与项目实施的全过程,充分创设有利于学生发挥潜能的宽松环境和真实的职业情景,使他们置身于真实的或模拟的职业世界中去积极主动地探索和尝试。可以看出,以信息技术为平台,在Java教学中加入“项目驱动”教学法,将使Java语言的知识建构和再建构以及对Java获得认知和理解的学习活动变得更加容易。
(一)“项目驱动法”在Java信息化教学中的实施
针对计算机传统教学中以“教师”为教学主体,以“灌输式”讲授为教学方法,学生在教学过程中学习被动,不能发挥其主观能动性和积极性等种种弊端。改革传统理论教学,以“信息化教育技术”为平台,以“项目驱动”教学法为方法,将课堂从教室搬到多媒体室、机房,以现代化教学环境实现理论教学和实践教学相统一,变学生学习“被动”为“主动”。教师通过电子模拟演示、Netmmtmg等对课程、项目中所涉及的知识点和技能进行多媒体手段教学和实验,对存在的问题进行指导,让学生在信息化教学环境下以“项目”的构建为学习主线对知识进行综合性掌握和理解,充分利用现代教育技术手段给学生提供多种学习资源,打破学生的个体界限,采用自愿结组的原则,对学生进行分组,学生自主探索,互助协作,围绕项目主题及相关知识点展开学习、讨论和交流,从而对Java语言进行深入的学习和探索、研究。其过程如图1所示:
基本思路是:教师指导学生,以一个完整的Java开发项目贯穿整个教学过程的始终,以该项目的构建过程为线索,以学生为中心,安排教学步骤,教学过程由项目的任务驱动,教师在教学过程中起组织和指导作用,学生在学习过程中参与一个完整Java项目的立项、分析、设计及实现的全过程Ⅲ,通过该项目的完成使学生充分实现对Java语言的深入掌握。这种基于信息化教学的开放性、创新性的教学思想和方法,有利于克服以往的教学弊端,有利于学生通过主动参与,从整体上掌握课程的精髓,从而提高学生在实际工作中分析问题、解决问题的能力。从图1中可看出,整个驱动法的实施可分为四步:
1 Java项目的提出及选取
Java项目的提出与选取是“项目驱动”教学成功与否的一个关键因素,项目的选取要以Java教学的内容为依据,以现实的对象为材料,还要考虑项目本身所能涵盖的知识面,考虑学生对所选项目的熟悉程度,必要时教师和学生共同参与项目的选取,教师要注意启发学生去主动发现身边的素材。在这里,我们以选取运用Java语言编写“学生成绩管理系统”为例,经过教师指导学生分析该项目,按其模块功能划分,可包括:“学生成绩管理系统界面”、“学生信息”、“成绩管理”等实训项目单,从而让学生明确实现该系统需要涉及到的主要Java知识点包括类的设计、Java数组和字符串、File I/O文件操作、Java Swing界面开发,JDBC数据库操作、异常处理等。这样,就把Java教材中的主要知识点进行了串联,使得整个教学过程始终贯穿该系统的开发,始终围绕所涉及到的知识点,学生在学习每一章节时都能够明确其功能和自己的学习目标,并将所学知识应用到实际的项目开发中去。考虑到该系统与实际需求紧密结合,与学生的生活息息相关,完成后即能投入实际使用,因此,该项目的选取具有科学性和合理性,能够充分驱动学生对Java语言的主动学习,激发学生的学习热情和学习兴趣。
2 Java项目的分析与任务分配
项目提出后,应采取“以学生为主体,教师为主导”的教学策略,由学生分析完成该项目需具备的知识能力,然后由教师讲解必要的知识点,根据具体项目的不同,可采取不同的教学手段和设备,从而提出解决问题的设想和方案。若项目较为复杂,可将项目划分成若干子模块,由教师确定各子项目模块的总体要求及设计标准,由学生以分组为形式进行子项目的分析和讨论,项目开展的每一阶段,都须以组为单位提交标准化、规范化的阶段性文档,并要求组内成员执行严格的文档评审机制。在项目设计与任务分配时要力争做到低耦合、高内聚、降低项目模块间的耦合程度,从而获得较高的模块独立性以利于任务的分配。以运用Java创设“学生成绩管理系统”为例,在对系统的需求进行分析的基础上进行功能设计,可将该项目系统划分为“管理系统登录模块”、“学生信息模块”、“成绩添加模块”、“成绩查询与修改模块”、“成绩打印模块”等,对于各子项目模块的分配可根据项目的功能需求和具体的项目任务以分组为单位进行划分和下达,各分组制定实施方案,确定各任务模块的设计、编码、测试,并付诸实施。
3 Java项目的完成与测试
项目实施的每个阶段都可以分为设计、编码、测试和文档等四个主要工作,各分组完成各自相应的任务,项目实施期间,学生要学会利用信息化工具进行查资料、读教材、互相学习交流来不断的修改和完善项目,使学生既达到了掌握知识,提高实际操作能力的目的,又充分体现了“做中学”的主导思想,教师仅对其中难点问题给予适当的提示和帮助,协助学生完成任务,在此过程中要突出学生的主体地位,要在教师的引导下,充分发挥学生的学习主动性和创造性。
实施期间各分组应对各子项目模块进行严格的交叉测试,测试结束后,各分组提交所有相关软件及文档,由教师随机将软件系统交叉试用,发现错误,反馈给相关分组进行修改、完善。测试环节主要是使学生开发出的Java软件作品尽量与商业化接轨,要求学生掌握Java软件从制作到发行的整个过程,培养学生软件质量意识,促进学生职业素质的培养。
4 Java项目的评价与总结
Java项目结束后,教师组织学生以分组为单位进行项目作品的展示,点评项目的优缺点,并对项目实施过程中出现的问题进行讲解,对出现的优秀作品应及时给予表扬,并让学生进行自评和小组互评,相互吸取作品中好的理念和方法,促使学生反思自己的思路和行为,提高学生JAVA应用的各项能力,激发学生的学习欲望和学习热情,增进学生学习的自主性、积极性和创造性。
四、结束语
信息化技术以崭新的现代化教育技术、自由的知识、新颖的方法已渗透到各个学科领域,在信息化教学中运用“项目驱动法”对计算机JAVA编程语言进行现代化教学,使得理论和实践有机地结合起来,学生在Java的教学过程中是积极的参与者,这种建立在建构主义教学理论基础上的新的教学方法,变传统的Java“教学”为“求学”、“索学”,整个Java教学过程以信息技术环境为平台,以项目的合理实施为主线,学生按项目所需知识自主组织学习流程,可以说,这种Java教学模式的运用,使学生不仅掌握了书本上的知识,而且通过针对性的Java开发项目的实践,提高了学生在真实的项目中分析问题和解决问题的能力,最大化激发了学生的学习主动性、积极性和创新性,培养了学生善于钻研和勇于创新的实践精神。
参考文献
[1]田晓玲,现代教育技术下教学模式的变革[J],石家庄法商职业学院教学与研究,2005(4)
[2]郑淑荣,项目驱动与非项目驱动的Java实验教学对比分析,教育科普,2011(9):61
[5]姚明,彭志平,李启锐,教学型本科院校计算机专业Java教学之我见,2011(4):51
Java程序设计课程实训设计 篇4
Java技术是计算机科学与技术相关专业培养的核心技能, 本课程设计是在《Java程序设计》课程上设置的, 在高职高专人才的培养中占有核心地位。它是巩固学生所学理论知识、培养学生动手能力并使理论与实际相结合的重要实践环节。
本课程设计的目的和任务, 是通过学生用Java语言设计一个完整的应用程序, 使学生综合应用所学知识完成软件的分析、设计、调试和总结, 提高学生对Java语言的综合应用能力和解决问题的能力。
二、实训教学方法手段和考核方法的设计
(1) 实训教学方法和手段
任课教师根据课程《网络程序设计Java》教学大纲中的重点内容, 给出相应的题目或项目, 指导学生完成任务。实训前必须制定好上机步骤, 弄清实训目的;要求学生掌握实训项目所需的知识、操作方法或步骤, 并写出详细的实训报告。
(2) 实训考核方法
通过设计答辩方式, 并结合学生的动手能力, 独立分析解决问题的能力和创新精神, 实训报告和答辩水平以及学习态度综合考评。
考核标准包括:
1. 设计与实训报告 (20%) ;
2. 程序的可用性, 实用性, 通用性, 可扩充性 (30%) ;
3. 学生的动手能力、综合解决问题能力、创新精神 (20%) ;
4. 答辩水平 (20%) 。
5. 态度和纪律10% (分为优、良、中、及格和不及格五档)
三、实训内容与要求
(1) java系统程序开发
资产管理系统、学生信息管理系统、电子商务系统、网络购物系统、网络聊天室、人事管理系统、选课系统、论文管理系统、新闻发布系统、考试管理系统、学生宿舍管理系统等。学生可以小组为单位任选其一完成。
(2) Applet程序开发
做一个广告屏, 显示一段文字, 如图1所示, 能够对文字的颜色、风格、字体、字号等修改。
要求:做成APPLET程序或APPLICATION程序;用AP-PLETVIEWER运行;能够在网页中运行。
(3) 游戏开发
1. 五子棋双人对弈
开发游戏性程序, 例如五子棋双人对弈程序、扫雷程序, 根据学生情况, 此部分为选做内容。
五子棋双人对弈程序要求:
(1) 按“重新开具”可以开始新的一局。
(2) 需提示当前该哪方下棋, 并提示已下棋子的信息。
(3) 一方赢时游戏结束。
2. 俄罗斯方块游戏。
说明:以上内容为模板内容, 其它题目也可自己设计, 但难度要相当。具体内容可根据实际由指导老师审定。
(4) 总体要求
1.对系统进行功能模块分析、控制模块分析正确;
2.系统设计要实用;
3. 编程简练, 可用, 功能全面, 具有较好的健壮性;
4. 说明书、流程图要清楚。
四、授课计划与学时安排
(1) 教师介绍本课程设计的目的、内容、要求、方法和安排。 (4学时)
(2) 学生消化信息、完成设计报告。 (6学时)
(3) 教师审查设计报告。通过审查的学生的设计报告, 然后调整确定实施方案。 (4学时)
(4) 学生完成课程设计的程序设计环节指导老师作必要的现场指导。 (20学时)
(5) 验收并简单考核。 (4学时)
(6) 撰写总结和实训报告。 (2学时)
五、课程设计指导教师
由主讲教师和实验指导教师共同承担。
六、课程设计地点
计算机中心机房或者学院专业机房
参考文献
Java课程设计报告 篇5
题目 学号 学生姓名
音乐播放器
201011621335 201011621329 200811621320
朱剑峰 薛文博 刘彬
联系方式 *** *** *** 所在专业 所在班级 指导教师 成绩 教师签字
计算机科学与技术
1103 刘思凤
课程设计时间:2013年6月1日 至 2013年6月25日 评语:
广东海洋大学本科生课程设计报告
目 录
摘要......................................................................................................................................2 1 绪论..............................................................................................................................3 1.1 1.2 1.3 1.4 2 2.1 2.2 3 3.1 3.2 课题背景..............................................................................................................3 课程设计目的......................................................................................................3 课程设计实验环境..............................................................................................3 课程设计要求......................................................................................................4 程序界面布局设计..............................................................................................4 功能分析..............................................................................................................4 系统功能结构图..................................................................................................5 模块功能设计......................................................................................................5 课程系统分析..............................................................................................................4
系统设计与实现..........................................................................................................5
3.2.1 “菜单栏”功能设计......................................................................................5 3.2.2 “动态音频播放进度显示”功能设计..........................................................9 3.2.3 “歌曲搜索”功能实现..................................................................................9 3.2.4 “歌曲播放/停止”功能实现......................................................................10 3.2.5 “列表展示”功能实现................................................................................11 4 系统优点与缺点........................................................................................................13 4.1 4.2 5 系统优点...............................................................................................................13 系统缺点...............................................................................................................13
系统开发过程............................................................................................................14 Myeclipse平台开发版本...............................................................................................14 NetBeans开发平台版本................................................................................................15 设计总结....................................................................................................................16
参考文献.............................................................................................................................17 附
录.................................................................................................................................18 关键代码..........................................................................................................................18
1、音乐解码函数(decodeMusic)........................................................................18
2、播放线程类(class PlayThread).....................................................................20
3、控制滚动条类(class RunSlider)...................................................................21
广东海洋大学本科生课程设计报告
摘要
JAVA是目前最流行的软件开发语言之一,称为网络上的“世界语”。JAVA适合开发基于多媒体、与平台无关、用面向对象的方法进行的基于Internet、Intranet、Extranet的Applet和应用程序。它具有简单高效、面向对象、不依赖于机器结构的特点,支持多线程、分布和并发机制。用JAVA开发的应用软件在可移植性、健壮性、安全性等方面大大优于已存在的其他编程语言。
JAVA是一门包含多种知识的学科,提供了丰富的类库,能最大限度地利用网络。JAVA可广泛用于面向对象的事件描述、处理面向对象的企业型的应用开发,还应用于Internet系统管理、Web页面设计、Internet可视化软件开发等方面。在学习的过程中我学到了许多以前没有学到的概念和新鲜资讯。运用这些知识可以完成老师交给我的课程设计任务。这次老师让我们自己拟订题目,给了我们很大的想象空间。我们自选了一个音乐播放器的课程设计题目。
本小组之所以选择做音乐播放器,全赖于本小组成员均对音乐有浓厚的兴趣,虽热衷于听音乐,但现在网上流传的音乐播放器还不能满足我们这些发烧友,像高清音乐等,这些高品质的作品若在现流行的播放器上运行,这只能做普通音乐文件“享用”。话说如此,因本小组开发能力有限,课程比较多,时间所限,以至暂且把音乐播放器开发到version0.9。主要功能还未能达到我们想要的境界。
小结一下,本小组的播放器所具备的功能有如下,添加音乐,删除音乐,搜索音乐,更换播放器皮肤,更改播放模式等。(详见2.2节)
本次设计的播放器在具备基本功能的基础上,还具有很强的扩展性,如歌词导入,可播放音乐类型的增加等等这些还未实现的地方我们都提供了许多接口,以便日后做修改或增加功能所用。
能够具备一个属于自己的播放器确实是一件非常高兴的事情,能够一边开发一边享受音乐的熏陶更是一件难得可贵的经历,愿此摘要能让读者感受得到笔者的兴奋与成功。
广东海洋大学本科生课程设计报告
音乐播放器
任务分工
系统设计与代码实现:朱剑峰 系统测试与维护:薛文博 需求与功能分析:刘彬 指导教师:刘思凤 绪论
1.1 课题背景
随着社会电子音乐文件的与日俱增,作为现在最流行的音乐文件*.mp3,*.wav文件的数量和规模也在比以往的任何时候要多,不论是电台DJ需要使用方便而有效地管理自己所使用的音乐文件,还是个人。在计算机日益普及的今天,若采用一套有效的音乐播放器。将自己所收藏的大量的音乐文件能随时随地的播放,这将方便于众用户听音乐的需求。通过使用本音乐播放器能为音乐爱好者带来意想不到的收获。
1.2 课程设计目的
《应用软件开发实习》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《应用软件开发实习》课程后,进行的一次全面的综合训练,程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
1.3 课程设计实验环境
程序运行在安装有windows操作系统的计算机上(台式机和笔记本),兼容windows 2K/XP/Vista/7/8 计算机硬件基本要求(仅供参考): 1.2.3.CPU:1G; 内存:512M.; 显卡:256M显存;
文件播放:需要安装有声卡、要求安装有语音库。
JAVA程序设计语言及相应的集成开发环境,Myeclipse和Netbeans开发工具。
广东海洋大学本科生课程设计报告
1.4 课程设计要求
按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。课程系统分析
2.1 程序界面布局设计
(1)创建一个JFrame类,类名为MyPlayer类。
(2)向对话框中添加JSlider控件、JList控件、JLabel控件、JJToggleButton控件、MenuBar菜单、JPanel容器、JToolBar容器以及JScrolPanel容器。
(3)设置所添加的控件的属性,以及使用Java的界面风格,本设计共使用了6种Java 的不同界面风格。
2.2 功能分析
MyPlayer播放器主要对常用Windows音频格式的文件实现播放控制: 主界面功能
菜单栏功能
添加音乐;
添加音乐文件(即导入一个或多个音乐文件至列表当中); 添加音乐目录(即导入文件夹中所有的音乐文件至列表当中); 控制;
随机播放; 顺序播放; 单曲循环;
设置歌词(有待开发); 更换皮肤;
默认、深海世界、迷人金属、香韵咖啡、骇客帝国、浪漫满屋(均为java的界面风格)
关于;
广东海洋大学本科生课程设计报告
帮助(记录作者的相关信息以及软件开发的日期);
动态音频播放进度显示;
正在播放歌曲在顶层的显示
播放歌曲的时间长度的显示以及正在播放时间的长度的显示 滚动条随播放状态改变显示 歌曲搜索功能;
根据关键字搜索对应的歌曲; 歌曲播放/停止功能;
上一首;(播放上一首歌曲并根据播放模式来选择) 下一首;(播放下一首歌曲并根据播放模式来选择) 播放/停止;(播放或停止歌曲)
双击播放/双击停止;(在列表中对指定歌曲的操作) 列表展示功能;
隐藏/显示列表; 移除单个音乐文件; 移除所有音乐文件;
显示当前歌曲数目,播放模式,皮肤情况; 系统设计与实现
3.1 系统功能结构图
MyPlayer播放器的功能结构图如图3-1。
主界面功能菜单栏功能动态音频播放进度显示歌曲搜索功能歌曲播放/停止功能列表展示功能
图3-1 主界面功能图
3.2 模块功能设计 3.2.1 “菜单栏”功能设计
“菜单栏”功能结构图如图3-2-1。
广东海洋大学本科生课程设计报告
菜单栏功能添加音乐添加音乐文件添加音乐目录控制更换皮肤关于随机播放顺序播放单曲循环种皮肤图3-2-1菜单栏功能结构
6帮助 3.2.1.1 “添加音乐”功能实现
当点击“添加歌曲/文件夹”选择“添加本地歌曲”或“添加本地歌曲文件夹”的时候,这时候会触发这两个JMenuItem事件,调用了open()函数(opendir()函数),即将选中的音乐文件(或文件夹内所有音乐文件)的信息(名称与路径)放入nameVector 和 urlVector 当中。并修改listCount的值,显示歌曲的总数,最后将nameVector的所有内容放入list列表当中。如图3-2-1-1。
图3-2-1-1(左上)选择操作,(左下)选择目录,(右下)列表显示
广东海洋大学本科生课程设计报告
3.2.1.2 “控制”功能实现
当选择“控制”功能的任意一项,则会使全局的chosenMethod整型变量的值根据选择的项赋对应的值,值域为1(随机播放)、2(顺序播放)、3(单曲循环)。因播放器的播放功能是一个while(true)的循环,每当播放歌曲时候,播放前会由函数chooseNextSong()根据chosenMethod的值来选择下一首歌是那一首。
如果值是1,则会由[0,listCount(列表歌曲总数)],获取随机数,再根据play()函数播放;如果值是2,则根据chosenIndex(当前播放歌曲号),直接加一,再根据play()函数播放;如果值是3,则chosenIndex(当前播放歌曲号)的值不再修改,再根据play()函数播放;如图3-2-1-2。
图3-2-1-2(左上)选择操作;(左下)随机播放后歌曲序号,(此处为后台显示),起始播放第1首歌,下一首歌为第295首歌曲;(右侧)为列表显示,指向对应歌曲,并且列表底下显示“随机播放”
3.2.1.3 “更换皮肤”功能实现
当选择“更换皮肤”功能的任意一项,则会触发对应事件的发生,调用函数loadskin1()或loadskin2()等等。此时会调用LookAndFeel的类,指定java包含的皮肤风格。Loadskin1()对应“默认”,loadskin2()对应“深海世界”等等。
选择皮肤后,主界面底下会显示对应的提示,如选择了“浪漫满屋”,地下就会显示 “皮肤:浪漫满屋”。如图3-2-1-3所示。
广东海洋大学本科生课程设计报告
图3-2-1-3
(左)选项显示,(右)换肤后主
界面情况。
3.2.1.4 “关于”功能实现
当选择“帮助”功能时,则弹出信息窗口,提示本软件的开发时间与开发人员相关信息。如图3-2-1-4所示。
图3-2-1-4
广东海洋大学本科生课程设计报告
3.2.2 “动态音频播放进度显示”功能设计
当歌曲播放正在播放时,则顶层“正在播放”处会显示歌曲的名称,当歌曲名称过长时候,超长部分会用省略号显示。
同时会根据歌曲的格式,得到歌曲的长度,并显示在歌曲的右侧的JLabel fileTime中;另外会另起一个线程RunSlider来控制计时功能,每1秒钟,滚动条左侧JLabel runningTime 会根据播放的时间来修改,滚动条PlayerSlider则会每秒钟根据runingTime的值来移动。如图3-2-2所示
图3-2-2
正在播放歌曲中的动态播放进度显示。
3.2.3 “歌曲搜索”功能实现
在搜索栏中输入关键字,在回车确认,系统就会调用seachMusic()来搜索与关键字吻合的歌曲,并将其放入临时的Vector tmpName当中,并显示其到list列表当中。如图3-2-3-1
在临时的列表中选择所需要播放的歌曲,双击播放,同时临时列表消失,回复原来的列表,即导入nameVector的数据到list当中。
当点击“X”按钮,若还在临时列表当中,则会清除临时列表并且恢复原来的列表;若已经恢复到临时列表,则搜索框中会返回提示“请输入搜索关键字...”。
图3-2-3-1(上)搜索“陈奕迅”的歌曲
(下)取消搜索后,搜索框的内容
广东海洋大学本科生课程设计报告
3.2.4 “歌曲播放/停止”功能实现
“歌曲播放/停止”功能结构图如图3-2-4。
歌曲播放/停止功能上一首下一首播放/停止双击播放/停止
图3-2-4 “歌曲播放/停止”功能结构
3.2.4.1 “上一首”“下一首”功能实现
当点击“上一首”的按钮时,会根据按钮事件,若chosenMethod(播放方式)的值为1(即随机播放)则系统会调用chooseNextSong()来随机选择歌曲号来播放下一首歌;若chosenMethod不为1,则会调用previousMusic(),对chosenIndex(当前播放歌曲号)减一,再调用play()函数播放上一首歌曲。
当点击“下一首”的按钮时,会根据按钮事件,若chosenMethod(播放方式)的值为1(即随机播放)则系统会调用chooseNextSong()来随机选择歌曲号来播放下一首歌;若chosenMethod不为1,则会调用nextMusic(),对chosenIndex(当前播放歌曲号)加1,再调用play()函数播放下一首歌曲。
3.2.4.2 “播放/停止”“双击播放/停止”功能实现
当点击“播放/停止”的按钮时候,若点击了“播放”,则会显示“停止”,同时会对列表正在选中的歌曲进行播放。同时会触发“动态音频播放进度显示”功能(3.2.2节所介绍),更改或增加播放信息;
若点击了“停止”,则会显示“播放”,同时会对当前播放的歌曲进行停止,同样会触发“动态音频播放进度显示”功能,清除对应的显示。如图3-2-4-2
广东海洋大学本科生课程设计报告
图3-2-4-2(左)“播放”
(右)“停止”
3.2.5 “列表展示”功能实现
“列表展示”功能结构图如图3-2-5。
列表展示功能隐藏/显示列表移除音乐文件显示列表信息
图3-2-5 “列表展示”功能结构
3.2.5.1 “隐藏/显示列表”功能实现
当点击“显示列表/隐藏列表”的按钮时候,若点击了“显示列表”,则会显示“隐藏列表”,同时触发该事件,将原来的JFrame大框架的长度减少440个单位;
若点击了“隐藏列表”,则会显示“显示列表”,同时触发该事件,将原来的JFrame大框架的长度增加440个单位。
隐藏与显示列表这一功能虽然非常简单,但其重要性不可忽视,对于现在许多用户对音乐播放器的要求,就如自己的手机或着MP3一样,小巧、灵活、精致,至此这一项功能对于本小组一开始的设计就算是一个亮点。如图3-2-5-1所示。
广东海洋大学本科生课程设计报告
图3-2-5-1(左)隐藏列表,(右)显示列表
3.2.5.2 “移除歌曲”功能文件实现
当用鼠标对着列表的音乐文件右键的时候,会弹出两个选项“移除歌曲/移除所有歌曲”。
当选择“移除歌曲”,则对所选择的音乐文件从列表中移除,即事件的触发调用了deleteSingle()函数,将对应的项从列表中移除,从nameVector中移除,从urlVector中移除;
同理当选择“移除所有歌曲”的时候,事件触发调用deleteAll()函数,将列表清空,将nameVector中的元素清除。
以上两者运行过后均会更新主界面底层“歌曲数目”,并且停止正在播放的歌曲。
图3-2-5-2右键列表后出现的选择项
广东海洋大学本科生课程设计报告
3.2.5.3 “显示列表信息”功能实现
由“添加音乐”功能(3.2.1.1节)调用的open()、opendir()函数,会将保存在nameVector中的内容导入列表当中。当双击列表中的歌曲的时候,如果歌曲正在播放则会停止,如果播放器没有进行播放,则双击后就进行播放。
当我们对着列表右键时,则会弹出列表,“移除歌曲/移除所有歌曲”,详见(3.2.5.2节)系统优点与缺点
4.1 系统优点
1、windows界面风格可选择性,如上如所述,本音乐播放器具有6种皮肤可以更换。这大大满足了一个娱乐性的软件的需要,并且皮肤起名也符合用户的感官需求,像“深海世界”、“浪漫满屋”这些贴切而休闲的词汇更能吸引用户对播放器的使用。
2、播放方式可选择性,对于喜欢听音乐的用户,会根据自己的需要选择一定的顺序来听音乐。
3、列表隐藏的功能,符合大众播放器的功能,将播放器的界面弄得小巧而精致,即使隐藏了列表也不妨碍主要的播放器功能。
4、搜索功能,随着网络的发达,音乐歌曲随处下载,人均播放列表的歌曲数目数以百计,这时候搜索功能就显得十分重要。本播放器根据关键字可以对列表进行搜索,并可以显示搜索后的列表,同时临时的列表不会缩减播放器功能。
4.2 系统缺点
1、本系统主要代码均在一个文件当中MyPlayer.java当中,由于本小组是用netBeans7.2.1开发平台开发的,对开发平台尚未了解,故暂且没有将代码弄得更具有可读性。
2、本播放器还缺少暂停功能,在开发的最后版本(Music_Player0.9fornetBeans)还在改进当中。期待1.0版本对此功能的实现。
3、本播放器对音乐文件的选择,仅仅.mp3文件以及.wav文件可播放。针对decodeMusic()解码函数的改善,尚未能解决。
4、本播放器缺少歌词设置、显示功能。由于本小组对播放器的主界面还未想到一个满意的设计,所以歌词的实现暂且没有实现,待界面设计得灵活的时候,再添加歌词的功能。
广东海洋大学本科生课程设计报告 系统开发过程
Myeclipse平台开发版本
Version 0.1
1、菜单栏
*文件包括“打开文件”“打开目录”“退出程序” *控制-随机播放-顺序播放-单曲循环-设置歌词 *更换皮肤
*帮助-关于
2、上一首、下一首、停止/播放、隐藏列表4个button
3、帮助显示-关于 消息框。
Version0.2
1、能打开文件,显示文件名称在下面的框内,多个文件显示在框内!
2、文件-退出程序
实现
3、能够显示列表与隐藏列表
Version0.3
1、双击能够播放
2、暂停 跟 继续
新增
1、双击整个title 换成为歌曲名称 问题
1、隐藏列表/显示列表 list 会缩水
2、filedialog 没有选择任何文件 直接关闭会出现错误!(verson0.4中已解决)
3、双击空的列表也可以开始(version 0.6for netBeans 已经解决)
Version0.31(Version0.3崩溃)
Version0.4
1、上一首,下一首 能够在列表中显示
2、上一首 下一首播放功能 新增:
1、打开文件可以多选
2、打开目录 可以把整个目录里面的MP3、wav文件导出在列表中。
问题:
1、双击 第一次 是开始,第二次 是停止(相对于同一首歌,相对于其它歌会停止,也不播放)(version 0.6for netBeans 已经解决)
2、播放完一首歌后,不能自动往下播放。(version 0.5forneatBeans 已经解决)
歌曲不能删除(version 0.6for netBeans 已经解决)修改:
1、“打开文件”“打开目录”分别换成 添加本地歌曲,添加本地歌曲文件夹
Version0.5
1、皮肤(简单的颜色或者图片)
2、更换皮肤-可供选择
修改:
1、项目已经转至netbeans平台上开发,并明明为Music_Player0.5forneatBeans 新增:
1、快捷键 添加歌曲/文件夹 添加了快捷键 和 关于 加了快捷键
广东海洋大学本科生课程设计报告
Version 0.6
1、播放模式
2、删除功能 问题:
1、播放列表可以拉出来,播放到名字比较长的歌曲,list会变宽!(已经完全解决,删
除正在播放的label)
2、播放按钮,双击 未解决(version0.6已经修复),上一首
下一首 置顶时候,以及
随机播放时候 下一首上一首序号问题!(version0.6已经修复)。
3、菜单项 选中后,没有特别标志(解决办法
1、换另外一种菜单项
2、选中菜单项后 字
体等改变)
selected 方法!是改变修改字体的!(version0.7添加1中 解决)
4、删除 单首歌,序号不能改变(version0.7已经修复)NetBeans开发平台版本
Version0.7 for netbeans
1、添加底下: 歌曲数目、播放模式、皮肤的显示
2、歌曲名前面有序号
3、音乐时间,以及滚动条
4、”正在播放“显示的问题 Version0.8 for netbeans
1、添加搜索模块
2、添加搜索功能
3、搜索功能->搜索列表播放功能 Version0.9fornetbeans
1、修改播放器软件运行时的图标(将java的图标换成“射手”图标)
广东海洋大学本科生课程设计报告 设计总结
JAVA是目前最流行的软件开发语言之一,称为网络上的“世界语”。JAVA适合开发基于多媒体、与平台无关、用面向对象的方法进行的基于Internet、Intranet、Extranet的Applet和应用程序。它具有简单高效、面向对象、不依赖于机器结构的特点,支持多线程、分布和并发机制。用JAVA开发的应用软件在可移植性、健壮性、安全性等方面大大优于已存在的其他编程语言。
JAVA是一门包含多种知识的学科,提供了丰富的类库,能最大限度地利用网络。JAVA可广泛用于面向对象的事件描述、处理面向对象的企业型的应用开发,还应用于Internet系统管理、Web页面设计、Internet可视化软件开发等方面。在学习的过程中我学到了许多以前没有学到的概念和新鲜资讯。运用这些知识可以完成老师交给我的课程设计任务。这次老师让我们自己拟订题目,给了我们很大的想象空间。我们自选了一个音乐播放器的课程设计题目。
课程设计的过程虽然是艰难而辛苦的,但是我却从中感到了快乐与欣慰。快乐是因为我以前对于JAVA的知识可以说是孤陋寡闻,但是通过这次课程设计我使自己的知识更加的丰富了,加大了自己的知识面。让自己的实力扩大了。所以我感到非常的快乐。欣慰是因为看着自己做出的课程设计得到了老师的认同,取得了成功。这次课程设计的整体过程是充实而满足的。
广东海洋大学本科生课程设计报告
参考文献
[1](美)埃克尔(Eckel , B.)著,《Java编程思想》(第四版)陈昊鹏译.一北京: 机械工业出版社,2007.6
[2] 刁成嘉 著,《UML系统建模与分析设计》,机械工业出版社,2007.6
[3] 朱喜福 著,《Java程序设计》(第2版),清华大学出版社, 2009.10
[4] 辛运帏 著,《Java语言程序设计》(第1版),人民邮电出版社, 2009.10
[5] 叶核亚 著,《Java程序设计实用教程》(第3版),电子工业出版社,2010.2
[6] 耿祥义,张跃平编著,《Java面向对象程序设计》.一北京:清华大学出版社,2010.1
广东海洋大学本科生课程设计报告
附
录
关键代码
1、音乐解码函数(decodeMusic)
解析:由于java applet播放声音,对应的格式只有一些原始格式如.au、.Wav、.Midi、.rfm格式,因此一下的解码函数就非常必要了,即将MP3等其它格式文件的音频等格式修改成系统能够实现的格式,并写入内存由此来实现播放功能。详细实现请阅读如下代码。
public void decodeMusic(AudioInputStream in){// 开始解码 MP3
AudioFormat format = in.getFormat();
AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,// 音频编码技术
format.getSampleRate(),// 每秒的样本数
16,// 每个样本中的位数
format.getChannels(),// 声道数(单声道 1 个,立体声 2 个,等等)
format.getChannels()* 2,// 每帧中的字节数
format.getSampleRate(), false);// 每秒的帧数和是否以 big-endian // 字节顺序存储单个样本中的数据
// 然后重新获取一个新的输入流,AudioInputStream decodeIn = AudioSystem.getAudioInputStream(decodedFormat, in);/**
* 源数据行是可以写入数据的数据行。它充当其混频器的源。应用程序将音频字节写入源数据行,这样可处理字节缓冲并将它们传递给混频器。
* 混频器可以将这些样本与取自其他源的样本混合起来,然后将该混合物传递到输出端口之类的目标(它可表示声卡上的音频输出设备)。
* */ SourceDataLine sdl = null;// 然后
DataLine.Info info = new DataLine.Info(SourceDataLine.class,decodedFormat);try {
/**
* AudioSystem :类充当取样音频系统资源的入口点。此类允许查询和访问安装在系统上的混频器
* **/
sdl =(SourceDataLine)AudioSystem.getLine(info);
sdl.open(decodedFormat);
} catch(Exception e){
广东海洋大学本科生课程设计报告
e.printStackTrace();} /** 指示该行是否支持特定类型的控件。*/ if(sdl.isControlSupported(FloatControl.Type.PAN)){
// FloatControl 对象提供对浮点值范围的控制
FloatControl pan =(FloatControl)sdl
.getControl(FloatControl.Type.PAN);
if(curPosition == Position.RIGHT){
pan.setValue(1.0f);
} else if(curPosition == Position.LEFT){
pan.setValue(-1.0f);
} }
sdl.start();int nBytesRead = 0;byte[] abData = new byte[EXTERANAL_BUFFER_SIZE];try {
while(nBytesRead!=-1){
// 文件流的读写
nBytesRead = decodeIn.read(abData, 0, abData.length);
if(nBytesRead >= 0){
sdl.write(abData, 0, nBytesRead);
}
} } catch(Exception e){
e.printStackTrace();
return;} finally {
// 通过在清空数据行的内部缓冲区之前继续数据 I/O,排空数据行中的列队数据。
sdl.drain();
sdl.close();}
}
广东海洋大学本科生课程设计报告
2、播放线程类(class PlayThread)
解析:本播放器只使用一个线程来实现歌曲播放的功能,若用户要更换歌曲或者停止音乐,则对线程重建,即杀死原线程再建立新的线程,其实现的效果还是跟原来线程一样。同时此线程包含了许多子功能,如更改播放模式,对“上一首”“下一首”显示“正在播放”等功能均在此线程上实现。详细内容请阅读如下代码。
class PlayThread extends Thread{
public void run(){
while(true){
try {
setInitShowing();//初始化滚动条以及计时label 的值
isStop = true;//标志状态,说明是停止了
filename =(String)nameVector.get(chosenIndex).toString();//取chosenIndex对应的歌曲名称
filepath =(String)urlVector.get(chosenIndex).toString();////取chosenIndex对应的歌曲路径
System.out.println(“我在播放:”+chosenIndex+“ ”+filename);//后台输出检测
/*设置“正在播放”的值,只输出前23个字符,以免超出长度,后面补...*/
String showName = null;
if(filename.length()>23){
showName = filename.substring(0, 23)+ “..”;
}else{
showName = filename;
}
showTileOfMusic.setText(“正在播放:”+showName);
File file = new File(filepath);
setTitle(filename);
list.setSelectedValue(nameVector.get(chosenIndex), true);
listIndex = chosenIndex;
stporplySongButton.setText(“停止”);//修改 停止/播放button的状态值
AudioInputStream in = AudioSystem.getAudioInputStream(file);//去音乐文件
AudioFileFormat aff = AudioSystem.getAudioFileFormat(file);//去音乐文件的格式(为了得到歌曲长度)
musicLength = aff.getFrameLength()/aff.getFormat().getFrameRate();//取音乐文件的长度
System.out.println(“我有那么长:”+musicLength);//后台显示,用于检测
setShowingTime(musicLength,fileTime);//显示总长度到fileTime label中
PlayerSlider.setMaximum((int)musicLength);//并且设置滚动条的最大值
isStop = false;//设置正在播放状态
hasStop = false;//设置正在播放状态
decodeMusic(in);//解码并播放
isStop = true;//播放完毕后设置回非播放状态
hasStop = true;
广东海洋大学本科生课程设计报告
chooseNextSong();//选择下一首歌返回while
} catch(Exception e){
//e.printStackTrace();
System.out.println(“刚才那首歌出错了!”);//如果出现错误,则显示直接跳至下一首歌
nextMusic();
}
}
}
}
3、控制滚动条类(class RunSlider)
解析:此类虽然简短,但其能动态实现滚动条以及播放时间的运动。其中setShowingTime()方法提供的接口十分灵活,能够对不同空间进行时间的控制,本播放器只对播放时间的两个JLabel实现了此功能,这大大提高了本播放器的可扩展性。详细内容请阅读如下代码。
class RunSlider extends Thread{
public void run(){
try {
musicCouter = 0;
while(true){
Thread.sleep(1000);//每秒钟滚动一次
musicCouter++;
PlayerSlider.setValue((int)musicCouter);
setShowingTime(musicCouter, runingTime);//转换时间并显示回去runingTime label
}
} catch(InterruptedException ex){
Logger.getLogger(MyPlayer.class.getName()).log(Level.SEVERE, null, ex);
}
}
Java技术综合课程设计 篇6
关键词:Java语言程序设计;面向对象;教学改革
中图分类号:TP3 文献标识码:A
1 引言(Introduction)
《Java语言程序设计》是高职院校计算机类相关专业的一门应用性较强的专业核心课程之一,它主要是介绍Java相关知识,包含了Java语言基础、控制结构、数组、面向对象的程序设计、字符串处理、异常处理、输入输出处理、多线程、图形用户界面设计、数据库连接等内容。Java程序设计语言是一种面向对象跨平台应用的程序设计语言,具有较强的通用性、简单性、面向对象特性、健壮性、可移植特性,在当前全球云计算的专业环境下,Java具备了非常显著的优势和发展前景[1]。根Tiobe开发语言排行榜统计,Java是近十年来世界范围内流行最广泛的开发语言之一[2]。
当前许多高职院校都开设了《Java语言程序设计》这门课程,如果还是使用传统教学方法教授该门课程,已经无法满足时代要求,如何让学生在整个教学过程中更好地掌握好Java编程能力,不断提高学生的自我创新能力,是当前我们教师面前一项急需解决的关键问题。因此应做好《JAVA语言程序设计》教学改革让学生更好掌握并综合运用该门语言。
2 传统教学存在的问题(The problems of traditional
teaching)
2.1 教学组织形式过于单一
前许多高职院校对于《Java语言程序设计》课程的学习安排都是先理论教学然后经过一定时间后进行上机实验操作,理论教学在多媒体教室完成,而上机实验操作在机房完成。从这种上课的形式来说,具有一定的优点。上理论课的时候可以让教师及学生分别注重理论知识的内容,上机操作的同时不但可以提高同学动手能力,还可以对理论知识进行强化。可是在实际的教学过程中,理论课与上机实验课的安排时间间隔过长,导致做实验的时候,许多同学基本已经遗忘了理论知识,造成上机实验效果较差。
2.2 师资队伍结构不合理,教师缺乏软件开发实战经验
目前许多高职院校的师资队伍存在着一定的不合理,许多教师都是来自刚刚毕业的研究生,他们具有较高的本专业科研能力,通过一定时间的学习,对本学科教学也具有了一定的素质能力,但是他们却对软件开发实战经验缺乏,而《JAVA语言程序设计》这门课程要求较强动手能力,要求具备一定的项目实战能力。如果缺乏这一点,那么教师在指导学生的上机实验教学方面,就会很难完成应用型人才实践教学要求[3]。
2.3 部分学生目标不明确,积极性不高
在整个《Java语言程序设计》学习过程中,发现部分学生对于该门课程的学习积极性不高,态度不明确。主要是由以下几个原因造成,一是《Java语言程序设计》课程相对其他课程来说,学习比较枯燥。Java语言学习没有捷径,只能一步一个脚印,掌握一定理论知识才能把实验做好,学习过程非常辛苦,部分学生忍受不了这种辛苦,不能端正态度,学习积极性急速下降。二是学生对Java语言学习认识欠缺。部分学生从本质上对Java语言学习认识不够,他们把该门课程当成为一门普通课程来看待,上课的时候认真程度不够,下课后又缺乏上机练习,经常抱着一种得过且过的态度,只要期末考试能通过就行。造成部分同学在上机时写不出简单的Java代码,即使能写出一些简单代码,但是花费时间过长。三是就业压力太大,现在许多高校都又计算机类专业,就业形势越来越严峻,是造成学生积极性不高的客观因素之一。
3 课程教学改革(The teaching reform of the course)
3.1 采用全机房教学形式,不断提高学生动手能力
将传统的教学形式多媒体教室+机房,改为全部在机房上课,传统的教学形式导致教师在上面讲,而学生只是在机械
性的听,不能让学生很好的掌握学习内容,教学效果较差。根据《Java语言程序设计》课程特点,讲“以教为主”的教学理念转变为“以学习者为主”的教学理念,去打破传统的理论、实验课的硬性划分。这种教学形式提供了实验、理论课一体的教学环境,保证了每个学生都有一台电脑,为学生的学习提供了较好环境,因为基本上教师每次模块任务教学内容都包含了理论与实验两部分。对于每次的教学重点难点,教师都辅以一些例子来讲授,教师在讲授理论部分后,可以马上让学生在机房进行相对应知识点的上机操作练习,通过这样的教学方式,可以不断巩固学生的理论知识,同时不但提高学生的动手能力。
3.2 培养学生积极性为出发点。
在具体教学过程中,教师可以抓住学生的兴趣点予以引导,比如许多学生喜欢游戏,那么我们教师可以从一些简单的游戏编程着手,进行详细讲解,结合知识点进行程序设计,不断调动学生学习积极性。
3.3 项目教学法
学生在整个的学习过程中是一个不断创造的过程[4],项目教学法是当前一种新型的教学方法,它要求学生和教师共同参与,学生在教师的全程指导下去处理一个完整的项目过程,所有学生在这个过程中能够积极主动掌握教学计划内的知识,教师安排学习行为,让学生能不断解决项目中遇到的各种问题,不断激发学生学习积极性。教师可以督促学生按时完成学习任务,相互携手合作并保持良好协作关系,项目教学法真正做到了以学生为中心的一种教学方法。
3.4 师资队伍建设
教师在整个教学过程中承担着重要角色,是学生学习的引导者、激励者,教师应该在上课之外,不断加强自身学习,掌握Java领域的最新技术,并且可以利用假期到企业锻炼实践,学习IT企业软件开发的各种技术,不断提高自身的实战经验,才能培养出具有创新能力、综合技能的高素质人才。
4 结论(Conclusion)
《Java语言程序设计》课程教学改革是一项非常深远,意义重大的工作,它要求我们整个教育工作者去不断的探索,去对教学模式不断改进来适应新时代的需求。本文对《Java语言程序设计》课程教学改革提出了一些建设性问题,通过实践教学探索,学生在学习积极性、掌握Java编程能力都有较大程度提高。
参考文献(References)
[1] Java语言百度百科.http://baike.baidu.corn/.
[2] Tiobe百度百科.http://baike.Baidu.com/view/4373007.Htm.
[3] 陈涛.《Java程序设计》教学思想与方法的探讨[J].电脑知识
与技术,2011(4): 2446-2447.
[4] 钟锡珍.Java程序设计课程教学方法的探讨[J].科技资讯,2011
(28):220.
作者简介:
李茂民(1983-),男,硕士,助教.研究领域:高职教育,计算
Java技术综合课程设计 篇7
关键词:JAVA语言程序设计,基于工作过程,面向对象,项目驱动教学法,教学做一体化
J A V A语言因为其简单性、面向对象、分布式、结构中立等特点,成为现在最重要的编程技术之一。相应地本门课也成为目前计算机类专业的一门主干课程,如何提高本门课的授课效果,使得学生的技能水平能够满足社会市场的需求,一直成为专业教师不断探讨的问题,在教育部16号文件《教育部关于全面提高高等职业教育教学质量的若干意见》中明确指出:“要改革教学方法和手段,融教、学、做为一体,强化学生能力的培养”,如何达到此要求,在《JAVA语言程序设计》的教学过程中,结合工作过程导向理论,笔者对本门课的课程设计进行了初步的探讨。
1、课程设计的指导思想
《J A V A语言程序设计》是一门实践性很强的专业课程,在课程设计中,应该遵循以下基本理念。
1.1 以工作过程为导向,培养学生参与建构工作世界的能力
工作过程是“在企业里为完成一件工作任务并获得工作成果而进行的一个完整的工作程序”。主要说明了三件事情:输入是工作任务,输出是工作成果,当中是一个完整的工作程序,工作过程系统化课程是相对于学科系统化课程而言的,强调的是工作过程结构完整。J A V A语言程序设计这门课程正好符合这一特点,
该课程主要培养“软件工程技术人员中,工作在一线的程序员当中的,J A V A面向对象编程人员”,而此岗位群所需技能和知识大致可分为软件开发工作过程技能和知识、程序设计工作过程技能和知识、面向对象编程语言技能和知识,这些技能和知识在实际软件开发工作领域中拥有很广的应用价值。所以在授课过程中,我们要研究以工作过程为导向的课程设计,以培养学生的适应能力转向培养学生参与建构工作世界的能力。做到课程就是工作,工作就是课程,学习的内容就是工作。
1.2 以学生为本,注重能力的培养
目前,还有很大一部分JAVA教师基本上还是采用顺序式、灌输式的教学方法,教学手段滞后,缺乏对学生独立分析问题与解决问题的能力的训练和培养,严重偏离了“以学生为本”的教学观念,而采用“任务驱动”的教学模式可改变传统的“教师教、学生听”的教学模式,要求学生在学习中起主体作用,教师在教学中起到组织、引导、控制、咨询的主导作用。以“学生为本”的教学模式可以充分发挥学生的自主学习能力、创新能力,最重要的是JAVA面向对象编程能力。
1.3 注重实践,采用“教学做一体化”教学模式
J A V A语言作为一门实践性较强的课程,在讲授时应当遵循“掌握基本理论、强化应用、培养技能”为重点,为了提高授课效果,我们可以采用实用、高效、操作性强的“教学做一体化”教学模式。将理论融于实践,课堂融于实践,将课堂搬到可进行实地操作的实验室,在真实环境中,教师演练操作、讲解技巧,学生及时实践,有助于学生对于知识点的理解和掌握。
2、课程目标
2.1 能力目标
2.1.1、熟练地运用JAVA语言进行面向对象的程序设计,并能编写小型应用程序;
2.1.2、培养良好的程序设计风格、编程和调试技巧;
2.1.3、培养学生搜集资料、阅读资料和利用资料的能力;
2.1.4、培养学生的自学能力。
2.2 知识结构目标
2.2.1、使学生进一步掌握面向对象程序设计的思想和基本理论;
2.2.2、熟练掌握JAVA的数据类型、流程控制语句和主要A P I函数的使用方法;
2.2.3、熟练掌握JAVA图形界面设计、布局管理和事件监听方法;
2.2.4、熟练掌握异常处理、线程和I/O操作等应用方法;
2.2.5、掌握利用Socket进行客户机/服务器程序的编写。
2.3 专业素质目标
2.3.1、培养学生的逻辑思维能力;
2.3.2、培养学生的团队协作精神;
2.3.3、培养学生的学习的主动性和独立性;
2.3.4、培养学生提出问题、分析问题和解决问题的能力。
3、课程设计的具体实现
本课程在充分进行市场调研与企业合作制定了符合市场需要的职业能力标准;按照职业能力标准制定符合高职生认知能力与过程的培养方案实现职业能力模块的划分与整合;依据培养方案制订考虑到学生能力培养及素质培养的教学内容、教学方法。
本课程按照软件工程师职业能力设置,将软件工程师核心职业能力分为四个层次:J A V A基本开发能力、面向对象与数据库开发能力、动态网站开发能力、常用框架应用开发能力。本课程对应于第一层次,主要培养核心职业能力:J A V A的基本知识、开发规范、测试能力;基本职业能力:团队协作能力。通过“教学做一体化”教学模式,以任务驱动及项目引导教学将各能力模块整合成为一个完整的课程架构。具体实现如下:
3.1 根据实际工作情境,提出典型工作任务,设计JAVA语言基于工作过程的学习情境
在本门课的讲授过程中,结合本课程的特点及相关知识点,我们可以以一个完整的C/S结构的局域网聊天室系统编程为主线,按照通常的软件工程工作过程分为需求分析、概要设计、详细设计和测试维护阶段,并且该聊天系统可以划分为用户登录界面和注册设计、聊天室的Web实现、聊天室组件布局和聊天室的健壮性处理、聊天室用户登录程序事件处理、用户聊天程序、聊天室文件传送和多用户聊天、聊天用户管理七个教学情境,每个子情境安排2~4个学时,整个教学计划按照基于工作过程来制定,JAVA语言中面向对象编程机制、异常处理、IO处理、JDBC、网络编程、多线程、GUI等核心知识点的教学都围绕着开发这个系统而展开。在学生实践操作过程中,可以练习计算器、记事本、学生管理系统等小型项目的开发,这样就使得该课程的教学内容表现为一个个真实的项目,各个项目又将以软件开发工作流程的形式展开,在教学过程中再现和模拟软件开发的工作过程。
3.2 教学过程中积极推行“项目导向,任务驱动”的教学模式
本课程以“工学结合”为切入点,提炼出以职业能力培养为特色的教学内容,突出技术实用性。充分考虑高职学生认知能力,对本门课中的局域网聊天系统中七个教学情境的讲解采用“任务驱动+启发式教学”的方法,通过“提出任务→分析任务→完成任务→边学边做→扩展提高”的过程, 体现出互动创新、提倡个性、重在应用、团结协作的教学风格,有效的提高了学生的实践能力和职业素质。
3.3 改革课程考核方式,注重过程考核和能力考核
改革考试考核方式,注重对动手能力的考核。除了采用笔试与上机测试学生的技能成绩外,在平时的项目完成度、代码规范度、团队合作能力也制定了观察点和评价标准,做到了“概念理解和实际操作相结合,知识掌握和能力培养相结合,技能掌握与职业素养养成相结合”的考核模式。在考核中加大操作技能考核的比例,使学生在学习中既注重理论学习,更注重实际操作的训练,在考核过程中,按照理论30%、实践70%对学生进行评分。
4、结束语
基于工作过程的JAVA语言教学模式可以在教学过程中再现和模拟软件开发的工作过程,提高学生的实践能力和职业素质,采用“项目导向,任务驱动”的教学模式可以使学生在完成任务的过程中发现问题、解决问题,不断积累经验,提高自己的编程能力,积极、主动地构建自己的知识结构,以获取最好的教学效果。
参考文献
[1]姜大源.职业教育学研究新论[M].北京:教育科学出版社.2007.
[2]徐国庆.实践导向职业教育课程研究:技术学范式[M].上海:上海教育出版社.2005.
Java技术综合课程设计 篇8
1《Java程序设计》的课程设计
通过广泛调研, 在充分了解Java程序员的工作任务的基础上, 并参考程序员国家职业标准制订了本课程标准。课程设计编制了三种类型的教学载体:JAVA简单应用开发、基于数据库的桌面信息系统设计、JAVA网络应用程序设计。目的在于以工作任务为导向, 将教学内容融入到载体中实施教学。即由任务驱动学习, 打破传统学科体系的知识结构, 从根本上改变过去存在的学生学习了各种技术后, 仍然不会使用这些技术进行真实软件项目设计的局面。
本课程标准在设计上突出体现职业教育的技能型和应用型特点, 着重培养学生的实践应用技能, 力求达到理论方法够用, 技术技能过硬的目的。
课程内容的选取是根据本门课的培养目标确定的。为了使知识目标、能力目标和素质目标得到落实, 我们构建了基于工资管理的桌面信息系统和推进式的不确定性的动态页面设计为主线的课程内容。把整个课程教学内容分成五个模块13个单元, 保证理论教学与实践教学融为一体。
五个模块13个单元的教学内容根据培养目标和载体进行了整合序化。表1是《Java程序设计》的教学内容与学时安排。
2《Java程序设计》的教学设计
本课程采用“教、学、做”合一的教学模式。以教导学、以做促学, 学以致用。把软件开发模式引入课堂, 把从企业聘请来的软件设计师引入课堂, 以真实软件项目为载体, 实行开放式教学。
本课程的教学方法主要采用项目教学法、案例教学法和任务驱动法, 分组讨论与启发引导相结合。结合各个单元的内容特点, 具体方法如下表2。
《Java程序设计》教学过程的展开是按照单元进行的, 各个单元的课时数不一定相同。各模块的课时安排如下:
模块一:Java程序设计基础 (12学时)
模块二:面向对象的程序设计 (24学时)
模块三:图形程序设计 (40学时)
模块四:高级应用 (40学时)
模块五:课程设计 (整周40学时)
合计:116学时+整周课程设计40学时
教学过程按照下列六个步骤进行:
第一步:展示效果。展示动态网页或基于工资管理的桌面信息系统, 在让学生建立感性认识的同时, 明确本单元的学习目标, 学习任务和需要掌握的内容。
第二步:讲解内容。剖析学习任务, 分解学习内容, 以载体为目标讲解各个知识点, 激发学生学习的热情和兴趣, 增强学生学习的主体意识和地位。以软件作坊为教学情境展开教学。
第三步:实践训练。训练学习编制程序模块的能力。让学生自己动手, 自己实践, 完成本单元的学习任务。学生在实践过程中, 采用分组讨论, 制订步骤的方式逐步实施, 老师起指导、协调、监督、验收的作用。
第四步:归纳总结。在学生实践的过程中, 既要注意过程的归纳, 也要重视结果的小结, 最后由教师进行总结。强调关键知识点和程序编制的注意事项, 勇于面对失败, 在失败中汲取教训, 养成良好的编程习惯。
第五步:巩固拓展。在学生完成本单元的设计任务后, 由教师和学生分别提出完善或扩展界面功能的问题, 然后由学生自行解决, 教师辅导。达到熟练掌握技能和拓展知识面的效果。
第六步:作业布置。布置作业的目的在于检查学生的学习情况和知识掌握情况。作业的来源有两个渠道:教师设计作业和学生自举作业。在作业中反应出来的个别问题通过答疑辅导解决、共性问题拿到课堂讲解。保证每一个单元的学习步步为垒。
其中模块一、模块二和模块四的第十二单元简化上列步骤。其它各个单元按照上列六个步骤进行教学。
《Java程序设计》的考核方式综合了平时、单元实训、模块实训、笔试和课程设计五个环节。囊括了过程性评价和终结性评价, 涵盖学生的态度、知识和能力, 突出实践动手能力考核。各个环节所占的比重和依据如表3。
参考文献
[1]中国高等职业院校计算机教育改革课题研究组.中国高职院校计算机教育课程体系.2007[M].北京:中国铁道出版社, 2007.
Java程序设计课程教学研究探析 篇9
1Java程序设计教学现状
1)课程安排:很多高校都是先开设C语言程序设计,然后开设C++,最后再开Java程序设计课程,其实最近几年C++应用的领域被不断地压缩,而且C++语法过于复杂,抽象理解困难,开发效率低,C++适合底层开发和追求软件极致运行效率的开发,不适合多数学生作为面向对象的首先语言和企业软件开发。Java继承了C++的优点,丢弃了C++中很少使用的、很难理解的、令人迷惑的特性。但是很多高校将Java教学安排在大三下或者大四才开设,课程开设太迟,不利于学生面向对象编程风格与思想的培养,也不利于后续Java课程的开设和项目实践。
2)教学方式:目前很多高校的计算机教学都在多媒体教室教学,这种教学方式通常是以PPT多媒体课件辅以板书形式的灌输式教育,并且上机课和理论课时间脱节,课程衔接不紧密,学生在上机课时已经忘记老师在理论课中讲解的知识点。
3)Java程序设计教材:据统计,目前高校的Java程序设计教材90%以上都以语法知识为主,书中例题也多以经典的算法及数学问题为主,课程缺乏与时俱进的例题,内容陈旧,知识体系不完善,没有真正实用的项目实战设计案例[2]。
2Java教学存在的问题
1)教师缺少项目实战经验:目前高校的教师队伍有很多来自博士、硕士研究生;他们毕业后直接走上讲堂,很多老师都没有经历过软件开发和大型项目实战,在指导学生实践动手能力方面比较薄弱[3]。在这一方面,教师应该积极参与国内外举办的相关软件开发会议,并积极的参与实际的项目开发,努力提高自身的软件开发水平和实践技能,更好的带领学生利用Java开发项目。
2)教学重理论,轻实践,理论与实践脱节:目前很多高校的Java课程教学理论课时较多,而上机课时较少,课堂上以老师教授为主,学生被动的获取知识的教学方式,课程内容序化,孤立了Java开发所需的一体化知识,课程的体系结构还是学科体系阶段,激发不了学生的学习兴趣。教学中忽视了上机课的重要性,上机课的练习大部分都是照抄书本的玩具式程序,上机的编程练习题也没有什么实用价值。
3)课程设置单一,没有连续性:目前很多高校对于Java仅仅开设了一门《Java程序设计》,鲜有开设J2EE、基于Struts和Spring框架的Java Web开发以及Android移动开发等后续课程[4],Java课程涉及的知识面很广,包括前导后续多门课程,构成一个完整的结构体系。如果没有后续课程的支持,导致学生无法系统全面的掌握Java技术,从而导致所学Java知识与社会实际需求脱节。
4)考核方式单一:目前很多高校的Java考核方式还是以传统的笔试考核学生,Java是一门对动手能力要求很强的计算机编程语言,笔试仅仅能考查学生对Java基础语法的掌握程度,而真正的动手实践能力是无法通过笔试测试体现的。
3Java程序设计教学改革思路
1)激发学生编程兴趣:
Java入门主要分为两个阶段:一是Java语法与OOP思想的领悟,二是JDK中各个Java类及相关技术(比如多线程、序列化等)的学习[5]。以“任务驱动”和“案例教学”相结合的方式,激发学生的学习兴趣,抛弃灌输式的课题教学。通过实战案例,系统的将Java各个知识点串联覆盖,引导学生掌握知识点的同时提高在软件开发中解决问题的能力。由于Java是Android的主要开发语言,因此学生在入门之后,可以进一步地学习移动开发,开发基于Android的手机应用,引导学生进入移动互联的时代,具有很强的实用性,这点往往是触发学生学习Java的强劲动力。例如可以让学生开发博客系统,搭建自己的blog网站;让学生开发查询课表的An-droid手机客户端。在这样案例驱动的安排中,学生能够充分的运用所学的Java知识理解实际问题和解决实际问题,从而夯实了理论基础,提高了实践能力,也可以积极持续的调动学生的编程兴趣。
2)加强师资队伍培养:
鼓励老师参加Oracle每年举办的Java专业培训和企业培训,关注Java技术发展和Android移动平台最新技术,鼓励老师多参与校企软件项目开发,既可以提高老师的Java实践技能水平,又能提高教师的收入,有了高质量的师资队伍,才能带出优秀的Java软件开发人才。
3)改革考核方式:
课程的考核可以采取做项目的方式,同时制定评价指标,对各项任务的完成情况、完成过程等进行目标量化[3],根据量化的成绩给学生打分。课程的考试也可以采用开放的方式:允许学生带任意资料,带电脑,带手机,也允许上网搜索……,程序设计这种注重实践与培养开发技能的课程,闭卷考试不能真正体现一个人解决问题的能力,在互联网时代,要学会搜索、筛选、利用和理解海量的信息。
4)组织学生参加Java编程竞赛:
组织学生参加社会各类软件开发和移动开发大赛,比如全国信息技术应用水平大赛、蓝桥杯软件设计大赛、大学生创新杯大赛等。通过参加比赛可以促进青年学生的学习兴趣,巩固所学Java知识在实际项目中的应用,同时培养学生在移动互联网领域的创意和创造意识,提升学生的创新创业能力。
4结束语
Java技术综合课程设计 篇10
1.1 多种教学手段相结合
多媒体教学有利于学生实时地、直观地观察到程序的运行结果和理解问题;而良好的多媒体课件, 可以使学生更容易抓住课程的重点, 在计算机教学中亦是如此, 因此, 多媒体适合Java语言程序设计课程的课堂教学, 大部分教师都会采用多媒体讲授本课程, 尤其是在讲授实例的时候, 多媒体手段更直观、方便。本文作者从事Java语言程序设计课程的教学工作多年, 在实践中多次与学生沟通, 发现学生对于多媒体教学方法并不完全接受, 有时候学生还出现对多媒体教学的抵触情绪, 这样不利于教学工作的开展。所以, 现代教学手段并不能取代传统的教学手段, 而应视具体的授课内容而定, 对于一些程序性的内容, 需要详解程序的原理、流程的, 多媒体授课不利于学生思维的跟进, 这样的内容还是应该在黑板上以板书的形式一步一步讲解, 才能达到更好的效果, 学生也认可这种方式, 这个时候就需要用传统的教学模式;而有些程序的实例和一些基本知识, 可以采用多媒体教学方法, 能更直观和生动地表达课程内容, 而且还可以增加课程的知识量。所以, 在实际教学中应注意多种教学手段相结合, 做到现代和传统的教学方法并用, 取长补短, 让学生学到所需的知识, 最终达到好的教学效果。
1.2 理论与应用相结合
软件开发企业需要大量基础的应用型人才, 而我们的教学的现状是“学”与“用”脱节, 导致学生为了“学”而学, 学到的知识无法尽快的应用到实际中, 出现了“有知识和学历却无法胜任岗位”的现象, 从而导致毕业生就业困难, 到了工作岗位难以胜任工作, 从而失去了高校教育的“学”是为了“用”的意义。本文从教师的课堂教学和学生的实践课两方面思考, 提出以下改进:
首先, 在课堂教学方面, 通过一些简单的实例, 向学生阐述了某种原理后, 学生会对原理有一定的了解, 但也仅仅是记住了一条“死”的规则, 至于, 为什么会有这样的原理、为什么需要这样的原理、什么时候会用到这也的原理不能理解, 因此, 还需要把原理性的内容扩展到应用层面上, 着力阐述原理的实际意义。例如, 在讲述Java关于内隐类 (也翻译作内部类) 的原理时, 通过简单的例子, 学生知道在Java中“内隐类的对象是由外围类对象来创建的”等基本规则后, 列举链表类与节点类之间的关系来说明内隐类的思想是与客观实际相符的;进一步可以出这样的一个题目:有如下两个接口I1和I2, 要求定义一个类A可以同时实现这两个接口。
由于I1和I2中的f () 函数存在冲突, 所以这样的要求是无法直接实现的。但是, 可以通过内隐类及类的组合的知识变相的实现:
显然, 利用内隐类可以解决这样的名称冲突问题;再进一步, Java中不支持多继承, 但可以通过内隐类来变相的实现多继承, 可举如下例子:
类D1利用了无名内隐类、类的组合, 变相的继承了B1、B2这两个类。至此, 学生对内隐类的意义有了更深入的认识, 不再局限于简单的语法规则上, 达到了学以致用的目的。关于内隐类的内容, 在Java语言程序设计课程中属于难点, 经过教师用这种教学方法的讲解, 大部分学生都能理解并掌握了内隐类的用法的精髓, 而不是仅仅记住了一条语法规则而已。
其次, 在教学过程中, 应侧重于培养学生利用面向对象的思想解决实际问题的能力。许多学生在学习基本理论知识后, 并不能很好的把面向对象的思想融入到实际问题中去, 表现在:不能根据需求抽象出合理的用户类;不能很好的处理类与类之间的关系;还有一部分人仍然用面向过程的思想解决问题, 有些学生定义类, 只是为了使用其中的主函数。根据这种情况, 在实践环节, 做出以下改革:
(1) 打破传统的“教师讲学生听而不动”的教学模式, 改变传统的“实践教学的实验内容与实际项目脱节”的教学内容, 采用实例教学方式, 把理论知识融于项目实例中, 让学生自己思考问题的解决办法, 在解决问题的过程中培养学生的开发实际项目的经验, 以提高学生的软件开发的能力。
(2) 在实验课的教学中, 教师与软件公司合作, 使用软件开发公司的一个实际的项目作为案例, 通过对项目的改造和精心设计, 使之每个功能模块能循序渐进地表达知识点, 用在学生的实验课中。把功能细化为多个有针对性的小规模的案例, 融进该堂课的知识点。在实验课中, 先给学生介绍该小规模的案例的实际需求, 让学生独立分析用户的需求, 然后让学生自己寻找解决问题的办法, 引导学生用学过的面向对象的知识解决问题。在这个过程中, 学生自己设计解决问题的方案, 并最终给出具体的实现办法和程序代码。如果学生遇到问题, 教师只是给出指导意见, 尽量让学生独立思考和解决问题, 并培养学生的实际项目的开发能力, 提高学生的动手能力, 形成"教师提出问题学生思考并动手解决问题"的教学模式。实践证明, 这种教学方法有很好的教学效果。
1.3 慎用对比的教学方法
有些高校的Java语言程序设计课程在C++程序设计之后开设, 也有很多高校直接把Java语言程序设计作为面向对象的入门语言, Java在基本语法、面向对象的机制上与C++既有许多相似, 也有许多不同。因此, 在Java课程教学中教师往往会采用对比的教学方法, 这样的对比应视学生的情况而定。如果学生对C++语言知识点掌握的熟练, 那么, 对比可以使学生更好地理解Java语言, 理解Java与C++语言的区别及各自的优缺点, 无论是对Java还是对C++都可以使学生的知识结构更加清晰明了。但是, 如果学生本身对C++, 语言并不是很熟练, 而在对比的过程中还要重新讲解大量C++的内容, 这样反而会使学生抓不住重点, 容易对一些相近内容造成混淆, 甚至造成整个知识结构的混乱。因此, 应慎用对比的教学方法。如果是上述的后一种情况, 在教学中, 就应当让学生主要先接受现有的知识, 当学生对新知识有了一定的理解后, 可以考虑在一些总结性的章节中进行对比, 这样会达到比较好的效果, 避免出现混淆两种语言的语法的情况。
2 教学内容的改革
2.1 实例简洁明了
很多Java课程的教材在阐述一些原理性内容时, 都会列举一些实例来说明问题, 这些实例大都命名规范、功能完整, 但比较繁杂, 学生对这样的实例不知从何入手, 抓不住重点, 注意力往往集中在一些无关紧要的细枝末节上, 有的看到后面忘了前面。在课堂教学中要避免列举此类型的实例, 而应选择结构清晰、功能简单, 能突出主要知识点的例子。在实际授课中, 由某一个简洁实用的实例出发, 遇到新的知识点, 就不断的改进同一个实例, 以说明新的问题。例如, 在讲解关于类的继承的原理时, 举例如下:
从这样一个简洁的例子出发, 根据新知识点的需要不断的添加新的内容, 来阐述新的理论, 做到教师的“教”和学生的“学”都循序渐进。
2.2 教学内容重点突出
在Java语言课程中, 教学内容的重点应放在基本语法、面向对象的机制上, 通过这门课程的学习, 让学生具有扎实的基本功, 为今后继续学习打下良好的基础。现在多数的Java教材、参考书中基本理论、基本知识的内容不足, 讲解不够详细;而将大量的篇幅放在了AWT或是SWING图形化的组件上, 这是极不合理的, 这些图形化的组件在内容上千篇一律, 无非是需要知道它们常用的方法, 所能识别的事件监听器, 因此, 完全可以只讲解一些典型的、常用的组件, 其它的可由学生自学完成。相比之下, 课程中关于类的一些基础知识、继承、重载、重写、多态、接口、内隐类等内容都渗透着最基本的面向对象的思想, 有些也是Java在面向对象机制中独具特色的内容, 对这些内容的深入理解、熟练掌握, 才能真正的提高学生的基本编程能力, 提高学生解决问题的能力, 提高学生对面向对象语言的运用能力。进而开阔学生的思维, 增强学生的创新能力。尤其是在以后的工作中, 更需要这种独立的、创新的解决问题的能力。否则, 在学生以后的深入学习和工作中会造成很大的障碍, 甚至连一些基本的代码都无法读懂。
2.3 注重培养学生的自学能力、自我解决问题的能力
教学中, 应该向学生讲述关于帮助文档的使用, 以便在平时学习遇到问题时, 可以不需请教老师, 自己解决;或是, 能够根据帮助文档自学新的知识, 提高学生独立解决问题的能力, 这会让学生在毕业后的工作中受益匪浅。无论在理论还是实验课上, 还要讲授一些调试程序的技巧, 丰富学生的调试经验, 这对提高学生的基本编程素质有很大的帮助。多数学生对于程序中语法错误能够自行解决, 但是, 对于逻辑错误往往不知如何下手, 这对以后的学习是不利的, 因此, 在实践环节中, 安排一些调试程序的内容是必要的。在授课过程中, 多给学生介绍几种方便使用的调试工具, 并讲授实用的调试技巧。
另外, 在教学内容上, 如果课程的计划学时充裕或者利用课外时间, 还应该适当的增加一些对Java体系结构、应用领域、核心技术、专有名词等应用性较强的内容的教学, 让学生受益于未来。
3 结束语
以上从教学方法和内容两方面提出了教学的改革措施, 主要针对高校的程序设计类的应用型课程, 并以Java语言程序设计课程为例进行阐述, 而理论较强或其它类型课程有待探讨。通过运用本文提出的改革的教学方法, 使学生既牢固地掌握了基础知识, 又能运用到实例项目中, 达到培养所需的应用型软件人才的目的。该文中提出的教学改革方法提高了学生的软件开发能力, 能尽快适应用人单位的需求, 提高毕业生的就业率。此教学改革方法已在大连水产学院计算机2006级学生中实施, 经调查反馈, 效果较好。
摘要:针对Java语言程序设计课程在教学过程中存在的一些问题, 提出理论和实践两方面的教学改革的建议, 旨在培养学生的独立编写软件的能力, 自己思考和创新的能力, 进而提高学生的就业竞争力。同时以大连水产学院计算机应用技术专业2006级学生为实践对象, 经实践证明, 该教学方法的效果比传统的教学方法有较大的提高。
关键词:教学方法,改革,计算机教学
参考文献
[1]张敏霞.程序设计语言课程教学方法改革的探索与实践[J].中国高教研究, 2004 (2) .
[2]刘昕, 徐荻秋, 郭惠玲.多媒体教学效果的问卷调查与分析[J].黑龙江教育 (高教研究与评估) , 2009 (6) .
[3][美]Bruce Eckel.Java编程思想 (第三版) [M].北京:机械工业出版社, 2005.
[4]李艳华.如何提高软件专业学生水平[J].中国科技信息, 2006 (6) .
相关文章:
奥尔夫音乐教学理念01-23
煤建筑业01-23
优质服务常态化措施01-23
由竹子联想到什么人01-23
制度完善日常巡查制度01-23
日常工作督导巡查制度01-23
四川公务员考试时间表01-23
消防日常巡查工作制度01-23
安全员日常巡查范文01-23