《高级程序设计语言》PPT课件
- 格式:ppt
- 大小:916.50 KB
- 文档页数:95


ZHONGGUOYEJINJIAOYU
许海洋王 萍
(青岛农业大学.山东青岛 266109)
摘要:程序设计类课程是培养学生程序设计能力的主要途径。在程序设计语言类课程的教学中,
在教学方法、课程内容安排、教学目标的确定等方面均存在一些问题。针对这些问题,从教学方法、 教学手段、实践教学和考核方法等方面提出了一些建议,取得了初步的效果。
关键词:高级语言;教学改革;教学方法
课题项目:青岛农业大学教学研究项目(项目编号:XJG0919)
引言
高级语言程序设计是信息与计算科学专业一门
重要基础『生课程,它以培养掌握正确的程序设计方
法与思想为目的。通过对该课程的学习,学生不仅要
掌握高级语言程序设计的知识,更重要的是要掌握
在实践中应用程序设计的思想和方法,进而养成独
立思考的习惯和利用计算机解决实际问题的能力,
并为后续的计算机课程打下良好的基础。程序设计
能力已经成为信息与计算科学专业的学生应具备的
基本能力,因此,对于本专业的学生而言,熟练掌握
几种常用的程序设计语言是很有必要的,也是非常
实用的,例如VB、C、Java等语言。目前我校信息与
计算科学专业高级语言主要以讲授c语言为主,Ja—
va语言作为选修课。然而作者在讲授该门课程后发
现:C语言的教学存在脱节现象,学生在知识的运用
能力和编程能力方面训练得不够,课堂教学难以调
动学生的学习兴趣,在后继数据结构等课程中常常
出现不会编程等问题。如何提高学生的程序设计能
力变得相当重要,结合教学实践,从理论和实践上探
索该门课的一些新的教学方法十分必要。
一、高级语言程序设计课程教学中存在的问题
(一)教学方法无法激发学生的学习兴趣
传统的“填鸭式”教学方法以课堂讲授为主,由
教师选择一本教材,依据大纲逐章讲解说明。先介绍
第54页 各语句的语法规则,分别用例子佐证其应用。课后布
置练习、作业,统一安排上机实习,学期末进行复习、
考试。高级程序设计语言类教材的内容组织,已形成
1 第1章 C语言概述习题
1. 单项选择题
(1) C 语言是在 语言的基础上产生的。
A. A B. B C. D D. E
(2) 在 C 语言中,每个语句必须以 结束。
A. 回车符 B. 冒号 C. 逗号 D. 分号
(3) 标识符和关键字间,要用 隔开。
A. 回车符 B. 冒号 C. 空格 D. 分号
(4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( )。
A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件
(5) 下列说法中正确的是( )。
A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入
B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入
C. 由于C 程序是高级语言程序,因此输入后即可执行
D. 由于 C 程序是高级语言程序,因此它由命令组成
(6) 下列说法中正确的是( )。
A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成
C. C 语言程序由子程序组成 D. C 语言程序由过程组成
(7) 下列说法中错误的是( )。
A. 主函数可以分为两个部分:主函数说明部分和主函数体
B. 主函数可以调用任何非主函数的其他函数
C. 任何非主函数可以调用其他任何非主函数
D. 程序可以从任何非主函数开始执行
2. 填空题
(1) C 语言只有 个关键字和 种控制语句。
(2) C 语言是一种“ ”,既具有 的特点又具有 的特点;既适合于开发系统软件又适合于编写应用程序。
第1页共12页《Java程序设计》课程教学单元设计单元5Java语言高级程序设计授课教师:Java语言课程组授课班级:单元总学时:22教学条件软件开发平台、投影设备、广播软件教学素材参考教材、课件、授课录像教学目标设计知识目标:(1)掌握文件和目录的概念以及对象的创建;(2)掌握不同输入输出流的分类和对象的创建;(3)理解线程和进程的区分;(4)掌握线程的概念、创建和运行机制;(5)掌握线程的作用和实现步骤;(6)掌握线程优先级、互斥、解锁的概念和解决方法;(7)掌握Socket和ServerSocket类的作用和创建过程;(8)掌握DatagramPacket类中的方法和对象的创建过程。(9)掌握JDBC访问数据库所用的类和方法。能力目标:(1)能会使用Java语言对文件进行处理;(2)运用不同输入输出流对文件进行操作;(3)应用线程概念掌握线程在CPU中的运行方式;(4)能会使用线程完成多对一的客户端程序编写;(5)能会使用优先级和同步技术解决死锁;(6)运用TCP协议来编写一个面向连接的网络通信程序;(7)应用Socket类与ServerSocket类完成客户端和服务器端程序设计;(8)应用DatagramPacket类完成应用程序之间建立传送数据报的通信连接;(9)能会使用JDBC技术连接数据库并对数据库中的数据进行增删查改的操作。重点:(1)文件的创建和读取过程;(2)线程的创建和启动;(3)使用Socket接口完成网络传输过程。(4)使用JDBC读写数据库难点:(1)使用各种输入输出流来接收和读取数据;(2)利用线程解决互斥和解锁等问题;(3)Socket接口中TCP和UDP传输形式。教学内容设计任务一:文件管理程序设计;任务二:Java源程序行号添加程序设计;任务三:飘动字幕动画程序设计;任务四:学生成绩读写程序设计;任务五:网络聊天程序设计;任务六:无连接网络聊天程序设计;任务七:员工数据管理程序设计。第2页共12页教学过程设计任务一:文件管理程序设计(文件与目录管理)(2课时)主要步骤教学内容教学方法教学手段师生活动引入只要运行在计算机上的软件都需要读写硬盘上文件进行处理,Java也提供了文件处理类和方法。教师运行程序教师启发-教师:演示学生:思考告知(教学内容、教学目的)教学内容:1.Java的文件和目录概念;2.文件的创建;3.文件类的方法。教学目标:1.使用Java的文件类来管理硬盘和内存中的文件。教师启发讲解课件演示教师:讲授学生:思考任务简介编写文件管理程序,可通过文件选择对话框选择路径,输入文件名创建文件,或通过文件选择对话框删除选中的文件,或者查看选中文件的属性。讨论归纳课件演示教师:讲授学生:思考任务分析通过菜单实现功能选择,通过JFileChooser实现文件选择,通过File类实现文件的创建、删除和查看。教师演示课件演示小组讨论教师:讲解演示学生:思考参与发言分组讨论支撑知识1.输入/输出流与java.io包;2.File类;3.JFileChooser类。讨论归纳课件演示教师:演示学生:思考任务实施1.定义类FileManager继承JFrame实现ActionListener接口;2.在FileManager类的构造方法中定义菜单;3.在actionPerformed方法中实现文件创建、删除和查看功能;4.main方法中创建FileManager类对象。动手实践分组实践教师:讲解指导学生:小组讨论动手实践分享交流文件创建方式和目录建立过程。个别演示分组讨论教师:总结学生:演示分享交流第3页共12页课堂实训1.编写一个程序,用于显示当前目录下的文件和目录信息,类似于Dos中的dir命令。2.在c:\test文件夹下创建一个文件example.txt,然后列出该文件的绝对路径、上一级目录以及该文件的最后修改时间和文件大小。动手实践分组实践教师:任务布置学生:小组讨论动手实践课后作业创建目录:c:\123并创建一个文件a.txt,向该文件中3次写入字符串“Howareyou!”。-分组学习提交作业教学过程设计任务二:Java源程序行号添加程序设计(文件的访问)(2课时)主要步骤教学内容教学方法教学手段师生活动引入当文件创建在计算机的硬盘中,那么下一步将是对文件的访问。教师运行程序教师启发-教师:演示学生:思考告知(教学内容、教学目的)教学内容:1.FileReader和FileWriter文件;2.流的操作过程。教学目标:1.掌握文件的顺序访问方式。教师启发讲解课件演示教师:讲授学生:思考任务简介编写一个程序将源文件另存为其他的文件,并为每一行代码在前面添加行号。讨论归纳课件演示教师:讲授学生:思考任务分析使用BufferedReader从文件中逐行读入Java源文件中的代码,在每行代码前加上行号后,使用PrintWriter逐行将代码写入新文件。教师演示课件演示小组讨论教师:讲解演示学生:思考参与发言分组讨论第4页共12页支撑知识1.输入输出流操作一般步骤;2.InputStream和OutputStream;3.FileInputStream和FileOutputStream类;4.DataInputStream和DataOutPutStream类;5.BufferedInputStream和BufferedOutPutStream类;6.Reader和Writer类。讨论归纳课件演示教师:演示学生:思考任务实施1.定义类InsertLineNumber2.编写open方法,将源代码文件内容读入字符串strFinal对象中3.编写saveAs方法,从strFinal对象中逐行读出代码,增加行号并写入新文件中4.在main方法中创建InsertLineNumber类对象,调用open、saveAs方法动手实践分组实践教师:讲解指导学生:小组讨论动手实践分享交流文件流的分类和使用。个别演示分组讨论教师:总结学生:演示分享交流课堂实训编写一个程序,将几个Java类型的数据写到一个文件中,并读出来。动手实践分组实践教师:任务布置学生:小组讨论动手实践课后作业编写一个程序读取他自己的源代码并在控制台中输出。-分组学习提交作业教学过程设计任务三:飘动字幕动画程序设计(创建和启动线程)(2课时)主要步骤教学内容教学方法教学手段师生活动引入在很多情况下设计中要求我们的程序能够每隔一段时间就运行一次,需要Java引入线程的概念。教师运行程序教师启发-教师:演示学生:思考告知(教学内容、教学目的)教学内容:1.线程的Thread类;2.时间的Calendar和SimpleDateFormat类。教师启发讲解课件演示教师:讲授学生:思考第5页共12页教学目标:1.会使用Thread类创建一个多线程应用程序。任务简介运用Java多线程技术编写一个简单的动画,运行程序时窗口会显示一个飘动的字幕,每隔1秒字幕会自动改变显示的位置,先自左向右移动,到达窗口右边界时,再改变为自右向左移动。讨论归纳课件演示教师:讲授学生:思考任务分析在窗口中,通过JLabel显示一行文字,通过启动一个线程,在线程中每隔一秒改变一次JLabel对象的位置可实现字幕飘动的动画效果。教师演示课件演示小组讨论教师:讲解演示学生:思考参与发言分组讨论支撑知识1.线程概念;2.用Thread类创建线程;3.用Runnable接口创建线程。讨论归纳课件演示教师:演示学生:思考任务实施1.创建一个主类MovingText继承JFrame实现Runnable接口2.在主类MovingText构造方法中创建显示JLabel对象,创建线程对象并启动线程3.实现Runnable接口的run方法,使用sleep方法休眠一秒,然后修改JLabel对象位置4.在main方法中实例化MovingText动手实践分组实践教师:讲解指导学生:小组讨论动手实践分享交流如何使用Thread类来创建和开启一个线程。个别演示分组讨论教师:总结学生:演示分享交流课堂实训运用Java多线程技术,通过实现Runnable接口来编写一个电子时钟的应用程序,运行时每隔一秒种自动刷新显示当前日期和当前时间。动手实践分组实践教师:任务布置学生:小组讨论动手实践课后作业编写一个程序,用继承Thread类的方法,由main()主线程创建两个新线程,每一个线程输出从1-20后结束退出,每输出一个数后注意要休眠1秒。分组学习提交作业第6页共12页教学过程设计任务四:学生成绩读写程序设计(线程生命周期与优先级)(2课时)主要步骤教学内容教学方法教学手段师生活动引入线程创建后,每隔一段时间就进入运行状态,多线程完成任务时将会存在几个线程在不同的生命周期里反复切换的问题,也就会存在同一时刻会有多个线程抢占资源问题,那么就需要对线程优先顺序进行定义。教师运行程序教师启发-教师:演示学生:思考告知(教学内容、教学目的)教学内容:1.线程的状态;2.线程的优先级;3.线程的通信。教学目标:1.掌握线程的5种状态,并能控制线程状态;2.掌握线程调度优先级,能够解决多线程之间数据同步问题。教师启发讲解课件演示教师:讲授学生:思考任务简介程序中有两个线程,一个负责写学生成绩数据,一个负责读取和显示学生成绩数据。为了清楚,一个学生有20门课的成绩,写线程写入的每门课的成绩都和其学号相同。如果读线程发现成绩和学号不一致的情况,则说明出现了共享数据读写不一致的问题,利用线程同步机制解决共享数据读写不一致的问题。讨论归纳课件演示教师:讲授学生:思考任务分析同步块和同步方法都可以解决共享数据保护的问题。如果代码都是自己写的,尽可能使用同步方法。如果调用别人写好的、自己无法修改的非同步方法,就只能将调用语句放在同步块中了。教师演示课件演示小组讨论教师:讲解演示学生:思考参与发言分组讨论支撑知识1.线程的5种状态;2.线程的优先级;3.线程的同步。讨论归纳课件演示教师:演示学生:思考第7页共12页任务实施1.先定义StudentScore类,只提供数据定义,不提供访问方法;2.分别定义WriteScore和ReadScore线程类,实现在同步块中的成绩写和读;3.main方法中创建并启动两个线程测试方案一的有效性;4.修改StudentScore类定义,通过增加两个同步方法readScore和writeScore实现数据封装;5.修改WriteScore和ReadScore线程类代码,通过调用同步方法readScore和writeScore实现数据读写;6.运行程序测试方案二的有效性。动手实践分组实践教师:讲解指导学生:小组讨论动手实践分享交流线程的状态转换条件,解决同步和死锁的问题。个别演示分组讨论教师:总结学生:演示分享交流课堂实训编写一个仓库的进货与销售同步控制的线程实例。动手实践分组实践教师:任务布置学生:小组讨论动手实践课后作业用Synchronized方法编写一个“带锁定的售票线程”。分组学习提交作业教学过程设计任务五:网络聊天程序设计(套接字Socket)(4课时)主要步骤教学内容教学方法教学手段师生活动引入互联网的发展让机器之间可以自由的互相连接,要想使计算机之间数据产出相互调用和处理,那么Java也必须提供一组类来完成网络通信。教师运行程序教师启发-教师:演示学生:思考告知(教学内容、教学目的)教学内容:1.TCP/IP协议和端口的概念;2.Socket和ServerSocket类。教学目标:教师启发讲解课件演示教师:讲授学生:思考第8页共12页1.能使用Socket类与ServerSocket类创建客户端程序,并实现客户端程序与服务器端程序的信息交换。任务简介运用Java的套接字编写一个多人网络聊天程序。可以实现聊天记录的保存和查看。讨论归纳课件演示教师:讲授学生:思考任务分析综合运用流、线程和Socket实现网络聊天程序,并实现聊天记录的存储。ChatServer是服务端程序,应当先于客户端程序运行,可接受多个客户端连接。ChatClient是客户端程序,负责将用户输入文本发送到服务端并显示从服务端转发过来的其他客户端发送的消息。教师演示课件演示小组讨论教师:讲解演示学生:思考参与发言分组讨论支撑知识1.TCP/IP和端口基本概念;2.Socket编程。讨论归纳课件演示教师:演示学生:思考任务实施1.定义Client类实现Runnable接口,作为客户端代理,实际上是在服务器为每个客户端创建一个单独的通信线程;2.定义ChatServer类,等待客户的连接请求,用列表clients保存客户端代理,每次和一个客户端建立连接,创建一个代理对象放入列表clients中;3.定义ChatClient类继承JFrame,实现客户端界面,与服务器建立连接,接收用户输入发送给服务器并显示服务器发送来的信息。动手实践分组实践教师:讲解指导学生:小组讨论动手实践分享交流Socket编程中服务器端和客户端的连接过程。个别演示分组讨论教师:总结学生:演示分享交流课堂实训用Socket实现客户和服务器交互的典型C/S结构的聊天程序。动手实践分组实践教师:任务布置学生:小组讨论动手实践课后作业编写一个简单的基于TCP协议的聊天程序,要求采用图形用户界面,允许服务器与客户端在同台机器上。分组学习提交作业
《高级程序设计语言B》课程教学大纲
一、课程基本情况
课程名称 高级程序设计语言B
Advanced Programming Language B
课程编号 CS042121 学分 2
课程类别 □核心□必修□任选■限选 执行学期 5
课程学时
及其分配 总学时 学时分配
32 讲授 22
实验 0
实习 0
上机 10
开课单位 电子工程学院电子工程教研室
适用专业 电子工程学院电子信息工程专业、生物医学工程专业
对应培养标准 1.2 运用核心工程基础知识和原理
先修课程 C语言程序设计、数据结构与算法设计、嵌入式系统设计
教材与
参考文献 参考文献:
[1] Linux高级程序设计(第2版),杨宗德、邓玉春,北京:人民邮电出版社,2009
[2] Linux程序设计(第四版),(英) Neil Matthew, Richard Stones,北京:人民邮电出版社,2010
[3] Linux高级程序设计,(英) Jon Masters,(美) Richard Blum,北京:人民邮电出版社,2008
二、课程性质与作用
《高级程序设计语言B》是电子信息工程专业、生物医学工程专业在第5学期开设的一门专业选修课程。本课程在《嵌入式系统设计》之后开设,学生已经熟悉S3C2410嵌入式开发平台,并对操作系统知识有初步的掌握。本课程的内容包括主要为Linux操作系统下的软件编程,实验环节在S3C2410开发箱上完成,使学生具备嵌入式系统C语言的开发能力。
三、培养目标与标准
通过本课程学习,使学生掌握Linux系统下C语言软件开发,掌握嵌入式操作系统下的编程规则和方法,在嵌入式开发平台上有一定的研发和设计能力。本课程培养目标为:掌握运用核心工程基础知识和原理,具备分析和设计电子设备的基本能力,具有较强的计算机应用能力,掌握本课程的主要知识点,培养良好软件开发规范和严谨态度。
四、理论教学内容与学时分配