Skip to content

cfsmile/ooppy

Repository files navigation

“面向对象程序设计基础与Python语言”讲义

内容

  • diagrams目录含插图。
  • examples目录含Python例子程序。
  • Html含HTML格式的讲义
  • *.ipynb为讲义源码

免责声明

如果发现文字或代码侵权,请及时联系。 作者会删除侵权内容。

课程目标、教学措施

课程目标

Python是一种工具,课程目标是让学生学会使用工具、会自学、会制造新工具三个方面展开。

教学措施

使用工具

讲授PYTHON基本知识,让学生掌握编程的基本手段,达到可以初步编写程序水平。 分为三个部分:

  1. 过程式编程。涵盖基本语法、基础数据类型、程序控制结构、函数、文件
  2. 面向对象编程。涵盖封装、继承、多态。面向对象技术的实际应用——异常。
  3. pythonic编程,PYTHON面向对象还有更丰富内容,如封装对应的资产、继承对应的多继承、多态对应的装相和虚基类,乃至装饰器、迭代器、生成器、多线程。这些是PYTHON特有的技术,而非面向对象语言标准技术,因此,单独讲,可自学。

数据抽象主要思想是鼓励程序定义自己的数据类型。

自学

内容多,不可能面面俱到,都学。因此,要都会学生自学。

  1. 定位自学材料,Python Llibrary,自带的doc。要求自学,logging,argparse,doctest,PYTEST,SPHINX。
  2. 搜索,stackoverflow。
  3. file定位源代码。

制造工具

用python开发软件。 模块化编程最重要部分,就是记录库方法的用法,撰写供他人参考的文档。

  1. 定义一位api,api要旨即调用、实现分离。举例,比如Counter,累加器,日期,howdoi,auth,记事本?设计软件sphinx
  2. 编程,实现api定义
  3. 测试,doctest,pytest
  4. 打包,发布pypi或github。安装包。 学习时的案例,也有意按开发思路讲。

实验

针对python的擅场,设计三个实验:脚本、网页、数据分析 脚本:howdoi 网页:flask 数据分析:决策树、k-means自主实现,及scikit-learn。这部分不只是开发软件,相当于做科研,因此两个目的。一是遵循科学式的做法:先提出假设、再建立数学模型、再次用多种实验验证它们。必要时,重复这个过程。二是做出可复用的研究,虚拟环境和jupyter notebook。

算法

算法只能前两步,学习算法,分析算法,没有第三步创造算法,即设计算法。 性能是算法研究的核心问题。 学习是了解现有算法,它们解决哪些问题,性能如何。 分析是复杂度分析。 设计应当是数学任务,而非计算机任务。因此不讲,但可以提提设计算法思想。

观测点:

  1. 设计API,uml或文字,或sphinx
  2. 实现api,codiing, 符合flake8 style
  3. 测试doctest
  4. 文档 sphinx-apidoc
  5. 版本?协作?

实验:

  1. 运行程序、测试用例
  2. 打包,含sdist, bdist
  3. 生成文档sphinx html

About

lecture notes on oop and py

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published