曾經有位高中畢業生問我:選擇什麼樣的人生道路效率比較高?我被問住了,因為我覺得除了存心忽悠,恐怕這個問題沒有答案。
漢語中将學術工作稱為“做學問”,學問學問,學與問是密切關聯的。我們這些經曆過文化大革命的人都熟知一句話:“學‘毛著’(指毛澤東著作),要帶着問題學”。這句話已随着曆史遠去,但不管學什麼,能夠帶着問題學一定是很有效的學習方法。要想做到這一點,首先得能想到問題,提出問題。
多年前,下課時還總會有學生圍着我問這問那,後來慢慢地,提問的學生越來越少,而且問題越來越聚焦于兩類:“作業中的某個題怎麼做”或者“某個題目在考試中會不會有”。
人在年幼時總是愛提問的。我碰到過的稱得上“十萬個為什麼”的小朋友絕不止一兩個(我的小孫女沒上小學之前,總是上天入地問個不停)。以前有一本著名的英國科普刊物,叫New Scientists,經常發表一些家長替孩子轉達的問題。一個6歲孩子問“餅幹和面包都是面粉做的,為什麼一個越放越硬,一個卻越放越軟”;還有一個4歲女孩問“狗知道自己是狗嗎”(對研究動物行為的科學家而言,這個問題一點也不可笑)。等到我們的孩子稍微長大一點,就會一再被告誡:“别亂想,快做題!”于是,慢慢地“做題”變成了“刷題”,也很少有興趣和心态自己想問題了。
幾年前,一位國外著名大學的教學負責人應邀參加我國的院校評估,他在聽了某“985”大學的課後發表了一通評論:“大學課堂從低到高可分為5級,最低一級是學生被動聽課,依次向上是老師問學生,學生問老師,學生質疑老師,師生辯論”。大家可以想象得出他對當時課堂的評價是哪一級。
其實能提出問題是“人才”的基本素質之一,而且應該是主要素質之一。善于提問體現了兩個方面的素質:有興趣和敢思考。這樣的素質并不完全是天生的,兒童的好奇心隻是提供了一點“土壤”。能提出問題,特别是提出對自己“有啟發”的問題,是需要在教育過程中引導的。“Critical Thinking(批判性思維)”在國外的很多學校中是一門重要課程,其主要目标就是引導學生提問。
我自己在上一門改革的計算機專業基礎課“計算機問題求解”。學生學這門課的主要方式是閱讀材料(教材),主要由學生自己看(“自我探索”),課堂的主要任務是引導學生深入思考(“深度引導”)。為了體現啟發學生自己提出問題,上課用的PPT上有若幹頁隻是用大号字給出的問題。平均每次課提出的問題大約在15~20個,積累下來超過1 000個問題,而且還不包括用小号字随處插入的問題。我不時會問學生:“你們看這段書時有沒有想到這個問題”,很多時候多數學生回答沒有,這說明已經産生了引導效果。
關于我提出的問題,這裡可以舉出一些例子:
(邏輯)為什麼集合代數那一大堆公式和命題邏輯演算那一大堆公式“樣子”很像,處理符号含義不同,形式上幾乎都是對應的?
(無限集)我們用是否“排好隊”描述無限集合是否為“可數集”(和自然數集合等勢),為什麼“......—3,—2,—1,0,1,2,3......”不能算“排好隊”,也不能就此證明整數集是可數集?
(程序設計基礎)變量是不是量?
(算法問題)為什麼兩個樣子差不多的問題,一個很容易,一個卻很難?如歐拉回路的判定與生成問題與哈密爾頓圖的相應問題。
(排序課)都是采用divide-and-conquer策略,合并排序和快速排序有什麼不同,你覺得為什麼會産生這樣的不同,帶來的後果如何?
(圖搜索)既然都是同樣的遍曆所有頂點的問題,為什麼需要兩個不同的算法?這與最小生成樹問題同樣流行兩種算法的原因有什麼不一樣?
更多的例子是與當時的内容“自然地”相關的,目的還是引導學生“想到問題”,是否每個問題都有一緻的答案并不重要。
我在開頭提到的那位同學顯然對自己想問的東西全然沒有真正思考,所以自己也不清楚究竟要問什麼。這樣的問題與祈禱眼前突然出現個“魔法神杖”沒有本質差别,也不可能獲得真正的“學問”。事實上,并不是非要再加上一門關于教導學生開動腦筋的課程(我們的課已經太多了),引導學生提問應該是每門(值得上的)課程不可或缺的一部分。
有一次我在某大學聽了一堂數據結構課,講課老師應該是為了通過評估特意安排的,那堂課的内容是圖的遍曆:深度優先與廣度優先算法。老師的課堂講述非常細緻,也很清晰。下課後我與任課老師進行了一些交流,我建議他算法過程不必講這麼細,因為書上有完整的算法過程,讓學生自己看即可。然後我向他提了一個上面我提到的問題:既然同樣針對的是“圖中的頂點遍曆問題”,為什麼要煞費苦心地弄出兩個算法來呢?這位老師一時沒有反應。其實我相信絕對不是老師的水平問題,但這顯然是課前沒有準備。任課老師并沒有想到此問題,也絕不認為學生可能提出這樣的問題(算是“知己知彼”)。
我經常聽到第一門程序設計課的老師說起“遞歸”是難點,卻很少聽到老師引導學生思考遞歸與數學歸納法本質上是否相似。學第一門程序設計課的學生剛剛經曆過高考,對數學歸納法一定非常熟悉,如果有學生想到這個問題,那是否能繼續問:為什麼計算機出現以前隻流行數學歸納法,遞歸解題卻不流行呢?其實遞歸用起來足夠“容易”,難點不是怎麼用,而是引導學生認識其本質,使學生不覺得這有什麼“不自然”。事實上,真有不少計算機專業的學生,直到畢業也沒有搞清楚,如果不能用遞歸,怎麼用循環解決“Hanoi Tower”問題。
我在這裡想說的是,如果我們的老師沒有養成一個經常給自己提問題的習慣,那麼如何引導學生提出問題呢?
作者簡介:
陳道蓄,南京大學教授、博士生導師;近 10 年來,緻力于計算機專業核心基礎課程的教學改革,創建 了内容涵蓋計算導論、離散數學、程序設計、數據結構以及計算機算法的全新課程“計算機問題求解”;同時積極 參與了中國工程教育專業認證體系的建立,該課程的建設思想充分考慮了對專業認證所要求的學習産出的支撐。
文章轉自:
陳道蓄. 教學生提問和教學生答問,哪個更重要?[J].計算機教育,2021(2):優先出版.
文章轉載鍊接:
https://mp.weixin.qq.com/s?__biz=MzA3NTMzMzMyNw==&mid=2649454756&idx=1&sn=e5279e558544a21e2bf669cbfa69f329&chksm=876df304b01a7a12ce84e6825036b0a1a3d7ac124a389d0f614a03b5f08aca0f99c223f65b66&mpshare=1&scene=1&srcid=0108WIUHDyQAJ2xHKob2m5Yu&sharer_sharetime=1610149635796&sharer_shareid=5b57222ab983116e672a1432aee5d1c6&version=3.1.0.3004&platform=win#rd