“计算思维”的实践和思考(上海交通大学姚天昉)

Download Report

Transcript “计算思维”的实践和思考(上海交通大学姚天昉)

在程序设计课程中引入“计算
思维”的实践和思考
上海交通大学计算机系
姚天昉
报告大纲
引言
教学实践案例
一些问题的思考和建议
结论
引言
计算思维的核心思想和目的

计算思维是运用计算机科学的基础概念进行问题求解、
系统设计、以及人类行为理解等涵盖计算机科学广度
的一系列思维活动。

培养学生像拥有阅读、写作和算术(3R)基本技能一
样拥有计算思维技能,并能自觉地应用于日常的学习、
研究与将来的工作中。
教学实践的目的和方法
引言

教学实践是检验引入计算思维方法是否正确以及如何
推广的一个十分重要的“试金石”。

观察和评价教学实践的效果并及时总结和完善。
西安会议(C9)和济南会议(大学基础课程报告
论坛)报告的延续

计划、实施、总结和评价。
教学实践案例
引入计算思维的教学目标

程序设计思想方面:

理解计算在解决科学问题中的作用

重视计算作为科学发现的基础工具

探索不同算法在效率和性能方面的影响

理解实用的基本程序设计原则

基本理解不同程序设计语言解决实际问题的可能性

基本理解计算的限制和不可解问题
教学实践案例

程序设计方法方面:

分析和抽象问题

设计和实现针对科学问题的有效的软件解决方案

有效地使用通过函数说明所描述的软件库

理解基本数据结构的使用和功能

编写完成有明确使用目标的程序,并适当地可视化
其结果

阅读和改写已存在的程序
教学实践案例
案例一:上海交通大学《程序设计思想与方法》
概况

时间:2010年9月-2011年1月

课程学时:51(学时)(其中,课堂教学:34(学
时);实践环节:17(学时))

教学语言:英语

教学材料:英语

课程网站:英语(http://202.120.38.156/PTM-Python/)
教学实践案例

学生人数:中国学生 90人;留学生 约20人

年级:一年级第一学期
课堂教学内容

Part I:
Python Programming (20 Lectures)

Introduction to Computer Science

Introduction to Python

Value, Type, Variable, Assignment, and Type
Conversion
教学实践案例


String,
List, Tuple
and Dictionary

Conditional and Loop Statement

Function and Parameters

Recursion
Part II: Introduction to Computer Simulations,
Applications and Data Structures (10 Lectures)

Simulation and Optimization

Introduction to Computational Linguistics
教学实践案例

Data Structure and Application: Traversal
and Search

Part III: Looking at Programming Methodology
(4 Lectures)

Analysis of Algorithm
教学实践环节

小作业(个人作业)
a.输出格式变换(数据输出变换问题)
b.字符串匹配(模式匹配问题)
教学实践案例
d. 进制转换(数据转换问题)
e. 背包问题(递归问题)

大作业(小组作业-3-4人)

利用初步的计算语言学知识,设计和开发一个具
有交互界面的汉语句子分词系统(分词问题open问题)

计算语言学领域

训练语料和测试语料来自同一网站(上海世博会
教学实践案例
官方网站)

验收方式:实验报告;系统性能测试;答辩。
案例二:南方科技大学《计算思维导论》(
Python程序设计部分)
概况

时间:2011年4月-5月

课程学时:24(学时)(其中,课堂教学:12(学
时);实践环节:10(学时);考试:2(学时))
教学实践案例

教学语言:汉语

教学材料:英语

课程网站:英语(http://202.120.38.156/SUSTCPython/)

学生人数:45人

年级:一年级第一学期
课堂教学内容

Part I:
Python Programming (8 Lectures)
教学实践案例

Introduction to Python

Value, Type, Variable, Assignment, and Type
Conversion


String,
List, Tuple
and Dictionary

Conditional and Loop Statement

Function and Parameters

Recursion
Part II: Introduction to Computer Applications
and Simulations (2 Lectures)
教学实践案例


Digital Audio Processing

Simulation of Physical System
Part III: Looking at Programming Methodology
(2 Lectures)

Analysis of Algorithm
教学实践环节

小作业(个人作业)

设计和开发处理电子音频的函数,并能输出相应的
音频信号和曲线图。附加部分:组合上述函数和所
教学实践案例
开发的新函数,以达到立体声的效果。

大作业(小组作业)

设计和开发理想气体分子碰撞仿真物理系统。根据
不同的初始状态,可以计算分子速度和能量变化,
并采用曲线图和柱状图来表示这种变化情况和它们
之间的关系。

验收方法:检查开发结果和实验报告是否达到基本要
求。奖励有新意、有个性的作业。完成附加部分可得
附加分。
一些问题的思考和建议
计算思维的推行和应用不是仅仅依靠一门课程就
能解决问题。这是一个系统工程。它涉及计算机
学科的各门课程和相应的实践活动以及相互之间
的衔接。
在教学中,要采用潜移默化的方式将这种思维融
入到各个知识点以及知识点之间的关系中,使学
生自觉或不自觉地学会这种思维方式,并能初步
应用这种思维方式。
一些问题的思考和建议
实践环节是对掌握这种思维的一种最好的训练方
法。要认真对待和规划,使学生在实践中认识到
掌握这种思维方式的直接益处。
小班教学(如30-40人)有利于增加教师与学生
互相交流的机会,帮助学生建立程序设计自信心
和增强他们的编程能力。
实践环节可让学生根据自己的能力建议或选择不
同难度的题目,并留出足够的时间让学生进行
一些问题的思考和建议
践(如小作业两周;大作业四周)。
教材问题是摆在我们面前的迫切任务。如果有可
能,可以考虑同时出版一本实践项目(小作业、
大作业)指导书,其中所涉及的问题可以选自不
同的领域。它可供教师教学参考以及学生实践使
用。在教材未出版之前,也可以先出版实践项目
指导书。
结论
通过对上述两个教学实践案例的分析,说明了把
计算思维引入到计算机程序设计类课程不仅必要,
而且可行和有效。
在程序设计课程中采用Python语言,可以降低学
习难度,容易被学生掌握和应用。也受到大部分
学生的肯定。(实际上,在工程中使用Python语
言也不乏实例!)
通过实践环节,可以使学生更容易体验到计算
结论
思维所带来的直接益处。
当前要积极解决教材和实践项目指导书的编撰和
出版问题。
谢 谢!