致通识,感谢你助长我们远航
方正的书本整齐地排列,标准的教学纲要,流程化的课程,教室里矩阵化排列的同学们如同行列式分布般的桌椅,整齐划一地学习钻研课本上的应会应知内容。古语有云:“没有规矩不成方圆”,专业课程以课程大纲为规,以教师为矩,为我们端正学习习惯,规范学子行为,奉献出不可磨灭的功绩。在这把刻度尺默默地在当代高校中发光发热的同时,有这样一类课程,它不限制于课本的布局,甚至可以说对课本的所有权没有硬性要求,它所在意的不是你是否要按流程化建设你的知识体系,而是或丰富或装点你的思维版图,以一种近乎“绝对自由”的教学方式,润物于无形。不同的同学从中汲取不同的养分,无异于学术界百家争鸣的精彩,在莘莘学子脑海中描绘千姿百态的蒙娜丽莎。
有没有这样一门课,老师用一整节课时间帮你探寻兴趣所在、强调思维方法的重要性?有没有这样一门课把主动权交还给学生,在探讨中完成思想的交汇,学习于无形,收获于有型。有没有这样一门课让你不再在意分数的高低而是感恩所学所感在人生旅途中的装点?是的,通识选修就是这样一门课。如果说专业课得益于它的规范和深刻,那么通识选修则因发散和广泛而熠熠生辉。从知识的获取转向思维的培养,专业知识的夯实伴随着能力素养的提高,为当代学子的身心建设提供了不同的方向和渠道,给了我们一份更令社会满意的答卷。
不可置否,作为一名大学生,尤其是刚进入校门时,从认知上的错误到行为上的不成熟,对很多东西都是一种懵懵懂懂的状态。可以说,对专业的名词了解也不够清晰完善,真正投入实践时才发现于所思所想大相径庭。以至于,对自己的选择有所迷茫,是否对专业具有兴趣,是否能学到东西,是否所学对今后发展有帮助都打上了问号,这些无可厚非的事实似乎成了同学们的通病。而通识课以一种近乎补充、完善课程体系的形式出现却帮助了我们解决这个难题。给予一个已经选完专业的学子,扩充视线于专业之外的机会。从自由查找到分组讨论,能力的培养和获取在这里体现。
《计算思维与问题求解》这门课令我没齿难忘。第一堂课老师从生活实际出发,讲述了许多学习生活中存在的问题,与我们交汇观点,并设想了一些解决方法,同时对我们提出了一些预期和可行性的建议。接着第二堂课老师让我们对我们所选的课程进行了进一步的描绘,不局限于书本知识,而是针对“计算思维与问题求解”这个名词进行展开,从更宽泛的范围去了解,之后的几节课也是这样,先概述好问题和学习方向,对每个名词从多个侧面扩充任职体系。大略的概况建设好后,再进行兴趣小组的划分,与高考选专业不同,通识课给了我们一次先体验再选择的机会,让我们的选择更理智,更适合自己。且不谈正确性与盲目性,这种自发的方式似乎更能助长我们学习的积极主动性。从小组的划分到组长的选拔,在大方向确定后,以一种绝对信任、放权、自由的形式,将主动权交于学生群体。这种选择不一定是最对的,但或许是更适合的。
知识的查找亦是如此,老师从建议的角度给出可以用来参考的书籍类别,提供一些可能用到的网站,但并没有任何限制的成分,具体实施的方法由自己或小组自主探寻。这种探寻方式更接近一种自主研发模式,锻炼个人的知识查找获取能力,同时又可以和他人交汇观点,并协作融合不同观点下的问题探讨解决。之后的课程老师提供给我们一个展示和讨论的平台,在课程中加上了答辩的色彩,让思维碰撞出火花。
以下举例部分我在此堂课上的收获。刘同学从历史人工研究、现代计算机研究、研究圆周率的意义,以及圆周率的计算方法上给我我们清晰和较完善的解释,同时让我们看到了她原创的解体思维过程,使我意识到对一种问题探讨自身沉浸思考的重要性。贾同学从生活实际出发,讲述了她对逻辑的不同观点,同时也让我们感受了她丰富的生活经历,让我学到生活结合学术所学的必要性等等。由于不限于时间空间意识方式方法,我从网络的大环境出发,首先查询了对一些实际问题的解决方法,选取其中感兴趣的部分与组员讨论,接着进一步细化方向,对每个问题进行文件检索、资料查找,细化问题研究。下面简述我的思维及探讨过程,首先作为问题的引入,我设计了一个贴近于我们生活实际的问题,这个想法源于小组讨论对算法的认识认知中最接近我们所识的“鸡兔同笼”问题,故我们采用案例一:百钱买百鸡【1-2】,同时汲取组员意见加上吸引人注意的开场白:“将视线切换至小学让我们再做一次小学生”问题描述:用一百元钱买一百只鸡,雄鸡五元一只,母鸡三元一只,小鸡一元三只请问聪明的你应该如何购买?这里我们在探讨中提出可以增加趣味性,于是我们加了一句符合当代潮流的话:“郑重声明:没有重男轻女和歧视儿童的意思,不喜勿喷”,同时增加互动性,我们随堂选了同学提问。接下来展示我们的分析过程:这是一个三元一次方程组问题——可能有多个解——人工算计算复杂。从空间说说中得到启发:“一QQ好友今天下午一直在删说说,有好几千条,累得要死。像这种批量性、重复性、机械性的工作简直最适合用编程解决了,这就是编程的优势!”于是我们开始查找编程上的资料,并从最简洁明了的可视化程序编辑器VISUAL BASIC入手。设计了一个带有循环思想的程序,代码如下:
• Option Explicit
• Private Sub Form_Load()
• Dim i As Integer '雄鸡
• Dim j As Integer '雌鸡
• Dim k As Integer ‘小鸡
• For i = 1 To 98
• For j = 1 To 98
• For k = 1 To 98
• If 5 * i + 3 * j + (1 / 3) * k = 100 And i + j + k = 100 Then Print "雄鸡数量为" & i, "雌鸡数量为" & j, "小鸡数量为" & k
• Next k
• Next j
• Next i
• End Sub
并进行试运行,运行成功后,我们从这个静态的问题出发,将视线转化至动态的问题上,于是提出案例二:计时器。问题描述:设计一个可以动的按钮,随时间一起摇摆。同样的方法,问题分析:能动-----是个变量,位置可由横纵坐标表示,这里我们感谢“笛卡儿”提供的思想贡献。通过坐标表达的方法,对变量进行转化,用坐标表示物体运动。同样我们设计了程序:
• Option Explicit
• Private Sub Timer1_Timer()
• Dim a
• 'Command1.Move 1000, 240
• Command1.Top = Command1.Top + 120
• End Sub
两次试运行成功后,我们把目光转移向更贴近学术的方向,考虑到第一次分享课上令人印象深刻的π,我们就从这里入手,从而设计了,案例三:计算π【3-7】。思维分析,可将算数问题转化成几何问题——即,圆与正方形的面积比——Πr^2/r^2=π——在计算机中,可用概率问题求解(初高中课本有相关介绍),及通过树形结合和可行性验证后设计出,
• Option Explicit
• Private Sub Command1_Click()
• Cls
• Line (0, 0)-(6000, 0)
• Line (0, 0)-(0, 6000)
• Line (6000, 0)-(6000, 6000)
• Line (0, 6000)-(6000, 6000)
• Circle (0, 0), 6000
• Dim i As Single
• Dim x As Double
• Dim y As Double
• For i = 1 To 100000
• x = Rnd() * 6000
• y = Rnd() * 6000
• PSet (x, y)
• Dim sum As Double
• If x ^ 2 + y ^ 2
• Next i
• Dim pi As Double
• pi = (sum / i) * 4
• Text1.Text = pi
End Sub
同时我们发现,定义的循环变量可改变其后0的个数从而控制精度。更学术化规范一些我们开始研究,案例四:判断一个数是不是素数【8】。(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。思想:机械的尝试运算——循环思想。设计出:
• Option Explicit
• Private Sub Command1_Click()
• Dim a As Integer '输入的
• Dim i As Integer
• Dim sum As Integer
• a = Val(Text1.Text)
• For i = 1 To a
• If a Mod i = 0 Then sum = sum + 1
• Next i
• If sum
• Label1.Caption = "您输入的数" & a & "是质数"
• Else
• Label1.Caption = "您输入的数" & a & "并不是质数"
• End If
• Text1.Text = ""
• End Sub
同样的办法,案例五:求水仙花数, 水仙花数【9-12】(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。思维一:表达式——思维二:循环思想。得出:
Option Explicit
Private Sub Command1_Click()
Dim i As Integer
Dim a As Integer
Dim b As Integer
Dim c As Integer
For i = 100 To 999
a = Int(i / 100)
b = Int((i - a * 100) / 10)
c = Int(i - a * 100 - b * 10)
If a ^ 3 + b ^ 3 + c ^ 3 = i Then Print i
Next i
End Sub
以及
• Private Sub Command2_Click()
• Dim i As Integer
• Dim a As Integer
• Dim b As Integer
• Dim c As Integer
• For a = 1 To 9
• For b = 0 To 9
• For c = 0 To 9
• i = a * 100 + b * 10 + c
• If a ^ 3 + b ^ 3 + c ^ 3 = i Then Print i
• Next c
• Next b
• Next a
•
• End Sub
等等,通过以上的学习探讨我们大致学会了对一种问题的分析计算的方法,同时也是发现问题,重新规整分析,对问题的再分析以及或个人或集体的解决方式。相信再次遇见问题时,我们不是害怕亦或是抱怨,而是主动着手分析解决。
有人说,上过大学的和没上过的学的就是不一样。是的,学了通识选修课之后我对这句话有了不同的理解,上过大学不仅仅是对智商和专业知识的肯定,更是通过大学的熏陶,在理解能力,认知能力,解决问题的思维能力等方面进行了不同形式的锤炼,在社会的大环境下和工作学习更加相得益彰。感谢你,通识,你助长我们的远航。