介绍

编程方法论是关于如何系统、科学、有效地开发高质量软件的一整套理论、原则和实践方法。它不仅关注代码的实现,更强调程序的结构、可维护性、可扩展性和团队协作。

一.核心内容

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 讲:字符串的所有内容,但不包括文档测试或图像。

学习资源:

期末诊断

考试说明:

学习资源: