大学计算机基础python学多久_基于Python 的“大学计算机基础”课程教学设计

基于Python 的“大学计算机基础”课程教学设计

日期:2018-04-11 04:32

摘要 培养非计算机专业大学生的计算思维能力,在“大学计算机基础”课程教学中引入程序设计内容已成各大高校的共识,但选择何种程序设计语言仍然观点不一。本文针对大一新生的实际情况,提出使用Python 作为本课程的教学语言,并设计了具体的教学过程。实践表明,和C++等传统语言相比,Python 语言可以更好地满足不同程度学生的学习需求。

“大学计算机基础”课程中的程序设计教学

“大学计算机基础”(Fundamentals of Computers)是根据教育部计算机基础教学指导委员会“1+X”培养要求开设的公共基础课程,是大学各专业一年级新生的第一门计算机课程,也是本科各学科专业学生必修的公共基础课程。早期的大学计算机基础课程主要讲授一些有关计算机的软硬件基础知识,以基本应用为主,并没有过于涉及程序设计的内容;但在2010 年九校联盟(C9)发布“计算机基础教学发展战略联合声明”之后,为了能在课程中向学生传递计算思维的理念,必须在大学计算机基础课堂上适当增加基础的程序设计内容已经是各大高校的共识,以便使用简单的程序设计语言来描述抽象、自动化等计算思维理念。但在大学计算机基础课程中具体选择哪一种教学语言,各大高校产生了分歧。

有的高校根据后续程序设计课程的需求,选择了C 语言、C++语言或Java语言作为教学语言,这几种语言虽然在工程界应用很广泛,但都存在着门槛高、学习曲线陡峭、上手难的问题,如果要想让学生基本能读懂使用上述语言描述的算法,需要的教学时间很长,一般要大概两个月,也就是说几乎50%的大学计算机基础教学时间都要用于语言教学,显然有些喧宾夺主。同时,由于大学计算机基础课程面向全校各专业学生,这些学生来自全国不同的省份,不同地区的教学模式和教学水平不同,学生在高中阶段接触计算机的时间早晚、深入与否有很大差异,造成大一入学时学生的程序设计基础参差不齐,给教学带来了一定困难。因此在大学计算机基础教学过程中,需要兼顾不同学生的接受程度,选择一种语法简单、又具有深度的程序设计语言就变得非常重要。Python 是一种类似脚本语言的高级程序设计语言,入门语法简单,上手容易,并且广泛应用于科研和工程领域,无论对于初次接触程序设计的新生,还是具有一定基础的学生,Python都能够满足他们的不同的学习需求,目前已成为了我校“大学计算机基础”课程常用的教学语言之一。

2 Python 语言的优势

Python 是动态数据类型的、面向对象的、解释类型的高级程序设计语言,经过二十多年的发展已经非常成熟和稳定。它的语法简洁并且清晰,与其他大多数编程设计语言不一样,采用缩进来定义语句的层次。Python 语言支持命令式编程、面向对象编程、函数式编程、泛型编程等多种编程方式。与Ruby、Perl 等动态语言一样,Python 语言具备垃圾回收功能,能够自动管理内存。Python 经常作为脚本语言处理系统管理任务,而且比系统自带的脚本语言语法更简单、清晰。它拥有功能强大的第三方库,因此适合执行各种高级任务,比如完成GUI 编程、游戏编程、网络编程等。Python 交互式的命令行可以帮助用户立即体验其编码方式并得到反馈结果,不需要了解语言全貌,使用者可以独立地学习单个命令而不必编写完整程序。总之,Python 语言继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性。它在设计上的以下几个特点有利于大学计算机基础课程教学:

(1)Python 在设计上坚持了清晰划一的风格,代码易读、易学习、易维护。缩进格式要求严格,违反缩进规则的程序不能通过编译,以此来强制学生养成良好的编程习惯。

(2)Python 是面向对象语言,提供了丰富的数据类型,函数、模板、数字、字符串都是对象,完全支持继承、重载、派生、多课程教学

122 2016 年/ 第三十二期/ 十一月(中)继承等特性,同时隐藏了底层内存管理、垃圾回收等细节,在教学上不仅内容完全满足课程教学需要,可以让学生在学习语言本身上节省很多时间和精力。

(3)Python 语言是基于虚拟机机制的,可以在各个平台上安装使用。Python 开发环境开源且数量众多,主流的操作系统如Linux、Windows 都能很好地支持Python 环境。在常用的Windows 平台下,只需一个很小的开源安装包就可以构建Python的基础开发环境,降低了环境配置的难度,使得学生能够很快上手。

(4)Python 允许以交互模式运行。在主流操作系统中可以在命令模式下直接运行Python 交互环境,输入指令可以立刻获得运行的结果。交互模式易于被没有程序设计经验的学习者理解,适合在课堂授课中实时演示各种命令和语句的功能。(5)Python 具有良好的可扩展性,可以把其他语言开发的程序和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语言强大的第三方开发库,逐步开发出适合不同专业的、定制的教学计划,激发学生发现问题和解决问题的兴趣,使学生能够更好地理解信息技术在本专业的应用,提升计算思维能力,努力培养信息化社会亟需的计算机和各专业的交叉人才\

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android设计招式之美,6 - 设计模式与Android框架设计f

本教程由麦可网录制,共55节,主要介绍的内容有设计模式与Android框架设计、Android框架与应用类别的接合卡榫(Hook)函数、 Template Method模式等,本站提供部分教程在线学习,全套教程请下载观看。完整目录如下:1 - 设计…

treeselect只选了分支节点全选_vue Treeselect 树形下拉框:获取选中节点的ids和lables操作...

API: https://vue-treeselect.js.org/#events1.ids: 即value1.lable: 需要用到方法:select(node,instanceId) 和 deselect(node,instanceId)v-model"DRHA_EFaultModeTree_value":multiple"true":options"DRHA_EFaultModeTree_options"…

java 同步锁_死磕 java同步系列之自己动手写一个锁Lock

问题(1)自己动手写一个锁需要哪些知识?(2)自己动手写一个锁到底有多简单?(3)自己能不能写出来一个完美的锁?简介本篇文章的目标一是自己动手写一个锁,这个锁的…

linux ofstream open,浅谈linux性能调优之十一:内存分配管理

linux下内存分配的管理主要通过内核参数来控制:1.与容量相关的内存可调参数以下参数位于 proc 文件系统的 /proc/sys/vm/ 目录中。overcommit_memory :规定决定是否接受超大内存请求的条件。这个参数有三个可能的值:* 0 — 默认设置。内核执行…

click事件在什么时候出发_剖析setTimeout和click点击事件的触发顺序

下面是一段非常简单的JavaScript代码dianjisetTimeout(function () {alert(timer handler)}, 2000)function test () {document.addEventListener(click, function (e) {alert(click handler)}, false)var startTime new Date()while ((new Date()).getTime() - startTime <…

android里canvas视频帧,移动端用canvas截取视频封面,如何不截取第一帧,而是截取其它的帧?...

我在微信开发工具里截的图是可以的&#xff0c;但是在手机上截的图缺变成全透明的了。我猜是视频的第一帧的问题微信开发工具的截图手机的截图我的代码&#xff1a;JS&#xff1a;function captureImage(video) {var scale1var canvas document.createElement("canvas&qu…

python画正方形内切圆_python画出三角形外接圆和内切圆的方法

刚看了《最强大脑》中英对决&#xff0c;其中难度最大的项目需要选手先脑补泰森多边形&#xff0c;再找出完全相同的两个泰森多边形。在惊呆且感叹自身头脑愚笨的同时&#xff0c;不免手痒想要借助电脑弄个图出来看看&#xff0c;闲来无事吹吹牛也是极好的。 今天先来画画外接圆…

ar面部识别_Blippar公司加入实时面部识别技术 扫脸就能解锁个人AR简介

VR之家消息&#xff1a;近日&#xff0c;AR初创公司Blippar在其应用中加入了实时面部识别技术。据悉&#xff0c;利用这项新技术&#xff0c;用户通过智能手机摄像头扫脸&#xff0c;只要被扫对象已经存在AR简介&#xff0c;就能解锁这个人的个人资料。Blippar公司加入实时面部…

查看地区的ip段_「教程」CloudFlare 自选 IP优化网站速度

前言CloudFlare 官网虽然不提供 CNAME / AAAA / A 记录接入 CloudFlare 的 CDN &#xff0c;但是我们可以通过 CloudFlare Partner 免费使用 CNAME / A 记录接入 CloudFlare 。而我们正好利用 CloudFlare 使用 A 记录接入 CDN 的方式&#xff0c;自定义节点 IP &#xff0c;例如…

android手机可以设置屏幕锁定,安卓手机屏幕锁设置方法(九个点图案)

这里以三星S5368手机屏幕锁为例随着三星S5368手机系统功能愈来愈完善&#xff0c;性能愈来愈强劲&#xff0c;越来越多的三星S5368用户们都喜欢把一些重要的信息甚至隐私放在三星S5368手机里面&#xff0c;但是这就有可能会让别人看到&#xff0c;这样一来你的三星S5368里面的信…

python win10 连接hive_使用win10+python3.5+impyla 连接大数据平台hive表的步骤与问题解决...

环境硬件配置及Hadoop&#xff0c;Hive版本一、安装步骤pip install pure-saslDownloading https://pypi.tuna.tsinghua.edu.cn/packages/16/83/30eaf3765de898083 75a8358f9c15d45a3dd44ed26be991471abc0b4480b/pure_sasl-0.5.1-py2.py3-none-any.whlpip install thrift_sasl0…

python将excel表按地方拆分_Python将一个Excel拆分为多个Excel

本文实例为大家分享了Python将一个Excel拆分为多个Excel的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 原始文档如下图所示将销售部门一、二、三科分别存为三个Excel 代码如下 # -*- coding: utf-8 -*- """ Created on Mon Jul 9 20:25:31 2018 au…

arduino麦轮转弯程序_麦克纳姆轮智能小车接线方案

折腾了好几天&#xff0c;实在搞不定了&#xff0c;决定上来社区求助。现在的硬件情况是这样的&#xff1a;- HM-GM37-3429霍尔传感器大载重电机&#xff0c;每个电机六条线&#xff0c;其中电机输入两个&#xff0c;霍尔编码器电源两个&#xff0c;编码器AB相两个- 四个电机&a…

python中range 函数_pythonrange,range函数的用法

当range()函数内填入第三个参数时&#xff0c;第三个参数表示百步长。函数语法&#xff1a;range(start,stop[,step])参数说明&#xff1a;start:计数从度start开始。默认是从0开始。例知如道range&#xff08;5&#xff09;回等价于range&#xff08;0&#xff0c;5&#xff0…

xss植入_网站xss漏洞的利用过程

XSS跨站脚本&#xff0c;是一种Web安全漏洞&#xff0c;有趣是是他并不像SQL注入等攻击手段攻击服务端&#xff0c;本身对Web服务器没有危害&#xff0c;攻击的对象是客户端&#xff0c;使用浏览器访问这些恶意地址的网民。这里就跟大家稍微讲解一下网站xss漏洞的利用过程。网站…

html制作状态栏数字时钟,html5 canvas制作15种数字时钟样式代码

特效描述&#xff1a;html5 canvas制作 数字时钟样式。html5 canvas数字时钟代码代码结构1. 引入CSS2. 引入JS3. HTML代码clockd1_{"indicate": true,"indicate_color": "#222","dial1_color": "#666600","dial2_color…

python出现的次数最多的元素_【Python 秘籍】序列中出现次数最多的元素

问题 怎样找出一个序列中出现次数最多的元素呢&#xff1f; 解决方案 collections.Counter 类就是专门为这类问题而设计的&#xff0c; 它甚至有一个有用的 most_common() 方法直接给了你答案。 为了演示&#xff0c;先假设你有一个单词列表并且想找出哪个单词出现频率最高。你…

华为申请注册鸿蒙商标,华为申请“鸿蒙商标”,企业注册商标有什么价值?

原标题&#xff1a;华为申请“鸿蒙商标”&#xff0c;企业注册商标有什么价值&#xff1f;国家知识产权局商标局网站显示&#xff0c;华为已申请“华为鸿蒙”商标。申请日期为2018年8月24日&#xff0c;注册公告日期为2019年5月14日&#xff0c;专用权限期是从2019年5月14日到2…

dabs是什么意思_cpdd是什么意思(网络语cpdd是什么梗啥意思)

随着网络的快速发展&#xff0c;抖音和微博这样的软件也是越来越火&#xff0c;因此很多流行语就随之诞生&#xff0c;特别是在抖音里&#xff0c;经常看到游戏相关的用语&#xff0c;比如桃酥和阿姨打LOL时候&#xff0c;就出现了很多高校的流行语&#xff0c;其中“cpdd”这个…

python coding utf-8_【转】怎么在Python里使用UTF-8编码

基本概念 在Python里有两种类型的字符串类型:字节字符串和Unicode的字符串&#xff0c;一个字节字符串就是一个包含字节列表。 当需要的时候&#xff0c;Python根据电脑默认的locale设置将字节转化成字符。 在Mac OX上默认的编码是UTF-8&#xff0c;但是在别的系统上&#xff0…