课程详情
课程评价
spContent=“高级语言程序设计”课程面向无编程基础的学生,培养运用编程语言(Python语言)解决实际问题的编程能力。使学生掌握Python语言的基本语法、语句以及结构化程序设计的基本思想和方法,了解基本的算法和数据结构,培养良好的程序设计风格,为进一步学习其他专业课程和从事软件开发工作打下坚实的基础。
—— 课程团队
课程概述

        “高级语言程序设计”类课程面向无编程基础的学生,培养其运用编程语言解决实际问题的编程能力,使学生掌握一门编程语言的基本语法、语句、控制结构以及结构化程序设计的基本思想和方法,了解基本的算法和数据结构、良好的程序设计风格,具备熟练使用一门编程语言分析和解决实际问题的能力,从而无论以后在学习、工作中使用什么语言编程,都能灵活应用这些思想和方法,为进一步学习其他专业课程和今后从事软件开发工作打下坚实的基础。

        过去近二十年的“高级语言程序设计”课程多是以C语言为主要的讲授对象,C语言具有代码简洁紧凑、执行效率高、贴近硬件、可移植性好等优点,广泛应用于系统软件、嵌入式软件等开发。

        然而,随着计算机技术的发展和进步,我们可以使用它来解决越来越多的问题,计算机的应用场合也不局限于计算机学科,众多的学科被冠以“计算”之名,如计算生物学、计算化学等等。在这种情况下,C语言这种“低级”语言已经越来越难适应计算机发展的潮流,众多的“高级”语言被创造出来以解决更实际的问题。

        另外,C语言由于其语法过于灵活,所需要掌握的细节概念非常庞杂,即使是实现最简单的功能,也要涉及很多概念。因此如果教师在教学中不能将学生从语法细节中摆脱出来的话,那么往往也会吓退很多初学者,不利于学习兴趣的培养。

        最后就是尽管C语言对于学生掌握计算机底层的工作原理非常重要,但C语言相对比较“低级”,缺乏高级数据结构,因此要想解决更实际的问题,如字符串的处理、大规模的数据分析等,就需要编写非常大规模且复杂的代码,初学者往往会显得力不从心了。

       因此,我们需要一种简单易学且能解决更实际问题的语言,Python语言恰好能弥补C语言的不足。具体地,和C语言相比,Python语言具有如下的优点:

        1、简单易学:Python语言是一种代表简单主义思想的语言,极易上手。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格。Python语言的这种伪代码本质是它最大的优点之一,它使学生能够专注于解决问题而不是去搞明白语言本身。

        2、丰富的数据结构:除了基本的数值类型外,Python语言还内置了字符串、列表、字典等丰富的高级数据结构,利用这些数据结构,我们可以解决非常多的实际应用问题,如文本的处理、数据的分析等等。

        3、逐渐流行:目前,有越来越多的项目使用Python语言开发。同时也有越来越多Python的类库被开发出来,这使得使用Python语言变得更加易用,对于提高计算机专业学生的学习兴趣和应用能力大有裨益。此外,Python语言设计之初就考虑到要能够方便地调用其他语言,因此可以方便地利用已有的其他语言编写的模块。

        本课程除了讲授Python语言程序设计语言的基本要素,包括基本数据类型、运算、控制结构、函数外,还讲授数据结构的概念和应用、算法时空复杂性的概念等知识,使学生在学完本课程后,即可利用计算机解决众多的实际问题。

课程大纲

第一周:程序设计的基础知识

程序设计的基础知识

第一周测验

第一周作业

第二周:数据类型、运算符与表达式、变量赋值与简单I/O操作

第二周测验

2.1 对象和类型

2.2 运算符与表达式

2.3 变量与简单I/O

第二周作业

第三周:程序控制结构

第三周测验

3.1:选择结构

3.2:循环结构

3.3:编程练习

第三周作业

第四周:函数与递归函数

第四周测验

4.1:函数

4.2:递归函数

第四周作业

第五周:字符串

第五周测验

5.1:字符串

第五周作业

第六周:列表与元组

第六周测验

6.1:列表

6.2:元组

第六周作业

第七周:字典与集合

第七周测验

7.1:字典和集合

第七周作业

预备知识

证书要求

本课程的总分100分,包括70分平时测验和作业分数以及30分期末考试分数。课程总分60分以上(含60分)将发放课程合格证书;90分以上(含90分)将发放优秀证书。

参考资料

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到底和之前学过的语言有哪些不同的话,建议到网上查找相关的资料。