申报省级实验教学示范中心材料.pdf
28页申报省级实验教学示范中心材料 计算机科学实验教学中心典型多媒体课件简介 中心名称: 计算机科学实验教学中心 中心负责人: 刘弘 目 录 1、面向对象程序设计................................................................................................................. 3 2、编译原理................................................................................................................................. 8 3、大学IT................................................................................................................................... 11 4、网络应用程序设计............................................................................................................... 16 5、JAVA编程思想 ..................................................................................................................... 21 1、面向对象程序设计、面向对象程序设计 一、历史沿革 本课程自 80 年代以来,随着计算机科学与技术的发展,其教学安排和授课内容经过了多次变化: 80 年代初,个人计算机(PC)出现,Basic 语言成了 PC 机的主要编程语言,Basic语言取代 ALGOL60 成为教学语言。
80 年代中,根据国外技术进展,Pascal 语言取代 Basic 语言,成为贯穿本科计算机课程的主要教学语言 80 年代末 90 年代初,C 语言成为主流软件开发语言,根据国外教学情况,把《高级语言程序设计》 课程放到本科第一学期, 讲授 Pascal 语言, 第二学期讲授 C 语言 (选修) 90 年代后期, 我们采用 C 语言代替 Pascal 语言 高年级开设面向对象程序设计(讲授 C++,JAVA)课程 采用 C++语言进行高级语言程序设计的教学效果是非常明显的经过近十年的教学努力,使大批本科生打下了良好的面向对象程序设计基础,其他专业课程的教师纷纷反映学生的程序设计能力有明显的提高而各个专业的毕业生中,许多人成为国内外著名软件开发企业或部门的技术骨干,为山东师范大学信息学院赢得了良好的声誉 二、教学内容 (一)、总体思路 1、结合本校的办学定位、人才培养目标和生源情况,说明本课程在专业培养目标中的定位与课程目标 本课程目标是为大学生将来结合其专业应用计算机编程打下一个扎实的基础 面向对象程序设计为理工科大学生通识教育课程,主要针对计算机专业和要求高的非计算机专业的理工科大学生开设。
本课程包含基础理论和上机实践,重点培养编程能力,包含了部分数据结构和软件工程知识 每年学生数在 500 人以上 2、知识模块顺序及对应的学时 授课时数 36 学时,上机实验 36 学时 知识模块顺序及学时分配:C++基础知识,4 学时;基本控制结构程序设计,6 学时;数组与指针,4 学时;函数,4 学时;类与对象,6 学时;继承与派生,6 学时;多态性与虚函数,4 学时;输入/输出流类库,2 学时;实际授课共 36 学时 3、课程的重点、难点及解决办法 本课程难度大,被学生列为最难学的课程之一我们的改革目标就是要使之不太难基本方法是抓重点,教学上有重点与没有重点是大不相同的,“伤其十指,不如断其一指”平均使用学生的精力和学时是不可取的 重点是面向对象 C++程序设计的关键技术,包括完善的封装、派生、多态和模板,在构造函数中动态分配资源、在析构函数中释放资源和异常处理,这是面向对象的 C++程序设计的精髓所以在教学中不是泛泛介绍面向对象的 C++的语法和框架,而是突出关键技术“精讲多练”,学生可花较少的精力获得较强的编程能力 其次,要正确处理编程细节与大局观:教学中先讲解怎样用 C++语言描述算法,要讲清编程的细节。
要求学生学会先分析算法,再画流程图,最后进行编程教师在课堂教学时应多做控制台应用程序设计全过程演示之后是过渡阶段,对编程的细节的讲授随教学推进而逐渐淡化,对程序的整体掌握的要求逐渐加强最后表述算法的细节基本留给学生自己看,重点讲解程序整体的构造一方面提高学生的自学能力,另一方面引导学生的编程的大局观,使学生的编程能力上一个台阶 4、实践教学的设计思想与效果 对应精讲多练,实验安排相当丰富以 Visual C++ 6.0 为集成开发环境,共 29个(必做 26 个,选做 3 个)教学同步实验上机实验 36 学时,突出编程能力的培养 本课程重在动手能力的培养,是一门实践性很强的课程,仅在基础教学中“精讲多练”还是不够的,本课程一直设有课程设计实践教学与基础教学各有侧重,互为补充这样基础教学可以专攻一项,教学难度也可以下降本课程在基础教学中采用Windows 平台下的控制台方式,以突出基础编程能力的培养在实践部分比较全面地学习图形界面编程(现选用标准的 Windows 编程,MFC),并在课程设计过程中应用之 课程设计采用研究性学习方法,由学生分组在教师(研究生)指导下自选题目,调研并自定内容,强调参与开发的全过程。
指导书中也给出一些选题作为学生的指南这样的课程设计培养学生的创新精神和团队协作精神 (二)实践(验)课教学内容 1、课程设计的思想、效果以及课程目标 实践教学是对一些知识模块讲授完后给出的实验教学,对于课程实验,在设计实验题目时,要结合课堂讲授章节的知识要点,同时与实际密切联系,另外要有一定的趣味性通过这样实验题目的练习,学生能够快速地掌握讲授的知识,效果良好 课程设计题目的设计要体现一定的综合性、应用性和趣味性通过课程设计使学生对 C++课程有了整体的理解,对一些实际问题能够进行具体的分析、设计并给出相应的答案,进一步达到了开设此门课程的目的 2、课程内容(详细列出实验或实践项目名称和学时) 基本数据类型、运算符和表达式(2 学时)、选择和循环结构程序设计(2 学时)、函数应用(2 学时)、作用域和多文件结构(2 学时)数组(2 学时)、结构体与指针 (2 学时)、类和对象(2 学时)、继承(2 学时)、运算符重载(2 学时)、多态性(2 学时)模板(2 学时)、输入输出流、文件和异常(2 学时) 3、课程组织形式与教师指导方法 利用计算机的特点对 C++程序设计实验进行整合,实验内容覆盖面广,类型多样,并可对实验内容进行即时更新,使学生上机实验的目的性强,内容丰富,可大大改善实验效果,培养学生实际编程能力和自学能力,并方便学生上交实验作业和报告,同时也减少教师指导学生实验的工作量。
在实验课程上,首先,分配实验任务,并对任务进行简要讲解,说明实验的目的,关键知识点,时间要求,结果形式等然后,学生在机房中进行实践(验),教师对学生的实验进度、学生提出的问题进行指导与解答 4、考核内容与方法 考核实践(验)课程布置的内容,主要通过课堂验收和上交实验报告的方法在验收时,向学生提问,主要的设计思路、实现方法等内容 5、创新与特点 以实验室和实训基地为主,按照课程大纲要求,分解各项应用能力,并将细化后的能力落实到各个实践环节中,然后按照“问题提出”、“算法设计”、“程序结构”、“语言实现”、“回溯概念”的顺序循序渐进地安排到各项实践中去开放式是指学生在规定的基本技能达到要求的基础上,可以对工程应用技能的训练进行选择(1.自主选题 2.教师指导选题 3.结合具体工程项目选题),并可根据自身的情况进行多项选择在校期间,实验室和实训基地对学生长期开放并对掌握的每一项技能进行开放式实践能力考核 三、教学条件 我们自编教材《面向对象程序设计》系 21 世纪高等院校计算机科学与技术系列教材教材强调实际编程能力的培养,教材包括纸质部分和电子部分,其的特色如下: 1.体现“以学生为本”的教学理念,做到实事求是。
对教学内容做了精心取舍,用更少的学时来更好地培养学生的能力对于不同基础和能力的学生群体,采用不同的教学方法与教学方案,教材也明确划分了不同层次的要求 2.教学体系新包括教学内容和教学思想都与时俱进 教学内容按 C++国际标准 ISO14882 安排,在教学上重视编程能力的培养,包含基础教学与实践教学,其中课程设计采用研究性学习方法进行小型软件开发 3. 提出了围绕面向对象 C++程序设计的关键技术精讲多练的教学思想, 降低了 C++教学的难度 无论是学生还是教师对面向对象 C++程序设计教学的第一印象就是太难通过教学实践,深入研究教学对象,深入研究教学内容后,我们提出围绕面向对象 C++程序设计的关键技术精讲多练的方法为更好地实现精讲多练,配合课堂教学的同步实验数倍于常见的教材 4.配有大量电子教辅资料,教学内容随时更新 提供了可自由下载的数十个电子教辅资料,包括教学大纲、考试大纲、电子教案、教学指导书、源程序、习题和实验练习解答等等,帮助实现预定的教学计划,并可及时更新教学内容 学生上机实践环节在校信息技术中心进行学生上机实行网络化管理,可由网上获取实验资料,网上提交实验结果在实践教学环境也尽量体现以学生为本的思想。
四、教学方法与手段 教学方法提倡讲重点、讲关键技术,其他留给学生自学,留给学生通过实验来掌握教师主要起引导的作用,让学生不走或少走弯路 首先要围绕关键技术精讲多练:强调掌握面向对象 C++的关键技术与之有关的例题精讲,无关的泛读我们在进入类与对象教学时就将运算符重载列为第 1 个重点案例要求学生能熟练应用多态(重载和超载),熟练应用模板,熟练应用派生习惯在构造函数中动态分配资源、在析构函数中释放资源和异常处理的方式围绕关键技术教学是精简学时的关键为了实现精讲多练,安排了大量同步实验 其次,提倡庖丁解牛的方法:面向对象程序设计的原代码通常比较庞大,原因是数据与对数据的操作封装在一起原则上包含的操作要全面,正是众多的成员函数使学生认为自己面对的是一个庞然大物,吓也吓蒙了教师应该指出成员函数是一个个独立的操作,每一个成员函数都是简单的要求学生做到目无全牛,也就是理解面向对象的程序是一个一个函数来编的 第三,正确处理编程细节与大局观:前期教学中侧重于讲解怎样用 C++语言描述算法,清编程的细节要求学生学会先分析算法,再画流程图,最后进行编程特别是在“基本控制结构程序设计”和“函数” 的教学中要严格贯彻这一要求。
之后是过渡阶段,对编程的细节的讲授随教学推进而逐渐淡化,对程序的整体掌握的要求逐渐加强,使学生的编程能力上一个台阶后期的教学中,算法表述的细节基本留给学生自己看,教师重点讲解脱离具体 C++语言的算法本身的描述和程序整体的构造一方面提高学生的自学能力,另一方面引导学生的编程的大局观 第四,提倡规范化编程精讲最经典的一种方法,不提倡讲解编程的多样性,以减低学习难度学生在初级阶段主要是模仿,是灵活应用通用算法,不是创造别人看不懂的算法教师在教学初期的课堂教学中应多做程序设计全过程演示,尚未入门时的具体指导尤其重要要有讲评,这是一个总结提高的过程 第五,认真培养学生调试程序的能力不仅是 C++,而且以后“微机系统”等后续课程用 Debug 调试各种程序的基本功都是在这里打下的授之以鱼,不如授之以渔。





