查看原文
其他

史诗级Python教材出版了!

郭炜 燕园闲师 2023-01-11

    我在人民邮电出版社出了一本Python书《Python程序设计基础及实践(慕课版)》,堪称波澜壮阔,气势恢宏的史诗级教材!明晚七点在人邮社做Python教学授课经验直播,感兴趣的朋友届时扫第一张图的二维码可以观看!谢谢捧场!后文还附上了本书内容提要和前言。

            




    

内容提要

    本书是一部零基础、高标准、大广度、重实践的Python编程教材。本书覆盖面非常广,包括计算机基础常识、Python语言的基本要素和语法、Python生态、正则表达式、数据分析和可视化、网络爬虫、面向对象程序设计入门、tkinter图形界面程序设计等内容。其中,正则表达式、网络爬虫、图形界面等是大多数Python基础教材不涉及的内容。本书对Python第三方库的使用,讲述尤其全面,涵盖数据分析库NumPy和pandas、爬虫库pyppeteer、数据库编程库SQLite3、图像处理库Pillow、Excel文档处理库OpenPyXL、统计绘图库Matplotlib、分词库jieba等。本书还专门用一章的篇幅讲述计算思维,让读者了解计算的本质、时间复杂度、数据结构等概念。

        

    本书可作为高等院校各专业学生学习Python的教学用书。文、理、艺术等各类专业的零基础学生可以学习并掌握本书80%的内容;对编程有较高需求的理科生,可以进一步再多学15%的内容;余下5%的内容则面向计算机专业学生。但即便是计算机专业的学生,也非常适合使用本书来快速掌握Python语法及各种库的使用。

        

    本书配套电子资料十分齐全,包括程序源代码、重点难点讲解视频、课程讲义、习题答案等。此外,作者在中国大学慕课开设的“实用Python程序设计”课程,提供了覆盖全书90%内容的视频讲解。

 

前 言

 

    自2019年起,北京大学在所有文科院系学生必修的“文科计算机基础”课程(2020年更名为“计算概论C”)中将Python列为主要教学内容,占据80%以上的学时和90%以上的作业、考试内容。

        

    作者自2017年起为北京大学文科院系学生讲授Python程序设计。作者教授的学生,绝大多数不仅从未接触过编程,而且相对理工科学生,数理基础偏薄弱,逻辑思维训练稍显不足。但作者并不想因此降低课程的难度,让学生肤浅地“水过”这门课,而是希望学生能够实实在在地掌握编程技能,培养出计算思维,并且积极主动地用编程来解决今后学习和工作中的问题。为此,作者采取了在许多大学计算机专业也只有编程竞赛培训中才会施行的严格训练方式—使用在线程序评测平台布置作业和进行考试,一道题哪怕只多输出一个空格,也是一分不得。这样做的效果是显著的。经过一个学期40个课时的学习,蒙古语专业的同学开发了蒙古语不稳定H复习游戏;俄语专业的同学为俄语老师制作了满足其让学生轮换座位等特殊要求的可视化座位分配系统;中文系的同学编写了爬取精美壁纸和优美诗词,并将黄历和诗词打印在壁纸上的电子明信片生成系统……绘制分形图案、自动分析处理Excel文档、自动识别和翻转上下颠倒的照片并在其上添加拍摄时间等文字、编写带自动登录功能的爬虫程序等,完成这些每周的常规作业就更不在话下。


    完全可以说,一年级上学期的文科专业学生,经过学习作者讲授的《计算概论C》课程,其编程解决实际问题的能力超过北京大学计算机专业一年级同期按部就班学习C语言和基础算法的同学—当然,这主要是Python简单易学、功能强大的功劳,并非教、学水平的差别导致。

在教学过程中,虽然考查了十数本国内外Python教材,然而这些教材都远不能满足作者零基础、高标准、大广度、重实践的要求。于是,作者耗时一年多,精心编写了本书,本书90%的内容来自“计算概论C”课程的教学实践,不但汇集了作者多年Python教学的经验,还体现了作者从事程序设计和算法教学二十四年,同时从事商业软件开发二十五年,担任北京大学程序设计竞赛队教练十年的心得体会。本书是一本从零到多方面掌握Python的教材,其与作者讲授的“计算概论C”课程特点一致,概括如下。

    

        一、零基础

    本书对零基础学习者非常友好。除了内容从零开始,本书还特意指出了教学中收集的零基础学习者常犯的各种真实错误。这些错误有的看上去非常幼稚,比如没理解程序是顺序执行,标点符号输入成中文全角等,但初学者真的会掉进这样的“坑”里两三个小时不能自拔。有了本书中随处可见的“常见错误”提示,初学者会少踩许多坑。


        二、高标准

    本书的大部分例题和习题,来自北京大学在线程序评测平台OpenJudge,该平台包含两万多道编程题,程序提交后会自动评判对错。平台广泛用于北京大学计算概论、程序设计实习、数据结构与算法等编程类课程的教学。在这个平台上做题,必须极其严谨,应对众多不同测试数据,程序输出结果必须一个字符都不能错,否则就不能通过。

以本书作为教材的教师,还可以在OpenJudge上申请建立自己的教学组,自行利用平台上的题目或自己上传的题目,在平台上布置作业和考试。


        三、大广度

    本书覆盖面非常广。除了基本的Python语法,还包括正则表达式、网络爬虫、图形界面等许多Python教材不涉及的内容。对Python第三方库的使用,更是比大多数教材介绍得多,涵盖数据分析库NumPy和pandas、爬虫库pyppeteer、数据库编程库SQLite3、图像处理库Pillow、Excel文档处理库OpenPyXL、统计绘图库Matplotlib、分词库jieba等。并且本书专门用一章的篇幅讲述计算思维,让读者了解计算的本质、时间复杂度、数据结构等概念。本书这些内容都不是蜻蜓点水,而是深入浅出。

        四、重实践

    本书非常适合非计算机专业人士使用。非计算机专业人士在工作中要用编程解决的问题,不外乎获取数据、分析数据、处理数据,并将数据分析和处理的结果展示出来。本书内容一半讲基础,另一半围绕数据的获取、分析、处理和展示这四点展开,具有极强的实用性。数学、中文、外语、经管、艺术等各专业人士,都能在书中找到贴合本专业的程序案例。本书也非常适合计算机专业人士用来快速掌握Python语法及各种库的使用。

本课程内容和习题按难度做了明确分级。没有“★”标记的是基本内容,适用于所有初级学习者。想进一步提高可以学习有“★”标记的章节。理工科学生如果想要在工作中充分发挥Python的作用,可以学习带“★★”标记的部分。标记为“★★★”的内容则适合计算机专业学生。


    除内容的以上四大特点以外,本书还配套十分齐全的电子资料,包括课程讲义以及170多个精心编写、风格简洁优美的程序源码,习题答案,还有重点难点的讲解视频,扫书中二维码即可观看。本教材配套慕课,是中国大学慕课平台上作者讲授的的北京大学《实用Python程序设计》课程,覆盖全书90%的内容。本教材大部分例题习题,可以在“北京大学OpenJudge开放在线程序评测平台”的“程序设计实习MOOC”小组中的“Python程序设计基础及实践(慕课版)教材题集”比赛中找到。例题习题后面的编号,如“(P041)”就是题目在比赛中的编号。

        本书成书过程中,得到了北京大学信息科学技术学院刘志敏老师的大力支持和鼓励,在与唐大仕、邓习峰等课程组教师的交流讨论中也颇受启发,在此表示感谢。

    作者水平有限,书中不足和疏漏之处,恳请读者批评指正。读者可以通过guo_wei@pku.edu.cn与我沟通、交流。教师如果采用本书作为教材,可以和我联系,咨询如何在OpenJudge上申请一个自己的小组,小组建好后可以在OpenJudge上将本书习题或其他已有或自建的题目布置为学生作业,在提高学生水平的同时也省去了教师批改作业的工作量。

 

郭炜

于北京大学信息科学技术学院

 


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存