前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的c語言程序設計論文主題范文,僅供參考,歡迎閱讀并收藏。
關鍵詞:S-P;C語言程序設計;課程改革
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)27-0183-02
目前,高職教學中的考試還是延續(xù)了采用試卷化來考察學生的成績,將成績的好壞作為衡量學生學習結果的標準。為了更好的進行教學評價方式的改革,適應在新時期教育發(fā)展趨勢對考試評價提出的要求,就需要引入一些科學化,系統(tǒng)化的評價方式來進行有關課程的評定。S-P表是一種采用形成性評價理念為基礎,使用圖形化的數據表現形式和強大的數據處理能力的評價法,被廣泛地應用在各種類型的測驗評價中。本文主要以《C語言程序設計》課程為研究對象,運用S-P表分析法的相關參數計算結果的同時結合理論研究方法,將試卷的測驗作為切入點,對《C語言程序設計課程》相應教學內容的教學情況進行分析研究。
1 《C語言程序設計課程》中存在的問題
近年來,高職院校對于C語言程序設計的課程實踐教學非常重視,加大了對基礎學科的投入,從教材的編寫,師資的培養(yǎng)到參加各種類型的競賽相比有很大的改善,但仍然存在很多的不足,主要表現在以下幾個方面
(1)課程學習目標不明確。
在高職的《C語言程序設計課程》教學過程中,發(fā)現學生對于課程的認識非常淺,僅僅認為該課程是其他程序設計類課程的基礎,具體會對高職的計算機專業(yè)的學習有多大的幫助完全不理解,因此導致學生在學習的過程中不夠重視。
(2)理論教學過程忽略培養(yǎng)學生的綜合能力
在傳統(tǒng)的理論教學過程中,都是采用章節(jié)式的教學形式,引導學生從循序漸進按照章節(jié)來進行學習,在每一章學習的過程中,采用判斷題,程序填空題,編程題的方式來進行對理論過程的消化,因此這種效果看上去可以起到對知識點有益的補充,但是缺乏從整體結構上進行把握,忽視了對綜合應用能力的考察。
(3)實踐教學開展的效果不佳。
目前,高職院校的程序設計主要是教學理論的講解和上機的實踐過程,實踐環(huán)節(jié)的地位始終都是擺在理論教學環(huán)節(jié)之后,主要是用來對理論教學加強實踐過程中的一種表現,因此課程的安排初期,無論是從實踐學時的分配、以及實踐課程的開展次序來看都明顯的弱于理論教學。因此在教學過程中學生對實踐過程的教學不夠充分重視,造成了在考核過程中有些學生的理論很強,但實踐上機調試偏弱,在一定程度上嚴重違背了程序設計課程的學習宗旨。
(4)課程評價機制落后,嚴重束縛學生的創(chuàng)新能力。
課程評價一般分為理論評價和實踐評價兩種方式,理論評價多以選擇題,判斷題,程序填空題等方式出現,考察學生對于程序的理論知識點的掌握情況,這種方式無法從根本上考察C程序設計的運用,在上機過程中的考核方式由于學生的人數和時間的關系,無法做到對每一個學生進行考察,即使在考查過程中,也往往是依靠程序的正確結果來進行給分,而對于一些錯誤答案的程序往往不夠重視,在這其中可能會導致有些錯誤的程序往往包含了一些學生的新的思想和想法,這樣會嚴重打擊學生的積極性,使得學生放棄自己的想法復制一份結果正確的標準格式代碼進行提交,不利于提高對學生創(chuàng)新能力的培養(yǎng),降低了他們對于學習的熱情。
2運用S-P方法分析《C語言程序設計》課程
2.1 S-P分析法簡述
S-P 分析法是一種非常好的試卷評價方法,它主要考察學生的學習情況、輔導內容和考試方式為主旨,將考察學生的方式采用圖形化的方式進行表達,是一種理論結合實踐的驗認知診斷評量技術。
2.2課程數據導入
本文將各試卷的知識點對應的成績作為研究的對象,對原始的成績進行合并轉換,畫出相應的 S 曲線和 P 曲線,并采用 S-P 方法進行評價分析。本步驟中所做的工作主要分為兩個階段:
(1)學生成績的準備。首先,對三份試卷的原始成績進行收集和整理,將收集好的試卷中的原始題目和成績進行合并,得到全新的考試成績表。表中的每個成績數值對應題目的知識點都不盡相同,為后續(xù)的轉換組好準備。
(2)將新的學生成績考試表轉換成學生原始得分布爾矩陣。為了更好的進行研究,本文采用的問題平均的得分值作為賦值的標準,所以試卷中題目都需要進行布爾轉換,在新學生成績考核表中分數的轉換均需嚴格按照賦值標準進行判斷和轉換。
2.3 S-P分析課程課程因素
(1)試卷信任度
本文選取了近三年的三次《C語言程序設計》的期末測試,本次測驗根據經典測量理論,即采用分半法來計算相關系數的方法來計算信任度系數值。
計算過程如下:
步驟1:計算出整個測驗中每個學生在試卷中的奇數題目的總得分()和偶數題目的總得分()。
步驟2:用下列公式求出奇數題和偶數題這兩組分數的相關系數:
步驟3:用如下斯皮而曼-布朗公式進行校正:
依據經典測試理論,本文對三份《C 語言程序設計》課程試卷計算各自的信任度系數值,來進行客觀的分析這些試卷的測試結果是否具備真實性。計算的過程是首先對所有參加測試學生的試卷按照題目的奇偶編號進行統(tǒng)計,累計統(tǒng)計每份考卷中的奇數題目的得分,以及偶數題目的得分 ,將這些值導入到 Excel 的環(huán)境中對所有的奇數題目總分和及偶數題目總分和以及的值、的值和的值,并分別求得這些值各自的總和,最后將這些結果都代入公式(1) 和公式(2)中即可求得最后的信度系數值。
(2)試卷效度
根據經典測試理論有關效度的分析方法。本研究結合近三年來的三次《C語言程序設計》課程考試答題情況和標準答案的分析得到了三次考試本身的效度情況,其次,對三份試卷的所考察的知識點進行計算和統(tǒng)計,并根據考試教學大綱中的要求進行對比,發(fā)現試卷考察的知識基本覆蓋所規(guī)定的教學知識點。
(3)差異系數
將三份試卷的數據導入S-P表中,按照差異系數公式(3)來計算差異值。
式中:表示差異量,表示正確回答率。
一般來說,考試類型的不同導致的差異系數的值也會不同,一般對應檢測學生成果的考試取值在0.5左右,而本次使用的試卷符合這個測試類型。 三次試卷的測試差異系數值為表1所示:
3使用S-P分析《C語言程序設計課程》反饋
(1)學生學習狀況方面
統(tǒng)計計算三個班級中參加期末考試的學生的原始分、平均分、差異量三個考試班級中學生的得分率和學生成績差異情況,對三個班級的學生學習狀況按照這些指標進行分類。這種分類是動態(tài)的,由多種統(tǒng)計數據劃分,將學生的個體與全班的表現對比,可以多角度的了解學生狀態(tài),以便他們在考試中發(fā)揮出現異常都能幫助授課教師繼續(xù)分析和追蹤。
(2)試卷整體質量方面
本課題中使用的《C語言程序設計》的試卷質量不盡相同,每份試卷的信度和效度都不同,特別是在效度方面,三份試卷的效度都比較高,其次,三份試卷的難度情況和分值情況不同,特別是在2013年的試卷中,P曲線存在明顯的斷層,這說明該年的試卷在出題方面存在一定的問題。
(3)教學環(huán)節(jié)和因素分析方面
通過S-P分析得到,任課教師僅僅關注教學知識點是不夠的,分析中發(fā)現學生和教師對于存在的知識點的學習感受和教學效果是反應到一些具體的教學環(huán)節(jié)和因素上的,例如學生對于課程的學習興趣,分析程序的思維能力,教學過程中的多媒體的手段以及課程內容的安排等等,這就要求教師在課程的日常教學實踐中能夠從教學環(huán)節(jié)和飲食上進行分析和改進,提示教學知識點的教學效果,這樣不僅可以幫助教室解決教學過程中的問題,還可以根據學生的具體情況設計更適合學生的教學方法。
(4)學生能力方面的挖掘分析
使用S-P分析方法對課程的諸多因素進行了分析,課程的評價也是學生的學習能力和學習興趣的反應,因此使得授課教師加強學生對《C語言程序設計》中語法細節(jié)掌握情況的反饋,以及學生具備的基礎能力情況,進一步挖掘和培養(yǎng)學生的學習能力。
4貢獻及總結
本文以 2012,2013和2014三個年度的《C 語言程序設計》課程作為研究對象,通過使用S-P參數公式得到相關的反饋信息,針對參與考試的學生的學習情況、試卷質量和相應的教學知識點的相關情況進行了分析和研究,得到了如下的內容:
(1)對《C 語言程序設計》課程大綱下的三個年度的學生考試成績進行匯總,并對學生的考試情況、試卷質量和教學知識點覆蓋等情況進行了統(tǒng)計分析;
(2)通過S-P分析法得到試卷中的部分的異常試題和需要重視的知識點多注意的教學知識點,分析和總結出這些引起共性的知識點的教學效果教學環(huán)節(jié)和因素,并反饋給了任課教師,以便能夠更好的提醒和幫助老師進行課程上的改革,以便取得更好的教學效果;
(3)將S-P分析過的部分班級的學生學習《C 語言程序設計》課程中的狀況及時反饋給教師,并能夠在今后的教學過程中能夠注意學生的學習狀況并加以指導;
(4)不斷完善S-P表的評價分析理論,并需要結合教育學中經典教育測量理論中的有關信度、效度值的指標計算分析內容,可以彌補自身的不足,并能夠與課程的其他方法進行補充,不斷完善提高。
5綜述所述
需要不斷在《C語言程序設計》課程中進行改革,本文的S-P評價方法還存在一定的不足,需要在今后的教學過程中不斷改進S-P評價方法,使之能夠為計算機課程的改革教學提供有利的支持。
參考文獻:
[1] 馮麗娜.S-P表分析法的教學應用研究-以《C語言程序設計》課程測試為例[D].內蒙古師范大學碩士論文,2013.
[2] 萬巖.S-P表在教學評價中的應用及其計算機實現[D].華中師范大學碩士學位論文,2008.
課余之后,本人還繼續(xù)培養(yǎng)自己的其他能力,熟悉SQL SEVER平臺的各種開發(fā)與管理操作,能利用數據庫進行信息分析與管理;熟悉C/C++/C /ASP等語言,能利用Visual Studio 2005進行應用Windows應用程序,Web程序的開發(fā).了解等數據庫接口技術和XML,系統(tǒng)分析與設計與軟件工程方面的基本知識.擁有較好的英語閱讀及口語能力.責任心強,善于溝通,善于團隊合作,勇于實現自我管理自我學習,對技術有較濃的向往. 所獲獎勵 2005/05/2005年全國大學生英語競賽A級 三等獎
2005/11 重慶郵電大學經管學院“創(chuàng)業(yè)計劃”大賽 一等獎
2005/06 重慶郵電大學校數學建模競賽 三等獎
2004/03 重慶郵電大學優(yōu)秀學生獎學金一等獎 三次
2006/03 重慶郵電大學優(yōu)秀學生獎學金二等獎 一次
2006/09 重慶郵電大學優(yōu)秀學生獎學金三等獎 兩次
2005/09 重慶郵電大學優(yōu)秀學生干部
2005/09 重慶郵電大學科技創(chuàng)新百佳先進個人
2004/09 重慶郵電大學三好學生
2004/03 重慶郵電大學經管學院學生會科技協會優(yōu)秀干事 兩獲此稱號 所獲證書 2006年03月全國大學英語口語考試證書C+等級
2005年04月全國計算機等級考試三級信息管理技術證書
2005年03月大學英語CET四級證書 實踐經驗 1. 停車場演示系統(tǒng):專業(yè)個人上機實習,C語言模擬.主要練習對于數據結構基礎知識的掌握以及高級語言程序設計的方法技巧.
2. DVD在線租賃系統(tǒng):數學建模競賽論文,團隊合作完成,主要研究和解決DVD在線租賃網站的需求預測,購買和分配中一些重要問題,應用到0-1背包算法,禁忌算法等知識.同時用C++實現部分功能.
3. 基于Web的個性化信息服務系統(tǒng):系本專業(yè)信息組織與存儲課程設計,本人在其中當作組長,用ASP語言及其Acess實驗部分以下功能:除了基本網站基本檢索功能以外,根據用戶信息,檢索歷史提供個性化信息推送服務研究.
4/2006年于中國網絡通信集團公司重慶分公司運行維護部實現暑假企業(yè)跟班實習一周,了解其通信運營工作流程,網絡維護的基本技能與經驗.
5. 基于SQLDMO的數據庫備份與恢復子系統(tǒng):畢業(yè)設計論文,使用C 語言在.net平臺下數據庫系統(tǒng)備份與恢復的簡單實現方法.
關鍵詞:計算思維;C語言程序設計;算法;教學方法
中圖分類號:TP3 文獻標識碼:A 文章編號:1009-3044(2013)32-7291-03
目前,計算思維能力的培養(yǎng)已成為計算機教育重點研究的課題之一,作為計算機專業(yè)的專業(yè)基礎課和非計算機專業(yè)的公共基礎課,《C語言程序設計》是培養(yǎng)學生計算思維能力的理想課程。通過該課程的學習,學生應學會問題求解的基本思路和方法,具有一定的編程能力,并能理解計算機思維的過程和學會利用計算學科的思想、理論、方法和技術解決客觀世界實際問題的思維方法,然后把相應的思維與方法內化為“方法論”,更廣泛地為工作、學習與生活服務。因此在《C語言程序設計》課程的教學中探索適合培養(yǎng)計算思維能力的教學方法十分必要。
1 計算思維
最早提出計算思維教育理念的是美國卡內基·梅隆大學的周以真(Jeannette M. Wing) 教授,計算思維的概念一經提出就引起了國內外教育界的廣泛關注,周以真教授倡導的是系統(tǒng)的加強計算思維教育。計算思維是運用計算機科學的基礎概念去求解問題、設計系統(tǒng)和理解人類的行為[1]。它包括了反映計算機科學領域的一系列思維活動。周以真教授認為計算思維是人的思維,是人們利用計算科學的思想、方法、理論和技術解決客觀世界實際問題的思維方法,這與我們強調的培養(yǎng)學生具有分析問題和解決問題的能力是一致的。周教授認為計算思維是一種遞歸的思維、是一種通過約簡、轉化和仿真等方法將一個復雜的問題解析成一個我們會求解問題的思維方法、是一種基于關注點分離的方法、是一種采用抽象和分解來進行復雜系統(tǒng)設計的方法、是一種利用啟發(fā)式推理尋求解答的方法,對于系統(tǒng)的設計要考慮它的簡潔和美,對一個程序的評價要考慮它的準確性和效率。計算思維的本質是抽象(Abstraction)和自動化(Automation)[2],反應了計算的最根本問題[3]:什么能被有效的自動進行?周以真教授還認為計算思維不僅僅屬于計算機科學家,它應是每個人應有的基本技能,對于大學生來說,我們更應該培養(yǎng)他們的計算思維能力,在大學中應將計算思維能力培養(yǎng)推進大學通識教育之中。其實周教授所描述的計算思維教育一直隱藏在我們的教學中,計算思維教育重要目標之一就是培養(yǎng)解決問題的良好意識,而我們在教學中有意無意地都在培養(yǎng)學生分析和解決問題的能力,只不過在以前的教學中未將這種思維特征顯式的表示出來而已。美國計算機科學技術教師協會指出,學校的每一類課堂教學都應該采用計算思維這樣一個工具。對于大學一年級學生必修的《C語言程序設計》課程來說,究竟采用什么樣的教學方法才能更有助于學生計算思維能力的培養(yǎng),值得我們探究。
2 計算思維教育與《C語言程序設計》課程教學
計算思維教育的最主要的目標之一就是培養(yǎng)學生解決問題的良好意識,也就是說當碰到實際問題時,就能意識到能否利用計算學科的思想、方法和技術來求解。當學生具備了應用意識以及相關知識,碰到應用領域的實際問題時就會意識到如何去解決。計算思維能力的培養(yǎng)不僅要培養(yǎng)學生解決問題的意識,同時還要培養(yǎng)相應的能力,只有這樣才能掌握正確求解問題的方法和技術,才能達到解決問題的目的。所以說計算思維教育不是灌輸一大堆概念與知識,而是要注重培養(yǎng)學生解決問題的思想、方法、意識、興趣和能力。計算思維最本質的內容是抽象與自動化:抽象是通過簡化、轉換、嵌入、遞歸等方法將一個較復雜的問題轉化為許多簡單問題,然后再進行求解的過程[4];自動化是利用計算機的運算能力來實現問題求解,以彌補人的計算缺陷。抓住了這兩個核心就能有效地培養(yǎng)學生的計算思維能力。
程序設計類課程是訓練學生思維的一個非常有效的平臺,計算機專業(yè)會開設多門程序設計類課程,但對于非計算機專業(yè)的學生來說,一般只開設一門程序設計類課程,所以大一開設的《C語言程序設計》課程對非計算機專業(yè)的學生的計算思維和創(chuàng)新能力的培養(yǎng)起著非常重要的作用,事實上《C語言程序設計》課程中的許多知識為計算思維的培養(yǎng)提供了很好的案例。但這門課程目前大多采用傳統(tǒng)的教學方法:“先講授理論知識,然后上機實踐”,上機實踐的目的也是用來鞏固課堂上所學的知識點。隨著知識點的增多,大量難理解、難記憶的新概念和新規(guī)則的出現,學生會覺得這門課程越來越難學,學習興趣和學習主動性逐漸下降,學習效率低下。并且這種偏重于理論講解的教學方法,在一定程度上束縛了學生思維的發(fā)展,大多數學生面對實際問題的求解和實際應用程序開發(fā)根本無從下手,限制了學生自主發(fā)現和解決問題的能力的發(fā)展。C語言程序設計課程的主要任務之一就是培養(yǎng)學生的編程能力,編程能力是計算思維和技能化知識的綜合體現,而檢驗計算思維能力的結果就是實踐操作,所以在教學中一定要重視實踐環(huán)節(jié)。在實踐教學環(huán)節(jié)要求學生能編寫程序解決實際問題,如果學生不能綜合運用所學的知識、也沒有探索精神,那對學生來說是有一定難度的。如果上機環(huán)節(jié)沒有激發(fā)學生的學習興趣的案例和問題,學生也會感到乏味,從而知難而退。所以,要提高學生的編程能力就要有目的對學生的抽象思維、算法設計、代碼編寫、程序調試、程序分析等能力進行訓練,同時要提高學生的學習興趣。將計算思維融入到《C語言程序設計》課程的教學中將會改變學生的思維方式,在教學時還應把握一個中心點:計算思維是一種方法論,從方法論層面培養(yǎng)學生求解問題的意識,這樣課程就會變得生動有趣了,學生也容易接受。然而,運用什么樣的教學方法才能有效的將計算思維融入到《C語言程序設計》課堂教學中,以提高學生運用計算機知識抽象和分解問題的能力,是一個挑戰(zhàn)。當然,讓學生潛移默化地掌握計算思維,無疑是最佳選擇。
3 面向計算思維能力培養(yǎng)的課程教學方法改革
3.1融計算思維于案例教學中,激發(fā)學生學習興趣
我?!禖語言程序設計》課程的教學是面對不同專業(yè)的學生,所以教學中應與學生所學的學科專業(yè)聯系起來,對不同的學科專業(yè)選用不同的教學案例,通過合適的、面向不同學科專業(yè)的實例達到既闡析計算思維,又給出面向特定學科專業(yè)的范例教學效果。具體的做法是:先選用合適的應用實例并提出問題,然后由問題引入知識點、由知識點帶動語法的掌握、由語法規(guī)則推動計算思維的理解。也就是說先讓學生對所學的知識產生興趣,有了一定的感性認識后再提升到理論高度,循序漸進地掌握知識。例如在學習循環(huán)結構時,面對體育專業(yè)的學生就可舉“大獎賽評分”的例子,面對數學專業(yè)的學生可選用“求1!+2!+3!+……+20!的值”、“判斷一個數n是否為素數”、“打印乘法九九表”等這種與數學有關的例子,面對英語專業(yè)、中文專業(yè)的學生可選用“從鍵盤輸入20個字符,分別統(tǒng)計出其中大寫字母、小寫字母、數字字符、空格字符和其它字符的個數”的例子,其它的專業(yè)可選用“猴子吃桃問題”:有若干個桃子,猴子每天早上吃前一天剩下的一半零一個,到第十天時只剩下一個桃子,問猴子在吃這些桃子之前共有多少個桃子?由于這些問題或者與學生所學的專業(yè)有關聯或者比較有趣,學生會由此對所學的知識也產生興趣,而且這些例子都具有計算思維的顯著特征,對培養(yǎng)學生的計算思維是非常好的案例,學生也能在興趣中主動接受新知識及培養(yǎng)思維。
計算思維是一種問題求解的思維,它將問題求解的過程用程序化的方式表達出來[5],計算思維的自動化是“機械式”的按照步驟自動執(zhí)行,因此對問題的求解就要有精確的算法描述和嚴格的符號表示。當學生面對實際問題時,根據已有的知識提出問題求解的方案,并用算法進行描述,然后編寫程序,最后用機器來驗證問題求解結果。例如對于“猴子吃桃問題”這個案例,根據計算思維的特征和高效,引導學生用計算思維的遞歸方法發(fā)現和解決問題,并引導學生用N-S圖精確描述算法,再用C語言中相應的語句編寫程序。這樣,學生在學習過程中體會遞歸算法的思想和過程,并掌握遞歸方法和C語言中相應的知識和語法,當碰到類似的問題就會想到用類似的方法解決問題。
3.2采用多角度思維訓練的教學方法,以激勵學生的創(chuàng)新意識
《C語言程序設計》課程中計算思維能力的培養(yǎng)主要體現在對學生分析問題和解決問題能力的培養(yǎng),那在教與學過程中如何培養(yǎng)呢?首先教師要設計一個能吸引學生注意力問題,并仔細分析該例子的代表性、應用性和趣味性,例如對于循環(huán)結構這個知識點選用“猴子吃桃問題”是一個很有代表性的例子,學生根據老師提出的問題,思考解決問題的方法,老師適時為學生提供幫助,運用計算思維的各種方法啟發(fā)學生,對于這個問題可啟發(fā)學生用遞歸的方法求解,逆向思維,從后面往前推斷。當然,在教學過程中,老師還需要尊重學生的個性發(fā)展,鼓勵學生提出不同的解題方法,不斷啟發(fā)學生,讓他們積極主動的探究學習,使其能舉一反三。
程序設計類課程的價值之一在于訓練和提高學生的計算思維能力[6],不能讓學生只按照老師邏輯思維解決問題,所以學生在設計算法時,鼓勵學生對同一個問題設計多種不同的算法,這樣有利于培養(yǎng)學生創(chuàng)新意識。當然,還要注重算法的簡化和優(yōu)化,在眾多的算法中找到一種最優(yōu)的算法。例如“百錢買百雞”問題可用三重循環(huán)來實現,但仔細一分析還可只用二重循環(huán)來實現,并且循環(huán)次數由106降低到104,一個簡單的改進讓學生看到算法優(yōu)化的魅力,進一步再啟發(fā)學生算法是否還可改進?循環(huán)次數是否還可以降低?這樣采用多角度思維訓練方式就可充分調動學生學習的積極性,激發(fā)學生的學習熱情和創(chuàng)新意識。
3.3融計算思維于實踐教學環(huán)節(jié)中,強化計算思維的訓練
對于實踐性很強的《C語言程序設計》課程的教學,上機實驗應是教學的核心,也是培養(yǎng)學生計算思維能力的一個重要環(huán)節(jié),所以在該課程的教學中需重視上機實踐這一教學環(huán)節(jié)。過去常用的 “先講解程序后上機實驗” 這種傳統(tǒng)教學策略,一般只能增加學生的感性認識及培養(yǎng)學生的上機能力,不能很好的培養(yǎng)計算思維能力。另一方面,大學生一般對一些具有挑戰(zhàn)性的任務具有濃厚的興趣,所以設計的實驗任務盡量要生活化和趣味化以激起學生的興趣,實驗任務還需具有一定的綜合性來增強實驗的難度,從而強化計算思維的訓練。例如在分支程序結構中可以安排火車計費程序或計算個人所得稅額程序等。教師在設計實驗內容時還要注重培養(yǎng)學生的創(chuàng)新思維,也就是說教師設計的實驗內容要適合學生的知識結構和心理特點,同時為學生創(chuàng)新思維留出空間,要求學生勇于探索,并引導學生認真思考尋求多種解題思路,在計算過程中培養(yǎng)學生的嚴謹性,引導學生對所設計的算法進行必要的優(yōu)化,然后使用正確的語句編寫程序,并通過上機調試與修改程序運行得到正確結果,在研究問題的求解過程、算法設計與優(yōu)化及程序調試過程中強化計算思維的訓練。
4 結束語
將計算思維融入《C語言程序設計》的課程教學中,作為一種教學改革嘗試,其目的就是將程序設計中所涉及的計算思維潛移默化的植入學生的日常思維。在教學中從有利于培養(yǎng)學生計算思維的角度重新組織該課程的教學內容、改革教學方法,在教學中注重加強學生計算思維能力的培養(yǎng),使學生學會問題求解的基本方法,能自覺運用計算思維的方法來解決客觀世界的實際問題。雖然在教學實際中取得了一定的成效,但通過這一門課程來形成計算思維顯然是遠遠不夠的,作為21世紀人類必備的技能之一,計算思維的培養(yǎng)勢在必行。然而,在課程教學中,采用什么樣的教學方法能才能更好的培養(yǎng)和提高學生的計算思維能力,依然是值得探索的問題。
參考文獻:
[1] Wing J M. Computational Thinking[J]. Communication of the ACM, 2006(49): 33-34.
[2] Goldman C V,Zilberstein S.Decentralized control of cooperativesystems:Categorization and complexity analysis[J].Journal of AI Research,2004.
[3] 董榮勝.計算思維與計算機導論[J].計算機科學,2009,36(6):50-52.
[4] 陳杰華,戴麗娟. 以培養(yǎng)計算思維為核心的程序設計實驗教學[J].實驗技術與管理,2011,28(1):125-127.
[論文摘要] 本文通過分析新形勢下IT業(yè)界需求和目前教學形式的局限,通過對校企互動、課程設置、教學模式等六個方面的闡述,找出一條符合時展的工學結合的C語言教學改革之路。
以計算機科學為靈魂的信息產業(yè)是優(yōu)化我國產業(yè)結構,促進低碳經濟,改變我國以勞動密集型產業(yè)為主現狀的希望之星。產業(yè)進步,教育先行,縱觀我們數年來在信息產業(yè)人才培養(yǎng)上取得的一些成果,不難發(fā)現其中存在著教學內容與產業(yè)脫節(jié),落后于產業(yè)發(fā)展的現象。因而在學生就業(yè)和企業(yè)攬才時就會看到這些現象——學生發(fā)現在校所學的東西無法滿足企業(yè)的需要,而企業(yè)在求賢若渴的同時又面臨著無法找到合適人才的困境。本文嘗試探索將工學結合這一教育模式應用于計算機教學實踐中,特別是在C語言的教學改革中來解決上述問題。
在探索工學結合教育理念的過程當中,筆者不斷認識到,工學結合不應該僅僅只是一種學生培養(yǎng)模式的改變,還應該體現在學校與企業(yè)互動方式、課程設置、教材選擇、教學模式選擇和學生實習實訓等各個方面內容的變化。
1 校企互動
在工學結合的實踐中,學校應該走出去,引進來。積極跟企業(yè)接觸,盡量早的把企業(yè)進入到人才培養(yǎng)和教育的過程中。對于有意向的企業(yè),可以實行定向招生、培養(yǎng)計劃,在招生期間學校和企業(yè)就可以聯合面試和招生,在學生第一、二年在校期間,學校和企業(yè)可以共同就教材選擇和師資力量上合作。比如學校教師+企業(yè)導師的“雙師制”教學,學校教師和企業(yè)資深工程師結合產業(yè)需要共同編寫教材,以及學校教師教學和企業(yè)工程師定期或遠程的答疑等,探索學校和企業(yè)共同培養(yǎng)、工學結合的新路子。
2 課程設置
C語言在計算機科學中有著非常重要的地位,它不僅是其它眾多現代編程語言的基礎,也是業(yè)界應用最多、最為廣泛的語言之一。但是在筆者看來,目前各高校在C語言程序設計課程的內容設置上存在不合理的現象。首先,C語言程序設計不應該僅作為一門單獨的課程來開設,而是應該變成系列課程。產業(yè)界在做產品和做項目時,編程語言的運用只是作為一個最基本的因素存在而已,可以說同時擁有編程語言知識、平臺開發(fā)知識和產品領域知識的開發(fā)者才是一個企業(yè)真正的人才。產品相關領域知識的學習在實際開發(fā)過程中會由產品經理來解決,而且不同的產品需要不同的領域相關知識,這個是學校教育基本無法解決的問題。但是反觀我們目前的課程設置,其實只是解決了編程語言知識這一問題。舉例來說,學生要想在Windows操作系統(tǒng)下開發(fā)程序,除了C語言知識外還要學習Windows的眾多API、GUI知識等平臺開發(fā)知識,我們在這一塊的課程設置上存在著諸多空白。
針對這一現狀,筆者覺得我們目前的C語言教學中非常有必要把C語言程序設置成一個系列課程,就是所謂的“大C語言課程”。整體上可以按語言相關知識和平臺相關知識這兩塊來劃分,然后結合目前企業(yè)和行業(yè)發(fā)展來設置課程。對于需要Windows平臺開發(fā)人才的企業(yè),我們的課程設置在語言相關類課程上可以開設“C語言程序設計”和“C++程序設計”等課程,在平臺相關類課程上可以開設“Windows程序設計”、“MFC/WTL程序設計”和“DirectX程序設計”等課程。對于需要Linux/Mac平臺開發(fā)人才的企業(yè),可以增設“Unix程序設計”、“GTK/GNOME程序設計”、“OpenGL程序設計”和“iPhone程序設計”等課程。
在企業(yè)分工日益精細的今天,絕大多數企業(yè)需要的是專才,而非通才。如桌面客戶端開發(fā)和在線客戶端的開發(fā)完全是兩個不同的部門,也有著完全不同的人員配置。而我們當前的課程設置中,一個專業(yè)中既有《C語言程序設計》這類桌面程序開發(fā)技術的課程,又有《ASP.NET程序設計》這類Web開發(fā)技術的課程,這就造成了學生培養(yǎng)時間加長和精力分散的問題。在筆者看來,在課程設置上,高校完全可以進一步細分,首先在大方向上可以用桌面應用開發(fā)和Web應用開發(fā)來分專業(yè),然后再從幾個大專業(yè)上進一步劃分。當然,在現實操作上,學校存在著師資力量不足和教師培養(yǎng)的問題,不可能在所有方向上均開設不同專業(yè),但是也可以退一步只開設傳統(tǒng)的優(yōu)勢專業(yè),從而在業(yè)界中得到認同。對于非專業(yè)課程,比如針對Web開發(fā)專業(yè)的學生,《C++程序設計》完全可以作為選修課程,由學生憑興趣自主選擇學習。 轉貼于
3 教學方式
3.1 教材選擇
在教材選擇方面,學校除了可以考察和借鑒國外同類高校的優(yōu)秀教材外,還可以跟企業(yè)共同探討選取和使用業(yè)界的優(yōu)秀書籍作為教材使用,既能避免重復的編寫工作,又能達到跟上業(yè)界最新發(fā)展的目的。
目前各高校在教授C語言這門課程的時候多采用譚浩強編寫的《C程序設計》或者自己組織編寫的教材。筆者則推薦由C語言設計者Brian W. Kernighan和Dennis M. Ritchie編寫的《The C Programming Language》(也稱《K&R》),中文譯名為《C程序設計語言》,由機械工業(yè)出版社出版。這本書無論從作者的資歷還是內容的權威性上講都是學習C語言的不二選擇。
3.2 環(huán)境選擇
在實驗和上機環(huán)境的選擇上,目前國內各高?;旧喜捎玫亩际荳indows平臺加Visual Studio的搭配。但是這種環(huán)境的缺點是費用過高,如果采購正版,那么對于高校來說僅裝配實驗室這一臺就要投入大量的資金,而不進行采購又會存在版權問題。另外一個非常大的壞處就是把學生限制在里Microsoft的產品系列中,一來不利于擴展視野,二來微軟的C/C++編譯器歷來都對C/C++標準的支持存在問題。所以筆者建議高校在準備實驗室環(huán)境的時候可以大膽引進以Linux操作系統(tǒng)為平臺的開源軟件,使用更好遵循標準的GCC編譯器,這樣不僅節(jié)約了大筆的辦學經費,也讓學生在跨出校門前可以接觸到更多元化的學習環(huán)境。如果學校已經采購了Windows操作系統(tǒng)的許可證,也可以在Windows平臺上部署集成了GCC Windows版的免費IDE環(huán)境Code::Blocks,這樣也不失為一種好的解決方案。
3.3 教學模式選擇
在教學內容上,要力爭突破過去那種教學項目內容枯燥的模式??梢詫嵱没腿の痘捻椖恳氲秸n程教學過程當中,將項目分解成一個個具有實際意義的設計模塊,每個設計模塊的實現必須解決多個疑點,將C語言教學的內容結合到每個疑點中,每次課內容就是由1至3個疑難點引出的C語言知識,當一個模塊中所有的疑難點都解決了,相應設計模塊也就實現了。在設計實現的同時可以啟發(fā)學生進行多角度拓展和優(yōu)化模塊設計的訓練,這樣能讓他們更多的掌握C語言編程的技能、技巧以及經驗知識,如程序編寫的可讀性、可維護性、可拓展性以及工作人員的分工協作等,這些問題在設計實現企業(yè)產品的項目中都會遇到,通過這種模式可以實現教學內容職業(yè)化。
4 實習實訓
在工學結合的實踐當中,實習實訓無疑是一個非常重要的環(huán)節(jié)。學校的實習實訓方面可以更加靈活,突破以前2+1的模式,不僅僅只在第三年才安排實習,而是每學期的都按照課程進度安排相應的實習實訓來檢驗教學成果,同時適應企業(yè)需求。
5 結束語
在高職計算機專業(yè)“c語言程序設計”課程的教學過程中,基于工學結合的理念,通過實際項目的制作,能使學生將所學知識轉化為實際工作的能力,提高學生的實際工作水平、綜合素質和就業(yè)競爭能力,為企業(yè)提供適用型的人才。
參考文獻
[1]湯旭慧, 宋榮, 唐建東.基于工學結合的高職電子類專C語言教學新模式的探索[J]. 中國職業(yè)技術教育,2008.
[2]劉瑞芳,曾海燕.C語言課程教學的改革與探索[J]. 計算機教學與教育信息化,2008.
論文摘要:“C程序設計”課程是信息類專業(yè)的專業(yè)基礎課程,該課程的教學質量直接影響后續(xù)專業(yè)課程的學習。本文將課程教學質量的提高轉化為三種能力的培養(yǎng),即學習能力、應用能力和知識遷移能力,探索通過三種能力的培養(yǎng)提高“C程序設計”專業(yè)基礎課程的教學質量。
1引言
掌握一門高級程序設計語言是高等院校學生利用計算機解決實際問題的必要條件之一,而C語言是當前國內外廣泛使用的高級程序設計語言之一,因此“C程序設計”成為計算機科學與技術、軟件工程、網絡工程等專業(yè)的基礎課程。該課程的教學水平不僅影響本課程的學習效果,而且影響后續(xù)課程的學習效果,所以提高該課程的教學質量具有十分重要的意義。
“C程序設計”課程傳統(tǒng)的教學模式是“理論+實驗”。理論教學一般采用“計算機+投影+黑板”的教學設施,教學課件是PPT文檔,教學方法是教師控制PPT播放的進度,邊播邊講,學生邊聽邊記筆記。實驗教學包括驗證實驗、設計實驗和綜合實驗三種類型。一般采用“實驗指導書”的教學材料,學生根據“實驗指導書”的安排進行實驗。該教學模式比較適合教師對教學進度進行控制,教師處于“主動”地位,而學生處于“被動”地位。
2問題的提出及相關研究
2.1問題的提出
通過對學過該課程的學生和后續(xù)專業(yè)課程的教師進行教學效果調查,發(fā)現傳統(tǒng)教學模式中存在如下不足:
(1) 學生的反饋。課程的語法知識太多,理解和記憶都不太容易,即使記住了語法知識也不一定能靈活應用,程序調試不容易通過,獨立地編寫程序更難等。
(2) 后續(xù)專業(yè)課教師的反饋。語言基礎不牢固,學過的知識如何應用到新的課程還有些困難;適應新的開發(fā)環(huán)境能力差,動手編寫程序的能力弱,缺乏克服困難的主動性等。
在傳統(tǒng)的“理論+實驗”教學模式下,加強學習能力、應用能力和知識遷移能力的培養(yǎng)成為提高教學質量的關鍵問題。
2.2相關研究
針對“C程序設計”課程傳統(tǒng)教學模式存在的不足,探索諸如“建構主義教學方法”、“案例教學法”和“項目教學法”等教學方法在該課程的應用成為研究熱點。
建構主義認為,知識不是通過教師的傳授得到的,而是學習者在一定的情境,即社會文化背景下,借助其他人的幫助,利用必要的學習資料,通過意義建構的方式來獲得,學習的質量是學習者建構意義能力的函數,而不是學習者重現教師思維過程能力的函數。建構主義教學方法已經在”C程序設計”教學中得到了一定的應用并且取得了較好的效果,但這些方法對教師的組織能力和學生的參與水平有比較高的要求。
“案例教學法”是目前國內外比較流行的一種教學方法,被普遍應用于醫(yī)學、法學和管理學等學科的教學,也被廣泛應用于計算機教學中?!鞍咐虒W”有助于提高學生的學習興趣和分析與解決問題的能力,但設計和編寫教學案例會給教師增加額外的負擔,而且選擇能夠激發(fā)學生學習興趣的教學案例也不太容易。
“項目教學法”是通過實施一個完整的項目來實施教學活動,通過理論與實踐教學的有機結合,充分發(fā)掘學生的創(chuàng)造潛能,提高學生解決實際問題的綜合能力。該方法有助于提高學生應用知識的能力,但對學生的克服困難、認真鉆研的主動性要求比較高,如果過程監(jiān)控不到位,則可能出現嚴重的抄襲問題。
本文研究在“理論+實驗”的教學模式下綜合應用各種教學方法的長處,既不過多增加教師的工作量,又提高學生三種能力的培養(yǎng)水平。
3注重三種能力培養(yǎng)的教學探索
“C程序設計”課程專業(yè)基礎課程一般在第一或第二學期開設,面向大學新生,中學應試教育的學習方法已經不能完全適應大學的學習內容,因此教師在課程中應注重對學生學習能力、應用能力和知識遷移能力的培養(yǎng)。
3.1注重學習能力的培養(yǎng)
“C程序設計”課程包括C語言知識、結構化程序設計思想等內容,學生開始學時候比較認真,對所學內容掌握較好,但大部分同學過于注重細節(jié),習慣機械記憶,隨著知識點的增多,機械記憶容易出錯,逐漸失去學習興趣。因此筆者從課前預習、課中聽講和課后復習三個階段引導學生把握學習的主線。
(1) 課前預習。課前對將要學習的內容作一個概要性的預習,讓學生對學習內容有個初步了解,分清重點和難點,提高學生的聽課效率。為了取得較好的預習效果,要提前布置預習內容,然后對預習內容進行檢查,譬如將單選題測驗、概念提問等檢驗的情況記入平時成績。
(2) 課中聽講。引導學生認真聽講,首先要有充分準備的教案,其次要進行適時的課堂提問,再次對學生課堂筆記進行檢查,譬如課后用2~3分鐘隨機抽查部分學生的筆記,檢查的情況也記入平時成績。
(3) 課后復習。為了督促學生及時地復習,要布置一定的作業(yè)題,下一課要對復習的效果進行考查,考查情況也記入平時成績。
經過一段時間的督促,大部分學生能夠適應三階段學習方法,逐漸提高自己的學習能力。
3.2注重應用能力的培養(yǎng)
程序設計課程重在應用,在應用中掌握語言的語法知識、編程思想,將抽象的概念和知識形象化,有利于知識的理解與記憶。本文應用“案例設計”的教學方法、“項目開發(fā)”的教學方法探索對學生應用能力的培養(yǎng)。
3.2.1 “案例設計”的教學方法
案例設計是“案例教學”應用于“C程序設計”課程獲得成功的關鍵,一般由教師完成。由于教師與學生的知識背景和閱歷不同,興趣點不可能完全一致,所以教師辛苦設計的案例并不一定能引起學生的興趣。為此,筆者引導學生進行案例設計,即“案例設計”的教學方法。
“案例設計”的要點包括:(1)經典教學案例的講解。通過講解使得學生掌握案例設計的步驟、方法。(2)案例征集。用“頭腦風暴”法激發(fā)學生的靈感,促進優(yōu)秀案例的產生。(3)案例評價。案例展示、學生評價、教師評價、優(yōu)秀案例答辯等形式的案例評價,有助于提高學生的參與意識。(4)案例庫完善。案例庫存放所有學生的案例設計及評價,有助于學生進行意義建構或學習探究等。
3.2.2“項目開發(fā)”的教學方法
“案例設計”形成的案例其實就是項目的需求分析,對案例進行編程實現有助于學生獲得真實的項目開發(fā)經歷,進一步明確注釋、編程風格和開發(fā)記錄等對項目成功實施的意義。
“項目開發(fā)”的要點包括:(1)數據模型。要區(qū)分數據或結果的存儲方式是內存還是外存,內存方式可以是變量、數組或鏈表,外存方式是文件。(2)功能規(guī)劃。包括功能安排和菜單設計。(3)函數規(guī)劃。根據功能要求明確函數調用關系。(4)函數設計。包括函數的原型、數據傳遞方式和功能實現。(5)系統(tǒng)調試。應用項目管理的思想,對系統(tǒng)進行整體調試和完善使用說明的編寫。(6)項目評價。項目實施情況按指標進行等級評價,爭優(yōu)的項目需要參加答辯。
3.3注重知識遷移能力培養(yǎng)
不少同學認為,C語言太靈活,容易出錯,直接應用C語言開發(fā)系統(tǒng)的機會很少,這影響了他們學習“C程序設計”課程的積極性和主動性。其實,每一種高級程序設計語言雖然各有特點,但它們之間存在許多共性的東西,學好了C語言,對學習其他高級語言有較大的幫助,這就是知識遷移能力。因此,在教學過程中,除了要注重學習C語言本身,更要注重學習高級語言的共性。
(1)IPO思想。一般程序都包括輸入(Input)、處理(Process)和輸出(Output)三部分,編寫或分析程序分成三個部分有助于簡化問題。
(2) 結構化思想。三種基本結構、復合語句和結構嵌套。任何復雜的結構都可以細分為這三種結構,結構化讀寫和分析程序有助于提高學習效率。
(3) 模塊化思想。宏、函數、方法或過程就是程序模塊,C語言是一種函數式語言,函數是C程序的模塊。模塊化可以將一個復雜的問題簡化,有助于問題的控制與解決。
在程序分析或設計中,注重上述高級語言程序設計的共性,有助于培養(yǎng)學生的知識遷移能力。
4結束語
根據對2003級、2004級計算機科學與技術專業(yè)學生學習效果和教學反饋的數據分析,發(fā)現在現有的教學模式下,通過在“C程序設計”專業(yè)基礎課程中培養(yǎng)學生的學習能力、應用能力和知識遷移能力,大部分學生不僅提高了學習C語言、應用C語言解決問題的能力,而且在語言學習方法、程序設計思想和編程實踐積累的經驗等方面都取得了較好的學習效果。
參考文獻:
[1] 祝智庭. 現代教育技術——走向信息化教育[M].北京:教育科學出版社,2002.
[2] 蔡紅. 建構主義教學方法在“C程序設計”教學中的應用[J]. 理工高教研究,2007,26(4):98-99.
關鍵詞:數組;元素;數據;類型
中圖分類號:TP313文獻標識碼:A文章編號:1007-9599 (2010) 16-0000-02
Elements of the Array in C-language
Zhang Kexing
(Foreign Language Teachers College of Taiyuan University,Taiyuan030012,China)
Abstract:The array is the most commonly used programming data st-
ructure.Array can be divided into array of values(integer group,real array),a character array and pointer array and the array of structures.
This array will be examples of various types were analyzed and explained.
Keywords:Array;Element;Data;Type
一、引言
數組是相互關聯的一批數據的序列,序列中的數據稱為數組的元素,可按照排列順序編號,起始編號一般為0,前后兩個數據的編號有差異,通過編號可以唯一指定數組中的數據成員。數組中的元素可以是基本類型,也可以是構造類型。按照數組元素的不同可將數組分為數值數組、字符數組、指針數組、結構數組。
二、數值數組
數值數組是指數組元素是整型、實型、及其相關類型的數據,簡單說,就是元素是數字的數組。
例1:
main()
{
int i,a[10];
for(i=0;i
a[i]=i;
for(i=9;i>=0;i--)
printf("%d ",a[i]);
}
在該例中,第一個for語句給數組a中的10個元素賦值為整形數據0-9,賦值以后數組中數據如下:
第二個for語句將數組a中的10個數字反序輸出,即9、8、7、6、5、4、3、2、1、0
數值數組是數組中使用率最高的數組,需要注意的是一個數組中的數據必須是同一種類型的數據,
{int a[3];
a[0]=3;
a[1]=2.5;
a[2]=3.0;}
是不合法的。
三、字符數組
C語言沒有專門定義字符串數據類型(如其他語言中的string),它用以'\0'結尾的字符數組來表示一個邏輯意義上的字符串。
字符數組主要有兩種用途,(1)存儲字符串,(2)存儲字符或字符變量。這兩個是不同的,剛開始接觸時很容易混淆。下面進一步分析這兩者的不同。
首先初始化時不同,用于存儲字符串,例如:char str[]="Hello"; 用于存儲字符或字符變量,例如:char Chars[]={‘H‘‘e‘,‘1‘‘1‘,‘o‘}。這兩者的存儲方式是一樣的,但是存儲內容稍微有所不同,那就是第一種情況會在結尾加上‘\0’,存儲情況類似于{‘H‘‘e‘,‘1‘‘1‘,‘o‘,‘\0‘},存儲空間會比第二種情況大一點,但是這個存在空間并不被計算進字符串(其實只是字符數組)變量中。
C語言中提供的字符串操作函數其實是針對于結尾是‘\0‘的字符數組進行的。輸出函數printf中的輸出參數%s也是針對于結尾是‘\0‘的字符數組。
另外,還有一種方法可以定義字符串(其實也是字符數組),聲明如下:
char * string = "this is a point charArray.";字符指針指向字符數據的第一個字符的位置。
最后,有兩點特別說明。
(1)字符串常量給出的是地址值。如
char *p, s[10];
p="hello";//正確
(2)不能用賦值語句給字符數組整體賦一串字符,例:
char str[10];
str = "abc";//錯誤
例2:
char c[10]={‘c’, ‘’, ‘p’, ‘r’, ‘o’, ‘g’, ‘r’, ‘a’,’m’};
賦值后數組元素如下:
四、指針數組
在C語言中,一個數組的元素值為指針則是指針數組。 指針數組是一組有序的指針的集合。指針數組的所有元素都必須是具有相同存儲類型和指向相同數據類型的指針變量。
指針數組說明的一般形式為:
類型說明符*數組名[數組長度]
其中類型說明符為指針值所指向的變量的類型。
例如:
int *pa[3]
表示pa是一個指針數組,它有三個數組元素,每個元素值都是一個指針,指向整型變量。
例3:
通常可用一個指針數組來指向一個二維數組。指針數組中的每個元素被賦予二維數組每一行的首地址,因此也可理解為指向一個一維數組。
main(){
int a[3][3]={1,2,3,4,5,6,7,8,9};
int *pa[3]={a[0],a[1],a[2]};
int *p=a[0];
int i;
for(i=0;i
printf("%d,%d,%d\n",a[i][2-i],*a[i],*(*(a+i)+i));
for(i=0;i
printf("%d,%d,%d\n",*pa[i],p[i],*(p+i));
}
本例程序中,pa是一個指針數組,三個元素分別指向二維數組a的各行。然后用循環(huán)語句輸出指定的數組元素。其中*a[i]表示i行0列元素值;*(*(a+i)+i)表示i行i列的元素值;*pa[i]表示i行0列元素值;由于p與a[0]相同,故p[i]表示0行i列的值;*(p+i)表示0行i列的值。
在C語言中,數組元素全為指針的數組成為指針數組。
一維指針數組的定義形式為:“類型名*數組標識符[數組長度]”。
例如,一個一維指針數組的定義:int *ptr_array[10]。
指針數組的含義:
指針數組中的每一個元素均為指針,即有諸形如“*ptr_array[i]”的指針。
由于數組名本身也是一個指針,因此指針數組中的元素亦可以表示為“*(*(ptr_ayyry+i))”。又因為“()”的優(yōu)先級較“*”高,且“*”是右結合的,因此可以寫作**(ptr_array+i)。
五、結構數組
數組的元素也可以是結構類型的。因此可以構成結構型數組。結構數組的每一個元素都是具有相同結構類型的下標結構變量。在實際應用中,經常用結構數組來表示具有相同數據結構的一個群體。如一個班的學生檔案,一個車間職工的工資表等。
方法和結構變量相似,只需說明它為數組類型即可。
例4:
struct stu
{
int num;
char *name;
char sex;
float score;
}boy[5];
定義了一個結構數組boy,共有5個元素,boy[0]~boy[4]。每個數組元素都具有struct stu的結構形式。
例5:計算學生的平均成績和不及格的人數。
struct stu
{
int num;
char *name;
char sex;
float score;
}boy[5]={
{101,"Li ping",'M',45},
{102,"Zhang ping",'M',62.5},
{103,"He fang",'F',92.5},
{104,"Cheng ling",'F',87},
{105,"Wang ming",'M',58},
};
main()
{
int i,c=0;
float ave,s=0;
for(i=0;i
{
s+=boy[i].score;
if(boy[i].score
}
printf("s=%f\n",s);
ave=s/5;
printf("average=%f\ncount=%d\n",ave,c);
}
本例程序中定義了一個外部結構數組boy,共5個元素,并作了初始化賦值。在main函數中用for語句逐個累加各元素的score 成員值存于s之中,如score的值小于60(不及格)即計數器C加1,循環(huán)完畢后計算平均成績,并輸出全班總分,平均分及不及格人數。
六、總結
數組是程序設計中最常用的數據結構。數組可分為數值數組(整數組,實數組),字符數組以及指針數組和結構數組。數組可以是一維的,二維的或多維的。數組類型說明由類型說明符、數組名、數組長度(數組元素個數)三部分組成。要想將不同的數據用不同類型的數組存放,就需要深入了解每一種類型的數組及其特點,這樣才能靈活運用,充分發(fā)揮每種數據類型的長處。
參考文獻:
[1]譚浩強.C程序設計教程[M].北京:清華大學出版社,2007,7
[2]李巖.C語言程序設計基礎與上機知道[M].北京:清華大學出版社,2006,3
[3]馬秀麗等.C語言程序設計[M].北京:清華大學出版社,2008,3
[4]羅堅.C語言程序設計[M].北京:中國鐵道出版社,2009,2
作者簡介:
論文摘要:本文首先分析了當前匯編語言的教學現狀及實驗環(huán)節(jié)的重要作用,然后闡述了匯編語言實驗教學的設計思路,給出了較詳細具體的實驗內容安排。
1 匯編語言及其教學現狀
匯編語言是計算機能夠提供給用戶使用的最快而又最有效的語言,也是唯一能夠利用計算機所有硬件特性并能直接控制硬件的語言。對程序的空間和時間要求很高的場合,匯編語言的應用是必不可少的,至于很多需要直接控制硬件的操作場合則更是非用匯編語言不可。用匯編語言編寫的程序的執(zhí)行速度通常比高級語言(如C/C++)快很多,甚至成百上千倍。相應的,匯編語言的缺點就是使用者需要對硬件有更深入的了解,編程效率不高。
“匯編語言程序設計”課程的任務是為“計算機組成原理”、“接口”、“操作系統(tǒng)”等后繼課程提供必要的基礎知識,它對訓練學生掌握與硬件相關的程序設計技術、從事自主版權計算機芯片和系統(tǒng)軟件的開發(fā)、信息安全、過程控制等方面,均有十分重要的作用。無論計算機技術如何發(fā)展,機器語言、匯編語言的計算機程序設計語言體系仍然是計算機技術的基礎,也是計算機技術的重要知識體系之一。不能了解和熟悉匯編語言,不僅將導致學生知識結構的缺乏,也可能導致學生認知水平的降低,開發(fā)手段的貧乏。
然而,初學者往往感到它難學、難懂、抽象,更難以掌握。教師開展教學困難,學生學習和掌握困難,教學效果差,以致會影響后繼課程的學習。
2 實驗環(huán)節(jié)在匯編語言教學中的作用
在計算機相關專業(yè)的教學領域,實驗和實訓教學是培養(yǎng)大學生學習能力、實踐能力、思考能力、創(chuàng)新能力的重要環(huán)節(jié)和有效途徑。顯然,學生在學習匯編語言這門課程中產生的困難,首先來自于他們對所學知識缺乏必要的感性認識,沒有充分的實驗。
計算機在很多方面不同于其他學科,尤其是與硬件有密切關系的課程。由于匯編語言課程具有硬件操作的密切相關性,實驗環(huán)節(jié)在整個教學活動中就占據了舉足輕重的地位.匯編語言的實驗對培養(yǎng)學生的動手能力和學習興趣,提高學生閱讀、編輯和調試程序的能力,有著不可替代的重要作用。學生通過實驗課深入了解CPU、存儲器、接口及外部設備的工作特性,對數據在計算機中的表達和傳送產生感性認識。在實驗中對匯編語言達到更好的理解、掌握,從感性認識上升到理論認識。
3 實驗教學的設計思路
由于各高校辦學類型不同、培養(yǎng)目標不同、所在地及周邊地區(qū)社會需求不同,計算機及其相關專業(yè)的教學內容也應有所不同。對于非研究型院校的相關專業(yè),對“匯編語言”的教學可以集中在適度的理論知識和充分的操作實踐上?!斑m度”體現在理論課的講授中內容不必展開太寬,“充分”體現在實驗課的安排上要充分。
盡管學生學習匯編語言有著不少困難,但“興趣是最好的老師”,要激發(fā)學生的學習興趣。有了興趣,他就能積極地思考,大膽地探索,變被動接受為主動思考。因此,匯編語言的實驗教學總的思路就是要以激發(fā)學生興趣為主線,盡量設計趣味性的實驗內容,充分發(fā)揮學生的積極性和創(chuàng)造性。
很多學生不重視實驗課的主要原因之一是認為實驗課的好壞對學習成績影響不大,目前多數院校的學習成績評定,僅以期末一張考試卷的好壞而定,這使很多學生重理論、輕實驗。因此,應認真記載每個學生在實驗課上的實際操作能力和編程能力,并以優(yōu)、良、中、差進行仔細考核,開學初就明確告訴學生這種考核制度的存在,使之開始就沒有怠慢的情緒,從思想上重視實驗。
實驗教學的安排按照由淺入深、循序漸進的方式進行,合理選擇實驗內容,盡量避免過多過雜,內容選擇注意舉一反三,即以啟發(fā)思維為主,對設計型、綜合型實驗只要能完成預定實驗目標,不苛求實驗過程與步驟的統(tǒng)一。實驗所演算的匯編語言程序應具備好的觀測效果,能直接體現計算機的操作特點,教師演示和學生實踐穿行,并且注意重復對比,讓學生發(fā)現自己操作的失誤,加深對匯編語言操作規(guī)律的理解。
實驗教師在實驗中主要起到引導的作用,實驗前的講解以重點、難點和注意事項為主,不應面面俱到,可以先給出一些問題,讓學生帶著問題去做、去觀察、去思考。實驗中,則應以學生為主體,讓每個同學通過操作行為感受計算機的物理過程,教師將理論揉在實例中的具體操作中,學生會感到數據是有形的,CPU的操作是物質化的。經過反復練習,學生不但學到了基礎知識,而且提高了綜合分析和理解能力。實驗中,還要鼓勵學生自己修改實驗,有時學生對自己編的程序沒有把握,一旦上機實驗后就清楚了。他在計算機上修改程序,觀察修改后的結果,實際上就是了解改動部分在整個程序中所起的作用,這種作用的認識和理解不是通過說教得來的,而是切身經歷的、看到的,學生對它的理解、記憶就要深刻得多。
4 實驗內容的具體安排
具體的實驗內容應覆蓋匯編語言教學中的各重要方面,內容涉及debug、匯編語言編程環(huán)境、匯編語言程序設計、輸入輸出與中斷、Win32匯編、匯編語言與C語言的混合編程等。類型分為選作和必做。每個實驗分屬驗證型、設計型或綜合型。
4.1 穩(wěn)扎穩(wěn)打練好基本功:debug和編程環(huán)境
“萬事開頭難”。對匯編語言的學習,能否開好頭很關鍵,很多學生就是因為開始沒學好,感覺跟不上,就不再認真地學習了,有的甚至放棄了。其實匯編語言實驗開始的基礎部分是比較簡單的,想掌握它是沒什么大問題的。
匯編語言源程序通常以ASCII文本文件的形式保存,通過匯編鏈接形成一個EXE可執(zhí)行文件。對EXE文件的調試構成了實驗課的主體內容,貫穿始終,而EXE文件的調試通常是通過debug實現的。學生通過使用debug可以觀察到存儲器的數據存儲情況,也可以隨時觀察到CPU中寄存器的數據變化。debug的反匯編命令是理解匯編語言的助記符形態(tài)和機器指令的01碼形態(tài)的對應關系的重要工具,學生可以通過它深入體會匯編語言中指令的構成及各部分含義。debug提供的單步執(zhí)行命令是另一個重要工具,利用t單步執(zhí)行一條指令,及時觀察數據緩沖區(qū)的變化情況,這也是進行調試、發(fā)現程序錯誤的最直接有效的方法。
debug的實驗部分以使用a、t、r、d、u等命令為主反復進行指令練習。學生通過使用debug觀察到指令執(zhí)行前后機器中數據的變化,對深入理解計算機的工作原理、匯編指令的作用是直接的和不可替代的。學生不再感到機器是復雜的,指令是抽象的。
接下來安排的實驗則是對匯編語言編程環(huán)境的熟悉和掌握,這也是重要的一環(huán)。對編程環(huán)境不熟悉,不僅會影響學習匯編語言的效率,還會引起一些不必要的錯誤發(fā)生。因此可以考慮多給幾個簡單完整的程序,讓學生多去 使用編程環(huán)境,熟悉匯編鏈接過程。實驗初,只給一些正確的程序,讓學生經過匯編鏈接可以較容易地形成exe文件并成功執(zhí)行,看到了正確的結果,學生就有了方向,也就有信心去做下面的實驗了。
在熟悉了簡單的編譯過程之后,接下來可以在原有程序中適當安排一兩個錯誤,讓學生觀察匯編鏈接中出現的錯誤信息,理解這些錯誤發(fā)生的原因,這一點對程序調試是至關重要的,如果看不懂錯誤信息,就沒有辦法正確定位錯誤,也談不上修正錯誤了。
以上分析,學習匯編語言伊始,一定要練好基本功,包括對debug的熟練使用,對編程環(huán)境的熟悉。這部分實驗一定要安排得充分,力求使學生不再對機器望而生畏,不再對匯編指令有抽象難懂的感覺,如果能開好這個頭,后繼的學習就順利得多了。
4.2 輕輕松松做改變:匯編語言程序設計
由于學習匯編語言之前,學生通常已經學習過一門程序設計語言,因此這部分實驗可安排簡單、典型的驗證型、設計型實驗,以編寫程序為主。先要求學生用之前學過的程序設計語言實現,然后再給出匯編語言的實現,通過對比;學生自然可以發(fā)現匯編語言與其他程序設計語言的異同。當程序出現錯誤時,則必須要求學生使用debug進行調試,觀察變化,排除錯誤,加強程序調試能力。
4.3 細心耐心學核心:輸入輸出與中斷
中斷是學習匯編語言的重點加難點部分,能否真正掌握匯編語言也在于此,中斷也是匯編語言的魅力所在。這部分實驗一定要找一些學生感興趣的、具有明顯觀測效果的例子,至少安排兩個階段的實驗。第一階段以驗證型實驗為主,先使學生熟悉中斷過程、中斷處理程序的框架;第二階段以設計型實驗為主,讓學生自己去思考中斷過程中發(fā)生的事情,中斷程序設計的方法。對這部分知識的傳授一定要有耐心,對每個程序的講解要透徹、概念清晰。中斷是真正要用的東西,之前學習的內容只是為它做鋪墊,不能學好中斷,匯編語言這門課的真諦就沒有學到。
4.4 興趣延伸:WIn32匯編、匯編語言與C語言混合編程
很多學生學習匯編語言之初就會問匯編語言用在哪里,很少接觸到匯編語言等問題,其實現在匯編語言很少單獨使用,而Win32匯編、匯編語言與C語言的混合編程用的比較多,這兩部分內容學起來并不難,可當作拓展知識部分,作為自學內容。教師可以找一些實際使用這部分內容的例子,讓學生知道匯編語言的用途,使學生不再“學而不用”,“學而不知用”。
考試時間
云南大理2020年4月自學考試時間安排在4月11日星期六、4月12日星期日(上午9:00-11:30;下午14:30-17:00)舉行。
考試須知
(一)考場設置:由各州(市)招生考試機構確定。需在縣城以外設考場的,須報省招考院批準。“廣告”專科只在昆 明設考點。
(二)考生應試時,須帶準考證、考試通知單和居民身份證(或其它能證明身份的有效證件),三證不全者不得進入考場??忌仨殗栏褡袷乜紙鲆?guī)則,不得以任何形式作弊。凡違紀違法者,按2011年教育部第33號令和《刑九修正案》嚴肅查處。
(三)考試成績以百分計,六十分及格,不及格者可參加該門課程的下一次考試??荚嚦煽児荚凇霸颇鲜≌锌碱l道(ynzs.cn)”網站上,考生自行登錄查詢。考生對成績有質疑的可在成績公布之日起10個工作日內到各州(市)招生考試機構辦理查分申請,由各州(市)招生考試機構匯總后統(tǒng)一到省招考院查分,查完后通知考生。省招考院不直接對考生查分。
(四)考試時,對需要使用計算器的科目,考生可攜帶沒有存儲功能的計算器,并且不得互相借用。不準使用有存儲、接收、發(fā)射功能的電子工具??忌M入考場考試嚴禁攜帶任何通訊工具,否則將視同作弊。
(五)同一考試時間段,一名考生只能參加一門課程的考試。
(六)全國計算機等級考試(NCRE)成績在自考系統(tǒng)中的使用:
根據全國考委辦函[2004]148號文件規(guī)定:
1.NCRE課程暫與高等教育自學考試的部分??普n程進行銜接。
2.凡獲得NCRE一級合格證書者,可以免考高等教育自學考試中的《計算機應用基礎》(課程代碼:00018)或《計算機應用技術》(課程代碼:02316)課程(包括理論考試和上機考試兩部分)。
3.凡獲得NCRE二級C語言程序設計(筆試和上機)合格證書者,可以免考高等教育自學考試中的《高級語言程序設計(一)》(課程代碼:00342)課程(包括理論考試和實踐考核兩部分)。
4.凡獲得NCRE三級PC技術(筆試和上機)合格證書者,可以免考高等教育自學考試中的《微型計算機及其接*術》(課程代碼:02319)和《微型計算機原理及應用》(課程代碼:02277)課程(包括理論考試和實踐考核兩部分)。
(七)全國公共英語等級考試成績在自考系統(tǒng)中的使用:
高等教育自學考試的考生參加PETS二級或PETS三級考試,筆試合格者的成績可直接替代自考有關專業(yè)大?;虮究乒灿⒄Z〈即英語(一)(課程代碼:00012)、英語(二)(課程代碼:00015)〉的考試成績,并可獲得相應的學分(PETS二級替代??朴⒄Z(一)成績,PETS三級替代本科英語(二)成績,英語專業(yè)不能替代)。考生是否參加相應口試,則根據考生是否要求獲得PETS等級證書或高等教育自學考試的相關專業(yè)來定。
(八)漢語言文學本科專業(yè)的畢業(yè)論文答辯定于每年的5月和11月,分兩次舉行,考生可與云南師范大學文學院聯系進行答辯事宜。英語本科的“口譯與聽力”,專科的“聽力”、“口語”考試時間由云南師范大學外語學院安排,請考生與學校聯系。
(九)已取得自考專業(yè)全部課程合格證書的考生,如該專業(yè)有實踐、實習、設計、畢業(yè)論文等考核要求的,應及時和主考院校聯系實習考核事宜,待取得合格成績后,方可辦理畢業(yè)證書。
一 課程體系設計和實踐實訓設計整體思路
1.遵照教育部對經濟統(tǒng)計學專業(yè)的要求
嚴格遵照教育部對經濟統(tǒng)計學專業(yè)的要求。主干學科為理論經濟學、應用經濟學、統(tǒng)計學,其中核心課程為西方經濟學(微觀經濟學、宏觀經濟學),計量經濟學,財政學,貨幣金融學,會計學,經濟統(tǒng)計學,國民經濟統(tǒng)計學,概率論與數理統(tǒng)計,抽樣技術與應用,應用時間序列分析。實踐性教學環(huán)節(jié)包括實驗課程(含基本統(tǒng)計分析軟件應用、統(tǒng)計實務模擬等),社會實踐(含經濟社會統(tǒng)計調查、統(tǒng)計工作實習等),科研和論文寫作(含畢業(yè)論文、學年論文、科研實踐等)。專業(yè)實驗包括計算機基本技能實驗、統(tǒng)計分析應用軟件實驗、經濟計量分析軟件實驗、數據挖掘技術與應用實驗。
2.參照其他院校的培養(yǎng)方案和課程設置
它山之石,可以攻玉。我們選擇了部分具有代表性的財經院校(如上海財經大學、中央財經大學、東北財經大學、西南財經大學、中南財經政法大學、北京工商大學、上海金融學院、 河南財經大學、浙江財經學院和山東工商學院)和綜合類院校(如浙江大學、吉林大學、南京大學和云南大學)以及師范類院校(如北京師范大學、華東師范大學、東北師范大學、南京師范大學)作為參照院校。通過比較分析得出,在統(tǒng)計學經濟統(tǒng)計、商務統(tǒng)計、金融統(tǒng)計方向中,財經類院校主要突出經濟學課程,招生偏重理科生。綜合性院校和師范類院校主要課程為理學類,招生偏重理科生。
綜上所述,經濟統(tǒng)計學專業(yè)應培養(yǎng)適應信息化社會需要,熟練掌握現代統(tǒng)計理論和經濟數量分析方法,具有扎實的統(tǒng)計學、經濟學和金融學基礎,能熟練應用計算機軟件處理統(tǒng)計數據的復合型高素質經濟管理統(tǒng)計人才。學生畢業(yè)后可在政府部門、金融機構、外資企業(yè)和大中型公司等從事經濟統(tǒng)計分析、管理咨詢、市場調研和商務數據分析等管理工作。
3.與學院培養(yǎng)方案形式統(tǒng)一
新制訂的培養(yǎng)方案和整個學院的形式保持了統(tǒng)一,以便于教務人員管理工作的開展。
二 經濟統(tǒng)計學培養(yǎng)方案專業(yè)課的設置
經濟統(tǒng)計學的培養(yǎng)目標與基本規(guī)格和招收對象為理科生,設置了保險精算、金融統(tǒng)計和商務統(tǒng)計三個方向。學生修滿培養(yǎng)方案規(guī)定的學分并達到學位授予要求者,授予經濟學學士學位。
由于經濟統(tǒng)計學對統(tǒng)計學和經濟學知識的要求較高,我們提高了課程總學分和總學時,注重主干學科和專業(yè)課程的開課順序和教學周學時分配,強化實訓實踐課程,實行理論和實踐并行。
培養(yǎng)方案確定了5門學科基礎課程,分別為宏觀經濟學、微觀經濟學、C語言程序設計、概率論與數理統(tǒng)計、管理學。確定了5門專業(yè)基礎課程,分別為基礎會計學、經濟統(tǒng)計學、貨幣金融學、財政學、計量經濟學。確定了9門專業(yè)核心課程,分別為國民經濟統(tǒng)計學、多元統(tǒng)計分析、統(tǒng)計預測與決策、抽樣技術與應用、應用時間序列分析、金融統(tǒng)計學、市場調查與分析、投資學、數據挖掘。
分設了三個專業(yè)方向,分別為保險精算(開設保險學、保險統(tǒng)計學、利息理論、壽險精算、非壽險精算5門課程)、金融統(tǒng)計(開設商業(yè)銀行經營管理、金融市場、金融資產評估、金融工具與金融風險管理、投資組合分析 5門課程)和商務統(tǒng)計(開設信息檢索與利用、企業(yè)經營統(tǒng)計學、投入產出分析、項目管理、質量控制統(tǒng)計方法5門課程)方向。