网站策划专员招聘,网站建设的征求意见稿,新竹自助网站,婚庆网站制作公司基于Python 的“大学计算机基础”课程教学设计
日期#xff1a;2018-04-11 04:32
摘要 培养非计算机专业大学生的计算思维能力#xff0c;在“大学计算机基础”课程教学中引入程序设计内容已成各大高校的共识#xff0c;但选择何种程序设计语言仍然观点不一。本文针对大一新…基于Python 的“大学计算机基础”课程教学设计
日期2018-04-11 04:32
摘要 培养非计算机专业大学生的计算思维能力在“大学计算机基础”课程教学中引入程序设计内容已成各大高校的共识但选择何种程序设计语言仍然观点不一。本文针对大一新生的实际情况提出使用Python 作为本课程的教学语言并设计了具体的教学过程。实践表明和C等传统语言相比Python 语言可以更好地满足不同程度学生的学习需求。
“大学计算机基础”课程中的程序设计教学
“大学计算机基础”Fundamentals of Computers是根据教育部计算机基础教学指导委员会“1X”培养要求开设的公共基础课程是大学各专业一年级新生的第一门计算机课程也是本科各学科专业学生必修的公共基础课程。早期的大学计算机基础课程主要讲授一些有关计算机的软硬件基础知识以基本应用为主并没有过于涉及程序设计的内容但在2010 年九校联盟(C9)发布“计算机基础教学发展战略联合声明”之后为了能在课程中向学生传递计算思维的理念必须在大学计算机基础课堂上适当增加基础的程序设计内容已经是各大高校的共识以便使用简单的程序设计语言来描述抽象、自动化等计算思维理念。但在大学计算机基础课程中具体选择哪一种教学语言各大高校产生了分歧。
有的高校根据后续程序设计课程的需求选择了C 语言、C语言或Java语言作为教学语言这几种语言虽然在工程界应用很广泛但都存在着门槛高、学习曲线陡峭、上手难的问题如果要想让学生基本能读懂使用上述语言描述的算法需要的教学时间很长一般要大概两个月也就是说几乎50%的大学计算机基础教学时间都要用于语言教学显然有些喧宾夺主。同时由于大学计算机基础课程面向全校各专业学生这些学生来自全国不同的省份不同地区的教学模式和教学水平不同学生在高中阶段接触计算机的时间早晚、深入与否有很大差异造成大一入学时学生的程序设计基础参差不齐给教学带来了一定困难。因此在大学计算机基础教学过程中需要兼顾不同学生的接受程度选择一种语法简单、又具有深度的程序设计语言就变得非常重要。Python 是一种类似脚本语言的高级程序设计语言入门语法简单上手容易并且广泛应用于科研和工程领域无论对于初次接触程序设计的新生还是具有一定基础的学生Python都能够满足他们的不同的学习需求目前已成为了我校“大学计算机基础”课程常用的教学语言之一。
2 Python 语言的优势
Python 是动态数据类型的、面向对象的、解释类型的高级程序设计语言经过二十多年的发展已经非常成熟和稳定。它的语法简洁并且清晰与其他大多数编程设计语言不一样采用缩进来定义语句的层次。Python 语言支持命令式编程、面向对象编程、函数式编程、泛型编程等多种编程方式。与Ruby、Perl 等动态语言一样Python 语言具备垃圾回收功能能够自动管理内存。Python 经常作为脚本语言处理系统管理任务而且比系统自带的脚本语言语法更简单、清晰。它拥有功能强大的第三方库因此适合执行各种高级任务比如完成GUI 编程、游戏编程、网络编程等。Python 交互式的命令行可以帮助用户立即体验其编码方式并得到反馈结果不需要了解语言全貌使用者可以独立地学习单个命令而不必编写完整程序。总之Python 语言继承了传统编译语言的强大性和通用性同时也借鉴了简单脚本和解释语言的易用性。它在设计上的以下几个特点有利于大学计算机基础课程教学
1Python 在设计上坚持了清晰划一的风格代码易读、易学习、易维护。缩进格式要求严格违反缩进规则的程序不能通过编译以此来强制学生养成良好的编程习惯。
2Python 是面向对象语言提供了丰富的数据类型函数、模板、数字、字符串都是对象完全支持继承、重载、派生、多课程教学
122 2016 年/ 第三十二期/ 十一月中继承等特性同时隐藏了底层内存管理、垃圾回收等细节在教学上不仅内容完全满足课程教学需要可以让学生在学习语言本身上节省很多时间和精力。
3Python 语言是基于虚拟机机制的可以在各个平台上安装使用。Python 开发环境开源且数量众多主流的操作系统如Linux、Windows 都能很好地支持Python 环境。在常用的Windows 平台下只需一个很小的开源安装包就可以构建Python的基础开发环境降低了环境配置的难度使得学生能够很快上手。
4Python 允许以交互模式运行。在主流操作系统中可以在命令模式下直接运行Python 交互环境输入指令可以立刻获得运行的结果。交互模式易于被没有程序设计经验的学习者理解适合在课堂授课中实时演示各种命令和语句的功能。5Python 具有良好的可扩展性可以把其他语言开发的程序和Python 代码集成发挥不同语言各自的优势而且有大量高质量的第三方扩展库在不同的应用领域都有用武之地同时Python语言仍在不断更新具有良好的发展前景便于调动学生学习的主动性。
Python 在设计上的特点决定了它简单、易学、速度快。初学者不需要过度关注语言本身的知识可把重点放在理解计算思维这一根本任务上来通过Python 语言来学习大学计算机基础课程具有很大的优势。
3 基于Python 的“大学计算机基础”课程教学设计“大学计算机基础”课程包括分为理论教学和实践教学两部分内容。理论教学部分主要教授学生计算机软硬件基础知识、计算思维、算法思想等。由于“大学计算机基础”是一门大一的课程学生的学习基础和高中时所受的计算机教育息息相关。水平高的学生在高中可能都已经参加过信息学奥林匹克竞赛而来自较偏远、家庭情况较困难的学生则可能从来没有接触过对基础不同的学生同时教授相同的内容是不合理的。针对这种情况一种策略是类似英语教学的分级制在入学摸底考试中增加计算机基础测试同时适当考虑学生的自主选择依据评估结果将学生划分到不同的班级采用不同的教学进度对学生因材施教。但这种方案对高校目前的班级管理制度影响较大难以推行。另一种策略就是使用基础灵活的教学语言C等传统语言门槛太高不适合程度低的学生而VB等语言虽然简单但功能较弱且在业界较少应用综合考虑Python 语言兼有两类语言的优点入门容易且功能强大有利于教师针对不同程度的学生制定不同的教学策略达到最优的教学效果。
实践教学部分主要是实践学生所学习的理论知识把课堂上学习到的各类计算机软硬件问题使用计算机语言来进行计算或仿真。在实践教学中对于C等学习曲线陡峭的语言教师往往需要在入门阶段对学生进行一一辅导费时费力教学效率低下。使用Python 语言作为教学语言之后教师为主辅之以一定数量的研究生助教完全可以保证为每个学生提供足够的指导使得他们能够及时解决遇到的问题。同时我们在实践教学过程中采用积分制布置较多的实验题目不要求学生必须全部完成对不同难度的实验内容设置不同的实验分数每个学生的总分只要达到一个适当的值平时成绩就可以得满分。同时为了防止学生只挑难度低的实验题目提交需要对难度较大的实验设置一个最小数量阈值每个学生必须完成给定数量的较难题目。
我们统计了学生分别使用C和Python 语言完成“大学计算机基础”实验的完成率除了语言要求不一样之外题目的内容基本一致统计结果如图1 所示其中实验难度是从第1次到第9 次逐步递增。从图中可见基于C的实验完成率要明显低于基于Python 的实验完成率且随着实验难度的增加基于C的实验完成率下降速度要明显快于基于Python 的实验完成率。可以看出基于Python 的“大学计算机基础”教学可以取得更加良好的效果。
图1 基于不同语言的实验完成率
4 结语
随着各行各业越来越依赖于信息技术无论在大学中学习什么专业未来从事什么工作掌握基本的计算机软硬件技术乃至具备基本的高级程序设计能力愈来愈成为社会对每一个人的要求。考虑到非计算机专业学生的实际需求基于Python的“大学计算机基础”课程不仅能帮助学生掌握信息技术的基本脉络培养基础计算思维能力最终是要训练他们使用计算思维和程序设计技术来解决他们本专业中遇到的种种实际问题。使用Python 作为“大学计算机基础”课程的教学语言大大降低了学习编程语言本身的难度使基础较差的学生也能够迅速上手同时Python 强大的扩展功能更能激发他们持续的学习兴趣。我们在未来的教学改革过程中要继续利用好Python语言强大的第三方开发库逐步开发出适合不同专业的、定制的教学计划激发学生发现问题和解决问题的兴趣使学生能够更好地理解信息技术在本专业的应用提升计算思维能力努力培养信息化社会亟需的计算机和各专业的交叉人才\