“高级语言程序设计”类课程面向无编程基础的学生,培养其运用编程语言解决实际问题的编程能力,使学生掌握一门编程语言的基本语法、语句、控制结构以及结构化程序设计的基本思想和方法,了解基本的算法和数据结构、良好的程序设计风格,具备熟练使用一门编程语言分析和解决实际问题的能力,从而无论以后在学习、工作中使用什么语言编程,都能灵活应用这些思想和方法,为进一步学习其他专业课程和今后从事软件开发工作打下坚实的基础。
过去近二十年的“高级语言程序设计”课程多是以C语言为主要的讲授对象,C语言具有代码简洁紧凑、执行效率高、贴近硬件、可移植性好等优点,广泛应用于系统软件、嵌入式软件等开发。
然而,随着计算机技术的发展和进步,我们可以使用它来解决越来越多的问题,计算机的应用场合也不局限于计算机学科,众多的学科被冠以“计算”之名,如计算生物学、计算化学等等。在这种情况下,C语言这种“低级”语言已经越来越难适应计算机发展的潮流,众多的“高级”语言被创造出来以解决更实际的问题。
另外,C语言由于其语法过于灵活,所需要掌握的细节概念非常庞杂,即使是实现最简单的功能,也要涉及很多概念。因此如果教师在教学中不能将学生从语法细节中摆脱出来的话,那么往往也会吓退很多初学者,不利于学习兴趣的培养。
最后就是尽管C语言对于学生掌握计算机底层的工作原理非常重要,但C语言相对比较“低级”,缺乏高级数据结构,因此要想解决更实际的问题,如字符串的处理、大规模的数据分析等,就需要编写非常大规模且复杂的代码,初学者往往会显得力不从心了。
因此,我们需要一种简单易学且能解决更实际问题的语言,Python语言恰好能弥补C语言的不足。具体地,和C语言相比,Python语言具有如下的优点:
1、简单易学:Python语言是一种代表简单主义思想的语言,极易上手。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格。Python语言的这种伪代码本质是它最大的优点之一,它使学生能够专注于解决问题而不是去搞明白语言本身。
2、丰富的数据结构:除了基本的数值类型外,Python语言还内置了字符串、列表、字典等丰富的高级数据结构,利用这些数据结构,我们可以解决非常多的实际应用问题,如文本的处理、数据的分析等等。
3、逐渐流行:目前,有越来越多的项目使用Python语言开发。同时也有越来越多Python的类库被开发出来,这使得使用Python语言变得更加易用,对于提高计算机专业学生的学习兴趣和应用能力大有裨益。此外,Python语言设计之初就考虑到要能够方便地调用其他语言,因此可以方便地利用已有的其他语言编写的模块。
本课程除了讲授Python语言程序设计语言的基本要素,包括基本数据类型、运算、控制结构、函数外,还讲授数据结构的概念和应用、算法时空复杂性的概念等知识,使学生在学完本课程后,即可利用计算机解决众多的实际问题。
无
为积极响应国家低碳环保政策, 2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。
电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问 https://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。
完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。
认证证书申请注意事项:
1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。
2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。
Python程序设计 [An Introduction to Programming Using Python]
[美] 戴维 I.施奈德(David I. Schneider)著;车万翔 译
https://item.jd.com/11889583.html
Q1:为什么教学内容选择Python 2.x版,而不是 3.x版?
A1:目前Python有两个版本,2.x 和 3.x版,这两个版本是不兼容的,虽然目前Python正朝着 3.x版进化,但是由于历史原因,目前有大量的第三方库还是用 2.x版实现的,这些代码要修改后才能在3.x上运行。因此,为了保证你的程序能用到这些优秀的第三方库,我们仍以2.x版本,确切的说事2.7.x,为介绍对象。所以,请确保你的电脑上安装的Python版本是2.7.x。
Q2:内容能否更有“深度”?
A2:本门课主要面向无任何编程基础的同学,也就是将Python作为第一门编程语言来讲授“高级程序设计语言”,重点是编程的思想和解决问题能力的培养,而不涉及太多的Python特性。至于为什么这么做,有相关的文章加以阐释(https://blog.csdn.net/bitfan/article/details/7939691)。那么本门课是否会介绍一些有“深度”的内容呢?答案是NO!如果你学过其它编程语言,想通过本门课快速了解Python到底和之前学过的语言有哪些不同的话,建议到网上查找相关的资料。