999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Indent軟件在編程風格教學中的應用

2010-01-01 00:00:00張良德葛湘巍劉東升
計算機教育 2010年5期

摘要:程序設計基礎課程要注重培養學生良好的編程風格及習慣,但是現在編程風格教學現狀卻不容樂觀。為使教師從繁重的指導工作中解脫出來,我們在編程風格教學中試驗性地引入開源軟件Indent,提高學生對編程風格學習的興趣。

關鍵詞:編程風格;Indent;程序設計基礎;編程習慣

程序除了寫給自己看,還要交流,良好的編程風格可以提高程序的可讀性、規范性、通用性。編程風格應該成為一種習慣,如果學生開始學習編程時就關注風格問題,并且在編程實踐中不斷審視和改進風格,就會逐漸養成一種良好的編程習慣[1]。日常教學中,教師應該注意對學生這方面習慣的培養,這也有助于塑造學生嚴謹的治學精神。

1編程風格教學現狀分析

雖然國內很多高校在程序設計基礎課程教學目標中提出要培養學生良好的編程風格及習慣,但在實際教學中,無論是教師還是學生,都很少關注編程風格的問題,而是將注意力集中在程序的語法及正確性方面。

歷經幾年的積累,內蒙古師范大學計算機與信息工程學院的程序設計基礎課程于2005年被評為“內蒙古自治區級精品課程”,教師們還自主開發了在線評測系統。該系統可以實現程序在線自動評測,將信息實時反饋給學生。它不但可以自動評測學生平時的程序作業,還可以應用于期中和期末考試。我們發現,雖然應用在線評測系統提高了編程能力,但無論是平時的程序作業還是考試的程序,學生很少講究編程風格,主要表現在:

(1) 程序中應用嵌套甚至多級嵌套時,不用鋸齒形排列,看不清嵌套層次。

(2) 邏輯結構混亂,層次不清晰,發現存在錯誤,卻難以找到癥結所在。

對于程序設計初學者來說,即使老師在教學中強調編程風格的重要性,他們也很難建立編程風格的概念,認為編程風格無關緊要,只要算法正確、實現了程序的功能和符合特殊邊界條件,無論提交的源碼格式有多亂,都可以通過在線評測系統,作業也就合格了,期中及期末考試也是如此,所以學生不可能再花費更多精力去學習編程風格并保持這種習慣。

在學生的意識中,程序的算法和功能遠比編程風格重要。大部分學生都把編程風格問題放在最后,甚至根本不去考慮風格問題[2]。因為在一個規模很小的程序中,即使格式很亂,也能正確地編譯運行。但是編寫一個大型程序時,就會導致程序的可讀性非常差,并且可能隱含錯誤,代碼的修改非常困難,甚至編程者本人在一段時間后也難以讀懂當時編寫的程序。

程序設計基礎是入門級的程序設計課程,所以一定要讓學生意識到編程風格的重要性,引導他們學習關于編程風格的基本知識,形成良好的編程習慣。編程習慣的養成一定要從程序設計初學者抓起,因為一旦養成了不良習慣,再想改正是非常困難的[3]。

培養良好編程風格的唯一途徑就是讓學生長期實踐,編寫大量枯燥乏味的程序代碼。這就要求教師必須及時、準確地評測學生的程序,及時做出信息反饋。在授課人數較少時,教師能夠及時評閱,有時還可在課上抽出時間,針對編程風格問題與學生交流反饋。

但以國內現有的情況看,一個教學班的學生一般都在八九十人,老師在批改學生程序代碼格式上耗費很多時間。繁重重復的手工批改工作分散了教師的工作時間,很難保證教學質量。為了減輕教師的工作量,使教師把更多精力投入到正常教學環節中,我們開始利用Indent進行改革嘗試。

2Indent在編程風格教學中的應用

2.1Indent簡介

GNU Indent是一個開源軟件。1976年,美國伊利諾伊大學開發出Indent的第一個版本,隨后加利福尼亞大學(1980)、Sun公司(1985)、自由軟件基金會(1989,1992, 1993,1994,1995, 1996)和Joseph Arceneaux(1995, 1996)、Carlo Wood(1999)、David Ingamells(2001)等相繼開發了Indent的后續版本,目前Indent的最新版本是2.2.10[4]。

Indent的主要功能是通過插入和刪除空格對C語言代碼進行格式化,使代碼更容易閱讀,并能夠使C語言代碼從一種風格轉化為另一種風格。學生通過使用Indent軟件,可以知道什么是規范的代碼格式以及如何應用Indent軟件對程序代碼進行格式化。

2.2Indent的功能

(1) 空行。空行能夠增強程序的可讀性,是展現程序結構的主要手段,Indent提供了很多使用空行的選項,通過空行將相關語句各自劃分成段落,分開各子程序,聲明、突出注釋部分。

(2) 縮進。縮進可以顯示程序的邏輯結構,邏輯上隸屬某語句的語句都應該縮進,能提高程序員的理解能力。有篇名為《Program Indentation and Comprehensibility》(《程序縮進和可理解性》)的文章報道說,多項研究發現縮進和理解力的提高有關。當程序有2~4個空格的縮進時,受試者對程序的理解分數會比對毫無縮進的程序高出20%~40%[5]。Indent關于縮進的選項有“-in”,其中n是指定縮進的字符個數,除“-in”外還有很多其他的縮進選項。

(3) 長行拆分。一條常見但有點過時的規則,就是語句長度應限制在80個字符以內,理由如下:

超過80個字符的語句很難讀

80個字符的限制不鼓勵深度嵌套

長于80字符的語句行在8.5×11英寸規格紙張上放不下,特別是當一面打印兩欄代碼時

現在有了大幅面的顯示器、窄的字體和橫向打印模式,80個字符/行的限制日益顯得武斷了。一行上有90個字符常比為避免超出80個字符將其拆分為2行要容易讀得多。通過現代技術的幫助,偶爾超過80個字符也沒多大關系[5]。

Indent通過選項“-ln”來指定代碼行的最大長度。當現有的程序代碼長度超過指定的最大行長度時,Indent可以通過“-bbo”選項指定在邏輯運算符之前進行換行等。

(4) 多種風格選擇。Indent有3種常用的風格,分別是GNU風格、Kernighan Ritchie風格和Berkeley風格。默認的風格是GNU風格,在程序設計學習初級階段,我們提倡學生使用默認的GNU風格。等學生對編程風格的要素有了一定了解時,再建議學生采用其他兩種風格對代碼進行格式化,使學生掌握不同編程風格的特點。

3Indent在編程風格教學中的優勢

傳統教學方式是教師在講,學生被動接受,而學生使用Indent軟件進行編程風格學習的過程是有趣的而不是乏味的。學生提交給Indent一段格式非常差的代碼,Indent馬上就會輸出經過格式化的規范代碼,學生能夠體驗一種“成功”的喜悅,并積極主動地學習。Indent的格式選項一共有80多個,學生都有好奇的心理,想看看不同的選項及選項組合會輸出什么風格的程序代碼,不知不覺中對編程風格的興趣提高了,而且加深了對編程風格知識點的理解。實踐證明,Indent軟件確實能夠促進學生自主地學習編程風格,有助于培養學生良好的編程習慣。

教師從繁重的重復性批改作業的工作中解脫出來,把更多的精力投入到教學中,教學效果顯著提高。Indent猶如精力充沛的兢兢業業的“助教”一樣,協助教師指導學生學會規范的編程風格。

4Indent在編程風格教學中的不足

對于程序設計初學者來說,編程風格包含的內容至少有Layout、Naming、Comment、Coding 四個方面的要求。Layout關注合理的布局及縮進、空格的運用等;Naming要求學生必須給變量、函數等以有意義的命名;Comment要求無論是大程序還是小程序,都要寫足夠的注釋去描述程序的功能;而Coding則要求學生注重一些控制語句的使用規范[6]。Indent軟件只能解決編程風格中的縮進、空行和空格等代碼布局問題,對于其他編程風格問題,還需要教師結合其

他方法進行教學。

5結語

我們在編程風格教學中引入Indent的初衷是減輕教師教學的負擔,讓教師有更多時間專注于編程思路、邏輯、軟件設計等方面的教學。Indent是教師的助手,能及時指導學生,但它不能替代傳統教學,如教師的課堂講解,有關編程風格的基礎內容,仍然需要教師在課堂上簡明扼要地講解[2]。

只有把編程風格的內容納入到考試范圍,在考試中加入編程風格內容的考核,才能引起學生對編程風格的足夠重視,更好地促進學生良好編程習慣的養成。

參考文獻:

[1] Kernighan B W, Pike R. 程序設計實踐[M]. 裘宗燕,譯. 北京:機械工業出版社,2000.

[2] Kirsti Ala-Mutka, Toni Uimonen, Hannu-Matti Jauml;rvinen. Supporting Students in C++ Programming Courses with Automatic Program Style Assessment[J/OL].Journal of Information Technology Education,2004(3):245-262 [2009-10-25]. http://informingscience.org/jite/documents/Vol3/v3p245-262-135.pdf.

[3] 丁紅勝,田金琴. C語言教學中學生編程風格的培養[J]. 計算機時代,2006(10):65-67.

[4] Indent: Indent and Format C Program Source[EB/OL]. [2009-10-25]. http://www.gnu.org/software/indent/manual/ indent.html.

[5] Steve M. 代碼大全[M]. 金戈,湯凌,陳碩,等譯. 2版. 北京:電子工業出版社,2006.

[6] 王延青,王建政,張麗杰,等. 程序設計語言教學中編碼標準的定量評測框架[J]. 合肥工業大學學報:社會科學版,2008(6): 67-71.

Application of Indent Software in Programming Style Teaching

ZHANG Liang-de, GE Xiang-wei, LIU Dong-sheng

(College of Computer and Information Science, Inner Mongolia Normal University, Huhhot 010022, China)

Abstract: Programming courses should pay attention to cultivate students’ good programming style and habits, but now programming style teaching is not optimistic. A teacher teaches more than one hundred students and it is a heavy burden for him to guide and correct students’ programming style in time. In order to relief teachers from heavy workload, we draw experimentally open-source software Indent into teaching. The experiment shows that it can improve the students’ interest in learning programming style and reduce the teachers’ burden as well.

Key words: programming style; Indent; fundamentals of programming; programming habit

(編輯:張玥)

主站蜘蛛池模板: 亚洲成A人V欧美综合| 国产av一码二码三码无码| 午夜国产不卡在线观看视频| 国产美女精品在线| 风韵丰满熟妇啪啪区老熟熟女| 欧美激情视频二区三区| 国产女人在线| 国模私拍一区二区| 99在线观看免费视频| 老司国产精品视频| 青青草国产在线视频| 精品国产乱码久久久久久一区二区| 久久久久无码精品| 婷婷成人综合| 一级毛片在线直接观看| 亚洲欧美日韩久久精品| 亚洲精品国产精品乱码不卞| 四虎影视无码永久免费观看| 99这里精品| 谁有在线观看日韩亚洲最新视频| 永久免费av网站可以直接看的| 伊人福利视频| 精品国产成人a在线观看| 免费高清a毛片| 色哟哟国产精品| 狠狠五月天中文字幕| 一级全免费视频播放| 午夜精品福利影院| 青草91视频免费观看| 亚洲69视频| 呦系列视频一区二区三区| 中国一级毛片免费观看| 日韩美毛片| 国产欧美日韩资源在线观看| 国产香蕉97碰碰视频VA碰碰看| 成人一区在线| 成人午夜视频免费看欧美| 国产精品页| 第一页亚洲| 一本久道热中字伊人| 成人国产一区二区三区| 国产嫩草在线观看| 呦女亚洲一区精品| 久热这里只有精品6| 国产精品任我爽爆在线播放6080| 精品国产自在在线在线观看| 国产乱子伦无码精品小说 | 在线精品亚洲国产| 国产精品亚洲专区一区| 亚洲男人天堂网址| 欧美精品伊人久久| 国产精品久久久久久久久久98| 九九热在线视频| 少妇极品熟妇人妻专区视频| 一级香蕉人体视频| 91青青草视频在线观看的| 在线国产你懂的| 欧美一级99在线观看国产| 青草视频久久| 国产成人精品一区二区不卡| 日本欧美视频在线观看| 久久综合色视频| 国产福利观看| 天堂在线www网亚洲| 精品国产www| 伊人激情综合| 热久久这里是精品6免费观看| 男人天堂亚洲天堂| 97se亚洲综合| 亚洲色图欧美一区| 亚洲国产欧美国产综合久久 | 久久亚洲国产视频| 欧美三级不卡在线观看视频| 亚洲成a人片在线观看88| 中文字幕人妻无码系列第三区| 欧美日韩中文国产va另类| 国产无码精品在线播放| 97se亚洲综合在线天天| 成人欧美在线观看| 久久人人爽人人爽人人片aV东京热 | 日韩无码黄色| 亚洲欧美日本国产综合在线|