介绍
编程方法论是关于如何系统、科学、有效地开发高质量软件的一整套理论、原则和实践方法。它不仅关注代码的实现,更强调程序的结构、可维护性、可扩展性和团队协作。
一.核心内容
1.逐步求精法
把复杂问题分解为一系列简单子问题,逐步细化,直到每一步都能直接实现。
2.结构化程序设计
用顺序、选择、循环三大结构组织程序,提高程序的可读性、可维护性和可靠性。
3.良好的软件工程原则
- ● 明确前置条件和后置条件
- ● 代码规范与文档
- ● 代码审查与重构
- ● 代码复用与扩展
4.面向对象编程
- ● 封装:将数据与操作封装为对象,隐藏内部实现。
- ● 继承:通过子类复用父类属性。
- ● 多态:同一接口对应不同实现。
- ● 抽象:通过抽象类 / 接口定义规范。
"学习编程不仅仅是学习一门语言的语法,更是学习如何解决问题,以及如何设计清晰、正确、易维护的解决方案。"
教学内容
参考资料
本课程有一篇必修课文,标题为 Karel the Robot Learns Python。这是一个简短的交互式教程,介绍了在极其简单的机器人世界背景下编程的主要概念。 点击右侧Karel 文档
课前准备
1.请下载并安装 Python 以及 PyCharm: 点击查看教程
2.下载Karel库: 点击下载
3.下载graphics库(图形库): 点击下载
3.1安装pillow库(图形处理库):
点击PyCharm下方按钮Terminal 在光标闪烁处复制以下代码,按回车等待安装:pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple/
4.下载金字塔初始代码文件: 点击下载
5.下载捍卫民主初始代码文件: 点击下载
6.下载ESP32驱动: 点击查看教程
7.请下载并安装 Processing : 点击查看教程
8.请下载并安装 Webots : 点击查看教程
如果安装其他盘失败,请安装到C盘。
编程任务
这门课将有多个编程作业。随着学习的进行,作业的难度会略有增加,并且需要更多时间。
本课程的编程任务旨在培养学生的编程能力,包括:
- 机器人编程:Karel编程、仿真机器人E-puck编程
- 图形编程:graphics库、开源图形设计软件Processing
- 嵌入式开发:Esp32硬件电子元件连接、软件MicroPython编程
- 使用的编程语言为Python
1.编程基础
● 编程语言:使用Python,语言只是工具,核心是编程思想。
● 变量与数据类型:整数、浮点数、字符串、布尔值等。
● 表达式与运算符:算术运算、比较运算、逻辑运算。
● 输入与输出:input()、print()等基本用法。
2.控制结构
● 条件语句:if、elif、else。
● 循环结构:for循环、while循环。
● 循环控制:break、continue。
3.数据结构
● 元组(Tuple):基本用法。
● 列表(List):增删查改、遍历、切片等。
● 集合(Set):基本用法。
● 字典(Dict):键值对操作。
4.文件操作
● 基本操作:读取与写入(open、read、write等)
5.函数与模块化
● 函数定义与调用:def语句,参数与返回值
● 作用域:局部变量与全局变量
● 模块与库:如何导入和使用Python标准库和自定义模块
6.字符串处理
● 字符串的基本操作:常用方法(如split、join、replace等)
● 格式化字符串:f'string'
7.错误与异常
● 异常处理:try、except、finally
8.面向对象
● 类与对象:class定义、实例化对象
● 属性与方法:构造方法__init__,实例方法
● 四大特性:简单介绍/p>
9.图形化编程
● graphics使用CS106A自带的graphics.py进行简单的编程。
● karel编程通过简单指令和逐步求精法,训练学生用结构化和模块化思想解决问题。。
10.算法初步
● 简单算法排序、查找等
● 迷宫算法右手法则、左手法则等
11.编程方法论思想
● 分解问题将大问题拆解为小问题,逐步求精。
● 自顶向下设计先设计整体结构,再实现细节。
● 调试与测试边写边测,及时发现和修正问题。
● 代码风格与可读性注重代码规范、注释和可读性。
期中诊断
考试说明:
- • 考试将在纸上进行,因此请带上铅笔或钢笔。
- • 这是你将随考试获得的参考表
- • 你还可以带上 1 页正反面的手写的笔记页。
- • 考试将涵盖第 14 讲:字符串的所有内容,但不包括文档测试或图像。