您好, 访客   登录/注册

计算机网络教学中Python对学生计算思维能力培养的探索

来源:用户上传      作者:

  摘要:Python语言简洁高效,应用广泛,特别是在人工智能领域,能够让学生有更多精力关注问题的建模与求解,进而有效地提升学生的计算思维能力。如何在计算机网络课程教学过程中利用有限的课时开展基于Python的网络编程教学和实验,以提升学生的计算思维能力,是一个教学难题。对此,本文借鉴翻转课堂模式,提出了“课前自学+课堂讨论+论坛反馈+上机实验”的授课模式,能使学生有效地理解网络通信的概念和原理,掌握Python编程并实现分布式网络应用。
  关键词:计算机网络;计算思维;网络编程;Python
  中图分类号:G642.41 文献标志码:A 文章编号:1674-9324(2019)26-0123-02
  一、在计算机网络课程中培养学生计算思维能力的意义
  计算机网络作为计算机及其相关专业大学生的一门专业核心课,其目标在于帮助学生掌握计算机网络的分层体系结构和常见网络协议,如TCP/IP协议的基本原理,使得学生面对飞速发展的计算机网络特别是移动互联网络,不仅能够理解基本的运行原理,而且能够保持一定的判断力和创新能力。为了培养新时代大学生的创新能力,对大学生进行计算思维能力的培养已经成为一种十分有效且必定要走的道路。
  二、Python特点及其在计算机网络课程中的优势
  首先,Python是一门灵活的高级编程语言,应用领域极其广泛,特别是在人工智能领域有着十分广阔的应用,如TensorFlow、Keras等。Python程序简洁,语法更为接近自然语言,如采用缩进来标识代码段等;Python方便运行,其提供了多种运行机制,如可本机运行的PyCharm编辑器,也可以在线运行,如Jupyter Notebook等。另一方面,Python提供各种应用库,如数值计算库numpy、与画图相关的matplotlib、机器学习的scikit-learn等,而且通过anaconda软件可以很方便地来安装、管理和更新Python的各种库。这些库实现了相关领域的很多操作,功能强大且方便调用,极大地减少了学生实现相关领域的基本功能所需的編程时间,而且其运行效率高。因此,对学生而言特别是计算机相关专业的学生,Python编程简单易学,方便上手,特别关注问题本身的建模与求解。它能够使学生从较为复杂的编程语言的语法中解脱出来,全身心地关注与所要求解问题的建模与对应的解法优化。
  其次,本人所在学院的计算机网络专业课程采用的教材是《计算机网络-自顶向下法(原书第六版)》,该教材中在第二章的socket编程中采用Python语言取代了之前版本中的Java语言。一方面采用Python语言对于编程新手来说,能够方便地理解TCP和UDP协议的核心概念;另一方面,Python语言能够提供访问原始socket的接口,从而使学生能够在此基础上自主创建一系列更为广泛的网络应用。
  三、如何开展Python教学以提升学生计算思维能力
  (一)课前自学
  考虑到本学院的开课学生是计算机和软件相关专业的大二学生,授课学生已经学过一些相关的编程语言,如C++,对计算机体系结构和计算机编程都有较好的基础。授课时,应该充分考虑学生的这些基础,同时重视不同学生对于这些课程的掌握程度会有一定的差异性。此时,如果采用集中授课或者唯一的教材进行Python编程的授课,有可能一些学生已经很了解相关内容,而另一些基础薄弱的学生可能觉得进度有些快。因而,采用推荐相关的教材和公开课视频等资料,让学生根据自身已有基础和时间安排,有目的地重点学习相关内容。
  (二)课堂讨论
  根据学生自学的反馈,在课堂上,通过与学生讨论的方式,启发学生回答课前编程作业的相关问题,随后通过设计几个简单的程序示例,引导学生思考相应的输出结果,进而让学生自查通过课前自学对Python编程的掌握程度。最后,和学生们一起总结Python编程的重要知识点和相关编程原则。然而,课堂的重点应该放在通过课堂讨论,让学生理解Python语言对TCP和UDP协议运行机制的编程实现,让学生理解实现网络通信的核心思想,同时基本熟悉如何通过Python语言来实现网络通信这一功能。
  (三)论坛反馈
  由于课时有限,教师不可能一一解决所有学生们的问题。因而,可以鼓励学生根据课前自学和课堂讨论的结果,利用课余时间在相关的论坛上进行讨论,例如,使用本学院教学所采用的Blackboard平台,针对Python编程以及上课所讲授的TCP和UDP协议的相关内容进行提问和讨论。授课教师可以浏览学生们的提问和相关讨论,回答学生共同疑惑的地方。关于Python编程中遇到的相关问题,引导学生们在Python语言编程的公共论坛进行提问和讨论,如GitHub、Reddit等。
  (四)上机实验
  为了巩固课堂教学效果,并提高学生的动手能力,设计了上机实验,分为基础实验和进阶实验。上机实验时,将学生们以两人为一组分成多个实验小组,每个小组的两名学生分别来实现TCP编程的server和client程序,进而进行网络通信测试,而UDP实验的任务分配则对调过来。每个学生既能够分别实现server和client端的编程,又能通过两人一组进行相互讨论。
  为了进一步培养学生开发更为有趣和面向用户的网络应用的能力,设计进阶实验,比如,让学生的client程序将指定内容发给server,而server必须对该内容进行一些必要的处理,如大小写转换、字符数统计、加密等。该部分内容并没有现成可以参考的算法或者编程实现,学生们需要自己分析如何来实现该部分功能,同时将功能分解到对应的client和server端,进而采用高效的编程语言来实现。学生需要对编写的程序进行调试和相关测试,以保证正确、高效地实现相关功能。
  最后,教师通过当面运行相关程序,检查学生们所编写程序的正确性和有效性。同时,将实验的完成时间作为本次实验的一个考核指标,激励实验用时较少的学生,以激发学生们做实验的热情和积极性。课堂结束前,总结并纠正学生在实验中遇到的典型错误,提醒学生在以后学习和编程中注意这些问题。随后,全班展示最简洁高效的代码,让学生们相互比较和学习,进一步体会高效编程的一些原则,并逐步尝试将这些规则应用到自己的学习实践中去。此外,鼓励学生比较之前做过的单机编程实验和本次网络通信实验的区别,使学生进一步理解网络通信的特点,理解server和client的分工与协作,加深学生对网络通信的相关概念和运行机制的理解与掌握。
  四、结语
  本文以Python语言在网络编程实验中的应用为例,探索了如何在计算机网络专业课程中逐步培养并提升学生的计算思维能力,借鉴翻转课堂思想,提出了“课前自学+课堂讨论+论坛反馈+上机实验”的授课模式,以逐步培养学生的创新能力。如何结合其他相关课程特点以持续提升大学生的计算思维能力,进而在学生的学习过程中设计完整的计算思维能力培养体系是未来教学工作中需要进一步探索和改革的新方向。
  参考文献:
  [1]James F.Kurose,Keith W.Ross.著,陈鸣译.计算机网络:自顶向下方法[M].原书第6版.机械工业出版社,2014.
  [2]张金磊,王颖,张宝辉.翻转课堂教学模式研究[J].远程教育杂志,2012,30(4):46-51.
转载注明来源:https://www.xzbu.com/9/view-14948664.htm