- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
任务驱动的实践教学初探
摘要:本文针对实践类课程的教学过程中存在的问题,进行了教学法改革尝试。新方法放弃了传统的教师教授、学生练习的方式。采用任务驱动的方式调动学生的主动性。函数功能目标以程序任务驱动实现,而设计思想目标以问题驱动完成。教师在学习过程中起引导和辅助作用。
关键词:实践教学;任务驱动;学习动机
中图分类号:G642 文献标识码:B
文章编号:1672-5913 (2007) 20-0022-03
实践类课程是一类比较受学生欢迎的课程。但是在具体的教学中我们发现存在一些因素影响学生对课程内容的理解、接收和兴趣。因此,我们以“网络通信程序设计”课程教学为例,对教学方法进行了尝试性改革。
“网络通信程序设计”课程是一门以实践为主的程序设计类的专业选修课程。该课程主要介绍Linux操作系统平台下基于Socket API实现的网络服务器的设计、开发与优化。课程目标是让学生能够理解客户/服务器计算模式,了解访问底层协议软件的应用程序接口,掌握实现客户以及服务器软件的基本算法,构建基于TCP/IP协议栈的分布式应用程序。
1旧的教学过程
在以前的教学中,我们主要采取教师课堂讲授、学生上机完成相关练习的方式来完成教学。下面以“面向连接的客户端软件的设计与实现”这部分教学的内容作为案例来说明旧的教学过程。我们选择daytime服务的客户端实现作为示例来讲授这部分内容。具体教学过程如下:
1) 教师介绍daytime服务的语义,讲清客户端软件的任务;
2) 教师给出客户端软件算法,画出流程图;
3) 教师讲解关键API的功能和用法,如socket()、connect()等;以及形成API参数必需的辅助函数,如gethostbyname()、 inet_addr()等;这部分讲授的相关内容还包括socket API的设计思想,如socket的通用性设计考虑;以及相关主要数据结构的说明等等。
4) 进入具体客户端示例的讲解;
Oslash; 教师演示程序
Oslash; 教师按照算法介绍程序的具体结构和实现细节
Oslash; 最后,学生在实验课时内动手编写TIME服务的客户端软件。
在教学过程中,我们注意到,学生对于实践类的程序设计兴趣非常高,他们能够很认真地听教师交待任务;同时,他们对怎样完成任务也有一种渴求,因此他们的注意力可以跟随教师的思路将客户端软件的任务分析、以及算法设计过程完成;学生对于示例程序的演示也非常感兴趣,因为他们看到了任务解决方案的结果。
2旧教学过程存在的问题
但是,在教学中我们也发现一些问题。我们仍然以“面向连接的客户端软件的设计与实现”这部分内容的教学为例来说明具体存在的问题。这些问题虽然是这一单元教学中出现的,但它们实际上是程序设计类课程普遍存在的一些共性问题。具体问题如下:
1) 学生非常不重视文档
虽然学生可以跟随老师的思路将客户端软件的任务分析、以及算法设计过程完成。但是,对于描述算法设计的结果――流程图则不感兴趣。通常学生会认为自己已经清楚了任务的解决方案,而流程图类文档性工作是多此一举。因此,当教师画流程图时,学生的注意力便开始漂移。结果是学生领会不到流程图的作用,不会画流程图,也不会使用像流程图类的方法来帮助程序设计。
2)API的介绍枯燥乏味,学生的注意力很容易发生转移
实现算法的核心API是学生完成程序必须掌握的。可是API的功能和用法听起来枯燥乏味。因此,这部分内容的课堂讲授效果非常不好。学生刚刚被任务激起的热情很快就在乏味的API功能和参数的解释中消失。
3) 学生对于API设计思想的介绍兴致索然
Socket API中,很多接口函数的参数设定以及数据结构的设计与API设计者的一些特殊考虑相关。例如,创建socket的函数调用socket()有一个参数要求给出socket所使用的协议栈。这是因为当初设计的目标是一个通用的、而不是只为TCP/IP协议栈服务的API。
介绍Socket API设计思想有两个目的。第一是让学生更好地掌握API的用法。API的很多用法看起来很特殊。它们实际上是特殊设计考虑的结果。例如,连接函数connect()的参数中要求给出要连接服务器的地址。但是,采用通用设计思想的Socket API支持多种地址类型。为了保证connect()的通用性,它使用的地址参数类型是由如下的一种通用地址结构类型来描述的:
struct sockaddr { /*struct to hold an address */
u_char sa_len; /* total length *
文档评论(0)