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

(編輯:張玥)

主站蜘蛛池模板: 午夜国产理论| 亚洲国产中文精品va在线播放 | 亚洲天堂视频网站| 在线色国产| 亚洲Aⅴ无码专区在线观看q| 亚洲天天更新| 波多野结衣久久精品| 亚洲国产成人精品青青草原| 欧美精品xx| 久夜色精品国产噜噜| 国产午夜不卡| 婷婷久久综合九色综合88| 欧美另类一区| 四虎成人在线视频| 呦女亚洲一区精品| 亚洲美女AV免费一区| 国产免费观看av大片的网站| 久久国产黑丝袜视频| 熟妇丰满人妻| 久久国产精品影院| 无码一区中文字幕| 亚洲午夜18| 国产女人在线视频| 国产99在线| 国产精品九九视频| 久久亚洲高清国产| 欧美性爱精品一区二区三区| 小13箩利洗澡无码视频免费网站| 国产人成在线观看| 亚洲国产一区在线观看| 日韩成人午夜| 麻豆精品在线| 亚洲天堂精品在线观看| 99热这里只有精品久久免费| 亚洲无码一区在线观看| 亚洲区视频在线观看| 精品视频一区二区三区在线播| 一级看片免费视频| 在线一级毛片| 亚洲国产清纯| 亚洲国产成人精品一二区| 国产成人无码播放| 九色在线视频导航91| 亚洲天堂在线视频| 亚洲欧美日韩中文字幕在线一区| a色毛片免费视频| 国产一级精品毛片基地| 99视频精品在线观看| 欧美成人一级| 麻豆精品在线播放| a级毛片免费网站| 亚洲午夜福利在线| 99热这里只有精品2| 亚洲欧洲日产国产无码AV| www.狠狠| 538国产视频| 亚洲第一视频区| 青青网在线国产| 日韩午夜片| 69国产精品视频免费| 色天天综合| 午夜福利网址| 亚洲色图狠狠干| 国产高清不卡视频| 日本草草视频在线观看| 99热最新在线| 国产91成人| 老司国产精品视频| 亚洲精品制服丝袜二区| 丝袜高跟美脚国产1区| 超碰免费91| 国产女人18水真多毛片18精品| 国产亚洲欧美在线人成aaaa| a级高清毛片| 青青青国产在线播放| 热九九精品| 国产欧美日韩va另类在线播放| 91视频精品| 国产激情无码一区二区免费| 亚洲男人的天堂视频| 成人精品免费视频| 久久精品国产在热久久2019|