|
网上对cs61a评价 |
|
|
杭电学生写的学习cs61a经验 |
|
|
| 教材&参考资料 |
教材 Composing Programs中文翻译 |
|
|
本课程采用cs61a 2020spring前半学期python内容。推荐学习次序:上课(看lecture),看教材,做lab,做hw,做proj(做之前必须看tutorial pdf或网页文档,lab00 那里有所有的打包下载百度云链接)。 |
|
|
教材 Composing Programs 英文版 不用翻墙就可阅读 |
|
|
参考资料 Nanjing University SICP fa2021 |
|
|
UCB CS61A Structure and Interpretation of Computer Programs |
|
|
python官方教程 |
|
|
精译【UC Berkeley 公开课-CS61A (Spring 2021)】-中英双语字幕 |
|
|
【中文精翻|中文语音】[2023·CS61A |
|
|
| 评分标准&成绩查询 |
评分标准 |
本课程采用cs61a 2020spring前半学期python内容
- 根据6次HW,5次LAB,自愿撰写题库(Moodel coderunner 题),每个合格题目,平时成绩+1分,平时成绩加到 100 分为止(因为 DeepSeek 的出现,平时成绩主要根据机试给出)。
-
目前 openEuler 社区里,专门以 Python 为主的实习小组是SIG-python-modules(Python 模块特别兴趣小组https://www.openeuler.openatom.cn/zh/sig/sig-python-modules)。根据社区最新信息,该小组正在进行的实习任务主要有:
🐍 SIG-python-modules 的实习任务
-
Python 软件包维护与升级:维护 openEuler 发行版中的 Python 软件包,包括修复 bug、升级版本、处理依赖关系等。
-
新 Python 软件包引入:将社区用户需要的 Python 包引入 openEuler,确保兼容性和稳定性。
-
Python 软件包测试:使用社区测试框架(如 mugen)编写测试用例,确保软件包质量。
🎯 如何参与
🔖 其他可能涉及 Python 的小组
除了 SIG-python-modules,以下小组的实习任务也可能涉及 Python:
建议直接访问 openEuler 实习官网,查看最新发布的实习任务列表,选择感兴趣的任务并联系导师报名参与。实习积分多少分,平时成绩加分*2,平时成绩加到 100 分为止。
- 蓝桥杯 python省赛 一等奖,平时成绩+10 分,二等奖+5 分,三等奖+2 分,平时成绩加到 100 分为止。
- 3个项目proj( 实验课),每次满分100分,(项目)实验成绩占比25%。未经过答辩满分80 分,经过答辩和现场代码补全成绩85-100。每迟交一天满分扣2分, 最多扣 40 分。
- 平时考试,机试 3 次,满分 100 分(占比 25%)
- 期末考试,笔试,满分100分,考试成绩占比50%。考试范围平时 HW、LAB题库和https://cs61a.org/resources/ cs61a官方对应章节历史试题。(重点发现、审核考试成绩和平时成绩不统一的学生平时代码是否存在抄袭)。考试AB卷 每个题库每卷 3题,总计 6 题。AB卷题目完全不重合。HW、LAB题库数量参考平时 HW、LAB 数量;历史试题题库范围为2020 年midterm1 和 midterm2 (4套卷子25题左右)对应于授课章节的题目(考到面向对象和继承)。题库题目所在试卷以mt.pdf、mt1.pdf或mt2.pdf结尾。
如何避免抄袭/抄袭标准:最低标准为看过答案或他人代码后确保充分理解后,关闭所有参考代码,再开始coding。不要反复多次频繁查看。禁止复制粘贴任何他人代码。
本课程会对学生提交的代码采用https://theory.stanford.edu/~aiken/moss/ 进行抄袭检测。 |
|
查看历次成绩-腾讯文档链接 |
|
|
| 加分:moodle coderunner 题库 xml 文件撰写指南 |
xml撰写指南 |
官方手册:https://trampgeek.github.io/moodle-qtype_coderunner/
官方 python xml 模板 https://github.com/trampgeek/moodle-qtype_coderunner/blob/master/samples/python3demoquizquestions.xml
1.题目类型:python3_cosc121。这是一种复杂的 Python3 题型,坎特伯雷大学 COSC121 课程的几乎所有题目都使用了这种题型。学生提交的题目首先要经过pylint 源代码分析器,如果 pylint 出现任何错误,则提交的题目会被拒绝。否则,测试将照常进行。显然,pylint需要安装在沙盒服务器上。这种题型需要使用许多不同的模板参数(请参阅“模板参数”部分了解这些参数的含义),以便将其用于解决各种不同的问题。例如,可以将其配置为要求或禁止特定的语言结构(例如,要求学生将for循环重写为while 循环),或将函数大小限制为给定值,或从学生的代码中剥离主函数,以便单独测试支持函数。有关如何使用此题型或任何其他题型的详细信息,可以通过展开题型编辑页面中的“题型详情”部分 找到。
2.Moodle CodeRunner 题目的 XML 结构示意图
<question type="coderunner"> │ ├─ <name> … </name> # 题目名字 命名规则 腾讯文档 作业号+题号+题目+分值+学号后四位 如 lab0101Fix the Bug (100pts)1234 │ ├─ <questiontext format="html"> # 题目描述 │ └─ <text><![CDATA[ … ]]></text> │ ├─ <generalfeedback format="html"> … </generalfeedback> │ ├─ <defaultgrade> … </defaultgrade> # 分值 ├─ <penalty> … </penalty> ├─ <hidden> … </hidden> │ ├─ <coderunnertype> … </coderunnertype> # 使用的 CodeRunner 题型 ├─ <prototypetype> … </prototypetype> ├─ <allornothing> … </allornothing> ├─ <penaltyregime> … </penaltyregime> ├─ <precheck> … </precheck> ├─ <showsource> … </showsource> │ ├─ <answerboxlines> … </answerboxlines> # 答题框行数 ├─ <answerboxcolumns> … </answerboxcolumns> ├─ <answerpreload> … </answerpreload> ├─ <useace> … </useace> # 是否用 Ace 编辑器 │ ├─ <answer><![CDATA[ … ]]></answer> # 标准答案 │ ├─ <validateonsave> … </validateonsave> │ ├─ <templateparams><![CDATA[{ … }]]></templateparams> │ # JSON 格式参数,如 requiredconstructs / proscribedconstructs │ ├─ <testcases> # 测试用例集合 │ ├─ <testcase … > │ │ ├─ <testcode><text>…</text></testcode> │ │ ├─ <stdin><text>…</text></stdin> │ │ ├─ <expected><text>…</text></expected> │ │ ├─ <extra><text>…</text></extra> │ │ └─ <display><text>SHOW</text></display> │ │ │ └─ <testcase … > … (更多测试) │ └─ </question>
3. 测试用例,除了 cs61a hw lab 提供的测试用例,要求至少多自创 1 个测试用例。
4. 考试前一周合格一题加 2 分,后面到考试前的周六加 1 分,临近的周日开始不加分(老师这时候已经开始自己动手改 xml 准备考试题了)。 |
|
| 01 Introduction & 技能补缺 |
HW00 shell cmd git |
|
|
lab00 环境配置说明(网址要翻墙,或见pdf),只有最后一步4.4判分命令--sumbit改--local不一样 |
|
|
lab00 环境配置说明(网址要翻墙,或见pdf),只有最后一步4.4判分命令--sumbit改--local不一样 |
|
|
lab hw proj tutorials 百度云打包下载 (第一次是lab00) |
|
|
lab hw proj code模板 百度云打包下载 已更新新OK (第一次是lab00.zip) |
|
|
python代码风格要求 |
|
|
python3速查卡cheetsheet |
|
|
01 introduction |
|
|
01 实验室demo |
|
|
教师主页及本科生进实验室说明 |
|
|
| 02 Names, Functions & Control |
可接受任意数量参数的函数;*:别只把它当乘号,还能打包和解包 |
|
|
Lab 01: Variables & Functions, Control tutorial 不能打开的用下方百度云下载pdf |
|
|
Hw 01: Variables & Functions, Control tutorial 不能打开的用下方百度云下载pdf |
|
|
lab hw proj tutorials 百度云打包下载 |
|
|
lab hw proj code模板 百度云打包下载 已更新新OK |
|
|
02-Names-and-Functions |
|
|
03 control |
|
|
lab00 lab01讲解 |
|
|
HW01讲解 |
|
|
| 03 Higher-order Functions & Env Diagrams 1 |
Lab 02: Higher-order Functions |
|
|
04-Environment-Diagrams |
|
|
lab02 |
|
|
高阶函数(嵌套定义函数) pythontutor 环境图 |
|
|
| 04 Higher-order Functions & Env Diagrams 2 |
Hw 02: Higher-order Functions |
|
|
04-Environment-Diagrams |
|
|
hw02讲解 |
|
|
匿名函数 lamda |
|
|
装饰器:不修改代码,就能改变函数功能的强大特性 |
|
|
| 05 Recursion (Examples) & Containers |
Lab 03: Recursion and Tree Recursion |
|
|
Hw 03: Recursion and Tree Recursion |
|
|
lecture 06 |
|
|
lecture 07 |
|
|
| 040506 周 Proj 01: The Game of Hog |
Proj 01: The Game of Hog 提交 deadline 10.16 24 点 后面每晚一天扣 2 分 最多扣40分。 |
|
|
proj 提交说明 |
https://leedong64.cn2.quickconnect.cn/homework/
用户名:qq 群公布的 密码:qq 群公布的
作业提交,不要压缩。
0.找到课程名称对应目录,本课程为2025python
1.找到对应的目录,例如proj1等。进入该目录。再进入 1 班或 2 班目录。
2. 新建自己的目录,例如3120001234张三;或更改本地要上传到文件夹名为3120001234张三

3. 将所有需要上传的文件或文件夹拖进刚刚新建的自己的目录下,或将本地3120001234张三拖进当次作业目录下(如lab00)
目录下包括
1.ok评分截图(如下图的例子通过几个测试就相当于评分,另外截图要截到系统时间),按题号命名(新加入目录的文件)。

2.代码(要所有文件,包含当次如 proj1 整个模板目录 下所有文件)。 |
|
| 07 Data Abstractions |
lecture 08-Containers |
|
|
09-Data-Abstractions |
|
|
| 08 Trees |
Lab 04: Data Abstraction, Lists, and Trees |
|
|
Hw 04: Data Abstraction, Lists, and Trees |
|
|
10-Trees |
|
|
Trees |
|
|
| 08 Mutability |
11 mutable values |
|
|
Mutability-cn |
|
|
Q&A |
|
|
| 080910 周 Proj 02: Autocorrected Typing Software |
proj02: Autocorrected Typing Software |
|
|
| 09 Iterators & Lazy Evaluation |
Lab 05: Nonlocal, Iterators, and Generators |
|
|
Hw 05: Nonlocal, Iterators, and Generators |
|
|
13-Iterators |
|
|
13-Lazy-Evaluation |
|
|
Iterators-cn |
|
|
Generators-cn |
|
|
补充讲义4.2 隐式序列 |
|
|
| 111213 周 Proj 03: Ants vs. Some Bees |
Proj 03: Ants vs. Some Bees |
|
|
| 12 Object Oriented Programming |
14 OOP |
|
|
Objects |
|
|
Attributes-cn |
|
|
Q&A |
|
|
| 13 Inheritance |
Hw 06: OOP and Inheritance |
|
|
Lecture20Inheritance-cn |
|
|
Lecture21Representation-cn |
|
|
15-Inheritance |
|
|
| 15 周 复习资料、期末考试 |
题库部分试题讲解 |
|
|
试卷题库(cs61a网站为准,这里可能不全) |
|
|
| 补充资料 |
面向对象编程,一定要知道的类变量、类方法(装饰器 @classmethod)、静态方法@staticmethod |
|
|
生成器:处理大量数据时,节省内存和时间 |
|
|
专用方法/魔法方法 |
|
|
Special methods 专有方法 |
|