这是关于东北大学计算机科学学院课程改革的讨论,主要围绕编程基础课程展开,以 Python 为例,具体内容如下:
- 设计为先(Design First):认为编程教学应从让初学者面对文字问题和空白屏幕,逐步引导其系统地进行编程,包括明确输入、输出及中间步骤,如通过编写测试用例等方式,还应区分原子函数和组合函数,即使是一年级学生也可处理树形和图状数据,创建交互式图形程序等。
- 语言其次(Language Second):指出初学者无需学习 Racket 语言,因其语法全是括号,较难理解。而应采用类似预代数的简单计算模型的语言,如 Beginning Student Language,避免像 C++等语言因假设程序员熟悉整个语言而导致初学者易犯错,这种小语言的错误信息更易理解。
- 设计为先 2(Design First 2):第二门课程教 Java 是为了让学生在复杂语言中继续强化设计原则,因为第一门课的语言未进行类型检查和面向对象编程,而 Java 能满足这些需求,同时也需避免过多赋值语句等,要让学生从简单程序逐步走向大型系统。
- 语言其次 2(Language Second 2):第二学期的 Java 课程会选取支持面向对象设计原则的元素,如用类作为数据表示形式,接口用于统一处理不同数据变体等,同时要平衡原则与现实的冲突,让学生了解专业编程的一些现实情况,如各种错误类型等。
- 是否有效(Does it work):通过评估结果表明,学校课程在解决编程问题和理解错误消息等方面效果显著,比普通课程学生表现好很多,且 Emmanuel Schanzer 的研究显示教学方法能有效提升学生解决问题的能力,Mark Guzdial 最终也认可了该课程设计。
- Python(Python):有人认为应尽早教授 Python 及相关内容,因为其他学校都在这么做,且教学人员也希望这样做。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。